<?xml version="1.0" encoding="UTF-8"?><?xml-stylesheet href="/assets/rss.xsl" type="text/xsl"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"

>
<channel>
	<title>Sacha Chua - category - yay-emacs</title>
	<atom:link href="https://sachachua.com/blog/category/yay-emacs/feed/index.xml" rel="self" type="application/rss+xml" />
	<atom:link href="https://sachachua.com/blog/category/yay-emacs" rel="alternate" type="text/html" />
	<link>https://sachachua.com/blog/category/yay-emacs/feed/index.xml</link>
	<description>Emacs, sketches, and life</description>
  
	<lastBuildDate>Wed, 13 May 2026 14:32:18 GMT</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>daily</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>11ty</generator>
  <item>
		<title>May 14: Sacha, Prot, and Philip Kaludercic Talk Emacs: Newcomer Experience</title>
		<link>https://sachachua.com/blog/2026/05/may-14-sacha-prot-and-philip-kaludercic-talk-emacs-newcomer-experience/</link>
		<dc:creator><![CDATA[Sacha Chua]]></dc:creator>
		<pubDate>Sat, 02 May 2026 17:21:07 GMT</pubDate>
    <category>emacs</category>
<category>community</category>
<category>yay-emacs</category>
		<guid isPermaLink="false">https://sachachua.com/blog/2026/05/may-14-sacha-prot-and-philip-kaludercic-talk-emacs-newcomer-experience/</guid>
		<description><![CDATA[<p>
<a href="https://social.sdfeu.org/@pkal/116500474344904460">Philip Kaludercic</a> wanted to continue the conversation from <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>. He's spent a lot of time thinking about this as one of the main contributors to newcomers-presets, so there'll probably be much to cover!
</p>

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

<p>
<span class="timestamp-wrapper"><time class="timestamp" datetime="2026-05-14T10:30:00-0400">&lt;2026-05-14 Thu 10:30&gt;&ndash;&lt;2026-05-14 Thu 11:30&gt;</time></span> (America/Toronto -0400) = Thu May 14 1030H EDT / 0930H CDT / 0830H MDT / 0730H PDT / 1430H UTC / 1630H CEST / 1730H EEST / 2000H IST / 2230H +08 / 2330H JST
</p>

<p>
We'll probably talk about:
</p>

<ul class="org-ul">
<li>Emacs 31 or Emacs 32 directions towards improving the newcomer experience</li>
<li>How the newcomers presets fits into the bigger picture</li>
<li>Documentation and guides</li>
<li>How to get more feedback from newbies (virtual focus group? mailing list? office hours?)</li>
<li>Informal community resources</li>
<li>Other things we can do to help</li>
</ul>

<div class="sticky-toc" id="org1c092b3">
<div id="text-table-of-contents" role="doc-toc">
<ul>
<li><a href="https://sachachua.com/blog/feed/index.xml#may-14-sacha-prot-and-philip-kaludercic-talk-emacs-newcomer-experience-related-links">Related links</a></li>
<li><a href="https://sachachua.com/blog/feed/index.xml#may-14-sacha-prot-and-philip-kaludercic-talk-emacs-newcomer-experience-some-types-of-new-users-to-think-about">Some types of new users to think about</a></li>
<li><a href="https://sachachua.com/blog/feed/index.xml#may-14-sacha-prot-and-philip-kaludercic-talk-emacs-newcomer-experience-part-of-a-learning-journey">Part of a learning journey</a></li>
<li><a href="https://sachachua.com/blog/feed/index.xml#may-14-sacha-prot-and-philip-kaludercic-talk-emacs-newcomer-experience-other-notes">Other notes</a></li>
<li><a href="https://sachachua.com/blog/feed/index.xml#may-14-sacha-prot-and-philip-kaludercic-talk-emacs-newcomer-experience-some-screenshots-of-a-fresh-emacs">Some screenshots of a fresh Emacs</a></li>
<li><a href="https://sachachua.com/blog/feed/index.xml#may-14-sacha-prot-and-philip-kaludercic-talk-emacs-newcomer-experience-trying-pkal-s-emacs-configuration-generator">Trying pkal's Emacs Configuration Generator</a></li>
</ul>
</div>

</div>
<div id="outline-container-may-14-sacha-prot-and-philip-kaludercic-talk-emacs-newcomer-experience-related-links" class="outline-3">
<h3 id="may-14-sacha-prot-and-philip-kaludercic-talk-emacs-newcomer-experience-related-links"><a href="https://sachachua.com/blog/feed/index.xml#may-14-sacha-prot-and-philip-kaludercic-talk-emacs-newcomer-experience-related-links">Related links</a></h3>
<div class="outline-text-3" id="text-may-14-sacha-prot-and-philip-kaludercic-talk-emacs-newcomer-experience-related-links">
<ul class="org-ul">
<li><a href="https://yhetil.org/emacs-devel/87wm0f2rng.fsf@posteo.net/">A proposal for a "beginners" (user-option) theme - Philip Kaludercic</a></li>
<li><a href="https://yhetil.org/emacs-devel/87tsuucbkh.fsf@posteo.net/">Re: some file-related options to consider for newcomers-presets - Philip Kaludercic</a></li>
<li><a href="https://yhetil.org/emacs-devel/CABPi7cHxEoMKwvDkuXGZXaHDpUuqS6ry60JOcdSZbSuYB47LSg@mail.gmail.com/">A newcomer's feedback on newcomer presets - Abdulnafe Toulaimat</a></li>
<li><a href="https://codeberg.org/pkal/ecg/src/branch/master/ecg.lisp">Emacs Configuration Generator</a> - old source code</li>
</ul>
</div>
</div>
<div id="outline-container-may-14-sacha-prot-and-philip-kaludercic-talk-emacs-newcomer-experience-some-types-of-new-users-to-think-about" class="outline-3">
<h3 id="may-14-sacha-prot-and-philip-kaludercic-talk-emacs-newcomer-experience-some-types-of-new-users-to-think-about"><a href="https://sachachua.com/blog/feed/index.xml#may-14-sacha-prot-and-philip-kaludercic-talk-emacs-newcomer-experience-some-types-of-new-users-to-think-about">Some types of new users to think about</a></h3>
<div class="outline-text-3" id="text-may-14-sacha-prot-and-philip-kaludercic-talk-emacs-newcomer-experience-some-types-of-new-users-to-think-about">
<ul class="org-ul">
<li>Non-programmer interested in using Org Mode for notes and task management</li>
<li>Researcher interested in publishing, reproducible research, literate programming</li>
<li>Programmer interested in coding with Emacs
<ul class="org-ul">
<li>Coming from VSCode</li>
<li>Coming from Vi</li>
</ul></li>
<li>Programmer still using a different IDE, just interested in Magit</li>
<li>Long-time Emacs user who hasn't explored Emacs Lisp</li>
</ul>
</div>
</div>
<div id="outline-container-may-14-sacha-prot-and-philip-kaludercic-talk-emacs-newcomer-experience-part-of-a-learning-journey" class="outline-3">
<h3 id="may-14-sacha-prot-and-philip-kaludercic-talk-emacs-newcomer-experience-part-of-a-learning-journey"><a href="https://sachachua.com/blog/feed/index.xml#may-14-sacha-prot-and-philip-kaludercic-talk-emacs-newcomer-experience-part-of-a-learning-journey">Part of a learning journey</a></h3>
<div class="outline-text-3" id="text-may-14-sacha-prot-and-philip-kaludercic-talk-emacs-newcomer-experience-part-of-a-learning-journey">
<ul class="org-ul">
<li>Install Emacs</li>
<li>Use Emacs via the menu bar and toolbar</li>
<li>Get a little overwhelmed</li>
<li>Use M-x to call commands by name</li>
<li>Learn how to set up completion</li>
<li>Use some keyboard shortcuts</li>
<li>Figure out how to learn and connect</li>
<li>Customize some options</li>
<li>Define their own keyboard shortcuts</li>
<li>Define their own functions</li>
</ul>
</div>
</div>
<div id="outline-container-may-14-sacha-prot-and-philip-kaludercic-talk-emacs-newcomer-experience-other-notes" class="outline-3">
<h3 id="may-14-sacha-prot-and-philip-kaludercic-talk-emacs-newcomer-experience-other-notes"><a href="https://sachachua.com/blog/feed/index.xml#may-14-sacha-prot-and-philip-kaludercic-talk-emacs-newcomer-experience-other-notes">Other notes</a></h3>
<div class="outline-text-3" id="text-may-14-sacha-prot-and-philip-kaludercic-talk-emacs-newcomer-experience-other-notes">
<p>
Learning how to modify Emacs with Emacs Lisp can help people really
appreciate its power. For example, you need Emacs Lisp to set your own
keyboard shortcuts. You can't set them through the Options menu or the
<code>M-x customize</code> interface. One challenge is that the Emacs Lisp
configuration file that is loaded at the start of every Emacs session
might be in one of several places, which means that in order for
newbies to understand how to add something like:
</p>


<div class="org-src-container">
<pre class="src src-emacs-lisp"><code>(<span class="org-keyword">bind-key</span> <span class="org-string">"C-c r"</span> <span class="org-highlight-quoted-quote">'</span><span class="org-highlight-quoted-symbol">org-capture</span>)
</code></pre>
</div>


<p>
we need to either include a link to something like <a href="https://www.emacswiki.org/emacs/InitFile">EmacsWiki: Init
File</a>, or repeat the instructions and the troubleshooting steps in beginner tutorials.
</p>

<ul class="org-ul">
<li>user-init-file defaults to <code>.emacs</code> for new users if none of <code>~/.emacs</code>, <code>~/.emacs.el</code>, <code>~/.emacs.d/init.el</code>, and <code>~/.config/emacs/init.el</code> exist.</li>

<li>After you select newcomer-presets from the splash screen, this is not persisted automatically. "Options &gt; Save Options" doesn't save it either. Because people usually think of themes as cosmetic, they're not likely to find it under "Options &gt; Customize Emacs &gt; Custom Themes; newcomers-presets; Save Theme Settings." The "Options &gt; Save Options" will save the change that newcomers-presets made to the tab bar, thus creating a <code>~/.emacs</code>.</li>
<li><a href="https://doc.emacsen.de/gallery.html">https://doc.emacsen.de/gallery.html</a> - gallery of themes built into Emacs</li>
</ul>
</div>
</div>
<div id="outline-container-may-14-sacha-prot-and-philip-kaludercic-talk-emacs-newcomer-experience-some-screenshots-of-a-fresh-emacs" class="outline-3">
<h3 id="may-14-sacha-prot-and-philip-kaludercic-talk-emacs-newcomer-experience-some-screenshots-of-a-fresh-emacs"><a href="https://sachachua.com/blog/feed/index.xml#may-14-sacha-prot-and-philip-kaludercic-talk-emacs-newcomer-experience-some-screenshots-of-a-fresh-emacs">Some screenshots of a fresh Emacs</a></h3>
<div class="outline-text-3" id="text-may-14-sacha-prot-and-philip-kaludercic-talk-emacs-newcomer-experience-some-screenshots-of-a-fresh-emacs">

<figure id="org67c88f6">
<a href="https://sachachua.com/blog/2026/05/may-14-sacha-prot-and-philip-kaludercic-talk-emacs-newcomer-experience/2026-05-12_08-59-17.png"><img src="https://sachachua.com/blog/2026/05/may-14-sacha-prot-and-philip-kaludercic-talk-emacs-newcomer-experience/2026-05-12_08-59-17.png" alt="2026-05-12_08-59-17.png"></a>

<figcaption><span class="figure-number">Figure 1: </span>The splash screen for a new Emacs</figcaption>
</figure>


<figure id="orgd881281">
<a href="https://sachachua.com/blog/2026/05/may-14-sacha-prot-and-philip-kaludercic-talk-emacs-newcomer-experience/2026-05-12_09-01-50.png"><img src="https://sachachua.com/blog/2026/05/may-14-sacha-prot-and-philip-kaludercic-talk-emacs-newcomer-experience/2026-05-12_09-01-50.png" alt="2026-05-12_09-01-50.png"></a>

<figcaption><span class="figure-number">Figure 2: </span>File menu</figcaption>
</figure>


<figure id="orgaf32d4b">
<a href="https://sachachua.com/blog/2026/05/may-14-sacha-prot-and-philip-kaludercic-talk-emacs-newcomer-experience/2026-05-12_09-02-43.png"><img src="https://sachachua.com/blog/2026/05/may-14-sacha-prot-and-philip-kaludercic-talk-emacs-newcomer-experience/2026-05-12_09-02-43.png" alt="2026-05-12_09-02-43.png"></a>

<figcaption><span class="figure-number">Figure 3: </span>Customize menu</figcaption>
</figure>


<figure id="org6d7a4c4">
<a href="https://sachachua.com/blog/2026/05/may-14-sacha-prot-and-philip-kaludercic-talk-emacs-newcomer-experience/2026-05-12_09-03-37.png"><img src="https://sachachua.com/blog/2026/05/may-14-sacha-prot-and-philip-kaludercic-talk-emacs-newcomer-experience/2026-05-12_09-03-37.png" alt="2026-05-12_09-03-37.png"></a>

<figcaption><span class="figure-number">Figure 4: </span>Help menu</figcaption>
</figure>
</div>
</div>
<div id="outline-container-may-14-sacha-prot-and-philip-kaludercic-talk-emacs-newcomer-experience-trying-pkal-s-emacs-configuration-generator" class="outline-3">
<h3 id="may-14-sacha-prot-and-philip-kaludercic-talk-emacs-newcomer-experience-trying-pkal-s-emacs-configuration-generator"><a href="https://sachachua.com/blog/feed/index.xml#may-14-sacha-prot-and-philip-kaludercic-talk-emacs-newcomer-experience-trying-pkal-s-emacs-configuration-generator">Trying pkal's Emacs Configuration Generator</a></h3>
<div class="outline-text-3" id="text-may-14-sacha-prot-and-philip-kaludercic-talk-emacs-newcomer-experience-trying-pkal-s-emacs-configuration-generator">
<p>
<a href="https://codeberg.org/pkal/ecg/src/branch/master/ecg.lisp">Emacs Configuration Generator</a> - old source code, site is no longer live
</p>


<div class="org-src-container">
<pre class="src src-sh"><code>sbcl &#45;&#45;load ecg.lisp &#45;&#45;eval <span class="org-string">"(ecg:start)"</span>
</code></pre>
</div>



<figure id="orgb9a5f66">
<a href="https://sachachua.com/blog/2026/05/may-14-sacha-prot-and-philip-kaludercic-talk-emacs-newcomer-experience/2026-05-13_21-36-30.png"><img src="https://sachachua.com/blog/2026/05/may-14-sacha-prot-and-philip-kaludercic-talk-emacs-newcomer-experience/2026-05-13_21-36-30.png" alt="2026-05-13_21-36-30.png"></a>

<figcaption><span class="figure-number">Figure 5: </span>Web interface</figcaption>
</figure>


<figure id="orgdc7b2c4">
<a href="https://sachachua.com/blog/2026/05/may-14-sacha-prot-and-philip-kaludercic-talk-emacs-newcomer-experience/2026-05-13_21-37-11.png"><img src="https://sachachua.com/blog/2026/05/may-14-sacha-prot-and-philip-kaludercic-talk-emacs-newcomer-experience/2026-05-13_21-37-11.png" alt="2026-05-13_21-37-11.png"></a>

<figcaption><span class="figure-number">Figure 6: </span>Theme preview, other options</figcaption>
</figure>

<p>
Sample generated configuration:
</p>


<div class="org-src-container">
<pre class="src src-emacs-lisp"><code><span class="org-comment-delimiter">;;; </span><span class="org-comment">Personal configuration -*- lexical-binding: t -*-</span>

<span class="org-comment-delimiter">;; </span><span class="org-comment">Save the contents of this file under ~/.emacs.d/init.el</span>
<span class="org-comment-delimiter">;; </span><span class="org-comment">Do not forget to use Emacs' built-in help system:</span>
<span class="org-comment-delimiter">;; </span><span class="org-comment">Use C-h C-h to get an overview of all help commands.  All you</span>
<span class="org-comment-delimiter">;; </span><span class="org-comment">need to know about Emacs (what commands exist, what functions do,</span>
<span class="org-comment-delimiter">;; </span><span class="org-comment">what variables specify), the help system can provide.</span>

<span class="org-comment-delimiter">;; </span><span class="org-comment">Load a custom theme</span>
(load-theme <span class="org-highlight-quoted-quote">'</span><span class="org-highlight-quoted-symbol">modus-operandi</span> t)

<span class="org-comment-delimiter">;; </span><span class="org-comment">Use whatever the default monospace font is</span>
(<span class="org-keyword">setq</span> font-use-system-font t)

<span class="org-comment-delimiter">;; </span><span class="org-comment">Miscellaneous options</span>
(<span class="org-keyword">setq-default</span> major-mode
              (<span class="org-keyword">lambda</span> () <span class="org-comment-delimiter">; </span><span class="org-comment">guess major mode from file name</span>
                (<span class="org-keyword">unless</span> buffer-file-name
                  (<span class="org-keyword">let</span> ((buffer-file-name (buffer-name)))
                    (set-auto-mode)))))
(<span class="org-keyword">setq</span> confirm-kill-emacs <span class="org-highlight-quoted-quote">#'</span><span class="org-highlight-quoted-symbol">yes-or-no-p</span>)
(<span class="org-keyword">setq</span> window-resize-pixelwise t)
(<span class="org-keyword">setq</span> frame-resize-pixelwise t)
(save-place-mode t)
(savehist-mode t)
(recentf-mode t)
(<span class="org-keyword">defalias</span> <span class="org-highlight-quoted-quote">'</span><span class="org-function-name">yes-or-no</span> <span class="org-highlight-quoted-quote">#'</span><span class="org-highlight-quoted-symbol">y-or-n-p</span>)

<span class="org-comment-delimiter">;; </span><span class="org-comment">Store automatic customisation options elsewhere</span>
(<span class="org-keyword">setq</span> custom-file (locate-user-emacs-file <span class="org-string">"custom.el"</span>))
(<span class="org-keyword">when</span> (file-exists-p custom-file)
  (load custom-file))
</code></pre>
</div>

</div>
</div>
<div><a href="https://sachachua.com/blog/2026/05/may-14-sacha-prot-and-philip-kaludercic-talk-emacs-newcomer-experience/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%2F05%2Fmay-14-sacha-prot-and-philip-kaludercic-talk-emacs-newcomer-experience%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>
		</item><item>
		<title>YE24: Sacha and Prot Talk Emacs - Newbies/Starter Kits</title>
		<link>https://sachachua.com/blog/2026/04/yay-emacs-sacha-and-prot-talk-emacs-newbies-starter-kits/</link>
		<dc:creator><![CDATA[Sacha Chua]]></dc:creator>
		<pubDate>Thu, 30 Apr 2026 19:57:50 GMT</pubDate>
    <category>emacs</category>
<category>community</category>
<category>yay-emacs</category>
		<guid isPermaLink="false">https://sachachua.com/blog/2026/04/yay-emacs-sacha-and-prot-talk-emacs-newbies-starter-kits/</guid>
		<description><![CDATA[<div class="update" id="org4e477d6">
<p>
<span class="timestamp-wrapper"><time class="timestamp" datetime="2026-05-01">[2026-05-01 Fri]</time></span>: Added chapters, transcript, and <a href="https://protesilaos.com/codelog/2026-04-30-emacs-decent-default-sacha-chua/">Prot's defaults</a>.
</p>

</div>

<div class="sticky-toc" id="org2cfe622">
<div id="text-table-of-contents" role="doc-toc">
<ul>
<li><a href="https://sachachua.com/blog/feed/index.xml#ye24-sacha-and-prot-talk-emacs-newbies-starter-kits-video">Video</a></li>
<li><a href="https://sachachua.com/blog/feed/index.xml#ye24-sacha-and-prot-talk-emacs-newbies-starter-kits-context">Context</a></li>
<li><a href="https://sachachua.com/blog/feed/index.xml#current-notes-for-next-time-april-30-yay-emacs-sacha-and-prot-talk-emacs-newbies-starter-kits-rough-notes">Chapters</a></li>
<li><a href="https://sachachua.com/blog/feed/index.xml#current-notes-for-next-time-ye24-sacha-and-prot-talk-emacs-newbies-starter-kits-transcript">Transcript</a></li>
<li><a href="https://sachachua.com/blog/feed/index.xml#current-notes-for-next-time-april-30-yay-emacs-sacha-and-prot-talk-emacs-newbies-starter-kits-chat">Chat</a></li>
</ul>
</div>

</div>
<div id="outline-container-ye24-sacha-and-prot-talk-emacs-newbies-starter-kits-video" class="outline-3">
<h3 id="ye24-sacha-and-prot-talk-emacs-newbies-starter-kits-video">Video</h3>
<div class="outline-text-3" id="text-ye24-sacha-and-prot-talk-emacs-newbies-starter-kits-video">
<p>
<video controls="1" src="https://archive.org/download/ye24-sacha-and-prot-talk-emacs-newbies-and-starter-kits/ye24-sacha-and-prot-emacs-newbies-and-starter-kits.mp4" type="video/mp4"></video>
</p>

<p>
<a href="https://archive.org/details/ye24-sacha-and-prot-talk-emacs-newbies-and-starter-kits/">View in the Internet Archive</a>, <a href="https://youtube.com/live/z7pcLdwuyxE">watch or comment on YouTube</a>, <a href="https://sachachua.com/blog/feed/index.xml#ID-ye24-transcript">read the transcript online</a>, <a href="https://sachachua.com/blog/2026/04/yay-emacs-sacha-and-prot-talk-emacs-newbies-starter-kits/ye24-sacha-and-prot-emacs-newbies-and-starter-kits.vtt">download the transcript</a>, or <a href="mailto:sacha@sachachua.com">e-mail me</a>.
</p>

<p>
Here are <a href="https://protesilaos.com/codelog/2026-04-30-emacs-decent-default-sacha-chua/">the settings Prot recommended</a> during our chat.
</p>
</div>
</div>
<div id="outline-container-ye24-sacha-and-prot-talk-emacs-newbies-starter-kits-context" class="outline-3">
<h3 id="ye24-sacha-and-prot-talk-emacs-newbies-starter-kits-context">Context</h3>
<div class="outline-text-3" id="text-ye24-sacha-and-prot-talk-emacs-newbies-starter-kits-context">
<p>
The Emacs Carnival theme for April 2026 is <a href="https://www.emacswiki.org/emacs/CarnivalApril2026">newbies/starter kits</a>. I chatted with Prot about helping people get into Emacs and also supporting lifelong learning.
</p>

<p>
Prot had some notes on how he started with Emacs in 2019 in
<a href="https://protesilaos.com/codelog/2019-12-20-vlog-switch-emacs/">All about switching to Emacs (video blog) | Protesilaos</a>. These
notes were just a few months after he started, so his experience was pretty fresh.
</p>

<p>
In <a href="https://protesilaos.com/codelog/2026-03-13-computing-in-freedom-with-gnu-emacs/">Computing in freedom with GNU Emacs | Protesilaos</a> (2026), he said:
</p>

<blockquote>
<p>
Remember that I started using Emacs without a background in
programming. &hellip; I learnt the basics within a few days. I started
writing my own Emacs Lisp within weeks. And within a year I had my
modus-themes moved into core Emacs.
</p>
</blockquote>

<p>
Prot has several projects that might be of interest to many newcomers to Emacs:
</p>

<ul class="org-ul">
<li><a href="https://protesilaos.com/emacs/modus-themes">modus-themes</a>, which are part of Emacs core and are therefore just a <code>M-x load-theme</code> or <code>M-x customize-themes</code> away</li>
<li><a href="https://protesilaos.com/emacs/emacs-lisp-elements">Emacs Lisp Elements</a>, a book that helps people learn Emacs Lisp
<ul class="org-ul">
<li>Where does this fit into people's learning journeys? How can they come across it and use it?</li>
</ul></li>
<li>perhaps <a href="https://protesilaos.com/emacs/denote">Denote</a>
<ul class="org-ul">
<li>What would it take for people to learn enough to be able to use this?</li>
</ul></li>
</ul>

<p>
I'm also curious about his thoughts on the general Emacs newcomer experience and what we can do to make it better.
</p>

<p>
He also offers <a href="https://protesilaos.com/coach/">Emacs coaching</a>. I wonder if any newbies have taken advantage of that. There are a <a href="https://www.emacswiki.org/emacs/EmacsCoaching">few other coaches</a> listed on the EmacsWiki. (Ooh, Emacs buddy, that was neat.)
</p>

<p>
Other possible topics: Philip suggested the following general themes for the Emacs Carnival:
</p>

<ul class="org-ul">
<li>What are your memories of starting with Emacs?</li>
<li>What experiences do you have with teaching Emacs to new users?</li>
<li>Do you think if starter kits are more of a hindrance in the long term or necessary for many users to even try Emacs?</li>
<li>What defaults do you think should be changed for everyone (new and old users)?</li>
<li>What defaults do you think should be changed for new users (see NewcomersTheme)?</li>
<li>What is the sweet-spot between starter-kit minimalism and maximalism?</li>
</ul>
</div>
</div>
<div id="outline-container-current-notes-for-next-time-april-30-yay-emacs-sacha-and-prot-talk-emacs-newbies-starter-kits-rough-notes" class="outline-3">
<h3 id="current-notes-for-next-time-april-30-yay-emacs-sacha-and-prot-talk-emacs-newbies-starter-kits-rough-notes">Chapters</h3>
<div class="outline-text-3" id="text-current-notes-for-next-time-april-30-yay-emacs-sacha-and-prot-talk-emacs-newbies-starter-kits-rough-notes">
<p>
</p><ul class="org-ul">
<li><span class="media-time" data-start="0.000">0:00</span> Intro</li>
<li><span class="media-time" data-start="14.000">0:14</span> Warming up</li>
<li><span class="media-time" data-start="158.000">2:38</span> C-g is supposed to get you out of everything, but it doesn't work for the minibuffer</li>
<li><span class="media-time" data-start="194.000">3:14</span> Anything related to display-buffer is hard for people to configure. Many windows do not focus by default. You have to switch to the other window to q.</li>
<li><span class="media-time" data-start="272.000">4:32</span> Good defaults</li>

<li><span class="media-time" data-start="277.000">4:37</span> How do I set my fonts? Which is the one I should be using?</li>

<li><span class="media-time" data-start="316.000">5:16</span> ediff is unusable by default for everyone, not just newcomers</li>

<li><span class="media-time" data-start="354.000">5:54</span> Packages to install</li>
<li><span class="media-time" data-start="390.000">6:30</span> People muddle through, but it's confusing</li>
<li><span class="media-time" data-start="501.000">8:21</span> The wiki might be a good approach for the community. Start here.</li>
<li><span class="media-time" data-start="575.000">9:35</span> The direction of the newcomers theme is nice</li>
<li><span class="media-time" data-start="651.000">10:51</span> Themes versus minor modes</li>
<li><span class="media-time" data-start="740.000">12:20</span> People think of themes as styles, not arbitrary customizations</li>
<li><span class="media-time" data-start="837.000">13:57</span> Listing changes for newcomers-presets</li>
<li><span class="media-time" data-start="973.000">16:13</span> Terminology is also a challenge</li>
<li><span class="media-time" data-start="1014.000">16:54</span> Maybe documentation aliases?</li>
<li><span class="media-time" data-start="1077.000">17:57</span> Learning Emacs as a nonprogrammer</li>
<li><span class="media-time" data-start="1171.000">19:31</span> Emacs Lisp Elements</li>
<li><span class="media-time" data-start="1230.000">20:30</span> Getting the hang of Emacs</li>
<li><span class="media-time" data-start="1351.000">22:31</span> Getting help when you have a starter kit</li>
<li><span class="media-time" data-start="1469.000">24:29</span> Customize is overwhelming for beginners</li>
<li><span class="media-time" data-start="1675.000">27:55</span> debug-init</li>
<li><span class="media-time" data-start="1751.000">29:11</span> Getting help: partially bridged by LLMs?</li>
<li><span class="media-time" data-start="1863.000">31:03</span> Things people don't even know about</li>
<li><span class="media-time" data-start="1964.000">32:44</span> Filling in the blanks</li>
<li><span class="media-time" data-start="2019.000">33:39</span> .emacs</li>
<li><span class="media-time" data-start="2224.000">37:04</span> Discovery and the info manual</li>
<li><span class="media-time" data-start="2316.000">38:36</span> Address your immediate need; small steps</li>
<li><span class="media-time" data-start="2506.000">41:46</span> :config and setq is nicer than :custom for C-x C-e purposes (eval-last-sexp)</li>
<li><span class="media-time" data-start="2731.000">45:31</span> Culture of documentation and sharing</li>
<li><span class="media-time" data-start="2832.000">47:12</span> Link to a search</li>
<li><span class="media-time" data-start="2989.000">49:49</span> Getting through the gap between beginner tutorials and the next step</li>
<li><span class="media-time" data-start="3073.000">51:13</span> Predictability</li>

<li><span class="media-time" data-start="3112.000">51:52</span> Brief mention of Popper</li>
<li><span class="media-time" data-start="3148.000">52:28</span> Earlier is better than later for Emacs Lisp. Take it as is.</li>
<li><span class="media-time" data-start="3319.000">55:19</span> Before and after comparisons</li>
<li><span class="media-time" data-start="3367.000">56:07</span> user-init-directory</li>
<li><span class="media-time" data-start="3441.000">57:21</span> Emacs core</li>
<li><span class="media-time" data-start="3544.000">59:04</span> Getting past the initial awkward phase</li>
<li><span class="media-time" data-start="3576.000">59:36</span> Even reporting an issue is a great contribution</li>
<li><span class="media-time" data-start="3645.000">1:00:45</span> Next steps: adding to the wiki</li>
<li><span class="media-time" data-start="3759.000">1:02:39</span> Core longevity</li>
</ul>

<p></p>
</div>
</div>
<div id="outline-container-current-notes-for-next-time-ye24-sacha-and-prot-talk-emacs-newbies-starter-kits-transcript" class="outline-3">
<h3 id="current-notes-for-next-time-ye24-sacha-and-prot-talk-emacs-newbies-starter-kits-transcript">Transcript</h3>
<div class="outline-text-3" id="text-current-notes-for-next-time-ye24-sacha-and-prot-talk-emacs-newbies-starter-kits-transcript">
<details class="code-details"><a name="ID-ye24-transcript"></a>
                  <summary>Expand this to read the transcript</summary>
<p>
</p><div class="captions"><p></p><div class="transcript-heading"><span class="audio-time" data-start="8.000000">0:08</span> <strong>Warming up</strong></div><p></p><span class="audio-time caption" data-speaker="Sacha" data-start="8.560000" data-stop="14.879000"><strong class="speaker-name">Sacha:</strong> All right. Hello, this is Yay Emacs 24, I think.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="14.880000" data-stop="19.039000">And today I'm going to be talking to Prot,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="19.040000" data-stop="20.999000">who is going to join eventually.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="21.000000" data-stop="24.119000">In about five minutes is our scheduled time.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="24.120000" data-stop="26.999000">And I want to pick his brain about newcomers,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="27.000000" data-stop="30.679000">the newcomer experience for Emacs, the starter kits,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="30.680000" data-stop="33.799000">what we can do to make it easier for people to get into Emacs,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="33.800000" data-stop="36.599000">and how we can support lifelong learning.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="36.600000" data-stop="38.519000">So let me spend a few minutes here</span> <span class="audio-time caption" data-speaker="Sacha" data-start="38.520000" data-stop="41.239000">getting all set up so that if you have any questions,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="41.240000" data-stop="44.319000">you can use the YouTube chat during the live stream</span> <span class="audio-time caption" data-speaker="Sacha" data-start="44.320000" data-stop="48.599000">so that I can read your questions out loud to Prot.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="48.600000" data-stop="51.439000">And also so that I can share everything.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="51.440000" data-stop="55.719000">I think my audio is working.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="55.720000" data-stop="58.439000">And also in the meantime,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="58.440000" data-stop="61.399000">I can tell you what I've been doing lately.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="61.400000" data-stop="66.159000">I have just posted a guide to newcomers presets,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="66.160000" data-stop="68.479000">which is a new feature in Emacs 31.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="68.480000" data-stop="71.319000">It's a theme that enables a bunch of defaults.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="71.320000" data-stop="74.199000">Sorry, that changes a bunch of defaults</span> <span class="audio-time caption" data-speaker="Sacha" data-start="74.200000" data-stop="79.759000">to make it a little bit nicer for people.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="79.760000" data-stop="81.679000">And let's see, what was that?</span> <span class="audio-time caption" data-speaker="Sacha" data-start="81.680000" data-stop="85.279000">I don't know what that sound just meant.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="85.280000" data-stop="90.919000">Okay, Prot, it says he's in the Google Meet room.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="90.920000" data-stop="93.999000">So I will now admit him.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="94.000000" data-stop="97.199000">And I think we should be live.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="97.200000" data-stop="98.159000">Fantastic.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="98.160000" data-stop="99.199000">Hello.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="99.200000" data-stop="100.319000">Hello, hello.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="100.320000" data-stop="101.079000">All right.</span> <p></p><span class="audio-time caption" data-speaker="Prot" data-start="101.080000" data-stop="102.879000"><strong class="speaker-name">Prot:</strong> Hello, Sacha.</span> <span class="audio-time caption" data-speaker="Prot" data-start="102.880000" data-stop="103.639000">Good day.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="103.640000" data-stop="104.999000"><strong class="speaker-name">Sacha:</strong> Hello, Prot.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="105.000000" data-stop="105.799000">Good day.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="105.800000" data-stop="107.439000">Thank you for joining early.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="107.440000" data-stop="113.279000">I was just doing my pre-session panicking and warming up.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="113.280000" data-stop="114.159000">But since you're here</span> <span class="audio-time caption" data-speaker="Sacha" data-start="114.160000" data-stop="116.639000">and since I have a hard stop in about one hour,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="116.640000" data-stop="117.959000">a little over one hour</span> <span class="audio-time caption" data-speaker="Sacha" data-start="117.960000" data-stop="119.999000">since I have to make the kid a grilled cheese sandwich,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="120.000000" data-stop="121.599000">let's dive right into it.</span> <p></p><span class="audio-time caption" data-speaker="Prot" data-start="121.600000" data-stop="122.919000"><strong class="speaker-name">Prot:</strong> Yes, yes.</span> <span class="audio-time caption" data-speaker="Prot" data-start="122.920000" data-stop="124.719000">The grilled sandwich cannot wait.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="124.720000" data-stop="126.199000"><strong class="speaker-name">Sacha:</strong> No, no, no.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="126.200000" data-stop="127.479000">She'll be hungry.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="127.480000" data-stop="131.479000">So, the theme for the Emacs Carnival this month</span> <span class="audio-time caption" data-speaker="Sacha" data-start="131.480000" data-stop="133.799000">was newbies and starter kits.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="133.800000" data-stop="135.759000">And it gives us a good excuse</span> <span class="audio-time caption" data-speaker="Sacha" data-start="135.760000" data-stop="137.559000">to start thinking about</span> <span class="audio-time caption" data-speaker="Sacha" data-start="137.560000" data-stop="139.439000">How do we make the Emacs experience</span> <span class="audio-time caption" data-speaker="Sacha" data-start="139.440000" data-stop="141.039000">better for new users?</span> <span class="audio-time caption" data-speaker="Sacha" data-start="141.040000" data-stop="142.679000">Now I know you probably have run into</span> <span class="audio-time caption" data-speaker="Sacha" data-start="142.680000" data-stop="146.719000">a lot of new users from the talks that you've been giving,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="146.720000" data-stop="150.919000">the packages you make, everything, the coaching.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="150.920000" data-stop="153.879000">So tell me about what you've been thinking</span> <span class="audio-time caption" data-speaker="Sacha" data-start="153.880000" data-stop="156.619000">about this so far.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="156.000000">2:36</span> <strong>C-g is supposed to get you out of everything, but it doesn't work for the minibuffer</strong></div><p></p><span class="audio-time caption" data-speaker="Prot" data-start="156.620000" data-stop="158.719000"><strong class="speaker-name">Prot:</strong> Yeah, yeah, yeah.</span> <span class="audio-time caption" data-speaker="Prot" data-start="158.720000" data-stop="161.639000">So broadly speaking, there are a few pain points</span> <span class="audio-time caption" data-speaker="Prot" data-start="161.640000" data-stop="164.439000">that I think every new user experiences.</span> <span class="audio-time caption" data-speaker="Prot" data-start="164.440000" data-stop="167.759000">One is the behavior of C-g.</span> <span class="audio-time caption" data-speaker="Prot" data-start="167.760000" data-stop="169.999000">The fact that you have the mini buffer open</span> <span class="audio-time caption" data-speaker="Prot" data-start="170.000000" data-stop="173.359000">and you do C-g because C-g is supposed to get you</span> <span class="audio-time caption" data-speaker="Prot" data-start="173.360000" data-stop="174.959000">out of where you are</span> <span class="audio-time caption" data-speaker="Prot" data-start="174.960000" data-stop="177.719000">and the mini buffer will stay open by default.</span> <span class="audio-time caption" data-speaker="Prot" data-start="177.720000" data-stop="179.599000">And I have seen people struggle live.</span> <span class="audio-time caption" data-speaker="Prot" data-start="179.600000" data-stop="181.879000">It's like, oh, I am, you know,</span> <span class="audio-time caption" data-speaker="Prot" data-start="181.880000" data-stop="182.959000">they have the mini buffer open,</span> <span class="audio-time caption" data-speaker="Prot" data-start="182.960000" data-stop="185.439000">they click somewhere else, then they type C-g,</span> <span class="audio-time caption" data-speaker="Prot" data-start="185.440000" data-stop="186.799000">the mini buffer stays there,</span> <span class="audio-time caption" data-speaker="Prot" data-start="186.800000" data-stop="187.999000">and they're like, what is happening?</span> <span class="audio-time caption" data-speaker="Prot" data-start="188.000000" data-stop="189.159000">Why is this not working?</span> <span class="audio-time caption" data-speaker="Prot" data-start="189.160000" data-stop="190.439000">It stopped working.</span> <span class="audio-time caption" data-speaker="Prot" data-start="190.440000" data-stop="191.559000">That's the one thing.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="191.000000">3:11</span> <strong>Anything related to display-buffer is hard for people to configure. Many windows do not focus by default. You have to switch to the other window to q.</strong></div><p></p><span class="audio-time caption" data-speaker="Prot" data-start="191.560000" data-stop="194.639000"><strong class="speaker-name">Prot:</strong> The other big area where a lot of people,</span> <span class="audio-time caption" data-speaker="Prot" data-start="194.640000" data-stop="197.519000">not just beginners, struggle with is</span> <span class="audio-time caption" data-speaker="Prot" data-start="197.520000" data-stop="200.639000">anything related to display buffers,</span> <span class="audio-time caption" data-speaker="Prot" data-start="200.640000" data-stop="202.639000">which can be configured, of course,</span> <span class="audio-time caption" data-speaker="Prot" data-start="202.640000" data-stop="205.879000">via the display-buffer-alist.</span> <span class="audio-time caption" data-speaker="Prot" data-start="205.880000" data-stop="208.719000">And some of the common pain points with that</span> <span class="audio-time caption" data-speaker="Prot" data-start="208.720000" data-stop="213.759000">are the fact that many windows do not focus by default.</span> <span class="audio-time caption" data-speaker="Prot" data-start="213.760000" data-stop="215.919000">For example, you open a helper buffer,</span> <span class="audio-time caption" data-speaker="Prot" data-start="215.920000" data-stop="218.239000">it doesn't focus the window by default.</span> <span class="audio-time caption" data-speaker="Prot" data-start="218.240000" data-stop="220.399000">So if you want to type q to dismiss it,</span> <span class="audio-time caption" data-speaker="Prot" data-start="220.400000" data-stop="223.039000">you have to switch to it, then type q.</span> <span class="audio-time caption" data-speaker="Prot" data-start="223.040000" data-stop="225.559000">You do a care, it doesn't focus a care by default.</span> <span class="audio-time caption" data-speaker="Prot" data-start="225.560000" data-stop="227.759000">You have to go there and then interact with it.</span> <span class="audio-time caption" data-speaker="Prot" data-start="227.760000" data-stop="229.079000">These sorts of things.</span> <span class="audio-time caption" data-speaker="Prot" data-start="229.080000" data-stop="232.679000">And then there are a few other things.</span> <span class="audio-time caption" data-speaker="Prot" data-start="232.680000" data-stop="234.279000">I have written some settings</span> <span class="audio-time caption" data-speaker="Prot" data-start="234.280000" data-stop="235.959000">that I can share with you as well.</span> <span class="audio-time caption" data-speaker="Prot" data-start="235.960000" data-stop="238.479000">Maybe I can, I don't know,</span> <span class="audio-time caption" data-speaker="Prot" data-start="238.480000" data-stop="242.079000">email them to you and then you can...</span> <span class="audio-time caption" data-speaker="Prot" data-start="242.080000" data-stop="243.279000">I don't hear you now.</span> <span class="audio-time caption" data-speaker="Prot" data-start="243.280000" data-stop="243.959000">One second.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="243.960000" data-stop="246.039000"><strong class="speaker-name">Sacha:</strong> Sorry, I turned on mute.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="246.040000" data-stop="247.639000">Do you want to share your screen?</span> <span class="audio-time caption" data-speaker="Sacha" data-start="247.640000" data-stop="249.279000">Because that's another thing you can do.</span> <p></p><span class="audio-time caption" data-speaker="Prot" data-start="249.280000" data-stop="251.079000"><strong class="speaker-name">Prot:</strong> Yes, of course, of course, of course.</span> <span class="audio-time caption" data-speaker="Prot" data-start="251.080000" data-stop="254.799000">But I meant to say that, so I have this here,</span> <span class="audio-time caption" data-speaker="Prot" data-start="254.800000" data-stop="257.959000">and I was of course about to write a blog post and all that.</span> <span class="audio-time caption" data-speaker="Prot" data-start="257.960000" data-stop="260.159000">Let me increase the font size.</span> <span class="audio-time caption" data-speaker="Prot" data-start="260.160000" data-stop="263.039000">Is this font size okay or is it too small?</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="263.040000" data-stop="264.479000"><strong class="speaker-name">Sacha:</strong> Oh, this is good.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="264.480000" data-stop="264.519000">Yeah, yeah, yeah.</span> <p></p><span class="audio-time caption" data-speaker="Prot" data-start="264.520000" data-stop="266.479000"><strong class="speaker-name">Prot:</strong> Okay, so I have written a few things,</span> <span class="audio-time caption" data-speaker="Prot" data-start="266.480000" data-stop="268.799000">so I don't have to go through all of them.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="268.000000">4:28</span> <strong>Good defaults
</strong></div><p></p><a href="https://sachachua.com/blog/2026/04/yay-emacs-sacha-and-prot-talk-emacs-newbies-starter-kits/mpv-shot0004.jpg"><img src="https://sachachua.com/blog/2026/04/yay-emacs-sacha-and-prot-talk-emacs-newbies-starter-kits/mpv-shot0004.jpg" alt="image from video" data-time="00:04:28.800"></a><span class="audio-time caption" data-speaker="Prot" data-start="268.800000" data-stop="272.859000"><strong class="speaker-name">Prot:</strong> But these are basically good defaults</span> <span class="audio-time caption" data-speaker="Prot" data-start="272.860000" data-stop="275.059000">based on what I have noticed.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="275.000000">4:35</span> <strong>How do I set my fonts? Which is the one I should be using?
</strong></div><p></p><a href="https://sachachua.com/blog/2026/04/yay-emacs-sacha-and-prot-talk-emacs-newbies-starter-kits/mpv-shot0005.png"><img src="https://sachachua.com/blog/2026/04/yay-emacs-sacha-and-prot-talk-emacs-newbies-starter-kits/mpv-shot0005.png" alt="image from video" data-time="00:04:36.367"></a><span class="audio-time caption" data-speaker="Prot" data-start="275.160000" data-stop="277.319000"><strong class="speaker-name">Prot:</strong> Another thing that is really common is</span> <span class="audio-time caption" data-speaker="Prot" data-start="277.320000" data-stop="279.959000">how do I actually set my fonts, right?</span> <span class="audio-time caption" data-speaker="Prot" data-start="279.960000" data-stop="281.559000">Because there are like</span> <span class="audio-time caption" data-speaker="Prot" data-start="281.560000" data-stop="283.679000">a million ways to do this as well.</span> <span class="audio-time caption" data-speaker="Prot" data-start="283.680000" data-stop="285.079000">And the people are like, okay,</span> <span class="audio-time caption" data-speaker="Prot" data-start="285.080000" data-stop="287.319000">but which is the one that I should be using?</span> <span class="audio-time caption" data-speaker="Prot" data-start="287.320000" data-stop="290.559000">And of course, when I pick one option,</span> <span class="audio-time caption" data-speaker="Prot" data-start="290.560000" data-stop="293.559000">I don't mean to say that this is the right option,</span> <span class="audio-time caption" data-speaker="Prot" data-start="293.560000" data-stop="296.479000">but it's just to not be technical about it.</span> <span class="audio-time caption" data-speaker="Prot" data-start="296.480000" data-stop="301.459000">Like, okay, just use this and forget about it.</span> <p></p><a href="https://sachachua.com/blog/2026/04/yay-emacs-sacha-and-prot-talk-emacs-newbies-starter-kits/mpv-shot0006.jpg"><img src="https://sachachua.com/blog/2026/04/yay-emacs-sacha-and-prot-talk-emacs-newbies-starter-kits/mpv-shot0006.jpg" alt="image from video" data-time="00:05:01.467"></a><span class="audio-time caption" data-speaker="Prot" data-start="301.460000" data-stop="306.759000"><strong class="speaker-name">Prot:</strong> A few other settings and a few common packages.</span> <span class="audio-time caption" data-speaker="Prot" data-start="306.760000" data-stop="310.799000">And at the end of this... Oh, sorry.</span> <span class="audio-time caption" data-speaker="Prot" data-start="310.800000" data-stop="313.539000">I have to really make this point.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="313.000000">5:13</span> <strong>ediff is unusable by default for everyone, not just newcomers
</strong></div><p></p><a href="https://sachachua.com/blog/2026/04/yay-emacs-sacha-and-prot-talk-emacs-newbies-starter-kits/mpv-shot0007.jpg"><img src="https://sachachua.com/blog/2026/04/yay-emacs-sacha-and-prot-talk-emacs-newbies-starter-kits/mpv-shot0007.jpg" alt="image from video" data-time="00:05:13.567"></a><span class="audio-time caption" data-speaker="Prot" data-start="313.540000" data-stop="316.399000"><strong class="speaker-name">Prot:</strong> Ediff by default is unusable.</span> <span class="audio-time caption" data-speaker="Prot" data-start="316.400000" data-stop="319.239000">Out of the box, Ediff is literally unusable.</span> <span class="audio-time caption" data-speaker="Prot" data-start="319.240000" data-stop="320.479000">I cannot excuse that.</span> <span class="audio-time caption" data-speaker="Prot" data-start="320.480000" data-stop="321.759000">Everything else I can excuse,</span> <span class="audio-time caption" data-speaker="Prot" data-start="321.760000" data-stop="322.799000">this is not excusable.</span> <span class="audio-time caption" data-speaker="Prot" data-start="322.800000" data-stop="323.319000">Sorry.</span> <span class="audio-time caption" data-speaker="Prot" data-start="323.320000" data-stop="328.359000">This is the minimum viable setup for it.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="328.360000" data-stop="331.079000"><strong class="speaker-name">Sacha:</strong> So maybe that's something to suggest</span> <span class="audio-time caption" data-speaker="Sacha" data-start="331.080000" data-stop="334.559000">for newcomer presets or maybe even the defaults.</span> <p></p><span class="audio-time caption" data-speaker="Prot" data-start="334.560000" data-stop="336.239000"><strong class="speaker-name">Prot:</strong> I would say the defaults.</span> <span class="audio-time caption" data-speaker="Prot" data-start="336.240000" data-stop="338.159000">This is not a newcomer thing.</span> <span class="audio-time caption" data-speaker="Prot" data-start="338.160000" data-stop="340.839000">Basically, if you want to have that default layout,</span> <span class="audio-time caption" data-speaker="Prot" data-start="340.840000" data-stop="344.439000">you just have to opt into it.</span> <span class="audio-time caption" data-speaker="Prot" data-start="344.440000" data-stop="348.239000">Sorry if I'm offending anyone,</span> <span class="audio-time caption" data-speaker="Prot" data-start="348.240000" data-stop="349.439000">but I don't mean to say that.</span> <span class="audio-time caption" data-speaker="Prot" data-start="349.440000" data-stop="352.479000">You have to consider the ergonomics of it.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="352.000000">5:52</span> <strong>Packages to install</strong></div><p></p><span class="audio-time caption" data-speaker="Prot" data-start="352.480000" data-stop="354.519000"><strong class="speaker-name">Prot:</strong> And then towards the bottom of this list,</span> <span class="audio-time caption" data-speaker="Prot" data-start="354.520000" data-stop="357.239000">some packages, third party packages.</span> <span class="audio-time caption" data-speaker="Prot" data-start="357.240000" data-stop="360.079000">that I recommend for installation.</span> <span class="audio-time caption" data-speaker="Prot" data-start="360.080000" data-stop="361.479000">This is not exhaustive.</span> <span class="audio-time caption" data-speaker="Prot" data-start="361.480000" data-stop="363.359000">I try to be minimalist here.</span> <span class="audio-time caption" data-speaker="Prot" data-start="363.360000" data-stop="366.039000">So, of course, there are many, many good,</span> <span class="audio-time caption" data-speaker="Prot" data-start="366.040000" data-stop="368.479000">excellent, top-notch packages</span> <span class="audio-time caption" data-speaker="Prot" data-start="368.480000" data-stop="370.319000">that I don't recommend here.</span> <span class="audio-time caption" data-speaker="Prot" data-start="370.320000" data-stop="371.719000">And, for example, I don't recommend</span> <span class="audio-time caption" data-speaker="Prot" data-start="371.720000" data-stop="373.159000">any of my packages here.</span> <span class="audio-time caption" data-speaker="Prot" data-start="373.160000" data-stop="376.439000">But I just included some for people to get started.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="376.440000" data-stop="381.559000"><strong class="speaker-name">Sacha:</strong> So it sounds like we should have a Prot starter kit.</span> <p></p><span class="audio-time caption" data-speaker="Prot" data-start="381.560000" data-stop="384.519000"><strong class="speaker-name">Prot:</strong> No, no.</span> <span class="audio-time caption" data-speaker="Prot" data-start="384.520000" data-stop="388.919000">I already have too many packages that I maintain.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="388.000000">6:28</span> <strong>People muddle through, but it's confusing</strong></div><p></p><span class="audio-time caption" data-speaker="Sacha" data-start="388.920000" data-stop="390.039000"><strong class="speaker-name">Sacha:</strong> It also sounds like</span> <span class="audio-time caption" data-speaker="Sacha" data-start="390.040000" data-stop="392.239000">you are talking to a lot of newbies</span> <span class="audio-time caption" data-speaker="Sacha" data-start="392.240000" data-stop="393.759000">and you are hearing about</span> <span class="audio-time caption" data-speaker="Sacha" data-start="393.760000" data-stop="396.439000">a lot of pain points and frustrations.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="396.440000" data-stop="401.439000">How are people finding information in the first place?</span> <span class="audio-time caption" data-speaker="Sacha" data-start="401.440000" data-stop="404.519000">How are people finding this information?</span> <span class="audio-time caption" data-speaker="Sacha" data-start="404.520000" data-stop="406.999000">Do people tell you about</span> <span class="audio-time caption" data-speaker="Sacha" data-start="407.000000" data-stop="412.879000">their experience of getting into Emacs?</span> <span class="audio-time caption" data-speaker="Sacha" data-start="412.880000" data-stop="414.999000">Where are they finding the stuff?</span> <span class="audio-time caption" data-speaker="Sacha" data-start="415.000000" data-stop="417.039000">How do they find their way to you?</span> <p></p><span class="audio-time caption" data-speaker="Prot" data-start="417.040000" data-stop="420.119000"><strong class="speaker-name">Prot:</strong> Generally they muddle through.</span> <span class="audio-time caption" data-speaker="Prot" data-start="420.120000" data-stop="423.999000">So they will find a blog post,</span> <span class="audio-time caption" data-speaker="Prot" data-start="424.000000" data-stop="428.879000">they will find a video, they will just do some search.</span> <span class="audio-time caption" data-speaker="Prot" data-start="428.880000" data-stop="429.559000">Now, of course,</span> <span class="audio-time caption" data-speaker="Prot" data-start="429.560000" data-stop="432.559000">there is also LLMs providing feedback.</span> <span class="audio-time caption" data-speaker="Prot" data-start="432.560000" data-stop="435.559000">So it's a combination of all those</span> <span class="audio-time caption" data-speaker="Prot" data-start="435.560000" data-stop="437.239000">and they try to piece together</span> <span class="audio-time caption" data-speaker="Prot" data-start="437.240000" data-stop="441.839000">whatever kind of knowledge those sources provide.</span> <span class="audio-time caption" data-speaker="Prot" data-start="441.840000" data-stop="445.319000">The thing with the newcomer experience is that</span> <span class="audio-time caption" data-speaker="Prot" data-start="445.320000" data-stop="447.999000">there isn't a curation of content.</span> <span class="audio-time caption" data-speaker="Prot" data-start="448.000000" data-stop="450.759000">Like of course you were doing</span> <span class="audio-time caption" data-speaker="Prot" data-start="450.760000" data-stop="451.999000">that thing with the wiki, right?</span> <span class="audio-time caption" data-speaker="Prot" data-start="452.000000" data-stop="454.039000">So of course you are working towards that.</span> <span class="audio-time caption" data-speaker="Prot" data-start="454.040000" data-stop="457.199000">But what I mean is there are like options like,</span> <span class="audio-time caption" data-speaker="Prot" data-start="457.200000" data-stop="460.519000">oh, you can do it in these 10 different ways.</span> <span class="audio-time caption" data-speaker="Prot" data-start="460.520000" data-stop="462.559000">But for a newcomer,</span> <span class="audio-time caption" data-speaker="Prot" data-start="462.560000" data-stop="466.079000">this is just details that don't make sense.</span> <span class="audio-time caption" data-speaker="Prot" data-start="466.080000" data-stop="468.519000">Because the newcomer cannot weigh</span> <span class="audio-time caption" data-speaker="Prot" data-start="468.520000" data-stop="470.239000">the pros and cons of each option,</span> <span class="audio-time caption" data-speaker="Prot" data-start="470.240000" data-stop="472.519000">or even if they have pros and cons,</span> <span class="audio-time caption" data-speaker="Prot" data-start="472.520000" data-stop="474.359000">or they are just different ways</span> <span class="audio-time caption" data-speaker="Prot" data-start="474.360000" data-stop="476.079000">of expressing the same intent.</span> <span class="audio-time caption" data-speaker="Prot" data-start="476.080000" data-stop="477.719000">Such as with the fonts, for example.</span> <span class="audio-time caption" data-speaker="Prot" data-start="477.720000" data-stop="479.399000">You can do the frame fonts,</span> <span class="audio-time caption" data-speaker="Prot" data-start="479.400000" data-stop="481.199000">or the faces, or whatever.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="481.200000" data-stop="485.199000"><strong class="speaker-name">Sacha:</strong> Okay, so if there was something more curated,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="485.200000" data-stop="486.479000">what would that look like?</span> <span class="audio-time caption" data-speaker="Sacha" data-start="486.480000" data-stop="488.879000">I know you spend a lot of time thinking about the,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="488.880000" data-stop="491.479000">you know, the information architecture of your documentation,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="491.480000" data-stop="493.039000">which is the lovely thing about your pack,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="493.040000" data-stop="495.279000">one of the many lovely things about your packages.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="495.280000" data-stop="496.959000">But what could that kind of</span> <span class="audio-time caption" data-speaker="Sacha" data-start="496.960000" data-stop="500.419000">newcomer experience look like for documentation?</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="500.000000">8:20</span> <strong>The wiki might be a good approach for the community. Start here.</strong></div><p></p><span class="audio-time caption" data-speaker="Prot" data-start="500.420000" data-stop="501.759000"><strong class="speaker-name">Prot:</strong> What you were doing with the wiki,</span> <span class="audio-time caption" data-speaker="Prot" data-start="501.760000" data-stop="505.479000">I think is the right approach from a community perspective,</span> <span class="audio-time caption" data-speaker="Prot" data-start="505.480000" data-stop="508.359000">meaning like, yeah, here is the single point of entry.</span> <span class="audio-time caption" data-speaker="Prot" data-start="508.360000" data-stop="510.839000">Take it from there.</span> <span class="audio-time caption" data-speaker="Prot" data-start="510.840000" data-stop="512.519000">Basically, don't look elsewhere.</span> <span class="audio-time caption" data-speaker="Prot" data-start="512.520000" data-stop="513.959000">Start with this.</span> <span class="audio-time caption" data-speaker="Prot" data-start="513.960000" data-stop="515.679000">No matter what you do, start with this.</span> <span class="audio-time caption" data-speaker="Prot" data-start="515.680000" data-stop="517.439000">I think that's a good approach</span> <span class="audio-time caption" data-speaker="Prot" data-start="517.440000" data-stop="519.359000">and basically in the community</span> <span class="audio-time caption" data-speaker="Prot" data-start="519.360000" data-stop="521.639000">we should be agreeing on that.</span> <span class="audio-time caption" data-speaker="Prot" data-start="521.640000" data-stop="524.359000">I didn't see all of your videos yesterday.</span> <span class="audio-time caption" data-speaker="Prot" data-start="524.360000" data-stop="526.199000">I don't have the time to watch all of it.</span> <span class="audio-time caption" data-speaker="Prot" data-start="526.200000" data-stop="528.279000">But basically on the Emacs subreddit,</span> <span class="audio-time caption" data-speaker="Prot" data-start="528.280000" data-stop="531.079000">which is basically where a lot of people find information.</span> <span class="audio-time caption" data-speaker="Prot" data-start="531.080000" data-stop="534.199000">That's the first thing that should be on the sidebar</span> <span class="audio-time caption" data-speaker="Prot" data-start="534.200000" data-stop="536.559000">or basically it could even be pinned</span> <span class="audio-time caption" data-speaker="Prot" data-start="536.560000" data-stop="540.439000">on the on the top of the tips and tricks section,</span> <span class="audio-time caption" data-speaker="Prot" data-start="540.440000" data-stop="541.839000">the thread there.</span> <span class="audio-time caption" data-speaker="Prot" data-start="541.840000" data-stop="544.159000">So that's the one thing.</span> <span class="audio-time caption" data-speaker="Prot" data-start="544.160000" data-stop="545.039000">Yes, please.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="545.040000" data-stop="548.319000"><strong class="speaker-name">Sacha:</strong> Yes, so the Emacs subreddit does have</span> <span class="audio-time caption" data-speaker="Sacha" data-start="548.320000" data-stop="550.639000">in its sidebar a link to the Emacs Wiki.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="550.640000" data-stop="553.039000">Not calling out the Emacs Newbie page specifically,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="553.040000" data-stop="554.199000">but there is a page.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="554.200000" data-stop="556.479000">There's a link to the Emacs Newbie page</span> <span class="audio-time caption" data-speaker="Sacha" data-start="556.480000" data-stop="558.879000">from the Emacs Wiki homepage, I think.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="558.880000" data-stop="561.679000">But yeah, as long as we can come up with</span> <span class="audio-time caption" data-speaker="Sacha" data-start="561.680000" data-stop="565.079000">a reasonably coherent starting point for people,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="565.080000" data-stop="566.679000">then that will inevitably show up</span> <span class="audio-time caption" data-speaker="Sacha" data-start="566.680000" data-stop="567.839000">in people's recommendations</span> <span class="audio-time caption" data-speaker="Sacha" data-start="567.840000" data-stop="569.559000">as they respond to all these threads.</span> <p></p><span class="audio-time caption" data-speaker="Prot" data-start="569.560000" data-stop="573.039000"><strong class="speaker-name">Prot:</strong> Yes, yes, very well, very well.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="573.000000">9:33</span> <strong>The direction of the newcomers theme is nice</strong></div><p></p><span class="audio-time caption" data-speaker="Prot" data-start="573.040000" data-stop="575.519000"><strong class="speaker-name">Prot:</strong> Other than that, I really like</span> <span class="audio-time caption" data-speaker="Prot" data-start="575.520000" data-stop="577.959000">the direction of the newcomers theme.</span> <span class="audio-time caption" data-speaker="Prot" data-start="577.960000" data-stop="581.479000">I don't know exactly now</span> <span class="audio-time caption" data-speaker="Prot" data-start="581.480000" data-stop="584.639000">if newcomers theme works in practice.</span> <span class="audio-time caption" data-speaker="Prot" data-start="584.640000" data-stop="586.199000">Like, I don't know what happens</span> <span class="audio-time caption" data-speaker="Prot" data-start="586.200000" data-stop="588.359000">if you do Emacs disable-heme,</span> <span class="audio-time caption" data-speaker="Prot" data-start="588.360000" data-stop="590.439000">or specifically what I mean.</span> <p></p><a href="https://sachachua.com/blog/2026/04/yay-emacs-sacha-and-prot-talk-emacs-newbies-starter-kits/mpv-shot0002.jpg"><img src="https://sachachua.com/blog/2026/04/yay-emacs-sacha-and-prot-talk-emacs-newbies-starter-kits/mpv-shot0002.jpg" alt="image from video" data-time="00:10:01.967"></a><span class="audio-time caption" data-speaker="Prot" data-start="590.440000" data-stop="591.879000"><strong class="speaker-name">Prot:</strong> I haven't tried this</span> <span class="audio-time caption" data-speaker="Prot" data-start="591.880000" data-stop="596.639000">but what I mean if you do this: mapc disable-theme right,</span> <span class="audio-time caption" data-speaker="Prot" data-start="596.640000" data-stop="598.879000">the custom enabled theme</span> <span class="audio-time caption" data-speaker="Prot" data-start="598.880000" data-stop="600.519000">maybe you have seen this right</span> <span class="audio-time caption" data-speaker="Prot" data-start="600.520000" data-stop="603.159000">so you want to disable all the other themes</span> <span class="audio-time caption" data-speaker="Prot" data-start="603.160000" data-stop="604.759000">before loading your theme right</span> <span class="audio-time caption" data-speaker="Prot" data-start="604.760000" data-stop="607.159000">I'm sure somebody has written something like this</span> <span class="audio-time caption" data-speaker="Prot" data-start="607.160000" data-stop="608.359000">maybe I have done it</span> <span class="audio-time caption" data-speaker="Prot" data-start="608.360000" data-stop="609.799000">and then it's like you know</span> <span class="audio-time caption" data-speaker="Prot" data-start="609.800000" data-stop="611.759000">load your favorite theme now right</span> <span class="audio-time caption" data-speaker="Prot" data-start="611.760000" data-stop="615.399000">and then you do your favorite theme or whatever</span> <span class="audio-time caption" data-speaker="Prot" data-start="615.400000" data-stop="618.279000">For example, here.</span> <span class="audio-time caption" data-speaker="Prot" data-start="618.280000" data-stop="619.839000">So in this case, I don't know</span> <span class="audio-time caption" data-speaker="Prot" data-start="619.840000" data-stop="621.079000">what happens to the newcomers theme.</span> <span class="audio-time caption" data-speaker="Prot" data-start="621.080000" data-stop="623.079000">I will assume that it will disable it.</span> <span class="audio-time caption" data-speaker="Prot" data-start="623.080000" data-stop="626.759000">In which case, I think that has to be prevented.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="626.760000" data-stop="628.759000"><strong class="speaker-name">Sacha:</strong> Oh, but then it wouldn't be treated</span> <span class="audio-time caption" data-speaker="Sacha" data-start="628.760000" data-stop="630.439000">the same as other things.</span> <p></p><span class="audio-time caption" data-speaker="Prot" data-start="630.440000" data-stop="632.319000"><strong class="speaker-name">Prot:</strong> Which you can do.</span> <span class="audio-time caption" data-speaker="Prot" data-start="632.320000" data-stop="635.599000">Which you can do, for example, if I go to Fontaine.</span> <span class="audio-time caption" data-speaker="Prot" data-start="635.600000" data-stop="637.999000">And of course, I got this from use-package.</span> <span class="audio-time caption" data-speaker="Prot" data-start="638.000000" data-stop="641.959000">But you can do it with a synthetic theme.</span> <span class="audio-time caption" data-speaker="Prot" data-start="641.960000" data-stop="645.239000">So there is a little trick you can do.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="645.000000">10:45</span> <strong>Themes versus minor modes</strong></div><p></p><span class="audio-time caption" data-speaker="Sacha" data-start="645.240000" data-stop="651.439000"><strong class="speaker-name">Sacha:</strong> I was looking at newcomers presets recently,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="651.440000" data-stop="654.999000">and when I was trying to make instructions for people</span> <span class="audio-time caption" data-speaker="Sacha" data-start="655.000000" data-stop="656.079000">to actually use this stuff,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="656.080000" data-stop="658.439000">I ended up leaning towards just telling them</span> <span class="audio-time caption" data-speaker="Sacha" data-start="658.440000" data-stop="660.239000">to use either the splash screen, of course,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="660.240000" data-stop="662.239000">or M-x customize-themes,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="662.240000" data-stop="665.359000">from where they can check and uncheck things</span> <span class="audio-time caption" data-speaker="Sacha" data-start="665.360000" data-stop="668.799000">if they wanted additional themes layered on top of that.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="668.800000" data-stop="671.679000">It's not like you can't uncheck it</span> <span class="audio-time caption" data-speaker="Sacha" data-start="671.680000" data-stop="672.919000">and then all of your settings</span> <span class="audio-time caption" data-speaker="Sacha" data-start="672.920000" data-stop="674.519000">go back to what they were before.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="674.520000" data-stop="676.479000">Some of the things are still left over.</span> <p></p><span class="audio-time caption" data-speaker="Prot" data-start="676.480000" data-stop="680.559000"><strong class="speaker-name">Prot:</strong> That's why I like the direction.</span> <span class="audio-time caption" data-speaker="Prot" data-start="680.560000" data-stop="683.639000">I'm not sure if it should be a theme though.</span> <span class="audio-time caption" data-speaker="Prot" data-start="683.640000" data-stop="685.319000">I think it should be a minor mode.</span> <span class="audio-time caption" data-speaker="Prot" data-start="685.320000" data-stop="688.559000">And the minor mode should be like</span> <span class="audio-time caption" data-speaker="Prot" data-start="688.560000" data-stop="691.559000">here is the opinionated settings</span> <span class="audio-time caption" data-speaker="Prot" data-start="691.560000" data-stop="693.119000">and here are the default settings.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="693.120000" data-stop="696.199000"><strong class="speaker-name">Sacha:</strong> Do we already have like a mechanism</span> <span class="audio-time caption" data-speaker="Sacha" data-start="696.200000" data-stop="700.519000">for letting minor modes override the variables in a nice way</span> <span class="audio-time caption" data-speaker="Sacha" data-start="700.520000" data-stop="703.439000">but let you go back to the previous version?</span> <span class="audio-time caption" data-speaker="Sacha" data-start="703.440000" data-stop="705.399000">Because it's not just</span> <span class="audio-time caption" data-speaker="Sacha" data-start="705.400000" data-stop="707.919000">restoring the default customized ones either.</span> <p></p><span class="audio-time caption" data-speaker="Prot" data-start="707.920000" data-stop="711.599000"><strong class="speaker-name">Prot:</strong> I do something like that in Logos</span> <span class="audio-time caption" data-speaker="Prot" data-start="711.600000" data-stop="715.159000">but I'm not sure to be honest right now</span> <span class="audio-time caption" data-speaker="Prot" data-start="715.160000" data-stop="716.959000">how I even do it.</span> <span class="audio-time caption" data-speaker="Prot" data-start="716.960000" data-stop="720.839000">Set arg and maybe this was a wrong time ago</span> <span class="audio-time caption" data-speaker="Prot" data-start="720.840000" data-stop="723.719000">so I cannot even recall what exactly I was doing</span> <span class="audio-time caption" data-speaker="Prot" data-start="723.720000" data-stop="727.879000">but actually this was contributed by Daniel Mendler</span> <span class="audio-time caption" data-speaker="Prot" data-start="727.880000" data-stop="732.199000">so of course something like this</span> <span class="audio-time caption" data-speaker="Prot" data-start="732.200000" data-stop="733.959000">could be added to Core Emacs</span> <span class="audio-time caption" data-speaker="Prot" data-start="733.960000" data-stop="736.719000">as part of the newcomers theme eventually.</span> <span class="audio-time caption" data-speaker="Prot" data-start="736.720000" data-stop="739.439000">If not, somewhere in core anyway.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="739.000000">12:19</span> <strong>People think of themes as styles, not arbitrary customizations</strong></div><p></p><span class="audio-time caption" data-speaker="Prot" data-start="739.440000" data-stop="740.919000"><strong class="speaker-name">Prot:</strong> But I think it shouldn't be a theme.</span> <span class="audio-time caption" data-speaker="Prot" data-start="740.920000" data-stop="743.239000">Basically, I like the idea,</span> <span class="audio-time caption" data-speaker="Prot" data-start="743.240000" data-stop="745.119000">I don't think it's the right tool.</span> <span class="audio-time caption" data-speaker="Prot" data-start="745.120000" data-stop="746.879000">Because themes are...</span> <span class="audio-time caption" data-speaker="Prot" data-start="746.880000" data-stop="750.199000">It's also confusing language, you know?</span> <span class="audio-time caption" data-speaker="Prot" data-start="750.200000" data-stop="753.879000">Because theme, when you talk to the average person,</span> <span class="audio-time caption" data-speaker="Prot" data-start="753.880000" data-stop="756.319000">they will think of the style.</span> <span class="audio-time caption" data-speaker="Prot" data-start="756.320000" data-stop="759.799000">And they won't think about arbitrary customizations.</span> <span class="audio-time caption" data-speaker="Prot" data-start="759.800000" data-stop="761.399000">Whereas in Emacs we have</span> <span class="audio-time caption" data-speaker="Prot" data-start="761.400000" data-stop="763.519000">this idiosyncratic conception of theme</span> <span class="audio-time caption" data-speaker="Prot" data-start="763.520000" data-stop="769.279000">where it's like any kind of a user option as well as faces.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="769.280000" data-stop="772.599000"><strong class="speaker-name">Sacha:</strong> So it sounds like if it were a package</span> <span class="audio-time caption" data-speaker="Sacha" data-start="772.600000" data-stop="781.399000">that defined a minor mode that people could turn on and off</span> <span class="audio-time caption" data-speaker="Sacha" data-start="781.400000" data-stop="790.359000">Even better, yes, exactly.</span> <p></p><span class="audio-time caption" data-speaker="Prot" data-start="790.360000" data-stop="798.279000"><strong class="speaker-name">Prot:</strong> And there is this user option.</span> <span class="audio-time caption" data-speaker="Prot" data-start="798.280000" data-stop="803.759000">I forget, do I even have it here for the built-in packages?</span> <span class="audio-time caption" data-speaker="Prot" data-start="803.760000" data-stop="805.759000">I don't remember if I added it here.</span> <span class="audio-time caption" data-speaker="Prot" data-start="805.760000" data-stop="812.799000">No, there is something like update the built-in packages.</span> <span class="audio-time caption" data-speaker="Prot" data-start="812.800000" data-stop="815.239000">Yeah, so there is an option like that.</span> <span class="audio-time caption" data-speaker="Prot" data-start="815.240000" data-stop="817.679000">So, of course, it could be like built into</span> <span class="audio-time caption" data-speaker="Prot" data-start="817.680000" data-stop="821.559000">Emacs 31 as well as ELPA, kind of like Eglot.</span> <span class="audio-time caption" data-speaker="Prot" data-start="821.560000" data-stop="826.079000">And then users could be like, okay, update this.</span> <span class="audio-time caption" data-speaker="Prot" data-start="826.080000" data-stop="827.599000">So going forward, they can also</span> <span class="audio-time caption" data-speaker="Prot" data-start="827.600000" data-stop="829.879000">benefit from whatever comes from Emacs 31.</span> <span class="audio-time caption" data-speaker="Prot" data-start="829.880000" data-stop="835.279000">Or, you know, the development target of Emacs going forward.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="835.000000">13:55</span> <strong>Listing changes for newcomers-presets</strong></div><p></p><span class="audio-time caption" data-speaker="Sacha" data-start="835.280000" data-stop="837.599000"><strong class="speaker-name">Sacha:</strong> One of the challenges that I encountered</span> <span class="audio-time caption" data-speaker="Sacha" data-start="837.600000" data-stop="840.799000">when I was starting to play around with newcomers presets</span> <span class="audio-time caption" data-speaker="Sacha" data-start="840.800000" data-stop="844.119000">or other things like that is that</span> <span class="audio-time caption" data-speaker="Sacha" data-start="844.120000" data-stop="847.079000">it turns on all these options,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="847.080000" data-stop="850.599000">but there's no easy way for people to say,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="850.600000" data-stop="854.359000">okay, this is what has changed.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="854.360000" data-stop="856.639000">This is how to use it.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="856.640000" data-stop="861.199000">So I've started documenting that.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="861.200000" data-stop="864.799000">And I think this is a challenge generally</span> <span class="audio-time caption" data-speaker="Sacha" data-start="864.800000" data-stop="867.439000">for many of the starter kits.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="867.440000" data-stop="869.399000">It takes already a lot of work</span> <span class="audio-time caption" data-speaker="Sacha" data-start="869.400000" data-stop="871.839000">to make the configuration</span> <span class="audio-time caption" data-speaker="Sacha" data-start="871.840000" data-stop="877.679000">and maybe answer people's questions or</span> <span class="audio-time caption" data-speaker="Sacha" data-start="877.680000" data-stop="882.639000">It's a tricky situation how best to do it.</span> <p></p><span class="audio-time caption" data-speaker="Prot" data-start="882.640000" data-stop="887.239000"><strong class="speaker-name">Prot:</strong> I guess the natural place for that is the manual.</span> <span class="audio-time caption" data-speaker="Prot" data-start="887.240000" data-stop="890.119000">And the manual, I believe right now</span> <span class="audio-time caption" data-speaker="Prot" data-start="890.120000" data-stop="893.759000">the manual mentions something along the lines of, well,</span> <span class="audio-time caption" data-speaker="Prot" data-start="893.760000" data-stop="896.679000">newcomers can just toggle this on kind of thing,</span> <span class="audio-time caption" data-speaker="Prot" data-start="896.680000" data-stop="901.199000">but it doesn't really tell them what that will entail.</span> <span class="audio-time caption" data-speaker="Prot" data-start="901.200000" data-stop="903.559000">So I think it's worth actually</span> <span class="audio-time caption" data-speaker="Prot" data-start="903.560000" data-stop="906.639000">keeping track of all the changes and be like, well,</span> <span class="audio-time caption" data-speaker="Prot" data-start="906.640000" data-stop="910.679000">the newcomers theme will change this and that and the other.</span> <span class="audio-time caption" data-speaker="Prot" data-start="910.680000" data-stop="913.759000">And it could just be a bullet point of items.</span> <span class="audio-time caption" data-speaker="Prot" data-start="913.760000" data-stop="915.319000">Maybe it doesn't have to go into</span> <span class="audio-time caption" data-speaker="Prot" data-start="915.320000" data-stop="918.079000">all the technicalities like, hey, we are changing,</span> <span class="audio-time caption" data-speaker="Prot" data-start="918.080000" data-stop="921.879000">I don't know, the isearch so that it shows the counter.</span> <span class="audio-time caption" data-speaker="Prot" data-start="921.880000" data-stop="924.359000">By default, it doesn't show the counter, right?</span> <span class="audio-time caption" data-speaker="Prot" data-start="924.360000" data-stop="926.599000">Like, it doesn't need to be as detailed.</span> <span class="audio-time caption" data-speaker="Prot" data-start="926.600000" data-stop="927.759000">It can just say, okay,</span> <span class="audio-time caption" data-speaker="Prot" data-start="927.760000" data-stop="929.959000">these are the user options that are affected.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="929.960000" data-stop="932.159000"><strong class="speaker-name">Sacha:</strong> or the minor modes that are enabled.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="932.160000" data-stop="934.239000">You know, the specific</span> <span class="audio-time caption" data-speaker="Sacha" data-start="934.240000" data-stop="939.879000">commands and variable settings, whatever.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="939.880000" data-stop="942.519000">It's like, how do I combine</span> <span class="audio-time caption" data-speaker="Sacha" data-start="942.520000" data-stop="947.799000">these different concepts to do something?</span> <span class="audio-time caption" data-speaker="Sacha" data-start="947.800000" data-stop="951.719000">Or taking a step back further,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="951.720000" data-stop="957.879000">something we've talked about in previous conversations,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="957.880000" data-stop="959.959000">how do I even begin to learn</span> <span class="audio-time caption" data-speaker="Sacha" data-start="959.960000" data-stop="962.679000">this overwhelming number of concepts?</span> <span class="audio-time caption" data-speaker="Sacha" data-start="962.680000" data-stop="964.959000">You know, how do I start to memorize</span> <span class="audio-time caption" data-speaker="Sacha" data-start="964.960000" data-stop="966.479000">all these keyboard shortcuts?</span> <span class="audio-time caption" data-speaker="Sacha" data-start="966.480000" data-stop="970.379000">And I'm not sure we have a lot of support for that yet.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="970.000000">16:10</span> <strong>Terminology is also a challenge</strong></div><p></p><span class="audio-time caption" data-speaker="Prot" data-start="970.380000" data-stop="973.819000"><strong class="speaker-name">Prot:</strong> No, because I think part of the challenge here</span> <span class="audio-time caption" data-speaker="Prot" data-start="973.820000" data-stop="975.319000">is the terminology.</span> <span class="audio-time caption" data-speaker="Prot" data-start="975.320000" data-stop="978.519000">For example, if we say completion</span> <span class="audio-time caption" data-speaker="Prot" data-start="978.520000" data-stop="980.239000">like me and you and other users,</span> <span class="audio-time caption" data-speaker="Prot" data-start="980.240000" data-stop="982.479000">we kind of know what we are talking about, right?</span> <span class="audio-time caption" data-speaker="Prot" data-start="982.480000" data-stop="987.279000">So minibuffer and orderless and all that, right?</span> <span class="audio-time caption" data-speaker="Prot" data-start="987.280000" data-stop="990.759000">But if the user wants to express</span> <span class="audio-time caption" data-speaker="Prot" data-start="990.760000" data-stop="994.399000">something along the lines, they may say the search box.</span> <span class="audio-time caption" data-speaker="Prot" data-start="994.400000" data-stop="999.639000">Or, you know, like the interaction panel or whatever.</span> <span class="audio-time caption" data-speaker="Prot" data-start="999.640000" data-stop="1002.319000">So they don't have a language</span> <span class="audio-time caption" data-speaker="Prot" data-start="1002.320000" data-stop="1004.119000">of the completion framework</span> <span class="audio-time caption" data-speaker="Prot" data-start="1004.120000" data-stop="1006.159000">or the mini buffer or whatever.</span> <span class="audio-time caption" data-speaker="Prot" data-start="1006.160000" data-stop="1008.999000">So even then it can be tricky for them</span> <span class="audio-time caption" data-speaker="Prot" data-start="1009.000000" data-stop="1011.999000">to kind of narrow down what they are searching for.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="1012.000000">16:52</span> <strong>Maybe documentation aliases?</strong></div><p></p><span class="audio-time caption" data-speaker="Prot" data-start="1012.000000" data-stop="1014.719000"><strong class="speaker-name">Prot:</strong> And maybe then it makes sense</span> <span class="audio-time caption" data-speaker="Prot" data-start="1014.720000" data-stop="1019.159000">to also think in terms of clusters of configuration,</span> <span class="audio-time caption" data-speaker="Prot" data-start="1019.160000" data-stop="1020.639000">kind of what starter kits do</span> <span class="audio-time caption" data-speaker="Prot" data-start="1020.640000" data-stop="1022.879000">with the various modules they define.</span> <span class="audio-time caption" data-speaker="Prot" data-start="1022.880000" data-stop="1026.639000">And you can have aliases for them.</span> <span class="audio-time caption" data-speaker="Prot" data-start="1026.640000" data-stop="1029.039000">Aliases in the manual, I mean.</span> <span class="audio-time caption" data-speaker="Prot" data-start="1029.040000" data-stop="1031.399000">Like in the manual, if you type i,</span> <span class="audio-time caption" data-speaker="Prot" data-start="1031.400000" data-stop="1033.919000">it goes to the index, right?</span> <span class="audio-time caption" data-speaker="Prot" data-start="1033.920000" data-stop="1036.359000">And you can have a concept index.</span> <span class="audio-time caption" data-speaker="Prot" data-start="1036.360000" data-stop="1040.919000">So you can have a concept index</span> <span class="audio-time caption" data-speaker="Prot" data-start="1040.920000" data-stop="1043.559000">for the search panel or whatever.</span> <span class="audio-time caption" data-speaker="Prot" data-start="1043.560000" data-stop="1045.839000">And that means the minibuffer and friends.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="1045.840000" data-stop="1048.559000"><strong class="speaker-name">Sacha:</strong> So it's like we're doing search engine optimization</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1048.560000" data-stop="1051.999000">so that people can find things with the words that they use.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1052.000000" data-stop="1054.519000">I'm not sure that will be in the Emacs manual itself,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1054.520000" data-stop="1056.399000">but one of the things I've appreciated</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1056.400000" data-stop="1057.679000">about people sharing their notes</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1057.680000" data-stop="1059.559000">through blog posts and things like that</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1059.560000" data-stop="1062.879000">is because they're using their words to describe a concept,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1062.880000" data-stop="1064.719000">and they're linking it to the code</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1064.720000" data-stop="1066.759000">that uses the words that Emacs does.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1066.760000" data-stop="1070.479000">So then people can then say, oh, I'm looking for this.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1070.480000" data-stop="1072.919000">It's actually called this in the Emacs world.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1072.920000" data-stop="1074.479000">But this takes time for people</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1074.480000" data-stop="1076.239000">to kind of make those connections.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="1076.000000">17:56</span> <strong>Learning Emacs as a nonprogrammer</strong></div><p></p><span class="audio-time caption" data-speaker="Sacha" data-start="1076.240000" data-stop="1077.399000"><strong class="speaker-name">Sacha:</strong> What was it like</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1077.400000" data-stop="1079.799000">if you can look back to like 2019</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1079.800000" data-stop="1080.999000">when you were learning all of this stuff</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1081.000000" data-stop="1081.759000">for the first time?</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1081.760000" data-stop="1084.039000">What was it like for you as a non-programmer</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1084.040000" data-stop="1085.559000">to come into this world</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1085.560000" data-stop="1087.599000">where people are using all these strange terms?</span> <p></p><span class="audio-time caption" data-speaker="Prot" data-start="1087.600000" data-stop="1091.119000"><strong class="speaker-name">Prot:</strong> Yeah, it was a challenge for sure.</span> <span class="audio-time caption" data-speaker="Prot" data-start="1091.120000" data-stop="1092.399000">But I think actually</span> <span class="audio-time caption" data-speaker="Prot" data-start="1092.400000" data-stop="1096.319000">the fact that I started out as a beginner,</span> <span class="audio-time caption" data-speaker="Prot" data-start="1096.320000" data-stop="1099.279000">as a beginner into programming, I mean,</span> <span class="audio-time caption" data-speaker="Prot" data-start="1099.280000" data-stop="1101.319000">benefited me in the sense</span> <span class="audio-time caption" data-speaker="Prot" data-start="1101.320000" data-stop="1103.399000">that I was a blank slate.</span> <span class="audio-time caption" data-speaker="Prot" data-start="1103.400000" data-stop="1106.399000">I don't have to unlearn terms.</span> <span class="audio-time caption" data-speaker="Prot" data-start="1106.400000" data-stop="1110.479000">So I didn't have a concept of, okay,</span> <span class="audio-time caption" data-speaker="Prot" data-start="1110.480000" data-stop="1114.519000">in other, I don't know, programming IDEs, for example,</span> <span class="audio-time caption" data-speaker="Prot" data-start="1114.520000" data-stop="1117.799000">they call this the narrowing framework or</span> <span class="audio-time caption" data-speaker="Prot" data-start="1117.800000" data-stop="1118.519000">whatever.</span> <span class="audio-time caption" data-speaker="Prot" data-start="1118.520000" data-stop="1119.679000">I was like, completion.</span> <span class="audio-time caption" data-speaker="Prot" data-start="1119.680000" data-stop="1121.639000">Okay, let's move on.</span> <span class="audio-time caption" data-speaker="Prot" data-start="1121.640000" data-stop="1125.319000">It was the first time I was introduced to such concepts.</span> <span class="audio-time caption" data-speaker="Prot" data-start="1125.320000" data-stop="1127.119000">So I think in that sense, I was lucky.</span> <span class="audio-time caption" data-speaker="Prot" data-start="1127.120000" data-stop="1131.639000">That granted, there is a lot of reading involved.</span> <span class="audio-time caption" data-speaker="Prot" data-start="1131.640000" data-stop="1135.159000">I was reading the manual and learning from it.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="1135.160000" data-stop="1138.959000"><strong class="speaker-name">Sacha:</strong> And that's something I do too.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1138.960000" data-stop="1141.439000">I mean, I'll still casually flip through</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1141.440000" data-stop="1143.559000">the Emacs manual or the Org manual</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1143.560000" data-stop="1145.279000">because every time you read it,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1145.280000" data-stop="1147.359000">there's something else that catches your eye</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1147.360000" data-stop="1149.399000">and makes you think, how do I use that?</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1149.400000" data-stop="1150.599000">How do I do that?</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1150.600000" data-stop="1152.999000">And I like that, you know,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1153.000000" data-stop="1154.839000">you and Mickey Peterson and other people</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1154.840000" data-stop="1157.639000">have also been organizing these thoughts</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1157.640000" data-stop="1159.999000">into like a linear arrangement</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1160.000000" data-stop="1162.359000">of logical progression.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1162.360000" data-stop="1164.599000">So that's the books that</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1164.600000" data-stop="1167.399000">There aren't a lot of books about Emacs</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1167.400000" data-stop="1169.119000">that people can read.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="1169.000000">19:29</span> <strong>Emacs Lisp Elements</strong></div><p></p><span class="audio-time caption" data-speaker="Sacha" data-start="1169.120000" data-stop="1171.759000"><strong class="speaker-name">Sacha:</strong> But how do people get to something like</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1171.760000" data-stop="1173.439000">your Emacs Lisp elements?</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1173.440000" data-stop="1176.399000">How do we support their learning journey from,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1176.400000" data-stop="1178.199000">I have absolutely no idea</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1178.200000" data-stop="1179.719000">how to do anything in Emacs</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1179.720000" data-stop="1181.479000">to, okay, I'm ready to read this book</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1181.480000" data-stop="1182.399000">and get stuff out of it?</span> <p></p><span class="audio-time caption" data-speaker="Prot" data-start="1182.400000" data-stop="1184.479000"><strong class="speaker-name">Prot:</strong> Yeah, yeah.</span> <span class="audio-time caption" data-speaker="Prot" data-start="1184.480000" data-stop="1186.439000">When I recommend that book,</span> <span class="audio-time caption" data-speaker="Prot" data-start="1186.440000" data-stop="1188.359000">I recommend it to people</span> <span class="audio-time caption" data-speaker="Prot" data-start="1188.360000" data-stop="1190.439000">who have already decided</span> <span class="audio-time caption" data-speaker="Prot" data-start="1190.440000" data-stop="1192.199000">that Emacs is the right tool for them.</span> <span class="audio-time caption" data-speaker="Prot" data-start="1192.200000" data-stop="1194.839000">So I would basically say, look,</span> <span class="audio-time caption" data-speaker="Prot" data-start="1194.840000" data-stop="1199.079000">Elisp is for you if you are already sold on Emacs,</span> <span class="audio-time caption" data-speaker="Prot" data-start="1199.080000" data-stop="1201.319000">because what Elisp gives you</span> <span class="audio-time caption" data-speaker="Prot" data-start="1201.320000" data-stop="1204.239000">is that extra you need</span> <span class="audio-time caption" data-speaker="Prot" data-start="1204.240000" data-stop="1206.399000">to make Emacs do what you want,</span> <span class="audio-time caption" data-speaker="Prot" data-start="1206.400000" data-stop="1208.359000">basically to tap into</span> <span class="audio-time caption" data-speaker="Prot" data-start="1208.360000" data-stop="1210.759000">the potential programmability of Emacs.</span> <span class="audio-time caption" data-speaker="Prot" data-start="1210.760000" data-stop="1212.799000">But to get to that point,</span> <span class="audio-time caption" data-speaker="Prot" data-start="1212.800000" data-stop="1214.919000">you have already been convinced</span> <span class="audio-time caption" data-speaker="Prot" data-start="1214.920000" data-stop="1217.639000">that you already like Emacs.</span> <span class="audio-time caption" data-speaker="Prot" data-start="1217.640000" data-stop="1222.079000">If you don't vibe with it at the outset,</span> <span class="audio-time caption" data-speaker="Prot" data-start="1222.080000" data-stop="1224.239000">you won't learn Elisp,</span> <span class="audio-time caption" data-speaker="Prot" data-start="1224.240000" data-stop="1228.699000">not least because it's a niche language.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="1228.000000">20:28</span> <strong>Getting the hang of Emacs</strong></div><p></p><span class="audio-time caption" data-speaker="Sacha" data-start="1228.700000" data-stop="1230.479000"><strong class="speaker-name">Sacha:</strong> Okay, so how do we get people to the point</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1230.480000" data-stop="1232.599000">where they can vibe with Emacs?</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1232.600000" data-stop="1234.959000">Where they can appreciate it?</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1234.960000" data-stop="1236.879000">Because when they start off,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1236.880000" data-stop="1238.799000">it's this clunky text editor</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1238.800000" data-stop="1240.519000">that has these weird keyboard shortcuts</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1240.520000" data-stop="1241.919000">and strange terms,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1241.920000" data-stop="1244.119000">and all we can do is offer them</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1244.120000" data-stop="1246.999000">videos and blog posts from people who say,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1247.000000" data-stop="1247.959000">this is totally awesome.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1247.960000" data-stop="1249.199000">I've been using it for three years</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1249.200000" data-stop="1252.479000">or 20 years or whatever, and I love it.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1252.480000" data-stop="1254.159000">That's the light at the end of the tunnel,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1254.160000" data-stop="1256.159000">but there's a lot of tunnel to get through.</span> <p></p><span class="audio-time caption" data-speaker="Prot" data-start="1256.160000" data-stop="1258.839000"><strong class="speaker-name">Prot:</strong> correct correct correct it's difficult</span> <span class="audio-time caption" data-speaker="Prot" data-start="1258.840000" data-stop="1262.319000">and i think that's why something like the newcomers theme</span> <span class="audio-time caption" data-speaker="Prot" data-start="1262.320000" data-stop="1264.319000">ultimately is the way forward</span> <span class="audio-time caption" data-speaker="Prot" data-start="1264.320000" data-stop="1266.319000">where it's like yeah opt into this</span> <span class="audio-time caption" data-speaker="Prot" data-start="1266.320000" data-stop="1268.799000">and that's already a good set of defaults</span> <span class="audio-time caption" data-speaker="Prot" data-start="1268.800000" data-stop="1271.759000">and i think what really matters</span> <span class="audio-time caption" data-speaker="Prot" data-start="1271.760000" data-stop="1273.279000">is to reach a point</span> <span class="audio-time caption" data-speaker="Prot" data-start="1273.280000" data-stop="1275.839000">where you can actually open your files</span> <span class="audio-time caption" data-speaker="Prot" data-start="1275.840000" data-stop="1277.839000">actually move around</span> <span class="audio-time caption" data-speaker="Prot" data-start="1277.840000" data-stop="1281.999000">and that happens with the very basics</span> <span class="audio-time caption" data-speaker="Prot" data-start="1282.000000" data-stop="1283.879000">like that happens with the tutorial already</span> <span class="audio-time caption" data-speaker="Prot" data-start="1283.880000" data-stop="1286.039000">what the tutorial doesn't give you</span> <span class="audio-time caption" data-speaker="Prot" data-start="1286.040000" data-stop="1287.959000">is the basic interface,</span> <span class="audio-time caption" data-speaker="Prot" data-start="1287.960000" data-stop="1288.959000">such as the mini-buffer.</span> <span class="audio-time caption" data-speaker="Prot" data-start="1288.960000" data-stop="1291.199000">The default mini-buffer,</span> <span class="audio-time caption" data-speaker="Prot" data-start="1291.200000" data-stop="1293.079000">I don't think it's good for beginners.</span> <span class="audio-time caption" data-speaker="Prot" data-start="1293.080000" data-stop="1296.159000">Actually, maybe it's not even</span> <span class="audio-time caption" data-speaker="Prot" data-start="1296.160000" data-stop="1297.879000">good for advanced users, but that's another.</span> <span class="audio-time caption" data-speaker="Prot" data-start="1297.880000" data-stop="1303.239000">You have to have a few of the basic packages enabled,</span> <span class="audio-time caption" data-speaker="Prot" data-start="1303.240000" data-stop="1307.199000">and then the tutorial, I think, is enough for that initial push.</span> <span class="audio-time caption" data-speaker="Prot" data-start="1307.200000" data-stop="1310.359000">Then, of course, it's also up to the user</span> <span class="audio-time caption" data-speaker="Prot" data-start="1310.360000" data-stop="1311.519000">to do some reading,</span> <span class="audio-time caption" data-speaker="Prot" data-start="1311.520000" data-stop="1314.519000">based on what you will provide them with.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="1314.520000" data-stop="1317.639000"><strong class="speaker-name">Sacha:</strong> I know when I was trying this,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1317.640000" data-stop="1319.519000">I started a fresh Emacs</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1319.520000" data-stop="1321.559000">so that I could see what it's like</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1321.560000" data-stop="1323.119000">when people don't have their</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1323.120000" data-stop="1326.239000">accumulated cruft of 20 years of configuration.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1326.240000" data-stop="1329.079000">And I was like, I need some kind of completion</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1329.080000" data-stop="1331.039000">that I don't have to keep pressing tab for.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1331.040000" data-stop="1334.319000">So maybe Fido vertical mode can be part of that,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1334.320000" data-stop="1336.679000">you know, standard, at least in ?? or whatever,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1336.680000" data-stop="1337.359000">that would be nice.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1337.360000" data-stop="1339.199000">But yeah, there are</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1339.200000" data-stop="1340.839000">a lot of these niceties</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1340.840000" data-stop="1342.279000">that reduce the friction</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1342.280000" data-stop="1344.599000">enough that people can then</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1344.600000" data-stop="1346.519000">start enjoying things more and more.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="1348.000000">22:28</span> <strong>Getting help when you have a starter kit</strong></div><p></p><span class="audio-time caption" data-speaker="Sacha" data-start="1348.960000" data-stop="1351.279000"><strong class="speaker-name">Sacha:</strong> Newcomers presets are some kind of starter kit.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1351.280000" data-stop="1354.199000">They're great at getting people over that initial hump.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1354.200000" data-stop="1356.199000">But the challenge with starter kits</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1356.200000" data-stop="1358.519000">and probably things like the newcomers presets</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1358.520000" data-stop="1361.959000">has also been that when people ask for help,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1361.960000" data-stop="1364.799000">it's hard because they don't know the things</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1364.800000" data-stop="1366.239000">that have changed under the hood.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1366.240000" data-stop="1367.479000">So they're asking for help</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1367.480000" data-stop="1368.719000">and the people who are helping them are like,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1368.720000" data-stop="1371.199000">I don't know what's going on there.</span> <p></p><span class="audio-time caption" data-speaker="Prot" data-start="1371.200000" data-stop="1376.639000"><strong class="speaker-name">Prot:</strong> More so if the starter kit has its own macros</span> <span class="audio-time caption" data-speaker="Prot" data-start="1376.640000" data-stop="1377.679000">and way of doing things,</span> <span class="audio-time caption" data-speaker="Prot" data-start="1377.680000" data-stop="1379.359000">such as Doom Emacs.</span> <span class="audio-time caption" data-speaker="Prot" data-start="1379.360000" data-stop="1382.599000">On the one hand, Doom Emacs does an excellent job</span> <span class="audio-time caption" data-speaker="Prot" data-start="1382.600000" data-stop="1384.319000">at integrating everything,</span> <span class="audio-time caption" data-speaker="Prot" data-start="1384.320000" data-stop="1386.199000">providing a polished experience,</span> <span class="audio-time caption" data-speaker="Prot" data-start="1386.200000" data-stop="1388.959000">comprehensive configuration and so on.</span> <span class="audio-time caption" data-speaker="Prot" data-start="1388.960000" data-stop="1389.919000">On the other hand,</span> <span class="audio-time caption" data-speaker="Prot" data-start="1389.920000" data-stop="1391.359000">they have their own way of doing things</span> <span class="audio-time caption" data-speaker="Prot" data-start="1391.360000" data-stop="1392.839000">like they have their own macros.</span> <span class="audio-time caption" data-speaker="Prot" data-start="1392.840000" data-stop="1395.959000">You have to use Doom sync or whatever</span> <span class="audio-time caption" data-speaker="Prot" data-start="1395.960000" data-stop="1398.279000">to do things from the command line.</span> <span class="audio-time caption" data-speaker="Prot" data-start="1398.280000" data-stop="1401.119000">So somebody who is not using Doom</span> <span class="audio-time caption" data-speaker="Prot" data-start="1401.120000" data-stop="1403.719000">basically has no means of knowing</span> <span class="audio-time caption" data-speaker="Prot" data-start="1403.720000" data-stop="1404.879000">what is happening in that world.</span> <span class="audio-time caption" data-speaker="Prot" data-start="1404.880000" data-stop="1407.519000">So that is definitely a challenge.</span> <span class="audio-time caption" data-speaker="Prot" data-start="1407.520000" data-stop="1411.559000">So for me, a good starter kit is one that</span> <span class="audio-time caption" data-speaker="Prot" data-start="1411.560000" data-stop="1413.959000">at the very least uses</span> <span class="audio-time caption" data-speaker="Prot" data-start="1413.960000" data-stop="1416.799000">what a generic configuration would use,</span> <span class="audio-time caption" data-speaker="Prot" data-start="1416.800000" data-stop="1421.319000">meaning no macros, no weird shell scripts</span> <span class="audio-time caption" data-speaker="Prot" data-start="1421.320000" data-stop="1422.679000">and that sort of thing.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="1422.680000" data-stop="1426.119000"><strong class="speaker-name">Sacha:</strong> And I did spend some time going over</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1426.120000" data-stop="1429.639000">the starter kit list in the Emacs wiki</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1429.640000" data-stop="1432.479000">to try to sort it by minimalist,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1432.480000" data-stop="1434.399000">stays close to vanilla,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1434.400000" data-stop="1437.399000">all the way to the changes a lot of things about Emacs</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1437.400000" data-stop="1438.999000">and you probably should ask</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1439.000000" data-stop="1440.999000">the community of that starter kit first</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1441.000000" data-stop="1442.479000">if you need help.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1442.480000" data-stop="1445.599000">So that's kind of like Doom Emacs and Spacemacs</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1445.600000" data-stop="1447.679000">at that end of the spectrum</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1447.680000" data-stop="1450.359000">and things like better defaults would be like at the</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1450.360000" data-stop="1454.239000">Like just a little bit of smoothing over of things.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1454.240000" data-stop="1456.679000">But then also, it was interesting to see</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1456.680000" data-stop="1459.799000">some of the starter kits focus on saying, okay,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1459.800000" data-stop="1462.759000">you don't have to write any code to extend this further.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1462.760000" data-stop="1463.839000">A lot of the things</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1463.840000" data-stop="1465.839000">are available through Customize.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="1465.000000">24:25</span> <strong>Customize is overwhelming for beginners</strong></div><p></p><span class="audio-time caption" data-speaker="Sacha" data-start="1465.840000" data-stop="1469.559000"><strong class="speaker-name">Sacha:</strong> Now, Customize is pretty overwhelming also</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1469.560000" data-stop="1470.999000">for a newcomer.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1471.000000" data-stop="1473.359000">So how do we get people to the point</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1473.360000" data-stop="1475.959000">where they might feel comfortable going through</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1475.960000" data-stop="1477.799000">this Customize interface</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1477.800000" data-stop="1480.439000">And saying, oh, I can find what I want to change</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1480.440000" data-stop="1481.679000">and I can change it</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1481.680000" data-stop="1483.279000">and I'm not worried about breaking everything.</span> <p></p><span class="audio-time caption" data-speaker="Prot" data-start="1483.280000" data-stop="1485.399000"><strong class="speaker-name">Prot:</strong> Yeah, I actually,</span> <span class="audio-time caption" data-speaker="Prot" data-start="1485.400000" data-stop="1488.199000">when I was trying to use Customize with people,</span> <span class="audio-time caption" data-speaker="Prot" data-start="1488.200000" data-stop="1489.639000">I gave it an honest try.</span> <span class="audio-time caption" data-speaker="Prot" data-start="1489.640000" data-stop="1490.719000">Like, for example,</span> <span class="audio-time caption" data-speaker="Prot" data-start="1490.720000" data-stop="1492.479000">we tried to do Emacs Customize</span> <span class="audio-time caption" data-speaker="Prot" data-start="1492.480000" data-stop="1493.919000">the org capture templates.</span> <span class="audio-time caption" data-speaker="Prot" data-start="1493.920000" data-stop="1497.679000">And I was seeing it live.</span> <span class="audio-time caption" data-speaker="Prot" data-start="1497.680000" data-stop="1498.999000">Impossible for people</span> <span class="audio-time caption" data-speaker="Prot" data-start="1499.000000" data-stop="1500.359000">to understand what is happening.</span> <span class="audio-time caption" data-speaker="Prot" data-start="1500.360000" data-stop="1501.879000">Like, Customize has</span> <span class="audio-time caption" data-speaker="Prot" data-start="1501.880000" data-stop="1504.159000">this concept of the insert button, right?</span> <span class="audio-time caption" data-speaker="Prot" data-start="1504.160000" data-stop="1506.199000">So if you have a list of things,</span> <span class="audio-time caption" data-speaker="Prot" data-start="1506.200000" data-stop="1509.599000">you can do insert to add the next element to the list.</span> <span class="audio-time caption" data-speaker="Prot" data-start="1509.600000" data-stop="1512.119000">If you have an Elisp understanding</span> <span class="audio-time caption" data-speaker="Prot" data-start="1512.120000" data-stop="1514.039000">of what you are actually interacting with,</span> <span class="audio-time caption" data-speaker="Prot" data-start="1514.040000" data-stop="1516.799000">you kind of know what to do, right?</span> <span class="audio-time caption" data-speaker="Prot" data-start="1516.800000" data-stop="1519.399000">But otherwise, I was seeing it live.</span> <span class="audio-time caption" data-speaker="Prot" data-start="1519.400000" data-stop="1519.639000">It's like...</span> <span class="audio-time caption" data-speaker="Prot" data-start="1519.640000" data-stop="1522.079000">I have no idea what is happening.</span> <span class="audio-time caption" data-speaker="Prot" data-start="1522.080000" data-stop="1523.359000">What is this?</span> <span class="audio-time caption" data-speaker="Prot" data-start="1523.360000" data-stop="1527.119000">So for me, my approach is basically</span> <span class="audio-time caption" data-speaker="Prot" data-start="1527.120000" data-stop="1529.119000">skip customize altogether.</span> <span class="audio-time caption" data-speaker="Prot" data-start="1529.120000" data-stop="1530.519000">For me, it's a lost cause.</span> <span class="audio-time caption" data-speaker="Prot" data-start="1530.520000" data-stop="1533.319000">Unless it's completely rewritten,</span> <span class="audio-time caption" data-speaker="Prot" data-start="1533.320000" data-stop="1534.919000">I mean in its current form,</span> <span class="audio-time caption" data-speaker="Prot" data-start="1534.920000" data-stop="1537.959000">it's not good for beginners</span> <span class="audio-time caption" data-speaker="Prot" data-start="1537.960000" data-stop="1539.639000">unless it's for toggles,</span> <span class="audio-time caption" data-speaker="Prot" data-start="1539.640000" data-stop="1542.599000">like true or false kind of thing.</span> <span class="audio-time caption" data-speaker="Prot" data-start="1542.600000" data-stop="1544.879000">If it's for anything more involved,</span> <span class="audio-time caption" data-speaker="Prot" data-start="1544.880000" data-stop="1546.919000">it's not good.</span> <span class="audio-time caption" data-speaker="Prot" data-start="1546.920000" data-stop="1551.519000">And what it is good for is for discovery,</span> <span class="audio-time caption" data-speaker="Prot" data-start="1551.520000" data-stop="1553.079000">discovery of user options.</span> <span class="audio-time caption" data-speaker="Prot" data-start="1553.080000" data-stop="1556.839000">But it presents the user options</span> <span class="audio-time caption" data-speaker="Prot" data-start="1556.840000" data-stop="1560.399000">in a human-readable format</span> <span class="audio-time caption" data-speaker="Prot" data-start="1560.400000" data-stop="1562.279000">which you cannot just copy-paste</span> <span class="audio-time caption" data-speaker="Prot" data-start="1562.280000" data-stop="1564.159000">into your configuration.</span> <span class="audio-time caption" data-speaker="Prot" data-start="1564.160000" data-stop="1564.959000">So, for example,</span> <span class="audio-time caption" data-speaker="Prot" data-start="1564.960000" data-stop="1566.839000">it doesn't have the dashes for the names.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="1566.840000" data-stop="1571.799000"><strong class="speaker-name">Sacha:</strong> Yeah, and getting it out of</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1571.800000" data-stop="1573.279000">the customized variables</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1573.280000" data-stop="1576.319000">if you wanted to keep a nice clean Emacs is hard.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1576.320000" data-stop="1577.599000">Although I would say</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1577.600000" data-stop="1579.679000">that's more of an intermediate level concern.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1579.680000" data-stop="1581.519000">When they start caring about having</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1581.520000" data-stop="1582.319000">a beautiful Emacs</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1582.320000" data-stop="1583.679000">that other people can learn from.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1583.680000" data-stop="1585.319000">A couple of comments in</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1585.320000" data-stop="1586.639000">from people who are watching the stream.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1586.640000" data-stop="1587.719000">Hello, folks!</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1587.720000" data-stop="1588.399000">Hello!</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1588.400000" data-stop="1591.119000">@hajovonta6300 says, "Hi legends."</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1591.120000" data-stop="1595.639000">@JacksonScholberg and @petertillemans2231 say,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1595.640000" data-stop="1597.279000">well, @JacksonScholberg says hi.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1597.280000" data-stop="1601.039000">@petertillemans2231 says, "I am not worthy."</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1601.040000" data-stop="1604.519000">@takoverflow says, "Thank you for these streams."</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1604.520000" data-stop="1606.239000">@ShaeErisson says, "I love Emacs</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1606.240000" data-stop="1608.239000">but haven't really learned Elisp."</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1608.240000" data-stop="1610.959000">And I know Shae has been using Emacs for a long time.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1610.960000" data-stop="1612.119000">So that's interesting</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1612.120000" data-stop="1615.759000">that you have people who enjoy using Emacs.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1615.760000" data-stop="1618.039000">I don't know whether something</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1618.040000" data-stop="1619.959000">is getting in their way</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1619.960000" data-stop="1622.279000">when it comes to learning Emacs Lisp</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1622.280000" data-stop="1625.199000">or whether it's just totally fine already</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1625.200000" data-stop="1626.119000">the way it is.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1626.120000" data-stop="1628.119000">So that's different things.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1628.120000" data-stop="1632.159000">@JacksonScholberg says, oh, so @hajovonta6300 says,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1632.160000" data-stop="1634.479000">"you are worthy if you are willing to learn."</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1634.480000" data-stop="1637.959000">Maybe the resources are there</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1637.960000" data-stop="1641.199000">as people start digging into EmacsLisp.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1641.200000" data-stop="1643.079000">Maybe the combination of</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1643.080000" data-stop="1645.799000">looking at other people's source code</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1645.800000" data-stop="1648.319000">and trying to ask on Reddit or whatever is enough.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1648.320000" data-stop="1651.999000">@JacksonScholberg says," I vibe with Emacs</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1652.000000" data-stop="1653.679000">after using other text editors</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1653.680000" data-stop="1655.839000">that were not minimalist enough for my preferences,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1655.840000" data-stop="1657.359000">plus having experience</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1657.360000" data-stop="1659.759000">with other open source software like Linux."</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1659.760000" data-stop="1661.479000">@petertillemans2231 says,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1661.480000" data-stop="1663.199000">"Well, Emacs and minimalist in the same sentence.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1663.200000" data-stop="1666.639000">Strange concept, but I know what you mean."</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1666.640000" data-stop="1667.799000">There's a whole spectrum</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1667.800000" data-stop="1669.519000">of things you can do with Emacs, right?</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1669.520000" data-stop="1673.059000">So yeah, people can just use basic Emacs.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="1673.000000">27:53</span> <strong>debug-init</strong></div><p></p><span class="audio-time caption" data-speaker="Sacha" data-start="1673.060000" data-stop="1675.199000"><strong class="speaker-name">Sacha:</strong> And then @petertillemans2231 says,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1675.200000" data-stop="1676.679000">"I guess learn starters quickly</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1676.680000" data-stop="1678.079000">to use emacs &#45;&#45;debug-init.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1678.080000" data-stop="1680.759000">Maybe not in the first hour, but close to it.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1680.760000" data-stop="1682.279000">Close to tweaking.</span> <p></p><span class="audio-time caption" data-speaker="Prot" data-start="1682.280000" data-stop="1685.439000"><strong class="speaker-name">Prot:</strong> Yeah. Which of course doesn't help.</span> <span class="audio-time caption" data-speaker="Prot" data-start="1685.440000" data-stop="1687.199000">It's very useful, of course,</span> <span class="audio-time caption" data-speaker="Prot" data-start="1687.200000" data-stop="1688.599000">but it doesn't help beginners</span> <span class="audio-time caption" data-speaker="Prot" data-start="1688.600000" data-stop="1690.279000">because they cannot read the backtrace.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="1690.280000" data-stop="1692.439000"><strong class="speaker-name">Sacha:</strong> Yeah, it is hard to navigate</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1692.440000" data-stop="1693.959000">even for people who are experienced</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1693.960000" data-stop="1696.079000">like there's a whole bunch of things</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1696.080000" data-stop="1697.039000">and what you need to change</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1697.040000" data-stop="1697.959000">is like a small thing</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1697.960000" data-stop="1699.359000">and you don't know about edebug</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1699.360000" data-stop="1700.759000">and all that other stuff.</span> <p></p><span class="audio-time caption" data-speaker="Prot" data-start="1700.760000" data-stop="1703.159000"><strong class="speaker-name">Prot:</strong> But of course debugging it</span> <span class="audio-time caption" data-speaker="Prot" data-start="1703.160000" data-stop="1704.559000">many times of course</span> <span class="audio-time caption" data-speaker="Prot" data-start="1704.560000" data-stop="1706.079000">it is a lifesaver for sure.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="1706.080000" data-stop="1707.959000"><strong class="speaker-name">Sacha:</strong> Yeah, and I think</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1707.960000" data-stop="1710.159000">a lot of these things can be stepped around</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1710.160000" data-stop="1712.159000">if you have, you know, like you,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1712.160000" data-stop="1714.119000">someone more experienced with Emacs</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1714.120000" data-stop="1715.439000">to watch over your shoulder</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1715.440000" data-stop="1717.959000">either in person or virtually and say,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1717.960000" data-stop="1720.319000">you know, do it this way instead,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1720.320000" data-stop="1723.039000">or have you heard about this package?</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1723.040000" data-stop="1724.159000">But this is an experience</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1724.160000" data-stop="1726.359000">that I think not a lot of people have</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1726.360000" data-stop="1729.319000">because many times they're isolated, right?</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1729.320000" data-stop="1733.279000">They're the only Emacs person they know around them.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1733.280000" data-stop="1734.879000">And maybe they'll go to meet up,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1734.880000" data-stop="1737.039000">but maybe they're intimidated by the idea</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1737.040000" data-stop="1739.159000">of asking about their beginner problem</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1739.160000" data-stop="1740.719000">with all these other people</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1740.720000" data-stop="1743.319000">talking about arcane Emacs list things.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1743.320000" data-stop="1745.039000">So how do we get people to the point</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1745.040000" data-stop="1746.119000">where they can get help?</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="1746.000000">29:06</span> <strong>Getting help: partially bridged by LLMs?</strong></div><p></p><span class="audio-time caption" data-speaker="Prot" data-start="1746.120000" data-stop="1751.039000"><strong class="speaker-name">Prot:</strong> Yeah, I think this is partially bridged.</span> <span class="audio-time caption" data-speaker="Prot" data-start="1751.040000" data-stop="1753.879000">This gap is partially bridged by LLMs.</span> <span class="audio-time caption" data-speaker="Prot" data-start="1753.880000" data-stop="1758.439000">Like a lot of people will just check with a bot</span> <span class="audio-time caption" data-speaker="Prot" data-start="1758.440000" data-stop="1760.479000">and get something useful out of it</span> <span class="audio-time caption" data-speaker="Prot" data-start="1760.480000" data-stop="1763.119000">and basically continue from there.</span> <span class="audio-time caption" data-speaker="Prot" data-start="1763.120000" data-stop="1764.759000">And that's why I said earlier</span> <span class="audio-time caption" data-speaker="Prot" data-start="1764.760000" data-stop="1765.839000">they muddle through</span> <span class="audio-time caption" data-speaker="Prot" data-start="1765.840000" data-stop="1769.039000">because LLMs of course will give you what you ask.</span> <span class="audio-time caption" data-speaker="Prot" data-start="1769.040000" data-stop="1772.279000">So if you kind of don't know what to ask,</span> <span class="audio-time caption" data-speaker="Prot" data-start="1772.280000" data-stop="1774.919000">you will get something that may be useful,</span> <span class="audio-time caption" data-speaker="Prot" data-start="1774.920000" data-stop="1778.279000">maybe needs a further tweak to it.</span> <span class="audio-time caption" data-speaker="Prot" data-start="1778.280000" data-stop="1780.639000">That's why sometimes it's hit or miss.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="1780.640000" data-stop="1783.719000"><strong class="speaker-name">Sacha:</strong> And I am seeing that in</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1783.720000" data-stop="1786.679000">a lot of the discussion threads now.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1786.680000" data-stop="1788.919000">Of course, people are concerned about</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1788.920000" data-stop="1789.959000">the environmental impacts</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1789.960000" data-stop="1791.679000">and the ethical considerations</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1791.680000" data-stop="1793.079000">around large language models,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1793.080000" data-stop="1794.519000">but there are also people who are saying,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1794.520000" data-stop="1796.959000">you know, this is what helped me</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1796.960000" data-stop="1798.679000">write my first bit of Emacs Lisp,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1798.680000" data-stop="1800.919000">or this is what helped me figure out</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1800.920000" data-stop="1801.919000">how to configure Emacs</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1801.920000" data-stop="1804.079000">to do the thing that I wanted to do.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1804.080000" data-stop="1805.759000">So for that, I'm like, okay,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1805.760000" data-stop="1807.519000">then maybe there's something there.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1807.520000" data-stop="1809.559000">Challenge, of course,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1809.560000" data-stop="1811.159000">if it's hallucinating something,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1811.160000" data-stop="1812.039000">you're like, no,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1812.040000" data-stop="1813.919000">that function does not actually exist.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1813.920000" data-stop="1815.199000">You got to do it this other way.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1815.200000" data-stop="1817.839000">But if you can get them over some of the humps,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1817.840000" data-stop="1819.959000">maybe that's useful for them.</span> <p></p><span class="audio-time caption" data-speaker="Prot" data-start="1819.960000" data-stop="1821.839000"><strong class="speaker-name">Prot:</strong> Yes, yes, yes.</span> <span class="audio-time caption" data-speaker="Prot" data-start="1821.840000" data-stop="1824.919000">I think, of course, it's not 100% good,</span> <span class="audio-time caption" data-speaker="Prot" data-start="1824.920000" data-stop="1828.159000">but I think it is, on the balance,</span> <span class="audio-time caption" data-speaker="Prot" data-start="1828.160000" data-stop="1830.319000">I think it is good.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="1830.320000" data-stop="1834.719000"><strong class="speaker-name">Sacha:</strong> So when people are too embarrassed</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1834.720000" data-stop="1837.599000">or too intimidated to ask people in person,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1837.600000" data-stop="1838.959000">and when I go to these meetups,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1838.960000" data-stop="1840.719000">everyone's always super friendly.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1840.720000" data-stop="1842.959000">Sometimes we're live debugging</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1842.960000" data-stop="1845.999000">someone's configuration or someone's function</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1846.000000" data-stop="1846.999000">in real time.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1847.000000" data-stop="1849.359000">But sometimes that is a little difficult</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1849.360000" data-stop="1852.639000">for people to get to for schedule or other reasons.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1852.640000" data-stop="1854.919000">There are other ways to understand something</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1854.920000" data-stop="1861.279000">and ask questions about it and figure it out.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="1861.000000">31:01</span> <strong>Things people don't even know about</strong></div><p></p><span class="audio-time caption" data-speaker="Sacha" data-start="1861.280000" data-stop="1863.679000"><strong class="speaker-name">Sacha:</strong> But sometimes you don't even know</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1863.680000" data-stop="1864.839000">what to ask questions about.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1864.840000" data-stop="1867.119000">How do we help people in that situation</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1867.120000" data-stop="1868.639000">where they don't even know</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1868.640000" data-stop="1870.799000">that they're doing something inefficiently</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1870.800000" data-stop="1874.519000">and that the solution for their problems</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1874.520000" data-stop="1876.999000">is just one package away?</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1877.000000" data-stop="1879.359000">How do we help?</span> <p></p><span class="audio-time caption" data-speaker="Prot" data-start="1879.360000" data-stop="1882.399000"><strong class="speaker-name">Prot:</strong> That's difficult</span> <span class="audio-time caption" data-speaker="Prot" data-start="1882.400000" data-stop="1884.519000">because it's on a case-by-case basis.</span> <span class="audio-time caption" data-speaker="Prot" data-start="1884.520000" data-stop="1886.919000">I think you cannot optimize for that</span> <span class="audio-time caption" data-speaker="Prot" data-start="1886.920000" data-stop="1891.559000">because each person will have different intuitions</span> <span class="audio-time caption" data-speaker="Prot" data-start="1891.560000" data-stop="1894.359000">or different pain points, let's say.</span> <span class="audio-time caption" data-speaker="Prot" data-start="1894.360000" data-stop="1897.839000">And maybe you can do it by having</span> <span class="audio-time caption" data-speaker="Prot" data-start="1897.840000" data-stop="1900.639000">the most exhaustive kind of documentation</span> <span class="audio-time caption" data-speaker="Prot" data-start="1900.640000" data-stop="1903.599000">with the equivalent of search engine optimization,</span> <span class="audio-time caption" data-speaker="Prot" data-start="1903.600000" data-stop="1904.719000">as you were saying earlier.</span> <span class="audio-time caption" data-speaker="Prot" data-start="1904.720000" data-stop="1906.759000">But I think eventually</span> <span class="audio-time caption" data-speaker="Prot" data-start="1906.760000" data-stop="1908.839000">people will still have questions</span> <span class="audio-time caption" data-speaker="Prot" data-start="1908.840000" data-stop="1911.639000">and even the formulation of the question</span> <span class="audio-time caption" data-speaker="Prot" data-start="1911.640000" data-stop="1912.879000">may be idiosyncratic.</span> <span class="audio-time caption" data-speaker="Prot" data-start="1912.880000" data-stop="1915.319000">So even if the concept is there,</span> <span class="audio-time caption" data-speaker="Prot" data-start="1915.320000" data-stop="1918.039000">the way it is presented,</span> <span class="audio-time caption" data-speaker="Prot" data-start="1918.040000" data-stop="1920.159000">you might not have a perfect match.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="1920.160000" data-stop="1923.639000"><strong class="speaker-name">Sacha:</strong> And the idiosyncrasy of things</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1923.640000" data-stop="1927.759000">is something that it's definitely a challenge for us</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1927.760000" data-stop="1928.919000">when we're working with Emacs</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1928.920000" data-stop="1932.119000">because everyone has their own way of doing things</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1932.120000" data-stop="1934.159000">and everyone therefore has their own...</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1934.160000" data-stop="1937.719000">How they set it up</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1937.720000" data-stop="1940.959000">or the keyboard shortcuts that they use</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1940.960000" data-stop="1943.999000">or the ways that they want the functions to work.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1944.000000" data-stop="1948.759000">Even trying to write documentation to say,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1948.760000" data-stop="1950.759000">if you're learning this,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1950.760000" data-stop="1953.759000">you might want to check out this stuff next,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1953.760000" data-stop="1955.679000">I have a hard time figuring out</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1955.680000" data-stop="1958.479000">how to make that make sense</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1958.480000" data-stop="1959.719000">to as many people as possible</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1959.720000" data-stop="1962.359000">without overwhelming them with 20 different questions.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="1962.000000">32:42</span> <strong>Filling in the blanks</strong></div><p></p><span class="audio-time caption" data-speaker="Prot" data-start="1962.360000" data-stop="1964.799000"><strong class="speaker-name">Prot:</strong> That's the difficult part.</span> <span class="audio-time caption" data-speaker="Prot" data-start="1964.800000" data-stop="1966.679000">Actually, I think that's the part</span> <span class="audio-time caption" data-speaker="Prot" data-start="1966.680000" data-stop="1967.919000">where you have to assume</span> <span class="audio-time caption" data-speaker="Prot" data-start="1967.920000" data-stop="1969.479000">that people will fill in the blanks.</span> <span class="audio-time caption" data-speaker="Prot" data-start="1969.480000" data-stop="1970.879000">For example, I think yesterday</span> <span class="audio-time caption" data-speaker="Prot" data-start="1970.880000" data-stop="1972.399000">you were doing this thing where,</span> <span class="audio-time caption" data-speaker="Prot" data-start="1972.400000" data-stop="1974.639000">well, somebody needs to use Git,</span> <span class="audio-time caption" data-speaker="Prot" data-start="1974.640000" data-stop="1976.399000">but what is even Git?</span> <span class="audio-time caption" data-speaker="Prot" data-start="1976.400000" data-stop="1978.639000">So you have to even know about Git, right?</span> <span class="audio-time caption" data-speaker="Prot" data-start="1978.640000" data-stop="1981.479000">And that's recursive because, well,</span> <span class="audio-time caption" data-speaker="Prot" data-start="1981.480000" data-stop="1982.679000">how do you install Git?</span> <span class="audio-time caption" data-speaker="Prot" data-start="1982.680000" data-stop="1983.719000">Well, you need a terminal.</span> <span class="audio-time caption" data-speaker="Prot" data-start="1983.720000" data-stop="1984.919000">What is a terminal, right?</span> <span class="audio-time caption" data-speaker="Prot" data-start="1984.920000" data-stop="1987.279000">Well, you need to have this thing called Linux.</span> <span class="audio-time caption" data-speaker="Prot" data-start="1987.280000" data-stop="1990.199000">What is a Linux?</span> <span class="audio-time caption" data-speaker="Prot" data-start="1990.200000" data-stop="1993.599000">So basically at some point you have to just say</span> <span class="audio-time caption" data-speaker="Prot" data-start="1993.600000" data-stop="1996.159000">like I will give you as much as I can</span> <span class="audio-time caption" data-speaker="Prot" data-start="1996.160000" data-stop="1999.079000">but I will limit it to the scope of this</span> <span class="audio-time caption" data-speaker="Prot" data-start="1999.080000" data-stop="2000.199000">like Emacs basically.</span> <span class="audio-time caption" data-speaker="Prot" data-start="2000.200000" data-stop="2003.799000">Because otherwise it has infinite scope.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="2003.800000" data-stop="2005.719000"><strong class="speaker-name">Sacha:</strong> And I find that hyperlinks</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2005.720000" data-stop="2006.719000">help a lot with that then</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2006.720000" data-stop="2007.999000">because we can say,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2008.000000" data-stop="2010.119000">if you need a more detailed description,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2010.120000" data-stop="2011.479000">you can go over there.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2011.480000" data-stop="2014.959000">So now I'm trying to make it easier for myself</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2014.960000" data-stop="2016.039000">whenever I say, oh yeah,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2016.040000" data-stop="2017.319000">put this in your .emacs.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="2017.000000">33:37</span> <strong>.emacs</strong></div><p></p><span class="audio-time caption" data-speaker="Sacha" data-start="2017.320000" data-stop="2019.079000"><strong class="speaker-name">Sacha:</strong> I'm just like, oh, I'm just going to link to</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2019.080000" data-stop="2020.959000">the Emacs wiki page on init files.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2020.960000" data-stop="2022.839000">Because there's this whole discussion</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2022.840000" data-stop="2024.119000">that you have to have about</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2024.120000" data-stop="2025.439000">what is your .emacs</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2025.440000" data-stop="2029.359000">and sometimes it's actually your .emacs.d/init.el</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2029.360000" data-stop="2034.039000">but sometimes it's actually your .config/emacs/init.el</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2034.040000" data-stop="2038.679000">and, like, pass that off to a page to explain all that stuff.</span> <p></p><span class="audio-time caption" data-speaker="Prot" data-start="2038.680000" data-stop="2040.519000"><strong class="speaker-name">Prot:</strong> Actually I want to say something about this</span> <span class="audio-time caption" data-speaker="Prot" data-start="2040.520000" data-stop="2041.879000">because now it reminded me.</span> <span class="audio-time caption" data-speaker="Prot" data-start="2041.880000" data-stop="2045.639000">So many people nowadays</span> <span class="audio-time caption" data-speaker="Prot" data-start="2045.640000" data-stop="2050.759000">will use .emacs.d/init.el or .config/emacs/init.el</span> <span class="audio-time caption" data-speaker="Prot" data-start="2050.760000" data-stop="2052.759000">But Emacs defaults to reading</span> <span class="audio-time caption" data-speaker="Prot" data-start="2052.760000" data-stop="2054.719000">the .emacs file from your home directory.</span> <span class="audio-time caption" data-speaker="Prot" data-start="2054.720000" data-stop="2057.279000">And I had this case where a user</span> <span class="audio-time caption" data-speaker="Prot" data-start="2057.280000" data-stop="2059.279000">was writing their init file</span> <span class="audio-time caption" data-speaker="Prot" data-start="2059.280000" data-stop="2061.439000">in one of those specified locations,</span> <span class="audio-time caption" data-speaker="Prot" data-start="2061.440000" data-stop="2064.919000">but they did something with Emacs Customize beforehand</span> <span class="audio-time caption" data-speaker="Prot" data-start="2064.920000" data-stop="2068.919000">and Emacs Customize wrote to the .emacs file.</span> <span class="audio-time caption" data-speaker="Prot" data-start="2068.920000" data-stop="2070.679000">So they were loading Emacs</span> <span class="audio-time caption" data-speaker="Prot" data-start="2070.680000" data-stop="2071.759000">and nothing was showing up</span> <span class="audio-time caption" data-speaker="Prot" data-start="2071.760000" data-stop="2072.839000">and they were like, what is wrong?</span> <span class="audio-time caption" data-speaker="Prot" data-start="2072.840000" data-stop="2073.799000">My init file is there.</span> <span class="audio-time caption" data-speaker="Prot" data-start="2073.800000" data-stop="2075.199000">Why is it not working?</span> <span class="audio-time caption" data-speaker="Prot" data-start="2075.200000" data-stop="2077.159000">I'm loading, you know, this dark thing.</span> <span class="audio-time caption" data-speaker="Prot" data-start="2077.160000" data-stop="2077.999000">Why is it white?</span> <span class="audio-time caption" data-speaker="Prot" data-start="2078.000000" data-stop="2079.119000">or whatever.</span> <span class="audio-time caption" data-speaker="Prot" data-start="2079.120000" data-stop="2081.999000">And eventually it was because of the .emacs file.</span> <span class="audio-time caption" data-speaker="Prot" data-start="2082.000000" data-stop="2085.039000">I'm not sure how best to resolve that</span> <span class="audio-time caption" data-speaker="Prot" data-start="2085.040000" data-stop="2087.679000">given that you want to also be backward compatible.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="2087.680000" data-stop="2089.319000"><strong class="speaker-name">Sacha:</strong> No, no, no.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2089.320000" data-stop="2089.599000">Okay.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2089.600000" data-stop="2091.239000">So when I tell people just, you know,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2091.240000" data-stop="2093.679000">here's the link to the init file page in the Emacs wiki,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2093.680000" data-stop="2096.919000">it also includes a describe-variable user-init-file,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2096.920000" data-stop="2099.799000">which will tell you which one is actually loading.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2099.800000" data-stop="2102.719000">And I have a to-do to suggest on emacs-devel,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2102.720000" data-stop="2104.639000">if they haven't already discussed it endlessly,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2104.640000" data-stop="2106.479000">that maybe there should be kind of like</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2106.480000" data-stop="2108.959000">a M-x find-user-init-file</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2108.960000" data-stop="2111.559000">that just opens that specific file.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2111.560000" data-stop="2113.319000">Would be nice. But yeah.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2113.320000" data-stop="2115.719000">Going back to the chat</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2115.720000" data-stop="2117.999000">because people have been sharing</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2118.000000" data-stop="2119.039000">great comments as well.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2119.040000" data-stop="2122.239000">Shae says, "I learned about new Emacs packages</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2122.240000" data-stop="2124.039000">by pairing with other users and asking,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2124.040000" data-stop="2125.839000">how did you do that thing?"</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2125.840000" data-stop="2129.279000">Which I think is a great thing for screencasts.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2129.280000" data-stop="2131.999000">People sharing videos as well</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2132.000000" data-stop="2134.279000">because when people share a video,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2134.280000" data-stop="2135.799000">sometimes they see things</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2135.800000" data-stop="2137.279000">that they wouldn't have mentioned</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2137.280000" data-stop="2140.799000">because they totally take advantage of it.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2140.800000" data-stop="2145.079000">It's just something they take for granted.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2145.080000" data-stop="2146.239000">For example, in your live stream</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2146.240000" data-stop="2148.039000">package maintenance sessions,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2148.040000" data-stop="2149.679000">I'm sure you've had this a couple of times.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2149.680000" data-stop="2150.359000">People are asking,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2150.360000" data-stop="2152.239000">what is that that you just did?</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2152.240000" data-stop="2154.999000">Videos are great for this.</span> <p></p><span class="audio-time caption" data-speaker="Prot" data-start="2155.000000" data-stop="2159.359000"><strong class="speaker-name">Prot:</strong> Let me open the door for my puppy.</span> <span class="audio-time caption" data-speaker="Prot" data-start="2159.360000" data-stop="2160.559000">I'll be back.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="2160.560000" data-stop="2162.799000"><strong class="speaker-name">Sacha:</strong> In the meantime,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2162.800000" data-stop="2165.839000">let's see if there's anything here</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2165.840000" data-stop="2167.559000">I can address by myself.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2167.560000" data-stop="2169.479000">The puppies cannot wait.</span> <p></p><span class="audio-time caption" data-speaker="Prot" data-start="2169.480000" data-stop="2173.879000"><strong class="speaker-name">Prot:</strong> No, the puppies cannot wait.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="2173.880000" data-stop="2176.279000"><strong class="speaker-name">Sacha:</strong> Small mammals in general are like,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2176.280000" data-stop="2179.519000">they need us, they need us.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2179.520000" data-stop="2185.359000">@hajovonta6300 says, "I used Emacs since 2010</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2185.360000" data-stop="2186.359000">and had become a power user,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2186.360000" data-stop="2187.439000">but in the last year,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2187.440000" data-stop="2190.079000">I feel LLMs took over most of the tasks</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2190.080000" data-stop="2192.879000">I usually solved with Emacs."</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2192.880000" data-stop="2195.399000">I mean actually it's a bit of a tangent here</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2195.400000" data-stop="2196.959000">but we're seeing that also with</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2196.960000" data-stop="2200.079000">some of the long-term users of Emacs</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2200.080000" data-stop="2201.559000">moving on to other editors</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2201.560000" data-stop="2204.159000">because whatever they had customized</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2204.160000" data-stop="2206.239000">on top of Emacs</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2206.240000" data-stop="2212.159000">could be replicated by a custom application</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2212.160000" data-stop="2212.719000">written by an LLM.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2212.720000" data-stop="2213.999000">The movement is going both ways.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2214.000000" data-stop="2215.639000">People leaving Emacs for other things,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2215.640000" data-stop="2217.399000">people coming into Emacs</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2217.400000" data-stop="2219.559000">because LLMs can help them with stuff.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2219.560000" data-stop="2221.599000">So I just wanted to mention that</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2221.600000" data-stop="2223.999000">because things are happening.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="2224.000000">37:04</span> <strong>Discovery and the info manual</strong></div><p></p><span class="audio-time caption" data-speaker="Sacha" data-start="2224.000000" data-stop="2224.399000"><strong class="speaker-name">Sacha:</strong> @petertillemans2231 says,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2224.400000" data-stop="2226.799000">"Emacs documentation is very extensive,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2226.800000" data-stop="2231.519000">but I feel discovery of the docs is a problem for new users."</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2231.520000" data-stop="2233.039000">And I want to dig into that a bit more.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2233.040000" data-stop="2238.359000">How do we help with this discovery thing?</span> <p></p><span class="audio-time caption" data-speaker="Prot" data-start="2238.360000" data-stop="2239.519000"><strong class="speaker-name">Prot:</strong> In the info manuals,</span> <span class="audio-time caption" data-speaker="Prot" data-start="2239.520000" data-stop="2241.799000">if you know two key bindings,</span> <span class="audio-time caption" data-speaker="Prot" data-start="2241.800000" data-stop="2242.759000">it really helps a lot.</span> <span class="audio-time caption" data-speaker="Prot" data-start="2242.760000" data-stop="2244.359000">One is g, the other is i.</span> <span class="audio-time caption" data-speaker="Prot" data-start="2244.360000" data-stop="2247.399000">But you have to have completion already set up,</span> <span class="audio-time caption" data-speaker="Prot" data-start="2247.400000" data-stop="2250.199000">like vertico-mode, for example.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="2250.200000" data-stop="2252.799000"><strong class="speaker-name">Sacha:</strong> I also like using s for search.</span> <p></p><span class="audio-time caption" data-speaker="Prot" data-start="2252.800000" data-stop="2254.679000"><strong class="speaker-name">Prot:</strong> Or s for search.</span> <span class="audio-time caption" data-speaker="Prot" data-start="2254.680000" data-stop="2257.039000">Those help a lot,</span> <span class="audio-time caption" data-speaker="Prot" data-start="2257.040000" data-stop="2259.679000">because then you can jump</span> <span class="audio-time caption" data-speaker="Prot" data-start="2259.680000" data-stop="2261.959000">to a node or an index.</span> <span class="audio-time caption" data-speaker="Prot" data-start="2261.960000" data-stop="2264.399000">Without those navigating,</span> <span class="audio-time caption" data-speaker="Prot" data-start="2264.400000" data-stop="2268.119000">the manuals can feel cumbersome.</span> <span class="audio-time caption" data-speaker="Prot" data-start="2268.120000" data-stop="2271.639000">That granted, we are back to the point</span> <span class="audio-time caption" data-speaker="Prot" data-start="2271.640000" data-stop="2274.599000">where the user also has to do some research on their own.</span> <span class="audio-time caption" data-speaker="Prot" data-start="2274.600000" data-stop="2279.599000">You cannot compensate for drive, motivation.</span> <span class="audio-time caption" data-speaker="Prot" data-start="2279.600000" data-stop="2281.719000">No matter how much we write,</span> <span class="audio-time caption" data-speaker="Prot" data-start="2281.720000" data-stop="2285.399000">no matter how many themes or minor modes we define,</span> <span class="audio-time caption" data-speaker="Prot" data-start="2285.400000" data-stop="2287.679000">the user also has to be searching.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="2287.680000" data-stop="2291.479000"><strong class="speaker-name">Sacha:</strong> Yeah. And it's going back</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2291.480000" data-stop="2293.639000">to the challenge of being overwhelmed.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2293.640000" data-stop="2295.319000">You know, sometimes it's difficult</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2295.320000" data-stop="2299.279000">for new users to say, okay, there's so much to learn.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2299.280000" data-stop="2301.799000">How do I scope this so that I don't go crazy?</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2301.800000" data-stop="2304.119000">You know, what is the most important thing</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2304.120000" data-stop="2305.359000">that I need to learn about first?</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2305.360000" data-stop="2307.999000">And then what is the tiniest step after that</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2308.000000" data-stop="2310.079000">that I can take? And so forth.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2310.080000" data-stop="2311.919000">Otherwise, it's just like,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2311.920000" data-stop="2314.379000">I want to learn about everything.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="2314.000000">38:34</span> <strong>Address your immediate need; small steps</strong></div><p></p><span class="audio-time caption" data-speaker="Prot" data-start="2314.380000" data-stop="2316.039000"><strong class="speaker-name">Prot:</strong> Based on the discussions I have had,</span> <span class="audio-time caption" data-speaker="Prot" data-start="2316.040000" data-stop="2321.079000">I think the consensus is address your immediate needs.</span> <span class="audio-time caption" data-speaker="Prot" data-start="2321.080000" data-stop="2323.839000">For example, you want to write a to-do list,</span> <span class="audio-time caption" data-speaker="Prot" data-start="2323.840000" data-stop="2326.559000">all you need to know at this early stage is Org Mode.</span> <span class="audio-time caption" data-speaker="Prot" data-start="2326.560000" data-stop="2328.119000">And not all of Org,</span> <span class="audio-time caption" data-speaker="Prot" data-start="2328.120000" data-stop="2331.959000">because Org has approximately one zillion commands.</span> <span class="audio-time caption" data-speaker="Prot" data-start="2331.960000" data-stop="2333.959000">Just to-do and done.</span> <span class="audio-time caption" data-speaker="Prot" data-start="2333.960000" data-stop="2337.239000">And maybe schedule a date.</span> <span class="audio-time caption" data-speaker="Prot" data-start="2337.240000" data-stop="2342.239000">Just learn that, and by learning that,</span> <span class="audio-time caption" data-speaker="Prot" data-start="2342.240000" data-stop="2344.359000">do that for a week, do it for a month,</span> <span class="audio-time caption" data-speaker="Prot" data-start="2344.360000" data-stop="2345.799000">however long it takes</span> <span class="audio-time caption" data-speaker="Prot" data-start="2345.800000" data-stop="2348.839000">for you to embed it as part of your knowledge .</span> <span class="audio-time caption" data-speaker="Prot" data-start="2348.840000" data-stop="2350.719000">And then once you have done that,</span> <span class="audio-time caption" data-speaker="Prot" data-start="2350.720000" data-stop="2351.879000">move on to the next thing.</span> <span class="audio-time caption" data-speaker="Prot" data-start="2351.880000" data-stop="2354.439000">Like, okay, now that I am solid on my to-do's,</span> <span class="audio-time caption" data-speaker="Prot" data-start="2354.440000" data-stop="2356.319000">how do I do the agenda, for example,</span> <span class="audio-time caption" data-speaker="Prot" data-start="2356.320000" data-stop="2359.359000">and incrementally add to that.</span> <span class="audio-time caption" data-speaker="Prot" data-start="2359.360000" data-stop="2360.359000">And the idea is</span> <span class="audio-time caption" data-speaker="Prot" data-start="2360.360000" data-stop="2363.079000">by piecing together your system this way,</span> <span class="audio-time caption" data-speaker="Prot" data-start="2363.080000" data-stop="2364.919000">you achieve two things.</span> <span class="audio-time caption" data-speaker="Prot" data-start="2364.920000" data-stop="2366.919000">First, you build on</span> <span class="audio-time caption" data-speaker="Prot" data-start="2366.920000" data-stop="2369.199000">a solid foundation of knowledge</span> <span class="audio-time caption" data-speaker="Prot" data-start="2369.200000" data-stop="2370.359000">where you know what you are doing.</span> <span class="audio-time caption" data-speaker="Prot" data-start="2370.360000" data-stop="2372.799000">And two, you understand</span> <span class="audio-time caption" data-speaker="Prot" data-start="2372.800000" data-stop="2374.479000">how your system is pieced together.</span> <span class="audio-time caption" data-speaker="Prot" data-start="2374.480000" data-stop="2375.799000">So if something breaks,</span> <span class="audio-time caption" data-speaker="Prot" data-start="2375.800000" data-stop="2377.279000">you already have an intuition</span> <span class="audio-time caption" data-speaker="Prot" data-start="2377.280000" data-stop="2379.159000">of what it could be.</span> <span class="audio-time caption" data-speaker="Prot" data-start="2379.160000" data-stop="2381.079000">Even if you don't know Emacs Lisp,</span> <span class="audio-time caption" data-speaker="Prot" data-start="2381.080000" data-stop="2383.239000">you can guess like, oh,</span> <span class="audio-time caption" data-speaker="Prot" data-start="2383.240000" data-stop="2384.759000">I added this thing the other day</span> <span class="audio-time caption" data-speaker="Prot" data-start="2384.760000" data-stop="2386.239000">and now my Emacs is broken.</span> <span class="audio-time caption" data-speaker="Prot" data-start="2386.240000" data-stop="2388.279000">So probably the breakage is there.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="2388.280000" data-stop="2392.079000"><strong class="speaker-name">Sacha:</strong> And this decomposing it</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2392.080000" data-stop="2393.679000">into those tiny steps</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2393.680000" data-stop="2395.239000">so that you can piece them together</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2395.240000" data-stop="2396.319000">and build slowly</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2396.320000" data-stop="2398.799000">understanding each step along the way</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2398.800000" data-stop="2402.119000">is something that new people struggle with</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2402.120000" data-stop="2404.439000">because they don't have experience</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2404.440000" data-stop="2406.119000">to know what the small step is.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2406.120000" data-stop="2407.719000">And I think that's where</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2407.720000" data-stop="2410.879000">coaching and mentoring and you know sometimes</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2410.880000" data-stop="2412.639000">If you're lucky enough</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2412.640000" data-stop="2414.479000">to be able to sit with somebody</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2414.480000" data-stop="2417.919000">who says, okay, your next step is just to do this.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2417.920000" data-stop="2420.159000">That would be super lucky.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2420.160000" data-stop="2422.999000">But most people will just have to content themselves</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2423.000000" data-stop="2426.159000">with sometimes there's a playlist of videos</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2426.160000" data-stop="2427.599000">that they can follow in sequence.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2427.600000" data-stop="2430.479000">Or maybe there's someone, you know,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2430.480000" data-stop="2434.119000">maybe they'll post on Reddit saying, okay, I know this.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2434.120000" data-stop="2435.679000">What should I learn next?</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2435.680000" data-stop="2440.199000">I just wish it were easier for us to say...</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2440.200000" data-stop="2445.559000">Let's imagine this from the helper point of view.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2445.560000" data-stop="2448.239000">How do we make it easier for people to say,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2448.240000" data-stop="2451.439000">all right, this is where you are.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2451.440000" data-stop="2454.959000">Here's some things that you can look into next.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2454.960000" data-stop="2456.919000">What do you do when you're coaching someone?</span> <p></p><span class="audio-time caption" data-speaker="Prot" data-start="2456.920000" data-stop="2459.519000"><strong class="speaker-name">Prot:</strong> Yes, I always ask them</span> <span class="audio-time caption" data-speaker="Prot" data-start="2459.520000" data-stop="2461.199000">what their needs are.</span> <span class="audio-time caption" data-speaker="Prot" data-start="2461.200000" data-stop="2463.159000">There are some needs which are common.</span> <span class="audio-time caption" data-speaker="Prot" data-start="2463.160000" data-stop="2464.279000">For example, completion.</span> <span class="audio-time caption" data-speaker="Prot" data-start="2464.280000" data-stop="2467.079000">Vertico, for example, I think</span> <span class="audio-time caption" data-speaker="Prot" data-start="2467.080000" data-stop="2468.919000">basically everybody can benefit</span> <span class="audio-time caption" data-speaker="Prot" data-start="2468.920000" data-stop="2470.599000">unless you have a really special use case.</span> <span class="audio-time caption" data-speaker="Prot" data-start="2470.600000" data-stop="2473.119000">But other than that, it's like, well,</span> <span class="audio-time caption" data-speaker="Prot" data-start="2473.120000" data-stop="2474.839000">we don't need to fix everything.</span> <span class="audio-time caption" data-speaker="Prot" data-start="2474.840000" data-stop="2476.719000">Let's understand what your needs are.</span> <span class="audio-time caption" data-speaker="Prot" data-start="2476.720000" data-stop="2479.119000">Let's work towards that goal.</span> <span class="audio-time caption" data-speaker="Prot" data-start="2479.120000" data-stop="2483.839000">And one way to break it down also conceptually</span> <span class="audio-time caption" data-speaker="Prot" data-start="2483.840000" data-stop="2486.039000">is with use-package blocks.</span> <span class="audio-time caption" data-speaker="Prot" data-start="2486.040000" data-stop="2488.199000">I think use-package is an excellent, of course,</span> <span class="audio-time caption" data-speaker="Prot" data-start="2488.200000" data-stop="2489.759000">it's an excellent tool in its own right,</span> <span class="audio-time caption" data-speaker="Prot" data-start="2489.760000" data-stop="2492.799000">but it's an excellent way of saying,</span> <span class="audio-time caption" data-speaker="Prot" data-start="2492.800000" data-stop="2493.359000">you know what?</span> <span class="audio-time caption" data-speaker="Prot" data-start="2493.360000" data-stop="2494.919000">This is one thing.</span> <span class="audio-time caption" data-speaker="Prot" data-start="2494.920000" data-stop="2496.679000">This is one step.</span> <span class="audio-time caption" data-speaker="Prot" data-start="2496.680000" data-stop="2498.559000">And this is the next step.</span> <span class="audio-time caption" data-speaker="Prot" data-start="2498.560000" data-stop="2500.839000">And so people can start thinking</span> <span class="audio-time caption" data-speaker="Prot" data-start="2500.840000" data-stop="2505.919000">in terms of each use-package is a step.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="2505.000000">41:45</span> <strong>:config and setq is nicer than :custom for C-x C-e purposes (eval-last-sexp)</strong></div><p></p><span class="audio-time caption" data-speaker="Sacha" data-start="2505.920000" data-stop="2506.879000"><strong class="speaker-name">Sacha:</strong> I sometimes feel like</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2506.880000" data-stop="2507.999000">I'm going back and forth.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2508.000000" data-stop="2509.199000">use-package is nice</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2509.200000" data-stop="2512.559000">because it allows us to add the hooks</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2512.560000" data-stop="2514.719000">and say this stuff happens</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2514.720000" data-stop="2515.919000">after the package is loaded,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2515.920000" data-stop="2517.839000">so I don't have to keep having</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2517.840000" data-stop="2519.279000">lots of with-eval-after-load.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2519.280000" data-stop="2520.279000">But on the other hand,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2520.280000" data-stop="2522.239000">it becomes harder for people</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2522.240000" data-stop="2524.479000">to copy and paste things</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2524.480000" data-stop="2527.159000">because then they have to know</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2527.160000" data-stop="2529.359000">it needs to go inside the use-package.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2529.360000" data-stop="2531.679000">Do I use the custom keyword</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2531.680000" data-stop="2533.799000">or do I just use setq</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2533.800000" data-stop="2537.279000">because it looks more copyable?</span> <p></p><span class="audio-time caption" data-speaker="Prot" data-start="2537.280000" data-stop="2538.439000"><strong class="speaker-name">Prot:</strong> This is why me,</span> <span class="audio-time caption" data-speaker="Prot" data-start="2538.440000" data-stop="2539.839000">I don't use the custom.</span> <span class="audio-time caption" data-speaker="Prot" data-start="2539.840000" data-stop="2542.199000">It's not that I have anything personal against it.</span> <span class="audio-time caption" data-speaker="Prot" data-start="2542.200000" data-stop="2544.239000">It's that I found that it's unusable.</span> <span class="audio-time caption" data-speaker="Prot" data-start="2544.240000" data-stop="2546.719000">If you have the equivalent of this in a custom,</span> <span class="audio-time caption" data-speaker="Prot" data-start="2546.720000" data-stop="2551.879000">you cannot do C-x C-e.</span> <span class="audio-time caption" data-speaker="Prot" data-start="2551.880000" data-stop="2554.959000">If you say use-package is syntactic sugar...</span> <span class="audio-time caption" data-speaker="Prot" data-start="2554.960000" data-stop="2556.399000">I have read this before.</span> <span class="audio-time caption" data-speaker="Prot" data-start="2556.400000" data-stop="2560.719000">To somebody who doesn't speak programming lingo,</span> <span class="audio-time caption" data-speaker="Prot" data-start="2560.720000" data-stop="2563.319000">syntactic sugar doesn't mean anything.</span> <span class="audio-time caption" data-speaker="Prot" data-start="2563.320000" data-stop="2565.159000">To me, it barely means anything</span> <span class="audio-time caption" data-speaker="Prot" data-start="2565.160000" data-stop="2567.199000">after knowing all this stuff.</span> <span class="audio-time caption" data-speaker="Prot" data-start="2567.200000" data-stop="2570.519000">So what does syntactic sugar actually mean?</span> <span class="audio-time caption" data-speaker="Prot" data-start="2570.520000" data-stop="2573.879000">So what do I have to do to evaluate this, right?</span> <span class="audio-time caption" data-speaker="Prot" data-start="2573.880000" data-stop="2578.039000">So I am like, okay, the more minimal you can do</span> <span class="audio-time caption" data-speaker="Prot" data-start="2578.040000" data-stop="2579.559000">is just have a config</span> <span class="audio-time caption" data-speaker="Prot" data-start="2579.560000" data-stop="2581.359000">and then you can do add-hook there,</span> <span class="audio-time caption" data-speaker="Prot" data-start="2581.360000" data-stop="2583.239000">bind-key there or whatever.</span> <span class="audio-time caption" data-speaker="Prot" data-start="2583.240000" data-stop="2585.719000">Granted, I don't do this here.</span> <span class="audio-time caption" data-speaker="Prot" data-start="2585.720000" data-stop="2586.879000">I don't follow this.</span> <span class="audio-time caption" data-speaker="Prot" data-start="2586.880000" data-stop="2588.679000">But I mean, if you want to have</span> <span class="audio-time caption" data-speaker="Prot" data-start="2588.680000" data-stop="2590.479000">like a combination of what you were saying</span> <span class="audio-time caption" data-speaker="Prot" data-start="2590.480000" data-stop="2591.679000">of the back and forth</span> <span class="audio-time caption" data-speaker="Prot" data-start="2591.680000" data-stop="2593.159000">while still retaining use-package,</span> <span class="audio-time caption" data-speaker="Prot" data-start="2593.160000" data-stop="2596.119000">you salvage that by doing the equivalent of this.</span> <span class="audio-time caption" data-speaker="Prot" data-start="2596.120000" data-stop="2597.359000">Just this.</span> <span class="audio-time caption" data-speaker="Prot" data-start="2597.360000" data-stop="2599.439000">And then everything goes under config.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="2599.440000" data-stop="2603.239000"><strong class="speaker-name">Sacha:</strong> And that's what I end up doing too.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2603.240000" data-stop="2607.599000">Just making it easier for me to change things</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2607.600000" data-stop="2610.879000">and re-evaluate them with C-x C-e</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2610.880000" data-stop="2613.879000">is definitely one of the major considerations.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2613.880000" data-stop="2617.919000">Okay, I've temporarily misplaced my...</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2617.920000" data-stop="2619.559000">Some people are very lucky.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2619.560000" data-stop="2622.519000">They actually have an Emacs channel at work</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2622.520000" data-stop="2624.839000">that they can ask for help</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2624.840000" data-stop="2628.799000">or they can come across recommendations for.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2628.800000" data-stop="2633.359000">That's nice for learning, @Rossbaker9079 says.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2633.360000" data-stop="2635.719000">It's not a full replacement for these other ideas,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2635.720000" data-stop="2637.279000">but it brings together people</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2637.280000" data-stop="2639.679000">solving the same problems with Emacs.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2639.680000" data-stop="2641.319000">Some people are lucky enough</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2641.320000" data-stop="2642.799000">to work in a large company</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2642.800000" data-stop="2644.439000">where other people are using Emacs.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2644.440000" data-stop="2646.079000">You should definitely take advantage of that.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2646.080000" data-stop="2650.239000">I hear there's actually a Discord server as well,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2650.240000" data-stop="2651.639000">and of course there's IRC,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2651.640000" data-stop="2654.039000">where people can also hang out</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2654.040000" data-stop="2656.479000">and hear other people talk about Emacs,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2656.480000" data-stop="2658.999000">ask questions, learn from other people's questions.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2659.000000" data-stop="2664.079000">I don't think you hang out in IRC or any of these places.</span> <p></p><span class="audio-time caption" data-speaker="Prot" data-start="2664.080000" data-stop="2666.159000"><strong class="speaker-name">Prot:</strong> No, no.</span> <span class="audio-time caption" data-speaker="Prot" data-start="2666.160000" data-stop="2668.199000">I haven't done it in a very long time.</span> <span class="audio-time caption" data-speaker="Prot" data-start="2668.200000" data-stop="2670.199000">I have an account there on IRC.</span> <span class="audio-time caption" data-speaker="Prot" data-start="2670.200000" data-stop="2671.199000">I think the last time I did,</span> <span class="audio-time caption" data-speaker="Prot" data-start="2671.200000" data-stop="2674.199000">it was in the last EmacsConf I could attend,</span> <span class="audio-time caption" data-speaker="Prot" data-start="2674.200000" data-stop="2677.879000">which is like maybe two or three years ago.</span> <span class="audio-time caption" data-speaker="Prot" data-start="2677.880000" data-stop="2679.919000">I forgot already.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="2679.920000" data-stop="2682.239000"><strong class="speaker-name">Sacha:</strong> It's yet another thing</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2682.240000" data-stop="2684.999000">that kind of distracts your attention.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2685.000000" data-stop="2687.439000">I also find Mastodon to be very helpful</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2687.440000" data-stop="2690.399000">for this stream of little updates</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2690.400000" data-stop="2692.599000">from people sharing their Emacs questions</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2692.600000" data-stop="2695.359000">or their things that they've just figured out.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2695.360000" data-stop="2698.559000">That's another useful resource for people.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2698.560000" data-stop="2701.279000">I've started trying to get people...</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2701.280000" data-stop="2703.879000">to support them in hooking up with this community,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2703.880000" data-stop="2705.999000">connecting with this community.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2706.000000" data-stop="2708.279000">The Emacs Newbie page has a link to learning Emacs,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2708.280000" data-stop="2712.639000">and one of those things says links to category community.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2712.640000" data-stop="2715.279000">Because if you're learning these things in isolation,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2715.280000" data-stop="2716.999000">you will get really, really stuck.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2717.000000" data-stop="2718.999000">And you will not progress.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2719.000000" data-stop="2722.039000">I think being able to connect with the Emacs community</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2722.040000" data-stop="2726.619000">is great for inspiration and figuring things out.</span> <p></p><span class="audio-time caption" data-speaker="Prot" data-start="2726.620000" data-stop="2728.639000"><strong class="speaker-name">Prot:</strong> Yes, yes, I agree, I agree.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="2728.000000">45:28</span> <strong>Culture of documentation and sharing</strong></div><p></p><span class="audio-time caption" data-speaker="Prot" data-start="2728.640000" data-stop="2731.439000"><strong class="speaker-name">Prot:</strong> Plus, it's another reason to hang out,</span> <span class="audio-time caption" data-speaker="Prot" data-start="2731.440000" data-stop="2734.279000">basically, like the social aspect of it.</span> <span class="audio-time caption" data-speaker="Prot" data-start="2734.280000" data-stop="2735.919000">Like, well, of course, I use it as a tool,</span> <span class="audio-time caption" data-speaker="Prot" data-start="2735.920000" data-stop="2738.879000">but there is a cultural component to it.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="2738.880000" data-stop="2742.399000"><strong class="speaker-name">Sacha:</strong> So tell me, what is your impression</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2742.400000" data-stop="2744.519000">of the Emacs culture so far?</span> <p></p><span class="audio-time caption" data-speaker="Prot" data-start="2744.520000" data-stop="2747.199000"><strong class="speaker-name">Prot:</strong> Oh, it's, of course,</span> <span class="audio-time caption" data-speaker="Prot" data-start="2747.200000" data-stop="2749.439000">we are talking about people who stick around, right?</span> <span class="audio-time caption" data-speaker="Prot" data-start="2749.440000" data-stop="2751.959000">Not people who will use Emacs once and then leave.</span> <span class="audio-time caption" data-speaker="Prot" data-start="2751.960000" data-stop="2753.839000">I think fundamentally</span> <span class="audio-time caption" data-speaker="Prot" data-start="2753.840000" data-stop="2756.239000">it's people who care about sharing.</span> <span class="audio-time caption" data-speaker="Prot" data-start="2756.240000" data-stop="2759.479000">I think the essence of it, it's really sharing.</span> <span class="audio-time caption" data-speaker="Prot" data-start="2759.480000" data-stop="2762.479000">And then, of course, that is expressed sharing code,</span> <span class="audio-time caption" data-speaker="Prot" data-start="2762.480000" data-stop="2765.799000">sharing ideas, and then, of course, documenting things.</span> <span class="audio-time caption" data-speaker="Prot" data-start="2765.800000" data-stop="2768.199000">So the documentation culture of Emacs,</span> <span class="audio-time caption" data-speaker="Prot" data-start="2768.200000" data-stop="2769.439000">I think it's really strong.</span> <span class="audio-time caption" data-speaker="Prot" data-start="2769.440000" data-stop="2772.159000">Like in other free software communities,</span> <span class="audio-time caption" data-speaker="Prot" data-start="2772.160000" data-stop="2774.399000">they are like, okay, we are sharing code,</span> <span class="audio-time caption" data-speaker="Prot" data-start="2774.400000" data-stop="2778.199000">but then code is its own documentation kind of thing.</span> <span class="audio-time caption" data-speaker="Prot" data-start="2778.200000" data-stop="2780.199000">Good code speaks for itself kind of thing.</span> <span class="audio-time caption" data-speaker="Prot" data-start="2780.200000" data-stop="2783.359000">Whereas in Emacs land, we are like, okay,</span> <span class="audio-time caption" data-speaker="Prot" data-start="2783.360000" data-stop="2784.599000">good code speaks for itself,</span> <span class="audio-time caption" data-speaker="Prot" data-start="2784.600000" data-stop="2788.919000">but here is this wall of text just in case.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="2788.920000" data-stop="2790.599000"><strong class="speaker-name">Sacha:</strong> And, you know,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2790.600000" data-stop="2792.039000">this is probably something</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2792.040000" data-stop="2793.479000">only two other people in the world</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2793.480000" data-stop="2794.679000">will ever want to do,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2794.680000" data-stop="2796.879000">but here it is just in case.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2796.880000" data-stop="2799.399000">I love those.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2799.400000" data-stop="2800.399000">I'm like, yeah,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2800.400000" data-stop="2803.279000">that's exactly what I wanted to do, actually.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2803.280000" data-stop="2803.719000">Thank you.</span> <p></p><span class="audio-time caption" data-speaker="Prot" data-start="2803.720000" data-stop="2806.159000"><strong class="speaker-name">Prot:</strong> Yeah, yeah, I agree.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="2806.160000" data-stop="2807.919000"><strong class="speaker-name">Sacha:</strong> It's a wonderful community,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2807.920000" data-stop="2810.039000">and I'm very glad that you're part of it,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2810.040000" data-stop="2811.439000">and I'm very glad</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2811.440000" data-stop="2814.079000">that lots of other people have joined in as well.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2814.080000" data-stop="2815.559000">Okay, let me go.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2815.560000" data-stop="2817.719000">Once again, I have misplaced my...</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2819.280000" data-stop="2822.379000">Okay, here we go.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2822.380000" data-stop="2824.459000">@ShaeErisson asked, "Is there a way to ask Emacs</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2824.460000" data-stop="2827.299000">which file it has read below the current configuration?"</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2827.300000" data-stop="2829.439000">That's the user init file variable,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2829.440000" data-stop="2831.399000">Shae, so you can just describe that.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="2831.000000">47:11</span> <strong>Link to a search</strong></div><p></p><span class="audio-time caption" data-speaker="Sacha" data-start="2831.400000" data-stop="2832.300000"><strong class="speaker-name">Sacha:</strong> @charliemcmackin4859 says,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2832.301000" data-stop="2833.479000">"thinking of the terminology problem,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2833.480000" data-stop="2835.999000">maybe offering search terms</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2836.000000" data-stop="2837.159000">for further exploration</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2837.160000" data-stop="2840.559000">rather than or in addition to links."</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2840.560000" data-stop="2842.759000">Which I guess like instead of just looking to</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2842.760000" data-stop="2845.639000">a specific resource which may or may not still exist.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2845.640000" data-stop="2847.319000">I was going through my beginner resources</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2847.320000" data-stop="2849.279000">and it's like this page no longer resolves</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2849.280000" data-stop="2851.919000">but like saying okay this is this is what it's called</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2851.920000" data-stop="2854.159000">and you can go search for your own resources,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2854.160000" data-stop="2855.599000">or this is the link,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2855.600000" data-stop="2857.159000">but also here's some other terms</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2857.160000" data-stop="2858.719000">that you might find useful.</span> <p></p><span class="audio-time caption" data-speaker="Prot" data-start="2858.720000" data-stop="2859.719000"><strong class="speaker-name">Prot:</strong> Yeah, yeah.</span> <span class="audio-time caption" data-speaker="Prot" data-start="2859.720000" data-stop="2861.839000">Just to add to what this person was asking,</span> <span class="audio-time caption" data-speaker="Prot" data-start="2861.840000" data-stop="2863.159000">was suggesting is like,</span> <span class="audio-time caption" data-speaker="Prot" data-start="2863.160000" data-stop="2865.919000">because we had something like this in Denote</span> <span class="audio-time caption" data-speaker="Prot" data-start="2865.920000" data-stop="2867.999000">and eventually I implemented it.</span> <span class="audio-time caption" data-speaker="Prot" data-start="2868.000000" data-stop="2869.559000">So there are two kinds of links.</span> <span class="audio-time caption" data-speaker="Prot" data-start="2869.560000" data-stop="2873.479000">One is a direct pointer where it's like, go there.</span> <span class="audio-time caption" data-speaker="Prot" data-start="2873.480000" data-stop="2876.959000">The other is basically the equivalent of a button</span> <span class="audio-time caption" data-speaker="Prot" data-start="2876.960000" data-stop="2878.079000">that triggers a search.</span> <span class="audio-time caption" data-speaker="Prot" data-start="2878.080000" data-stop="2880.079000">For example, let's imagine</span> <span class="audio-time caption" data-speaker="Prot" data-start="2880.080000" data-stop="2882.159000">in terms of files and directories,</span> <span class="audio-time caption" data-speaker="Prot" data-start="2882.160000" data-stop="2884.559000">like a direct link goes to a file.</span> <span class="audio-time caption" data-speaker="Prot" data-start="2884.560000" data-stop="2887.559000">A query link, you click on it,</span> <span class="audio-time caption" data-speaker="Prot" data-start="2887.560000" data-stop="2889.679000">it opens a directory listing</span> <span class="audio-time caption" data-speaker="Prot" data-start="2889.680000" data-stop="2891.559000">of all files that match the query.</span> <span class="audio-time caption" data-speaker="Prot" data-start="2891.560000" data-stop="2893.879000">And that is basically evergreen.</span> <span class="audio-time caption" data-speaker="Prot" data-start="2893.880000" data-stop="2896.639000">It will always show you whatever is matching.</span> <span class="audio-time caption" data-speaker="Prot" data-start="2896.640000" data-stop="2899.559000">And maybe we could have something like that</span> <span class="audio-time caption" data-speaker="Prot" data-start="2899.560000" data-stop="2903.679000">for info buffers, where instead of a link to a node,</span> <span class="audio-time caption" data-speaker="Prot" data-start="2903.680000" data-stop="2906.639000">you do that and it produces a listing</span> <span class="audio-time caption" data-speaker="Prot" data-start="2906.640000" data-stop="2908.599000">of all nodes that match the query.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="2908.600000" data-stop="2912.279000"><strong class="speaker-name">Sacha:</strong> Hmm, that's quite interesting.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2912.280000" data-stop="2913.839000">Or like when we, you know,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2913.840000" data-stop="2915.239000">if we're writing about something,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2915.240000" data-stop="2917.319000">we can say, you know,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2917.320000" data-stop="2919.199000">here's the apropos command</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2919.200000" data-stop="2921.639000">to go find all the commands,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2921.640000" data-stop="2924.879000">things that are related to this concept.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2924.880000" data-stop="2927.199000">Even just getting people</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2927.200000" data-stop="2929.279000">to learn about how to use apropos,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2929.280000" data-stop="2934.039000">I think, would be a great step in helping them.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2934.040000" data-stop="2938.399000">Even before that, just getting them to a completion setup</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2938.400000" data-stop="2943.079000">where they can ideally use something like orderless</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2943.080000" data-stop="2945.119000">to just find things.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2945.120000" data-stop="2949.479000">Yeah. I think it would definitely help with</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2949.480000" data-stop="2950.719000">the discoverability thing.</span> <p></p><span class="audio-time caption" data-speaker="Prot" data-start="2950.720000" data-stop="2955.359000"><strong class="speaker-name">Prot:</strong> Yes. I think like Vertico and Orderless are like...</span> <span class="audio-time caption" data-speaker="Prot" data-start="2955.360000" data-stop="2959.079000">if you have to install two packages, it's those two.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="2959.080000" data-stop="2962.439000"><strong class="speaker-name">Sacha:</strong> Yeah. It is great.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2962.440000" data-stop="2963.519000">Okay.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2963.520000" data-stop="2966.479000">Where are we now?</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2966.480000" data-stop="2967.319000">I keep...</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2967.320000" data-stop="2974.079000">We've talked about the sandwich that has to be made.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2974.080000" data-stop="2978.399000">We've talked about getting people into it,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2978.400000" data-stop="2980.919000">helping them discover concepts,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2980.920000" data-stop="2984.599000">helping them connect with the community.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2984.600000" data-stop="2985.799000">And then there's a thing about</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2985.800000" data-stop="2986.999000">how do we support people</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2987.000000" data-stop="2988.939000">as they do their lifelong learning.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="2988.000000">49:48</span> <strong>Getting through the gap between beginner tutorials and the next step</strong></div><p></p><span class="audio-time caption" data-speaker="Sacha" data-start="2988.940000" data-stop="2989.279000"><strong class="speaker-name">Sacha:</strong> A lot of people,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2989.280000" data-stop="2991.759000">maybe they'll get through the tutorial fine,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2991.760000" data-stop="2993.919000">but then when they start to try to do</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2993.920000" data-stop="2995.999000">something more sophisticated, like,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2996.000000" data-stop="2999.559000">oh yeah, I need to do something similar to my IDE.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2999.560000" data-stop="3002.079000">I want to have all these different bits and bobs</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3002.080000" data-stop="3004.319000">working the way that they do in my other editor.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3004.320000" data-stop="3006.079000">That's where things break down</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3006.080000" data-stop="3010.239000">because the tutorial gets them through the, you know,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3010.240000" data-stop="3010.879000">here are the basics,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3010.880000" data-stop="3013.319000">but then there's this huge gulf before that,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3013.320000" data-stop="3015.999000">okay, this is how I can be more productive with it.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3016.000000" data-stop="3017.519000">How do we fix that?</span> <p></p><span class="audio-time caption" data-speaker="Prot" data-start="3017.520000" data-stop="3019.999000"><strong class="speaker-name">Prot:</strong> Yes, that's very difficult</span> <span class="audio-time caption" data-speaker="Prot" data-start="3020.000000" data-stop="3024.759000">because part of that requires Emacs Lisp knowledge.</span> <span class="audio-time caption" data-speaker="Prot" data-start="3024.760000" data-stop="3026.919000">Like, for example, an IDE, of course,</span> <span class="audio-time caption" data-speaker="Prot" data-start="3026.920000" data-stop="3028.879000">I haven't used one myself,</span> <span class="audio-time caption" data-speaker="Prot" data-start="3028.880000" data-stop="3029.919000">but from what I understand,</span> <span class="audio-time caption" data-speaker="Prot" data-start="3029.920000" data-stop="3031.079000">there is a sidebar</span> <span class="audio-time caption" data-speaker="Prot" data-start="3031.080000" data-stop="3033.559000">with the tree view of your files.</span> <span class="audio-time caption" data-speaker="Prot" data-start="3033.560000" data-stop="3035.359000">At the bottom, there is a shell.</span> <span class="audio-time caption" data-speaker="Prot" data-start="3035.360000" data-stop="3036.799000">Maybe there is some debugger there,</span> <span class="audio-time caption" data-speaker="Prot" data-start="3036.800000" data-stop="3040.199000">some other sidebar on the side.</span> <span class="audio-time caption" data-speaker="Prot" data-start="3040.200000" data-stop="3041.759000">So to replicate that,</span> <span class="audio-time caption" data-speaker="Prot" data-start="3041.760000" data-stop="3044.559000">you really need to massage the display-buffer-alist</span> <span class="audio-time caption" data-speaker="Prot" data-start="3044.560000" data-stop="3048.399000">which I think requires a lot of knowledge,</span> <span class="audio-time caption" data-speaker="Prot" data-start="3048.400000" data-stop="3050.559000">like you need to understand the display buffer,</span> <span class="audio-time caption" data-speaker="Prot" data-start="3050.560000" data-stop="3053.399000">you need to know about window...</span> <span class="audio-time caption" data-speaker="Prot" data-start="3053.400000" data-stop="3057.919000">what's it called? Even I forget. Attributes and all that.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="3057.920000" data-stop="3060.119000"><strong class="speaker-name">Sacha:</strong> I don't even do it myself.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3060.120000" data-stop="3062.599000">If I feel like I need to do anything related to</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3062.600000" data-stop="3065.159000">display-buffer-alist, I'm just like, okay,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3065.160000" data-stop="3066.000000">I'm going to look for an example</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3066.001000" data-stop="3068.499000">and I'm going to copy it very carefully.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="3068.000000">51:08</span> <strong>Predictability
</strong></div><p></p><a href="https://sachachua.com/blog/2026/04/yay-emacs-sacha-and-prot-talk-emacs-newbies-starter-kits/mpv-shot0003.jpg"><img src="https://sachachua.com/blog/2026/04/yay-emacs-sacha-and-prot-talk-emacs-newbies-starter-kits/mpv-shot0003.jpg" alt="image from video" data-time="00:51:10.900"></a><span class="audio-time caption" data-speaker="Prot" data-start="3068.500000" data-stop="3073.879000"><strong class="speaker-name">Prot:</strong> Okay, so this is for you.</span> <span class="audio-time caption" data-speaker="Prot" data-start="3073.880000" data-stop="3077.599000">It's like too much work, but I must say.</span> <span class="audio-time caption" data-speaker="Prot" data-start="3077.600000" data-stop="3079.879000">This looks like arcane knowledge</span> <span class="audio-time caption" data-speaker="Prot" data-start="3079.880000" data-stop="3082.359000">but this sort of thing</span> <span class="audio-time caption" data-speaker="Prot" data-start="3082.360000" data-stop="3085.479000">actually is a quality of life improvement</span> <span class="audio-time caption" data-speaker="Prot" data-start="3085.480000" data-stop="3086.199000">to your Emacs</span> <span class="audio-time caption" data-speaker="Prot" data-start="3086.200000" data-stop="3089.279000">because one thing that I think is bad</span> <span class="audio-time caption" data-speaker="Prot" data-start="3089.280000" data-stop="3091.239000">about the default Emacs experience</span> <span class="audio-time caption" data-speaker="Prot" data-start="3091.240000" data-stop="3094.599000">is uncertainty about where things will show up.</span> <span class="audio-time caption" data-speaker="Prot" data-start="3094.600000" data-stop="3095.959000">Like, you never know.</span> <span class="audio-time caption" data-speaker="Prot" data-start="3095.960000" data-stop="3097.839000">Like, you cannot predict it.</span> <span class="audio-time caption" data-speaker="Prot" data-start="3097.840000" data-stop="3101.559000">Because Emacs tries to be sensible about it</span> <span class="audio-time caption" data-speaker="Prot" data-start="3101.560000" data-stop="3103.239000">or whatever, but you cannot predict it.</span> <span class="audio-time caption" data-speaker="Prot" data-start="3103.240000" data-stop="3106.439000">Whereas things that are ancillary</span> <span class="audio-time caption" data-speaker="Prot" data-start="3106.440000" data-stop="3111.119000">should have kind of a more predictable behavior.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="3111.000000">51:51</span> <strong>Brief mention of Popper</strong></div><p></p><span class="audio-time caption" data-speaker="Prot" data-start="3111.120000" data-stop="3112.239000"><strong class="speaker-name">Prot:</strong> And by the way, there is a package</span> <span class="audio-time caption" data-speaker="Prot" data-start="3112.240000" data-stop="3114.599000">by Karthik Chikmagalur called Popper.</span> <span class="audio-time caption" data-speaker="Prot" data-start="3114.600000" data-stop="3116.639000">I didn't mention it, but yeah,</span> <span class="audio-time caption" data-speaker="Prot" data-start="3116.640000" data-stop="3118.599000">it's basically another way</span> <span class="audio-time caption" data-speaker="Prot" data-start="3118.600000" data-stop="3120.439000">to do the display-buffer-alist.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="3120.440000" data-stop="3123.959000"><strong class="speaker-name">Sacha:</strong> Mm-hmm.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3123.960000" data-stop="3126.199000">So there's an interesting thing here</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3126.200000" data-stop="3127.239000">where you have the beginners.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3127.240000" data-stop="3131.759000">Okay, they're just getting through the tutorial.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3131.760000" data-stop="3133.399000">If they can get to the point</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3133.400000" data-stop="3135.079000">where they can edit the file, click on,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3135.080000" data-stop="3137.519000">even just use the menu bar to say file save,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3137.520000" data-stop="3140.359000">file open and all that stuff, that's great.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3140.360000" data-stop="3142.279000">Then the step beyond that is, okay,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3142.280000" data-stop="3143.879000">how do they start to use packages?</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3143.880000" data-stop="3145.879000">And quite...</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="3145.000000">52:25</span> <strong>Earlier is better than later for Emacs Lisp. Take it as is.</strong></div><p></p><span class="audio-time caption" data-speaker="Sacha" data-start="3145.880000" data-stop="3148.759000"><strong class="speaker-name">Sacha:</strong> It feels like in order for them</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3148.760000" data-stop="3150.879000">to be able to use packages like Popper or all these,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3150.880000" data-stop="3154.279000">they gotta be unafraid to use Emacs Lisp.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3154.280000" data-stop="3156.599000">Because all the packages, you know, tell them,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3156.600000" data-stop="3159.999000">okay, just put this use package in your config,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3160.000000" data-stop="3161.779000">but you gotta be comfortable.</span> <p></p><span class="audio-time caption" data-speaker="Prot" data-start="3161.780000" data-stop="3163.319000"><strong class="speaker-name">Prot:</strong> And that's why I think</span> <span class="audio-time caption" data-speaker="Prot" data-start="3163.320000" data-stop="3165.519000">you have to basically circumvent Customize.</span> <span class="audio-time caption" data-speaker="Prot" data-start="3165.520000" data-stop="3169.279000">Like the earlier you are exposed to Emacs Lisp,</span> <span class="audio-time caption" data-speaker="Prot" data-start="3169.280000" data-stop="3171.759000">I think the better it is for you long term.</span> <span class="audio-time caption" data-speaker="Prot" data-start="3171.760000" data-stop="3174.799000">Because there is no way around it.</span> <span class="audio-time caption" data-speaker="Prot" data-start="3174.800000" data-stop="3176.359000">You will have to deal with it.</span> <span class="audio-time caption" data-speaker="Prot" data-start="3176.360000" data-stop="3181.439000">and even if you don't quite know how things work,</span> <span class="audio-time caption" data-speaker="Prot" data-start="3181.440000" data-stop="3184.079000">like even, for example, this thing here,</span> <span class="audio-time caption" data-speaker="Prot" data-start="3184.080000" data-stop="3186.719000">where it's like, there is a line between them,</span> <span class="audio-time caption" data-speaker="Prot" data-start="3186.720000" data-stop="3188.479000">even if you don't understand code,</span> <span class="audio-time caption" data-speaker="Prot" data-start="3188.480000" data-stop="3192.399000">you can start to think in terms of blocks</span> <span class="audio-time caption" data-speaker="Prot" data-start="3192.400000" data-stop="3195.799000">even if you don't understand this code...</span> <span class="audio-time caption" data-speaker="Prot" data-start="3195.800000" data-stop="3197.759000">Maybe with a few comments here and there,</span> <span class="audio-time caption" data-speaker="Prot" data-start="3197.760000" data-stop="3200.119000">that can become a bit more obvious as well.</span> <span class="audio-time caption" data-speaker="Prot" data-start="3200.120000" data-stop="3204.719000">But of course, like you go to a package</span> <span class="audio-time caption" data-speaker="Prot" data-start="3204.720000" data-stop="3207.079000">and the first thing it will tell you is, okay,</span> <span class="audio-time caption" data-speaker="Prot" data-start="3207.080000" data-stop="3208.359000">add this to your config</span> <span class="audio-time caption" data-speaker="Prot" data-start="3208.360000" data-stop="3210.519000">and it's a use-package declaration, for example.</span> <span class="audio-time caption" data-speaker="Prot" data-start="3210.520000" data-stop="3216.959000">And you will be like, what is a config?</span> <span class="audio-time caption" data-speaker="Prot" data-start="3216.960000" data-stop="3220.799000">The better solution is</span> <span class="audio-time caption" data-speaker="Prot" data-start="3220.800000" data-stop="3222.279000">for you to know that quickly,</span> <span class="audio-time caption" data-speaker="Prot" data-start="3222.280000" data-stop="3223.159000">learn it quickly.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="3223.160000" data-stop="3226.119000"><strong class="speaker-name">Sacha:</strong> There's this whole intimidation factor,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3226.120000" data-stop="3228.199000">especially for people who are coming from</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3228.200000" data-stop="3229.119000">non-programming backgrounds,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3229.120000" data-stop="3230.679000">and suddenly they're like,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3230.680000" data-stop="3232.919000">there are a lot of parentheses in this.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3232.920000" data-stop="3238.119000">Do I have to be a programmer in order to use this?</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3238.120000" data-stop="3240.319000">You just go right into it,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3240.320000" data-stop="3242.999000">but I'm sure you've talked to people</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3243.000000" data-stop="3245.399000">who maybe weren't sure about it.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3245.400000" data-stop="3247.119000">How do you get them over that hump?</span> <p></p><span class="audio-time caption" data-speaker="Prot" data-start="3247.120000" data-stop="3251.319000"><strong class="speaker-name">Prot:</strong> Basically the idea is treat it</span> <span class="audio-time caption" data-speaker="Prot" data-start="3251.320000" data-stop="3254.719000">as something that is inscrutable right now.</span> <span class="audio-time caption" data-speaker="Prot" data-start="3254.720000" data-stop="3256.039000">Just take it as is.</span> <span class="audio-time caption" data-speaker="Prot" data-start="3256.040000" data-stop="3257.999000">Take it at face value basically.</span> <span class="audio-time caption" data-speaker="Prot" data-start="3258.000000" data-stop="3259.479000">You don't need to understand it.</span> <span class="audio-time caption" data-speaker="Prot" data-start="3259.480000" data-stop="3261.399000">You don't need to be able to debug it.</span> <span class="audio-time caption" data-speaker="Prot" data-start="3261.400000" data-stop="3264.479000">Take it as is and just make sure</span> <span class="audio-time caption" data-speaker="Prot" data-start="3264.480000" data-stop="3265.799000">moving your cursor</span> <span class="audio-time caption" data-speaker="Prot" data-start="3265.800000" data-stop="3269.719000">that this kind of balance is preserved</span> <span class="audio-time caption" data-speaker="Prot" data-start="3269.720000" data-stop="3272.599000">by checking that there is a parenthesis at the beginning</span> <span class="audio-time caption" data-speaker="Prot" data-start="3272.600000" data-stop="3274.599000">and there is a parenthesis at the end.</span> <span class="audio-time caption" data-speaker="Prot" data-start="3274.600000" data-stop="3278.679000">So, show parent mode helps in that regard,</span> <span class="audio-time caption" data-speaker="Prot" data-start="3278.680000" data-stop="3279.999000">which is enabled by default.</span> <span class="audio-time caption" data-speaker="Prot" data-start="3280.000000" data-stop="3284.039000">Of course, you cannot really get around it.</span> <span class="audio-time caption" data-speaker="Prot" data-start="3284.040000" data-stop="3286.799000">Like, you cannot have a training wheels mode</span> <span class="audio-time caption" data-speaker="Prot" data-start="3286.800000" data-stop="3289.879000">for Elisp, unfortunately.</span> <span class="audio-time caption" data-speaker="Prot" data-start="3289.880000" data-stop="3293.959000">You can do something like rainbow-delimiters, you know, the package.</span> <span class="audio-time caption" data-speaker="Prot" data-start="3293.960000" data-stop="3297.959000">You can help, but I'm not sure that helps by a lot.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="3297.960000" data-stop="3302.279000"><strong class="speaker-name">Sacha:</strong> Yeah, yeah.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3302.280000" data-stop="3306.959000">And it's like, OK, so you just got to do it.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3306.960000" data-stop="3308.319000">Don't be too scared.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3308.320000" data-stop="3310.079000">But it's OK to just copy and paste</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3310.080000" data-stop="3311.559000">and trust that as you do this,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3311.560000" data-stop="3314.279000">you will learn enough that when you go back,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3314.280000" data-stop="3317.079000">you'll be able to understand more and more of it.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="3317.000000">55:17</span> <strong>Before and after comparisons</strong></div><p></p><span class="audio-time caption" data-speaker="Prot" data-start="3317.080000" data-stop="3319.079000"><strong class="speaker-name">Prot:</strong> Yes. What helps, for example,</span> <span class="audio-time caption" data-speaker="Prot" data-start="3319.080000" data-stop="3320.399000">in this block here, of course,</span> <span class="audio-time caption" data-speaker="Prot" data-start="3320.400000" data-stop="3322.359000">I don't have to describe the code.</span> <span class="audio-time caption" data-speaker="Prot" data-start="3322.360000" data-stop="3326.159000">But if you do this iterative approach</span> <span class="audio-time caption" data-speaker="Prot" data-start="3326.160000" data-stop="3328.239000">that we mentioned earlier of step by step,</span> <span class="audio-time caption" data-speaker="Prot" data-start="3328.240000" data-stop="3331.879000">like you can try your Emacs before this and after this.</span> <span class="audio-time caption" data-speaker="Prot" data-start="3331.880000" data-stop="3335.279000">And based of course on some comment or whatever,</span> <span class="audio-time caption" data-speaker="Prot" data-start="3335.280000" data-stop="3337.079000">you can see what the difference is.</span> <span class="audio-time caption" data-speaker="Prot" data-start="3337.080000" data-stop="3338.999000">So even if you don't understand the code,</span> <span class="audio-time caption" data-speaker="Prot" data-start="3339.000000" data-stop="3341.079000">you understand the effects of the code.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="3341.080000" data-stop="3342.119000"><strong class="speaker-name">Sacha:</strong> Yeah, yeah.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3342.120000" data-stop="3344.039000">Before and after comparisons.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3344.040000" data-stop="3350.799000">I'm guilty of not taking advantage of this enough myself.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3350.800000" data-stop="3352.119000">I'm just like, oh yeah,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3352.120000" data-stop="3354.599000">I'm just going to evaluate it in my current Emacs</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3354.600000" data-stop="3356.079000">and sometimes the results are obvious</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3356.080000" data-stop="3358.319000">and sometimes the results kind of break my Emacs</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3358.320000" data-stop="3360.799000">and I'm like, okay, I got to restart Emacs instead.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3360.800000" data-stop="3364.639000">I should have just started a new Emacs and tried it there.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="3364.000000">56:04</span> <strong>user-init-directory</strong></div><p></p><span class="audio-time caption" data-speaker="Sacha" data-start="3364.640000" data-stop="3367.079000"><strong class="speaker-name">Sacha:</strong> But with the new user... Well, I say new,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3367.080000" data-stop="3370.879000">but actually &#45;&#45;user-init-directory has been around since Emacs 29.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3370.880000" data-stop="3373.359000">So it's pretty much widely available now.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3373.360000" data-stop="3376.399000">People can actually try, for example,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3376.400000" data-stop="3378.759000">a starter kit without committing to it.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3378.760000" data-stop="3381.679000">Do you see newbies actually use this?</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3381.680000" data-stop="3384.079000">Because I tell people, okay, you can do this,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3384.080000" data-stop="3385.959000">but it requires using the command line</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3385.960000" data-stop="3387.279000">and using command line arguments.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3387.280000" data-stop="3391.159000">Is that a thing they can do?</span> <p></p><span class="audio-time caption" data-speaker="Prot" data-start="3391.160000" data-stop="3393.359000"><strong class="speaker-name">Prot:</strong> I have introduced it to some people</span> <span class="audio-time caption" data-speaker="Prot" data-start="3393.360000" data-stop="3394.799000">and they have used it, yes.</span> <span class="audio-time caption" data-speaker="Prot" data-start="3394.800000" data-stop="3397.919000">But I don't know if people use it</span> <span class="audio-time caption" data-speaker="Prot" data-start="3397.920000" data-stop="3399.519000">as part of their workflow</span> <span class="audio-time caption" data-speaker="Prot" data-start="3399.520000" data-stop="3402.119000">or maybe they have just a cheat sheet</span> <span class="audio-time caption" data-speaker="Prot" data-start="3402.120000" data-stop="3403.159000">specifically for this</span> <span class="audio-time caption" data-speaker="Prot" data-start="3403.160000" data-stop="3405.079000">where it's like, oh, I want to try this</span> <span class="audio-time caption" data-speaker="Prot" data-start="3405.080000" data-stop="3406.319000">and I want to try that.</span> <span class="audio-time caption" data-speaker="Prot" data-start="3406.320000" data-stop="3411.679000">But eventually they don't use it day by day, I think.</span> <span class="audio-time caption" data-speaker="Prot" data-start="3411.680000" data-stop="3412.959000">They just settle.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="3412.960000" data-stop="3415.159000"><strong class="speaker-name">Sacha:</strong> if you want to try something big,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3415.160000" data-stop="3418.119000">then you know you can say, try that starter kit,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3418.120000" data-stop="3420.719000">but don't necessarily go to</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3420.720000" data-stop="3423.239000">the work of making it my .emacs.d and so forth.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3423.240000" data-stop="3425.159000">Yes, that's a good one.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3425.160000" data-stop="3427.900000">They just say put this in your init file</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3427.901000" data-stop="3429.500000">so it's a lot easier to back it out</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3429.501000" data-stop="3430.600000">and change your mind.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3430.601000" data-stop="3437.167000">I had a thought, but it has disappeared,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3437.168000" data-stop="3438.867000">so I will just read something else from the chat.</span> <p></p><span class="audio-time caption" data-speaker="Prot" data-start="3438.868000" data-stop="3440.719000"><strong class="speaker-name">Prot:</strong> That's fine.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="3440.000000">57:20</span> <strong>Emacs core</strong></div><p></p><span class="audio-time caption" data-speaker="Sacha" data-start="3440.720000" data-stop="3441.367000"><strong class="speaker-name">Sacha:</strong> @romsno says,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3441.368000" data-stop="3443.439000">"Do you fear that Emacs C core will go unmaintained?</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3443.440000" data-stop="3446.159000">Deep knowledge is rare, held by few, like Eli.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3446.160000" data-stop="3448.599000">While finding Elisp maintainers is easier,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3448.600000" data-stop="3451.119000">like with elfeed, the core is hard to replace."</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3451.120000" data-stop="3452.679000">So I guess if you're thinking about</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3452.680000" data-stop="3456.479000">the long-term: newbie, to package user,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3456.480000" data-stop="3458.679000">to package developer, to who knows,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3458.680000" data-stop="3460.119000">Emacs core contributor,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3460.120000" data-stop="3462.239000">And then off to the C,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3462.240000" data-stop="3464.679000">like somebody who knows the C core,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3464.680000" data-stop="3468.279000">that's a very long and somewhat leaky pathway.</span> <p></p><span class="audio-time caption" data-speaker="Prot" data-start="3468.280000" data-stop="3470.719000"><strong class="speaker-name">Prot:</strong> It is for sure, for sure.</span> <span class="audio-time caption" data-speaker="Prot" data-start="3470.720000" data-stop="3472.999000">But of course, here we are talking about</span> <span class="audio-time caption" data-speaker="Prot" data-start="3473.000000" data-stop="3477.879000">people who have expertise in those specific domains.</span> <span class="audio-time caption" data-speaker="Prot" data-start="3477.880000" data-stop="3479.759000">And yeah, that's something</span> <span class="audio-time caption" data-speaker="Prot" data-start="3479.760000" data-stop="3482.319000">that it's an experienced Emacs user already.</span> <span class="audio-time caption" data-speaker="Prot" data-start="3482.320000" data-stop="3483.959000">Like we are talking about somebody</span> <span class="audio-time caption" data-speaker="Prot" data-start="3483.960000" data-stop="3486.599000">who not only is actually an experienced Emacs user,</span> <span class="audio-time caption" data-speaker="Prot" data-start="3486.600000" data-stop="3490.759000">but also knows the relevant technical knowledge.</span> <span class="audio-time caption" data-speaker="Prot" data-start="3490.760000" data-stop="3491.439000">Right.</span> <span class="audio-time caption" data-speaker="Prot" data-start="3491.440000" data-stop="3494.279000">I am an experienced user, for example,</span> <span class="audio-time caption" data-speaker="Prot" data-start="3494.280000" data-stop="3495.119000">but I don't know C,</span> <span class="audio-time caption" data-speaker="Prot" data-start="3495.120000" data-stop="3497.159000">so I'm useless in this regard.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="3497.160000" data-stop="3502.519000"><strong class="speaker-name">Sacha:</strong> I guess if we zoom out a little bit,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3502.520000" data-stop="3507.279000">we can think about how do we help people connect with</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3507.280000" data-stop="3510.679000">the long-term motivation that drives,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3510.680000" data-stop="3511.799000">that you mentioned earlier,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3511.800000" data-stop="3514.919000">to keep using Emacs,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3514.920000" data-stop="3516.079000">to learn more about it,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3516.080000" data-stop="3519.159000">to enjoy using it and fiddling with it</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3519.160000" data-stop="3520.759000">and get deeper into it.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3520.760000" data-stop="3523.679000">For some people, Emacs clicks right away</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3523.680000" data-stop="3527.279000">because they already tinker with other things</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3527.280000" data-stop="3529.639000">and it becomes another thing to tinker with.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3529.640000" data-stop="3532.519000">For some people, it's like, I don't know,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3532.520000" data-stop="3534.279000">I've heard I should use</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3534.280000" data-stop="3536.399000">this or I've heard people say good things</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3536.400000" data-stop="3538.119000">about Org Mode or about Magit.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3538.120000" data-stop="3542.619000">I just want to see what it's like.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="3542.000000">59:02</span> <strong>Getting past the initial awkward phase</strong></div><p></p><span class="audio-time caption" data-speaker="Sacha" data-start="3542.620000" data-stop="3544.639000"><strong class="speaker-name">Sacha:</strong> So going back to that, how do we get people hooked?</span> <p></p><span class="audio-time caption" data-speaker="Prot" data-start="3544.640000" data-stop="3547.359000"><strong class="speaker-name">Prot:</strong> Yeah, yeah, yeah.</span> <span class="audio-time caption" data-speaker="Prot" data-start="3547.360000" data-stop="3549.479000">It's that initial awkward phase.</span> <span class="audio-time caption" data-speaker="Prot" data-start="3549.480000" data-stop="3550.719000">Like if they can get past that,</span> <span class="audio-time caption" data-speaker="Prot" data-start="3550.720000" data-stop="3553.359000">and by awkward phase, here I mean</span> <span class="audio-time caption" data-speaker="Prot" data-start="3553.360000" data-stop="3558.439000">to actually understand Emacs and the key bindings</span> <span class="audio-time caption" data-speaker="Prot" data-start="3558.440000" data-stop="3560.519000">and how to move between windows</span> <span class="audio-time caption" data-speaker="Prot" data-start="3560.520000" data-stop="3563.199000">and there is a mini buffer, that sort of thing.</span> <span class="audio-time caption" data-speaker="Prot" data-start="3563.200000" data-stop="3564.439000">Once they get past that,</span> <span class="audio-time caption" data-speaker="Prot" data-start="3564.440000" data-stop="3566.959000">I think that people stick around.</span> <span class="audio-time caption" data-speaker="Prot" data-start="3566.960000" data-stop="3568.959000">Like if they have, for example,</span> <span class="audio-time caption" data-speaker="Prot" data-start="3568.960000" data-stop="3570.439000">a use for it such as, okay,</span> <span class="audio-time caption" data-speaker="Prot" data-start="3570.440000" data-stop="3574.619000">I use it for org, they do stick around.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="3574.000000">59:34</span> <strong>Even reporting an issue is a great contribution</strong></div><p></p><span class="audio-time caption" data-speaker="Prot" data-start="3574.620000" data-stop="3576.279000"><strong class="speaker-name">Prot:</strong> There are a lot of people who contribute,</span> <span class="audio-time caption" data-speaker="Prot" data-start="3576.280000" data-stop="3577.839000">like even non-programmers.</span> <span class="audio-time caption" data-speaker="Prot" data-start="3577.840000" data-stop="3580.159000">And this is something I encourage in my packages,</span> <span class="audio-time caption" data-speaker="Prot" data-start="3580.160000" data-stop="3583.319000">for example, where it's like, write me an issue.</span> <span class="audio-time caption" data-speaker="Prot" data-start="3583.320000" data-stop="3585.199000">You don't need to know any code.</span> <span class="audio-time caption" data-speaker="Prot" data-start="3585.200000" data-stop="3587.079000">You don't have to tell me about how to do it.</span> <span class="audio-time caption" data-speaker="Prot" data-start="3587.080000" data-stop="3588.679000">Just tell me what your idea is.</span> <span class="audio-time caption" data-speaker="Prot" data-start="3588.680000" data-stop="3591.199000">And in all my manuals that I write,</span> <span class="audio-time caption" data-speaker="Prot" data-start="3591.200000" data-stop="3593.159000">I have an acknowledgement section</span> <span class="audio-time caption" data-speaker="Prot" data-start="3593.160000" data-stop="3594.479000">where I have, you know,</span> <span class="audio-time caption" data-speaker="Prot" data-start="3594.480000" data-stop="3596.719000">ideas or suggestions or whatever.</span> <span class="audio-time caption" data-speaker="Prot" data-start="3596.720000" data-stop="3599.479000">And I write the name of everybody</span> <span class="audio-time caption" data-speaker="Prot" data-start="3599.480000" data-stop="3600.839000">who has ever created an issue</span> <span class="audio-time caption" data-speaker="Prot" data-start="3600.840000" data-stop="3603.159000">because it's like you help</span> <span class="audio-time caption" data-speaker="Prot" data-start="3603.160000" data-stop="3606.199000">even by telling me what your use case is.</span> <span class="audio-time caption" data-speaker="Prot" data-start="3606.200000" data-stop="3608.799000">And that already helps.</span> <span class="audio-time caption" data-speaker="Prot" data-start="3608.800000" data-stop="3610.359000">And it gets the people involved as well.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="3610.360000" data-stop="3612.479000"><strong class="speaker-name">Sacha:</strong> They spend time trying it out</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3612.480000" data-stop="3614.799000">and describing what the difference was</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3614.800000" data-stop="3615.559000">between what happened</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3615.560000" data-stop="3617.479000">and what they wanted to happen.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3617.480000" data-stop="3619.799000">And sometimes even just identifying the issue</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3619.800000" data-stop="3621.959000">is a big part of it already</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3621.960000" data-stop="3623.759000">because you can't test everything.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3623.760000" data-stop="3626.679000">So we can definitely help people</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3626.680000" data-stop="3630.199000">feel more included in the community</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3630.200000" data-stop="3634.399000">because they don't have to be core developers</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3634.400000" data-stop="3637.919000">or package authors to be part of the community.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3637.920000" data-stop="3644.679000">Even using it and writing about it is a big help.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="3644.000000">1:00:44</span> <strong>Next steps: adding to the wiki</strong></div><p></p><span class="audio-time caption" data-speaker="Sacha" data-start="3644.680000" data-stop="3645.599000"><strong class="speaker-name">Sacha:</strong> In the four minutes before</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3645.600000" data-stop="3648.399000">I have to make a grilled cheese sandwich,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3648.400000" data-stop="3651.359000">shall we wrap up with some concrete things</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3651.360000" data-stop="3653.719000">that you or me or somebody listening can do</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3653.720000" data-stop="3658.359000">to help improve the newcomer experience for Emacs?</span> <p></p><span class="audio-time caption" data-speaker="Prot" data-start="3658.360000" data-stop="3660.919000"><strong class="speaker-name">Prot:</strong> You were doing it already.</span> <span class="audio-time caption" data-speaker="Prot" data-start="3660.920000" data-stop="3662.559000">You were doing the wiki.</span> <span class="audio-time caption" data-speaker="Prot" data-start="3662.560000" data-stop="3663.479000">I think that's good.</span> <span class="audio-time caption" data-speaker="Prot" data-start="3663.480000" data-stop="3665.239000">A link, a direct link</span> <span class="audio-time caption" data-speaker="Prot" data-start="3665.240000" data-stop="3667.159000">to the newbie section I think is great.</span> <span class="audio-time caption" data-speaker="Prot" data-start="3667.160000" data-stop="3670.439000">Maybe you can even have a permanent link</span> <span class="audio-time caption" data-speaker="Prot" data-start="3670.440000" data-stop="3673.399000">in your Emacs News, like the topmost line.</span> <span class="audio-time caption" data-speaker="Prot" data-start="3673.400000" data-stop="3676.599000">It would be like, well, new...</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="3676.600000" data-stop="3682.239000"><strong class="speaker-name">Sacha:</strong> Don't get overwhelmed by all these people</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3682.240000" data-stop="3687.439000">talking about SDL graphics loops and Emacs and whatever.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3687.440000" data-stop="3692.079000">Very far down the path of the learning journey.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3692.080000" data-stop="3694.759000">So making one of these starting points</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3694.760000" data-stop="3697.159000">where people can then kind of</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3697.160000" data-stop="3700.519000">find the trail that then leads them to different places.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3700.520000" data-stop="3704.519000">I'm looking forward to reviewing the Emacs news things</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3704.520000" data-stop="3705.799000">for beginner resources</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3705.800000" data-stop="3707.279000">that I've already previously identified</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3707.280000" data-stop="3709.919000">and then fitting them into the Emacs Wiki</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3709.920000" data-stop="3712.159000">in various places where people might come across them.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3712.160000" data-stop="3716.319000">And then of course, it would be nice</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3716.320000" data-stop="3718.879000">if we could test these with actual people.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3718.880000" data-stop="3720.359000">So in your coaching sessions,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3720.360000" data-stop="3723.119000">we can find out where the other gaps are.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3723.120000" data-stop="3728.439000">There's a lovely conversation in the chat</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3728.440000" data-stop="3729.439000">about other things</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3729.440000" data-stop="3733.439000">that I don't have the fast speaking rate</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3733.440000" data-stop="3738.079000">to cram into the next three minutes.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3738.080000" data-stop="3741.919000">Thank you so much for this conversation.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3741.920000" data-stop="3743.479000">It was great.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3743.480000" data-stop="3745.639000">I always like picking your brain about things.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3745.640000" data-stop="3750.959000">It's a big project but Emacs is fun to play with</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3750.960000" data-stop="3753.999000">and I hope lots of other people</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3754.000000" data-stop="3757.339000">come to have fun with it too.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="3757.000000">1:02:37</span> <strong>Core longevity</strong></div><p></p><span class="audio-time caption" data-speaker="Prot" data-start="3757.340000" data-stop="3759.519000"><strong class="speaker-name">Prot:</strong> Yes, and maybe I can make a final comment</span> <span class="audio-time caption" data-speaker="Prot" data-start="3759.520000" data-stop="3761.479000">about the C core and the fact that</span> <span class="audio-time caption" data-speaker="Prot" data-start="3761.480000" data-stop="3764.199000">there are a few people such as Eli Zaretskii</span> <span class="audio-time caption" data-speaker="Prot" data-start="3764.200000" data-stop="3765.799000">who have expertise in that.</span> <span class="audio-time caption" data-speaker="Prot" data-start="3765.800000" data-stop="3767.999000">I am an optimist.</span> <span class="audio-time caption" data-speaker="Prot" data-start="3768.000000" data-stop="3770.759000">I think things will be ironed out.</span> <span class="audio-time caption" data-speaker="Prot" data-start="3770.760000" data-stop="3773.839000">I think they will work out on their own.</span> <span class="audio-time caption" data-speaker="Prot" data-start="3773.840000" data-stop="3776.479000">There are people who have the expertise.</span> <span class="audio-time caption" data-speaker="Prot" data-start="3776.480000" data-stop="3779.319000">Maybe it's a cultural issue or</span> <span class="audio-time caption" data-speaker="Prot" data-start="3779.320000" data-stop="3782.959000">We could say like a bureaucracy issue,</span> <span class="audio-time caption" data-speaker="Prot" data-start="3782.960000" data-stop="3784.519000">like they don't want to deal with</span> <span class="audio-time caption" data-speaker="Prot" data-start="3784.520000" data-stop="3785.519000">mailing lists or whatever.</span> <span class="audio-time caption" data-speaker="Prot" data-start="3785.520000" data-stop="3788.119000">Maybe they don't like the current style.</span> <span class="audio-time caption" data-speaker="Prot" data-start="3788.120000" data-stop="3788.759000">I don't know.</span> <span class="audio-time caption" data-speaker="Prot" data-start="3788.760000" data-stop="3791.199000">But I'm sure that when push comes to shove,</span> <span class="audio-time caption" data-speaker="Prot" data-start="3791.200000" data-stop="3792.879000">somebody will step up.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="3792.880000" data-stop="3795.359000"><strong class="speaker-name">Sacha:</strong> I think it's actually very encouraging</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3795.360000" data-stop="3797.959000">that because Emacs has such a long history,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3797.960000" data-stop="3799.639000">we've actually seen this kind of</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3799.640000" data-stop="3801.799000">generational transfer of knowledge already</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3801.800000" data-stop="3803.799000">in the sense that the people</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3803.800000" data-stop="3805.679000">who are maintaining Emacs now,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3805.680000" data-stop="3809.119000">aside of course from Dr. Stallman himself,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3809.120000" data-stop="3811.639000">they're not the originals who started this project.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3811.640000" data-stop="3812.919000">They came into it afterwards,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3812.920000" data-stop="3813.999000">decided they liked it,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3814.000000" data-stop="3816.439000">dug deep enough into it</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3816.440000" data-stop="3818.759000">to learn all these different things</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3818.760000" data-stop="3820.439000">and have continued from there.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3820.440000" data-stop="3822.639000">And we've also seen lots of, you know,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3822.640000" data-stop="3823.919000">lots of trends come and go.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3823.920000" data-stop="3825.479000">People leave Emacs for Atom.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3825.480000" data-stop="3826.439000">People come back</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3826.440000" data-stop="3828.959000">when Atom gets discontinued.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3828.960000" data-stop="3830.759000">People leave Emacs for VS Code.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3830.760000" data-stop="3831.879000">Who knows what will happen then?</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3831.880000" data-stop="3833.439000">But when they come back,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3833.440000" data-stop="3836.119000">they come back bringing even more ideas.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3836.120000" data-stop="3838.119000">Thank you for watching!</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3838.120000" data-stop="3841.439000">Okay, so in about one minute,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3841.440000" data-stop="3842.919000">the kid is going to start</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3842.920000" data-stop="3844.359000">barreling down the hallway</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3844.360000" data-stop="3847.519000">and asking for a grilled cheese sandwich.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3847.520000" data-stop="3852.279000">I'm going to wrap it up nicely here</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3852.280000" data-stop="3855.119000">so I can remember to copy the chat this time.</span> <p></p><span class="audio-time caption" data-speaker="Prot" data-start="3855.120000" data-stop="3857.679000"><strong class="speaker-name">Prot:</strong> Very well, very well.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="3857.680000" data-stop="3859.559000"><strong class="speaker-name">Sacha:</strong> Yeah, yeah.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3859.560000" data-stop="3862.159000">The notes are going to be in, like, you know,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3862.160000" data-stop="3865.039000">if you go to yayemacs.com,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3865.040000" data-stop="3870.399000">they're probably going to be in, like, yayemacs24.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3870.400000" data-stop="3872.239000">And you're going to send me</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3872.240000" data-stop="3874.799000">this markdown file or whatever that you showed me,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3874.800000" data-stop="3877.319000">so I can post that as well.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3877.320000" data-stop="3879.799000">Thank you so much, everyone.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3879.800000" data-stop="3883.719000">Thank you, Prot, and thank you</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3883.720000" data-stop="3886.199000">to the people who joined in the chat.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3886.200000" data-stop="3887.079000">We'll see where it goes.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3887.080000" data-stop="3888.599000">Okay, bye.</span> <p></p><span class="audio-time caption" data-speaker="Prot" data-start="3888.600000" data-stop="3889.679000"><strong class="speaker-name">Prot:</strong> Take care.</span> <span class="audio-time caption" data-speaker="Prot" data-start="3889.680000" data-stop="3890.159000">Take care.</span> <span class="audio-time caption" data-speaker="Prot" data-start="3890.160000" data-stop="3890.639000">Bye, Sacha.</span> <span class="audio-time caption" data-speaker="Prot" data-start="3890.640000" data-stop="3891.199000">Bye, folks.</span> <span class="audio-time caption" data-speaker="Prot" data-start="3891.200000" data-stop="3909.960000">Take care.</span></div>
<p></p>


</details>
</div>
</div>
<div id="outline-container-current-notes-for-next-time-april-30-yay-emacs-sacha-and-prot-talk-emacs-newbies-starter-kits-chat" class="outline-3">
<h3 id="current-notes-for-next-time-april-30-yay-emacs-sacha-and-prot-talk-emacs-newbies-starter-kits-chat">Chat</h3>
<div class="outline-text-3" id="text-current-notes-for-next-time-april-30-yay-emacs-sacha-and-prot-talk-emacs-newbies-starter-kits-chat">
<ul class="org-ul">
<li>protesilaos: ​​I am in the Google Meet room</li>
<li>protesilaos: ​​And hello, by the way!</li>

<li>hajovonta6300: ​​Hi legends!</li>

<li>JacksonScholberg: ​Hi</li>

<li>petertillemans2231: ​I am not worthy!</li>

<li>takoverflow: ​​Hello Sacha and Prot, thanks for these streams!</li>

<li>ShaeErisson: ​I love emacs, but haven't really learned elisp.</li>

<li>hajovonta6300: ​​@petertillemans2231 you are worthy if you are willing to learn!</li>

<li>JacksonScholberg: ​I vibe with Emacs after using other text editors that were not minimalist enough for my preferences, plus having experience with other open source software like Linux.</li>

<li>petertillemans2231: ​Well, Emacs and Minimalist in the same sentence&hellip; strange concept, but I know what you mean</li>

<li>petertillemans2231: ​I guess learn starters quickly to use emacs &ndash;debug-init. Maybe not in the first hour but close to tweaking.</li>

<li>JacksonScholberg: ​ChatGPT reminding me keyboard shortcuts helps a lot</li>

<li>ShaeErisson: ​I learn about new emacs packages by pairing with other users and asking "How did you do that thing?"</li>

<li>hajovonta6300: ​​I use Emacs since 2010 and had become a power user; but in the last year I feel LLMs took over most of the tasks I usually solved with Emacs.</li>

<li>petertillemans2231: ​Emacs documentation is very extensive but I feel discoverability of the docs is a problem for newer users.</li>

<li>10cadr: ​​wow! ill watch the vod later,, nice buzzcut prot. i am between sessions rn also ill leave a comment on prot latest video later cheers</li>

<li>rossbaker9079: ​​We have an Emacs channel at work that's nice for learning. It's not a full replacement for these other ideas, but brings together people solving the same problems with Emacs.</li>

<li>ShaeErisson: ​Is there a way to ask emacs which file(s) it has read to load the current configuration?</li>

<li>charliemcmackin4859: ​​thinking of the terminology problem: maybe offering search terms for further exploration, rather than (or in addition to) links</li>

<li>JacksonScholberg: ​An Emacs channel at work sounds like a nice way to learn from others.</li>

<li>siredwardthehalf: ​​whats emacs</li>

<li>hajovonta6300: ​​it is an application platform with a great editor app</li>

<li>romsno: ​​hello guys do you fear the Emacs C core will go unmaintained? Deep knowledge is rare, held by few like Eli. While finding Elisp maintainers is easier (like with elfeed), the core is harder to replace</li>

<li>hajovonta6300: ​​@romsno true that</li>

<li>petertillemans2231: ​orderless is awesome</li>

<li>takoverflow: ​​Vertico can be replaced by icomplete-vertical-mode but there's no built-in corfu replacement</li>

<li>petertillemans2231: ​In the beginning, especially with use-package it is much more like yaml than a real programming language. That can ease people in.</li>

<li>satrac75: ​​i'm curious if other users split their init file into seperate files. my init file over the years continuea to grow and grow.</li>

<li>hajovonta6300: ​​@satrac75 I sometimes delete obsolete code I don't use anymore. I found my config became relatively stable after 2-3 years of initial trial-and-error. I heard other people experienced the same</li>

<li>petertillemans2231: ​I do &hellip; I go back and forth&hellip; single file &hellip; modularize &hellip; refactor/simplify in single file again&hellip; Like a dynamic tension field.</li>

<li>hajovonta6300: ​​My current config is 3099 lines long (org-babel format)</li>

<li>hajovonta6300: ​​the tangled output is 2345 lines.</li>

<li>charliemcmackin4859: ​​@satrac75 I did, yes. But this is mainly because I cherry-picked the configs from purcell's emacs config as I found I needed it. Then I converted it (mine) to use-package later</li>
</ul>
</div>
</div>
<div><a href="https://sachachua.com/blog/2026/04/yay-emacs-sacha-and-prot-talk-emacs-newbies-starter-kits/index.org">View Org source for this post</a></div>
<p>You can <a href="https://social.sachachua.com/@sacha/statuses/01KQFMW8TJ5PD2AZ83EGX5W1TR" 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%2F04%2Fyay-emacs-sacha-and-prot-talk-emacs-newbies-starter-kits%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>
		</item><item>
		<title>YE20: Emacs Carnival: Newbies/starter kits</title>
		<link>https://sachachua.com/blog/2026/04/ye20-emacs-carnival-newbies-starter-kits/</link>
		<dc:creator><![CDATA[Sacha Chua]]></dc:creator>
		<pubDate>Wed, 22 Apr 2026 19:06:56 GMT</pubDate>
    <category>yay-emacs</category>
<category>emacs</category>
<category>community</category>
		<guid isPermaLink="false">https://sachachua.com/blog/2026/04/ye20-emacs-carnival-newbies-starter-kits/</guid>
		<description><![CDATA[<p>
This was a rough braindump on what I might want to write or do for the Emacs Carnival theme this month.
</p>

<p>
</p><div class="yt-video"><iframe width="456" height="315" title="YouTube video player" src="https://www.youtube-nocookie.com/embed/Yht0N26EoF4?enablejsapi=1" frameborder="0" allowfullscreen=""></iframe><a href="https://youtube.com/live/Yht0N26EoF4">Watch on YouTube</a></div>
<p></p>
<div id="outline-container-ye20-emacs-carnival-newbies-starter-kits-outline" class="outline-3">
<h3 id="ye20-emacs-carnival-newbies-starter-kits-outline">Outline</h3>
<div class="outline-text-3" id="text-ye20-emacs-carnival-newbies-starter-kits-outline">
<p>
</p><div class="sketch-full"><a class="photoswipe" href="https://sketches.sachachua.com/filename/2026-04-22-01%20Thinking%20about%20Emacs%20Carnival%20April%202026%20-%20newbies%20and%20starter%20kits.jpeg" data-src="https://sketches.sachachua.com/static/2026-04-22-01%20Thinking%20about%20Emacs%20Carnival%20April%202026%20-%20newbies%20and%20starter%20kits.jpeg" data-title="2026-04-22-01 Thinking about Emacs Carnival April 2026 - newbies and starter kits.jpeg" data-w="2900" data-h="2050"><picture>
      <img src="https://sketches.sachachua.com/static/2026-04-22-01%20Thinking%20about%20Emacs%20Carnival%20April%202026%20-%20newbies%20and%20starter%20kits.jpeg" width="2900" height="2050" alt="2026-04-22-01 Thinking about Emacs Carnival April 2026 - newbies and starter kits.jpeg" loading="lazy" style="max-height: 90vw; height: auto; width: auto" decoding="async">
      <figcaption>2026-04-22-01 Thinking about Emacs Carnival April 2026 - newbies and starter kits.jpeg</figcaption>
    </picture></a></div>
<p></p>

<ul class="org-ul">
<li><a href="https://www.emacswiki.org/emacs/CarnivalApril2026">Emacs Carnival April 2026: newbies/starter kits</a></li>

<li><b>Start with why</b>
<ul class="org-ul">
<li>Curious
<ul class="org-ul">
<li>Cool demo</li>
<li>Reputation</li>
<li>Someone else (ex: professor)</li>
</ul></li>
<li>Learning at leisure vs wanting to be productive ASAP
<ul class="org-ul">
<li>Coding professionally; used to VS Code or Vim</li>
</ul></li>
<li>Journey:
<ul class="org-ul">
<li>Outsiders</li>
<li>Newbie</li>
<li>Basic working environment</li>
<li>Intermediate
<ul class="org-ul">
<li>Packages</li>
<li>Configuration</li>
</ul></li>
<li>Advanced
<ul class="org-ul">
<li>Writing custom code</li>
</ul></li>
</ul></li>
<li><mark>TODO:</mark> possibly a post about where people come from and typical resources, next steps</li>
</ul></li>
<li><b>Challenges</b>
<ul class="org-ul">
<li>Balance of time
<ul class="org-ul">
<li>Getting a basic environment working
<ul class="org-ul">
<li>Things like git performance on Windows, consoles / window managers taking over keybindings</li>
<li>Starter kit trade-off
<ul class="org-ul">
<li>Plus: Get stuff working quickly</li>
<li>Minus: Limits your help to the kit's community, can be challenging to customize further</li>
</ul></li>
</ul></li>
</ul></li>
<li>Isolation
<ul class="org-ul">
<li>Don't know someone else who can watch them, lean over, fix stuff, suggest improvements, etc.</li>
</ul></li>
<li>Overwhelm
<ul class="org-ul">
<li>Too much to fit into your brain</li>
<li>Don't know how to break things down into smaller steps (which steps, etc.)</li>
</ul></li>
<li>Unknowns
<ul class="org-ul">
<li>Not knowing the words to look for</li>
<li>Not knowing what is close by, what is possible</li>
</ul></li>
</ul></li>
<li><b>What can help?</b>
<ul class="org-ul">
<li><code>M-x help-with-tutorial</code> (<code>C-h t</code>) often recommended; good for learning basic navigation</li>
<li>Getting help
<ul class="org-ul">
<li><a href="https://lists.gnu.org/mailman/listinfo/help-gnu-emacs">help-gnu-emacs</a>, <a href="https://reddit.com/r/emacs/">Reddit</a>, <a href="https://emacs.stackexchange.com/">Emacs StackExchange</a>, Mastodon (example results: <a href="https://mastodon.social/tags/emacs">#emacs on mastodon.social</a>)</li>
<li><a href="https://www.emacswiki.org/emacs/EmacsChannel">IRC</a></li>
<li>Discord? <a href="https://www.google.com/url?sa=t&amp;source=web&amp;rct=j&amp;opi=89978449&amp;url=https://discord.com/invite/v5rdp3kdDu">Doom Emacs has one</a></li>
<li><a href="https://www.emacswiki.org/emacs/Usergroups">Meetups</a></li>
</ul></li>
<li>Inspiration
<ul class="org-ul">
<li>Videos
<ul class="org-ul">
<li><mark>TODO:</mark> Add more tags to <a href="https://emacs.tv">emacs.tv</a>, add frequently-recommended pages to relevant <a href="https://emacswiki.org">EmacsWiki</a> pages</li>
</ul></li>
<li>Blog posts, <a href="https://planet.emacslife.com">Planet Emacslife</a></li>
<li><mark>TODO:</mark> Add more resources to <a href="https://sachachua.com/web/beginner-map.html">‎beginner map</a>, make it something I can refer to quickly, host clinics?</li>
</ul></li>
<li>Manuals, books
<ul class="org-ul">
<li><a href="https://masteringemacs.org">Mastering Emacs</a></li>
<li><a href="https://protesilaos.com/emacs/emacs-lisp-elements">Emacs Lisp Elements | Protesilaos</a></li>
</ul></li>
</ul></li>
<li>Stuff I work on / can tinker with
<ul class="org-ul">
<li>Inspiration helps with isolation and unknowns
<ul class="org-ul">
<li><a href="https://sachachua.com/blog/category/emacs-news/">Emacs News</a>
<ul class="org-ul">
<li><mark>TODO:</mark> Add intro
<ul class="org-ul">
<li>how to use it</li>
<li>how to subscribe</li>
<li>resources for getting help, finding meetups, etc.</li>
</ul></li>
<li><mark>TODO:</mark> Add resources (esp. beginner resources) to map and <a href="https://emacswiki.org">EmacsWiki</a></li>
</ul></li>
<li><a href="https://emacsconf.org">EmacsConf</a></li>
</ul></li>
<li>Meetups, <a href="https://emacslife.com/calendar/">Emacs Calendar</a></li>
<li>Videos, livestreams
<ul class="org-ul">
<li>Reading people's configurations, demonstrating workflow, showing how to incorporate them</li>
</ul></li>
<li><a href="https://sachachua.com/blog/2013/05/how-to-learn-emacs-a-hand-drawn-one-pager-for-beginners/">How to Learn Emacs: A Hand-drawn One-pager for Beginners / A visual tutorial</a>
<ul class="org-ul">
<li><mark>TODO:</mark> Needs updates: URLs, etc.</li>
</ul></li>
</ul></li>
<li>Continuous learning
<ul class="org-ul">
<li>Connecting with the community</li>
<li>Blogging</li>
<li>Managing overwhelm, etc.</li>
</ul></li>
</ul>
</div>
</div>
<div id="outline-container-ye20-emacs-carnival-newbies-starter-kits-transcript" class="outline-3">
<h3 id="ye20-emacs-carnival-newbies-starter-kits-transcript">Transcript</h3>
<div class="outline-text-3" id="text-ye20-emacs-carnival-newbies-starter-kits-transcript">
<details class="code-details" style="padding: 1em;
                 border-radius: 15px;
                 font-size: 0.9em;
                 box-shadow: 0.05em 0.1em 5px 0.01em  #00000057;">
                  <summary><strong>Transcript</strong></summary>
<p>
</p><p></p><div class="transcript-heading"><span class="audio-time" data-start="4.000000">00:00:04</span> <strong>Introduction</strong></div><span class="audio-time caption" data-speaker="" data-start="4.385000" data-stop="10.954000">Alright, let's see. Hello stream, this is Yay Emacs 20, and</span> <span class="audio-time caption" data-speaker="" data-start="11.014000" data-stop="15.982000">today I want to brainstorm some thoughts for an Emacs</span> <span class="audio-time caption" data-speaker="" data-start="16.042000" data-stop="23.412000">Carnival post on newbies and starter kits. Okay, alright,</span> <span class="audio-time caption" data-speaker="" data-start="23.432000" data-stop="26.256000">and the audio works. Alright, so Yay Emacs 20, Emacs</span> <span class="audio-time caption" data-speaker="" data-start="26.296000" data-stop="36.453000">Carnival, newbies and starter kits. That is this page. Yes.</span> <span class="audio-time caption" data-speaker="" data-start="36.473000" data-stop="41.577000">So, every month or so, pretty much every month so far, people</span> <span class="audio-time caption" data-speaker="" data-start="41.617000" data-stop="43.639000">have been getting together to write about a shared topic.</span> <span class="audio-time caption" data-speaker="" data-start="44.440000" data-stop="48.003000">And this month's topic is newbies and starter kits. So,</span> <span class="audio-time caption" data-speaker="" data-start="48.283000" data-stop="53.588000">originally proposed by Cena, but Philip added some topics</span> <span class="audio-time caption" data-speaker="" data-start="53.628000" data-stop="55.950000">to start with. Things like, what are your memories of</span> <span class="audio-time caption" data-speaker="" data-start="55.990000" data-stop="58.372000">starting with Emacs? What experiences do you have with</span> <span class="audio-time caption" data-speaker="" data-start="58.412000" data-stop="61.455000">teaching Emacs to new users? Do you think starter kits are</span> <span class="audio-time caption" data-speaker="" data-start="61.475000" data-stop="63.757000">more of a hindrance in the long term or necessary for many</span> <span class="audio-time caption" data-speaker="" data-start="63.777000" data-stop="66.739000">users to even try Emacs? What defaults do you think should be</span> <span class="audio-time caption" data-speaker="" data-start="66.799000" data-stop="69.402000">changed for everyone? What defaults do you think should be</span> <span class="audio-time caption" data-speaker="" data-start="69.462000" data-stop="72.405000">changed for new users? And what is the sweet spot between</span> <span class="audio-time caption" data-speaker="" data-start="72.465000" data-stop="78.832000">starter kit minimalism and maximalism? So, let me get</span> <span class="audio-time caption" data-speaker="" data-start="78.892000" data-stop="83.257000">myself organized here. I want to start off by maybe making a</span> <span class="audio-time caption" data-speaker="" data-start="83.337000" data-stop="90.244000">mind map and seeing how that goes. Let's try sharing. I'll do</span> <span class="audio-time caption" data-speaker="" data-start="90.264000" data-stop="97.177000">some screen mirroring from my iPad. See if it works. It'll be</span> <span class="audio-time caption" data-speaker="" data-start="97.197000" data-stop="97.357000">fun.</span> <span class="audio-time caption" data-speaker="" data-start="103.447000" data-stop="104.910000">Okay, there's the pen.</span> <span class="audio-time caption" data-speaker="" data-start="110.519000" data-stop="115.867000">Okay, let me think. Newbies...</span> <span class="audio-time caption" data-speaker="" data-start="115.887000" data-stop="117.450000">Newbies and starter kits.</span> <span class="audio-time caption" data-speaker="" data-start="122.037000" data-stop="125.001000">I like starting with a mind map because I jump all over the</span> <span class="audio-time caption" data-speaker="" data-start="125.041000" data-stop="129.887000">place anyway. Starting with something non-linear helps a</span> <span class="audio-time caption" data-speaker="" data-start="129.947000" data-stop="133.811000">bit.</span> <span class="audio-time caption" data-speaker="" data-start="133.831000" data-stop="134.812000">Okay,</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="137.000000">00:02:17</span> <strong>Overall structure</strong></div><span class="audio-time caption" data-speaker="" data-start="137.115000" data-stop="138.016000">starting with why.</span> <span class="audio-time caption" data-speaker="" data-start="143.343000" data-stop="146.533000">People come to Emacs for many different reasons. Some</span> <span class="audio-time caption" data-speaker="" data-start="146.573000" data-stop="149.276000">people come because they're curious about something.</span> <span class="audio-time caption" data-speaker="" data-start="149.836000" data-stop="153.600000">They've seen a cool demo. They have</span> <span class="audio-time caption" data-speaker="" data-start="153.660000" data-stop="157.643000">someone they look up to and they say, how did they do that?</span> <span class="audio-time caption" data-speaker="" data-start="157.723000" data-stop="160.246000">When it shows there's a new feature, right?</span> <span class="audio-time caption" data-speaker="" data-start="160.266000" data-stop="166.611000">Interesting thing. So that's definitely something that</span> <span class="audio-time caption" data-speaker="" data-start="166.732000" data-stop="171.896000">gets people into Emacs.</span> <span class="audio-time caption" data-speaker="" data-start="171.916000" data-stop="176.040000">I also want to think about the Emacs news.</span> <span class="audio-time caption" data-speaker="" data-start="180.290000" data-stop="183.995000">Meetups,</span> <span class="audio-time caption" data-speaker="" data-start="184.015000" data-stop="190.464000">EmacsConf. Maybe do a reflection on how I can help more</span> <span class="audio-time caption" data-speaker="" data-start="190.484000" data-stop="195.171000">effectively. And then there's always this thing that I have</span> <span class="audio-time caption" data-speaker="" data-start="195.251000" data-stop="198.996000">about mapping and coaching.</span> <span class="audio-time caption" data-speaker="" data-start="203.642000" data-stop="205.605000">This is kind of the what's close by.</span> <span class="audio-time caption" data-speaker="" data-start="211.610000" data-stop="212.812000">How do I get to where I want?</span> <span class="audio-time caption" data-speaker="" data-start="223.807000" data-stop="228.694000">And lifelong learning, because it's not just about</span> <span class="audio-time caption" data-speaker="" data-start="228.754000" data-stop="231.898000">newbies... Keeping a beginner mind in Emacs is very</span> <span class="audio-time caption" data-speaker="" data-start="231.978000" data-stop="236.084000">handy. And so it's helpful to be able to keep thinking about,</span> <span class="audio-time caption" data-speaker="" data-start="236.965000" data-stop="239.068000">how do I want to learn? How can I keep learning?</span> <span class="audio-time caption" data-speaker="" data-start="243.368000" data-stop="251.912000">Okay, so at this point I'm really just thinking about topics</span> <span class="audio-time caption" data-speaker="" data-start="251.992000" data-stop="256.584000">and seeing where I want to go with this.</span> <span class="audio-time caption" data-speaker="" data-start="263.230000" data-stop="266.874000">do have chat open somewhere, so if you happen to drop by and</span> <span class="audio-time caption" data-speaker="" data-start="267.475000" data-stop="272.662000">have any thoughts, I think I can do that. Aside from that, you</span> <span class="audio-time caption" data-speaker="" data-start="272.682000" data-stop="278.849000">know, you can just also just keep me company, um, or, and, uh,</span> <span class="audio-time caption" data-speaker="" data-start="278.989000" data-stop="281.853000">something. Where is this, where is this chat window that</span> <span class="audio-time caption" data-speaker="" data-start="281.913000" data-stop="285.137000">I'm, yes, okay, there it is. All right, okay.</span> <span class="audio-time caption" data-speaker="" data-start="288.273000" data-stop="291.076000">So this is just me thinking out loud about newbies and</span> <span class="audio-time caption" data-speaker="" data-start="291.096000" data-stop="293.759000">starter kits because afterwards I can grab the transcript</span> <span class="audio-time caption" data-speaker="" data-start="293.939000" data-stop="297.141000">and start pulling things out into blog posts.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="297.000000">00:04:57</span> <strong>Starting with where people are</strong></div><span class="audio-time caption" data-speaker="" data-start="297.142000" data-stop="302.128000">So starting from where people are. Sometimes people are curious,</span> <span class="audio-time caption" data-speaker="" data-start="305.431000" data-stop="311.317000">either just because of Emacs' reputation or because</span> <span class="audio-time caption" data-speaker="" data-start="311.457000" data-stop="314.821000">they've seen a cool demo somewhere and they want to be able to</span> <span class="audio-time caption" data-speaker="" data-start="314.861000" data-stop="321.405000">do stuff like that. Uh, sometimes people have kind of, you</span> <span class="audio-time caption" data-speaker="" data-start="321.425000" data-stop="324.329000">know, it's, it's totally open. They can, they can learn at</span> <span class="audio-time caption" data-speaker="" data-start="324.450000" data-stop="329.236000">leisure, uh, or sometimes there's some pressure to become</span> <span class="audio-time caption" data-speaker="" data-start="329.296000" data-stop="335.525000">productive right away.</span> <span class="audio-time caption" data-speaker="" data-start="335.545000" data-stop="337.888000">Let's say, for example, if they're coding as their main job,</span> <span class="audio-time caption" data-speaker="" data-start="337.928000" data-stop="341.433000">they know that switching to Emacs will help</span> <span class="audio-time caption" data-speaker="" data-start="341.453000" data-stop="344.777000">them learn it a lot faster, but at the same time,</span> <span class="audio-time caption" data-speaker="" data-start="344.817000" data-stop="347.219000">they still have to be able to keep up with their work. Which</span> <span class="audio-time caption" data-speaker="" data-start="347.399000" data-stop="351.934000">means figuring out things like compilation errors and all</span> <span class="audio-time caption" data-speaker="" data-start="351.974000" data-stop="355.345000">that stuff faster, which can be a bit of a struggle when</span> <span class="audio-time caption" data-speaker="" data-start="355.365000" data-stop="358.254000">you're new and you're trying to set up your environment for</span> <span class="audio-time caption" data-speaker="" data-start="358.294000" data-stop="359.687000">your coding system.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="359.000000">00:05:59</span> <strong>The built-in tutorial (C-h t or M-x help-with-tutorial)</strong></div><span class="audio-time caption" data-speaker="" data-start="359.688000" data-stop="366.656000">@j7gy8b has a question. Do people still try the built-in tutorial?</span> <span class="audio-time caption" data-speaker="" data-start="366.657000" data-stop="372.044000">I think so. I see the built-in tutorial of C-h t highly</span> <span class="audio-time caption" data-speaker="" data-start="372.124000" data-stop="375.228000">recommended every time people come across, every time</span> <span class="audio-time caption" data-speaker="" data-start="375.269000" data-stop="378.132000">people post those threads on... I'm a beginner, how</span> <span class="audio-time caption" data-speaker="" data-start="378.152000" data-stop="381.397000">do I get started? Many people recommend using the beginner</span> <span class="audio-time caption" data-speaker="" data-start="381.437000" data-stop="384.120000">tutorial because it will teach basic navigation and</span> <span class="audio-time caption" data-speaker="" data-start="384.180000" data-stop="390.636000">concepts in a fairly interactive, easy to grasp manner.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="390.000000">00:06:30</span> <strong>Overwhelm</strong></div><span class="audio-time caption" data-speaker="" data-start="390.637000" data-stop="394.443000">Oh, and somewhere in here, also in the beginner thing, there's</span> <span class="audio-time caption" data-speaker="" data-start="394.463000" data-stop="397.307000">probably something about dealing with overwhelm, because</span> <span class="audio-time caption" data-speaker="" data-start="397.507000" data-stop="401.513000">Emacs can be very overwhelming. And this is true even for</span> <span class="audio-time caption" data-speaker="" data-start="401.553000" data-stop="404.999000">experienced users. I am constantly running like this. I</span> <span class="audio-time caption" data-speaker="" data-start="405.059000" data-stop="410.587000">want to learn a long list of things, but there's only so much I</span> <span class="audio-time caption" data-speaker="" data-start="410.627000" data-stop="412.951000">can fit into my brain and have it remember things. Very</span> <span class="audio-time caption" data-speaker="" data-start="412.991000" data-stop="417.918000">little, actually. So, dealing with overwhelm is a big</span> <span class="audio-time caption" data-speaker="" data-start="417.998000" data-stop="419.576000">problem for new users.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="419.000000">00:06:59</span> <strong>Getting a basic working environment</strong></div><span class="audio-time caption" data-speaker="" data-start="419.577000" data-stop="421.898000">Oh, and then there's something in here about...</span> <span class="audio-time caption" data-speaker="" data-start="421.899000" data-stop="423.801000">you're starting off with, like... a total newbie,</span> <span class="audio-time caption" data-speaker="" data-start="429.045000" data-stop="433.149000">you need to get over this hump of getting a basic working</span> <span class="audio-time caption" data-speaker="" data-start="433.209000" data-stop="436.752000">environment. And if you're a programmer, actually, that</span> <span class="audio-time caption" data-speaker="" data-start="436.792000" data-stop="442.197000">bar's a bit higher because you're used to IDEs</span> <span class="audio-time caption" data-speaker="" data-start="442.377000" data-stop="447.121000">and you might be coming from VS Code and Vim and</span> <span class="audio-time caption" data-speaker="" data-start="447.222000" data-stop="450.284000">have these expectations of what your editor should</span> <span class="audio-time caption" data-speaker="" data-start="450.344000" data-stop="452.987000">already be able to do out of the box or with just a little bit of</span> <span class="audio-time caption" data-speaker="" data-start="453.048000" data-stop="456.673000">configuration. So you need to be able to at least do some of</span> <span class="audio-time caption" data-speaker="" data-start="456.713000" data-stop="462.161000">your work in it without being very, very annoyed. And then</span> <span class="audio-time caption" data-speaker="" data-start="462.181000" data-stop="466.046000">you get to the point eventually where it becomes more fun.</span> <span class="audio-time caption" data-speaker="" data-start="474.539000" data-stop="478.601000">So this is like a big hurdle there. And then,</span> <span class="audio-time caption" data-speaker="" data-start="482.993000" data-stop="488.127000">I'd say intermediate users are people who are able to find</span> <span class="audio-time caption" data-speaker="" data-start="488.187000" data-stop="489.590000">and configure and use</span> <span class="audio-time caption" data-speaker="" data-start="493.461000" data-stop="494.303000">packages.</span> <span class="audio-time caption" data-speaker="" data-start="497.135000" data-stop="502.584000">@j7gy8b says, by the way, he's Jeff from Emacs San Francisco</span> <span class="audio-time caption" data-speaker="" data-start="502.624000" data-stop="505.608000">and doesn't know how to change his display name. I will try to</span> <span class="audio-time caption" data-speaker="" data-start="505.628000" data-stop="510.837000">remember that you are Jeff. Something about YouTube and</span> <span class="audio-time caption" data-speaker="" data-start="510.857000" data-stop="513.099000">Google, I don't really know either.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="513.000000">00:08:33</span> <strong>Sometimes keybindings don't work</strong></div><span class="audio-time caption" data-speaker="" data-start="513.100000" data-stop="514.282000">@lispwizard says, one</span> <span class="audio-time caption" data-speaker="" data-start="514.361000" data-stop="517.727000">problem is platforms which usurp keystrokes which Emacs</span> <span class="audio-time caption" data-speaker="" data-start="517.928000" data-stop="520.832000">expects. I just wrestled with this on a Raspberry Pi,</span> <span class="audio-time caption" data-speaker="" data-start="520.933000" data-stop="524.501000">especially since there are so many keybindings. So for</span> <span class="audio-time caption" data-speaker="" data-start="524.541000" data-stop="527.527000">example, the GUI versus terminal thing. There are some</span> <span class="audio-time caption" data-speaker="" data-start="527.587000" data-stop="532.677000">keybindings that don't work if you don't have a GUI Emacs.</span> <span class="audio-time caption" data-speaker="" data-start="532.697000" data-stop="535.743000">And of course, if you have a GUI Emacs, and you're in a window</span> <span class="audio-time caption" data-speaker="" data-start="535.783000" data-stop="538.809000">manager, and the window manager also has a lot of global</span> <span class="audio-time caption" data-speaker="" data-start="538.849000" data-stop="546.466000">shortcuts that that override the ones that Emacs has. So</span> <span class="audio-time caption" data-speaker="" data-start="546.807000" data-stop="552.215000">when newbies come across, oh yeah, just use, meta</span> <span class="audio-time caption" data-speaker="" data-start="552.375000" data-stop="555.600000">shift left in order to do this thing in Org Mode, which is</span> <span class="audio-time caption" data-speaker="" data-start="555.620000" data-stop="559.527000">super cool. And they're like, it doesn't work for me. But</span> <span class="audio-time caption" data-speaker="" data-start="559.547000" data-stop="561.790000">they don't have the experience to know, oh, it's because</span> <span class="audio-time caption" data-speaker="" data-start="561.870000" data-stop="565.336000">it's a terminal, or oh, it's because, and so forth. So that's</span> <span class="audio-time caption" data-speaker="" data-start="565.396000" data-stop="567.479000">definitely all these little things that trip</span> <span class="audio-time caption" data-speaker="" data-start="567.519000" data-stop="572.161000">people up. Oh, and I was thinking about... Advanced</span> <span class="audio-time caption" data-speaker="" data-start="572.361000" data-stop="580.151000">would be like writing their own custom code.</span> <span class="audio-time caption" data-speaker="" data-start="584.055000" data-stop="587.399000">So, if you're trying... this thing here is a big</span> <span class="audio-time caption" data-speaker="" data-start="587.559000" data-stop="592.324000">hump, trying to get people through this journey.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="592.000000">00:09:52</span> <strong>Isolation</strong></div><span class="audio-time caption" data-speaker="" data-start="592.325000" data-stop="596.670000">And, oh, there's also this... some people are isolated. Most</span> <span class="audio-time caption" data-speaker="" data-start="596.710000" data-stop="599.952000">people are isolated, I think. They don't know anyone who</span> <span class="audio-time caption" data-speaker="" data-start="599.972000" data-stop="603.759000">also uses Emacs. Maybe they're coming across Emacs because</span> <span class="audio-time caption" data-speaker="" data-start="603.879000" data-stop="607.805000">they found it in a book or they found it in a cool video, but</span> <span class="audio-time caption" data-speaker="" data-start="607.825000" data-stop="611.051000">they don't have someone who can physically sit with them and</span> <span class="audio-time caption" data-speaker="" data-start="611.131000" data-stop="613.855000">take control of their computer and set things up the way</span> <span class="audio-time caption" data-speaker="" data-start="613.915000" data-stop="620.766000">they want, solve their little Emacs Lisp issues or help</span> <span class="audio-time caption" data-speaker="" data-start="620.807000" data-stop="624.052000">them even just figure out the words to find things when they</span> <span class="audio-time caption" data-speaker="" data-start="624.092000" data-stop="628.584000">don't even know what they want to ask for. So isolation here.</span> <span class="audio-time caption" data-speaker="" data-start="629.064000" data-stop="632.088000">If you happen to be learning Emacs with the help of a mentor,</span> <span class="audio-time caption" data-speaker="" data-start="632.349000" data-stop="635.653000">or because your professor really likes Emacs and makes all</span> <span class="audio-time caption" data-speaker="" data-start="635.673000" data-stop="639.438000">of their students use it, at least for the course, for the</span> <span class="audio-time caption" data-speaker="" data-start="639.478000" data-stop="641.661000">term that they're taking it, then yeah, that's extra lucky</span> <span class="audio-time caption" data-speaker="" data-start="642.623000" data-stop="646.468000">because you have someone you can ask for help. But I think a</span> <span class="audio-time caption" data-speaker="" data-start="646.508000" data-stop="651.394000">lot of people are picking up Emacs without being able to sit</span> <span class="audio-time caption" data-speaker="" data-start="651.495000" data-stop="655.520000">next to someone or look over someone's shoulder in order to</span> <span class="audio-time caption" data-speaker="" data-start="655.580000" data-stop="661.847000">discover ways of doing things, which is why meetups helps.</span> <span class="audio-time caption" data-speaker="" data-start="661.887000" data-stop="665.071000">Meetups help a lot. Okay, so let's draw a connection between</span> <span class="audio-time caption" data-speaker="" data-start="665.111000" data-stop="668.396000">that and meetups. Isolation. Oh, there's also like,</span> <span class="audio-time caption" data-speaker="" data-start="668.416000" data-stop="674.866000">having like background expectations and knowledge.</span> <span class="audio-time caption" data-speaker="" data-start="674.886000" data-stop="680.554000">And here, these days, it's usually either VS Code or Vim.</span> <span class="audio-time caption" data-speaker="" data-start="685.060000" data-stop="687.163000">What other things? Ooh.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="687.000000">00:11:27</span> <strong>Programming vs non-programming backgrounds</strong></div><span class="audio-time caption" data-speaker="" data-start="687.164000" data-stop="689.626000">Programming versus non-programming. There are a lot of people</span> <span class="audio-time caption" data-speaker="" data-start="689.627000" data-stop="693.250000">who actually get into this from a non-programming background.</span> <span class="audio-time caption" data-speaker="" data-start="693.251000" data-stop="694.633000">So, programming.</span> <span class="audio-time caption" data-speaker="" data-start="698.678000" data-stop="702.042000">Org is a big thing that's drawing in people who are writers</span> <span class="audio-time caption" data-speaker="" data-start="702.102000" data-stop="703.023000">and note-takers.</span> <span class="audio-time caption" data-speaker="" data-start="709.211000" data-stop="713.256000">This is a whole, like, other... Okay.</span> <span class="audio-time caption" data-speaker="" data-start="721.471000" data-stop="724.458000">So there are a lot of things that get in people's way when it</span> <span class="audio-time caption" data-speaker="" data-start="724.558000" data-stop="727.967000">comes to thinking about like when it comes to learning</span> <span class="audio-time caption" data-speaker="" data-start="728.107000" data-stop="730.673000">Emacs.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="731.000000">00:12:11</span> <strong>Students</strong></div><span class="audio-time caption" data-speaker="" data-start="731.154000" data-stop="734.543000">Okay, Jeff says in the meetup we do see that young people who</span> <span class="audio-time caption" data-speaker="" data-start="734.583000" data-stop="740.131000">are inspired by a professor to try and a lot of Emacs</span> <span class="audio-time caption" data-speaker="" data-start="740.191000" data-stop="742.774000">transmission happens this way where you have</span> <span class="audio-time caption" data-speaker="" data-start="743.215000" data-stop="748.142000">your stalwart Emacs users who are faculty and who just</span> <span class="audio-time caption" data-speaker="" data-start="748.202000" data-stop="750.965000">basically say, all right, this year, you're going</span> <span class="audio-time caption" data-speaker="" data-start="751.006000" data-stop="755.351000">to learn... Could be Scheme, could be data</span> <span class="audio-time caption" data-speaker="" data-start="755.392000" data-stop="758.736000">science or whatever else. And we're going to do it in Emacs</span> <span class="audio-time caption" data-speaker="" data-start="758.816000" data-stop="762.241000">because all of their lecture notes are in Emacs,</span> <span class="audio-time caption" data-speaker="" data-start="762.261000" data-stop="764.284000">so it's much easier for them to say</span> <span class="audio-time caption" data-speaker="" data-start="764.324000" data-stop="768.049000">here's my literate programming example of what I'm talking</span> <span class="audio-time caption" data-speaker="" data-start="768.109000" data-stop="772.275000">about. I'm just going to evaluate it during</span> <span class="audio-time caption" data-speaker="" data-start="772.295000" data-stop="776.679000">the lecture itself. So you can see that. And you all should</span> <span class="audio-time caption" data-speaker="" data-start="776.720000" data-stop="780.403000">learn Emacs. Usually they'll hedge it and say, you</span> <span class="audio-time caption" data-speaker="" data-start="780.463000" data-stop="783.746000">can use other editors if you really, really want to. But</span> <span class="audio-time caption" data-speaker="" data-start="783.766000" data-stop="786.189000">there's definitely: here's how to get</span> <span class="audio-time caption" data-speaker="" data-start="786.229000" data-stop="788.411000">started. Here's the tutorial made for this course</span> <span class="audio-time caption" data-speaker="" data-start="788.471000" data-stop="791.874000">specifically. Here are all the modules that you need. And a</span> <span class="audio-time caption" data-speaker="" data-start="791.914000" data-stop="796.979000">lot of people go from there and, and just, it clicks</span> <span class="audio-time caption" data-speaker="" data-start="796.999000" data-stop="800.108000">into their brain and they have someone to talk to: both a</span> <span class="audio-time caption" data-speaker="" data-start="800.149000" data-stop="804.134000">professor and fellow students who are learning all of this</span> <span class="audio-time caption" data-speaker="" data-start="804.415000" data-stop="807.599000">arcane stuff for the first time. So that is an excellent</span> <span class="audio-time caption" data-speaker="" data-start="808.280000" data-stop="811.164000">situation to be learning Emacs in. But it's not everyone's</span> <span class="audio-time caption" data-speaker="" data-start="811.565000" data-stop="814.769000">experience, so it'll be interesting to see how to support</span> <span class="audio-time caption" data-speaker="" data-start="814.810000" data-stop="818.595000">that case as well as other cases. I should write that down</span> <span class="audio-time caption" data-speaker="" data-start="818.635000" data-stop="820.157000">somewhere. School.</span> <span class="audio-time caption" data-speaker="" data-start="826.226000" data-stop="831.005000">Okay. So, challenges, obstacles.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="836.000000">00:13:56</span> <strong>Basic working environment</strong></div><span class="audio-time caption" data-speaker="" data-start="836.832000" data-stop="839.996000">This basic working environment thing, I think, is one of the</span> <span class="audio-time caption" data-speaker="" data-start="840.116000" data-stop="844.361000">struggles because, like, for example, if people want to get</span> <span class="audio-time caption" data-speaker="" data-start="844.441000" data-stop="849.627000">things working with the current best practices</span> <span class="audio-time caption" data-speaker="" data-start="849.788000" data-stop="865.798000">for coding JavaScript or coding Python, sometimes</span> <span class="audio-time caption" data-speaker="" data-start="865.858000" data-stop="871.066000">getting LSP working just the right way is a finicky process.</span> <span class="audio-time caption" data-speaker="" data-start="871.727000" data-stop="875.252000">And then, of course, there's platform differences, like</span> <span class="audio-time caption" data-speaker="" data-start="876.273000" data-stop="878.817000">Magit being very slow on Windows.</span> <span class="audio-time caption" data-speaker="" data-start="882.796000" data-stop="885.739000">Which can't actually get around because Windows just really</span> <span class="audio-time caption" data-speaker="" data-start="885.819000" data-stop="887.201000">sucks when it comes to</span> <span class="audio-time caption" data-speaker="" data-start="890.264000" data-stop="893.908000">lots of small file operations. And so people end up</span> <span class="audio-time caption" data-speaker="" data-start="893.948000" data-stop="898.132000">recommending using WSL, Windows Subsystem for Linux,</span> <span class="audio-time caption" data-speaker="" data-start="898.152000" data-stop="902.076000">instead, which, again, is something that a newbie might not</span> <span class="audio-time caption" data-speaker="" data-start="902.116000" data-stop="908.062000">consider or come across or feel comfortable setting up. And</span> <span class="audio-time caption" data-speaker="" data-start="908.082000" data-stop="911.005000">then, of course, just install Linux, which is not always an</span> <span class="audio-time caption" data-speaker="" data-start="911.065000" data-stop="911.706000">option for people.</span> <span class="audio-time caption" data-speaker="" data-start="914.723000" data-stop="918.889000">Let me think. Okay, where are we now? There's so much to write</span> <span class="audio-time caption" data-speaker="" data-start="918.910000" data-stop="919.130000">about.</span> <span class="audio-time caption" data-speaker="" data-start="921.954000" data-stop="927.703000">What else do I take into account? What else can I add to the</span> <span class="audio-time caption" data-speaker="" data-start="927.723000" data-stop="930.708000">conversation? Okay, the stuff that I specifically know.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="931.000000">00:15:31</span> <strong>Stuff I work on - Emacs News</strong></div><span class="audio-time caption" data-speaker="" data-start="931.950000" data-stop="939.539000">Emacs News helps a lot with a number of things, actually. So I</span> <span class="audio-time caption" data-speaker="" data-start="939.579000" data-stop="942.323000">do find that in the conversations and people in</span> <span class="audio-time caption" data-speaker="" data-start="942.343000" data-stop="944.947000">the Reddit threads where people ask, oh, I'm new to</span> <span class="audio-time caption" data-speaker="" data-start="945.027000" data-stop="947.831000">Emacs, what should I read? People</span> <span class="audio-time caption" data-speaker="" data-start="947.971000" data-stop="950.695000">consistently recommend things like the Mastering Emacs</span> <span class="audio-time caption" data-speaker="" data-start="950.795000" data-stop="956.063000">blog and book... What else do</span> <span class="audio-time caption" data-speaker="" data-start="956.103000" data-stop="959.468000">people like that...? People often recommend Doom Emacs,</span> <span class="audio-time caption" data-speaker="" data-start="959.488000" data-stop="964.240000">especially if people are coming from a Vim background. And</span> <span class="audio-time caption" data-speaker="" data-start="964.340000" data-stop="967.324000">Emacs News often gets mentioned as one of the resources. I</span> <span class="audio-time caption" data-speaker="" data-start="967.364000" data-stop="971.049000">think this helps for a number of reasons, because first it</span> <span class="audio-time caption" data-speaker="" data-start="971.109000" data-stop="974.553000">gives people kind of some exposure to the cool stuff that</span> <span class="audio-time caption" data-speaker="" data-start="974.613000" data-stop="977.096000">people do with Emacs. So this is inspiration.</span> <span class="audio-time caption" data-speaker="" data-start="981.542000" data-stop="986.228000">I think it's primarily on the kind of aspirational stuff.</span> <span class="audio-time caption" data-speaker="" data-start="986.248000" data-stop="991.078000">People can see interesting demos and that motivates them to</span> <span class="audio-time caption" data-speaker="" data-start="991.238000" data-stop="996.003000">stay with Emacs. And so this is actually probably more of a</span> <span class="audio-time caption" data-speaker="" data-start="996.143000" data-stop="999.707000">kind of an Emacs news-ish thing here, from intermediate to</span> <span class="audio-time caption" data-speaker="" data-start="999.747000" data-stop="1000.207000">advanced.</span> <span class="audio-time caption" data-speaker="" data-start="1008.356000" data-stop="1011.299000">From time to time, I do come across beginner-oriented</span> <span class="audio-time caption" data-speaker="" data-start="1011.339000" data-stop="1018.626000">things in my kind of survey of Emacs news-related items.</span> <span class="audio-time caption" data-speaker="" data-start="1020.040000" data-stop="1023.304000">So let's add that to use also EN beginner stuff.</span> <span class="audio-time caption" data-speaker="" data-start="1030.912000" data-stop="1034.135000">Maybe it's every couple of weeks that someone posts a link</span> <span class="audio-time caption" data-speaker="" data-start="1034.194000" data-stop="1038.319000">that's specifically beginner-related. And one of the</span> <span class="audio-time caption" data-speaker="" data-start="1038.339000" data-stop="1041.864000">things that I've been slowly doing is I've been trying to map</span> <span class="audio-time caption" data-speaker="" data-start="1041.924000" data-stop="1046.048000">it out so that people can find those resources.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="1048.000000">00:17:28</span> <strong>Emacs Wiki</strong></div><span class="audio-time caption" data-speaker="" data-start="1048.812000" data-stop="1052.518000">And actually I should add a thing here, Emacs Wiki.</span> <span class="audio-time caption" data-speaker="" data-start="1056.083000" data-stop="1062.313000">So one way I could improve is to take the links from Emacs News</span> <span class="audio-time caption" data-speaker="" data-start="1062.513000" data-stop="1066.319000">on a more regular basis and put them into the Emacs Wiki</span> <span class="audio-time caption" data-speaker="" data-start="1066.359000" data-stop="1070.065000">pages. There's like a page for newbies for example and so</span> <span class="audio-time caption" data-speaker="" data-start="1070.145000" data-stop="1076.542000">forth because... Not that newbies will come across those pages</span> <span class="audio-time caption" data-speaker="" data-start="1076.622000" data-stop="1080.005000">themselves, sometimes they do, but also because it makes it</span> <span class="audio-time caption" data-speaker="" data-start="1080.145000" data-stop="1083.769000">easier for other people to say, oh yeah, you want to learn</span> <span class="audio-time caption" data-speaker="" data-start="1083.809000" data-stop="1085.911000">more about that? Check out this page that has all these</span> <span class="audio-time caption" data-speaker="" data-start="1085.971000" data-stop="1091.196000">organized resources already. And one of the reasons why</span> <span class="audio-time caption" data-speaker="" data-start="1091.257000" data-stop="1095.221000">that's useful is because something that new people</span> <span class="audio-time caption" data-speaker="" data-start="1095.281000" data-stop="1098.904000">struggle with is figuring out what's close, what's close</span> <span class="audio-time caption" data-speaker="" data-start="1098.944000" data-stop="1104.952000">by... They know this, what's easy for them to</span> <span class="audio-time caption" data-speaker="" data-start="1104.992000" data-stop="1110.881000">get to? What's something they can learn with not much more</span> <span class="audio-time caption" data-speaker="" data-start="1111.041000" data-stop="1117.130000">effort? And this, I think, is one of the things that having a</span> <span class="audio-time caption" data-speaker="" data-start="1118.131000" data-stop="1121.296000">mentor helps with, or having a coach helps with. Because you</span> <span class="audio-time caption" data-speaker="" data-start="1121.336000" data-stop="1124.561000">can describe what it is that you're doing, or what it is that</span> <span class="audio-time caption" data-speaker="" data-start="1124.581000" data-stop="1129.448000">you're trying, and then they can say, oh yeah, you should</span> <span class="audio-time caption" data-speaker="" data-start="1129.468000" data-stop="1133.582000">check this out. I've started to try to do some of that.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="1133.000000">00:18:53</span> <strong>Mapping resources</strong></div><span class="audio-time caption" data-speaker="" data-start="1133.583000" data-stop="1135.266000">Let me bring up my map here.</span> <span class="audio-time caption" data-speaker="" data-start="1141.474000" data-stop="1142.676000">There you go. Beginner map.</span> <span class="audio-time caption" data-speaker="" data-start="1148.323000" data-stop="1150.967000">Clearly, that Org Babel needs to be connected to Org Mode.</span> <span class="audio-time caption" data-speaker="" data-start="1152.529000" data-stop="1156.594000">This, again, is not something that I think... Oh, there's</span> <span class="audio-time caption" data-speaker="" data-start="1156.634000" data-stop="1159.538000">actually another Org Babel over there. I need to deduplicate</span> <span class="audio-time caption" data-speaker="" data-start="1159.578000" data-stop="1164.136000">these things. But I'm trying to figure out how to represent</span> <span class="audio-time caption" data-speaker="" data-start="1164.156000" data-stop="1167.140000">the connections. Kind of like those choose your</span> <span class="audio-time caption" data-speaker="" data-start="1167.160000" data-stop="1170.123000">own adventure books, where you might only have some</span> <span class="audio-time caption" data-speaker="" data-start="1170.203000" data-stop="1173.086000">branching points to consider, so you're not overwhelmed by</span> <span class="audio-time caption" data-speaker="" data-start="1173.126000" data-stop="1176.990000">the whole graph. At the same time, you can sort of keep track</span> <span class="audio-time caption" data-speaker="" data-start="1177.070000" data-stop="1180.334000">of where you are. Does this thing still do the thing? Oh yeah,</span> <span class="audio-time caption" data-speaker="" data-start="1180.354000" data-stop="1185.239000">okay, okay. Alright, so this still does, in fact, keep track</span> <span class="audio-time caption" data-speaker="" data-start="1185.340000" data-stop="1192.941000">of what you clicked on. Okay, so I went through a lot of Emacs</span> <span class="audio-time caption" data-speaker="" data-start="1193.021000" data-stop="1196.666000">news links. I think those are the ones that were sort of</span> <span class="audio-time caption" data-speaker="" data-start="1197.327000" data-stop="1201.111000">beginner related. And then I started trying to organize</span> <span class="audio-time caption" data-speaker="" data-start="1201.171000" data-stop="1205.697000">them so that I can say, okay, all right, you've installed</span> <span class="audio-time caption" data-speaker="" data-start="1205.977000" data-stop="1210.439000">Emacs and Linux... I can go find Emacs installation</span> <span class="audio-time caption" data-speaker="" data-start="1210.519000" data-stop="1214.022000">instructions for other places. And then start to think,</span> <span class="audio-time caption" data-speaker="" data-start="1214.042000" data-stop="1218.006000">okay, from here, what are the kinds of things that people</span> <span class="audio-time caption" data-speaker="" data-start="1218.767000" data-stop="1228.616000">usually want to explore next? So, yeah, changing</span> <span class="audio-time caption" data-speaker="" data-start="1228.656000" data-stop="1231.719000">the colors is something that often people immediately want</span> <span class="audio-time caption" data-speaker="" data-start="1231.739000" data-stop="1239.023000">to do because they're used to a certain other look. And so, A</span> <span class="audio-time caption" data-speaker="" data-start="1239.064000" data-stop="1243.230000">tip and some resources, tips and resources, more things,</span> <span class="audio-time caption" data-speaker="" data-start="1243.250000" data-stop="1250.120000">back to the map, and so forth. So mapping the resources would</span> <span class="audio-time caption" data-speaker="" data-start="1250.160000" data-stop="1253.845000">theoretically help me or somebody else be able to say, okay,</span> <span class="audio-time caption" data-speaker="" data-start="1253.905000" data-stop="1257.871000">where are you in your learning journey? And what do you want</span> <span class="audio-time caption" data-speaker="" data-start="1257.891000" data-stop="1260.086000">to learn about next?</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="1260.000000">00:21:00</span> <strong>Clojure</strong></div><span class="audio-time caption" data-speaker="" data-start="1260.087000" data-stop="1263.932000">Jeff says perhaps Clojure is a route to</span> <span class="audio-time caption" data-speaker="" data-start="1264.092000" data-stop="1267.437000">Emacs for experts. I've heard it's the best IDE for that</span> <span class="audio-time caption" data-speaker="" data-start="1267.537000" data-stop="1271.863000">language. And I should mention that too, because</span> <span class="audio-time caption" data-speaker="" data-start="1273.826000" data-stop="1274.747000">Clojure...</span> <span class="audio-time caption" data-speaker="" data-start="1279.093000" data-stop="1282.337000">Am I no longer sharing?</span> <span class="audio-time caption" data-speaker="" data-start="1288.886000" data-stop="1290.723000">Okay. because</span> <span class="audio-time caption" data-speaker="" data-start="1294.690000" data-stop="1301.541000">Clojure. Yeah, it is so far I think still one of the, like</span> <span class="audio-time caption" data-speaker="" data-start="1301.661000" data-stop="1313.140000">Emacs is still one of the reference IDE for it. So that is,</span> <span class="audio-time caption" data-speaker="" data-start="1313.160000" data-stop="1316.865000">we see a lot of people come into Emacs because They're</span> <span class="audio-time caption" data-speaker="" data-start="1316.946000" data-stop="1321.292000">working at a Clojure shop and they basically want to use the</span> <span class="audio-time caption" data-speaker="" data-start="1321.352000" data-stop="1326.881000">same IDE that everybody else is already using there. Or</span> <span class="audio-time caption" data-speaker="" data-start="1327.041000" data-stop="1331.047000">they're getting into Clojure, they want to do work in</span> <span class="audio-time caption" data-speaker="" data-start="1331.127000" data-stop="1336.338000">Clojure, and so they're learning Emacs because because</span> <span class="audio-time caption" data-speaker="" data-start="1336.638000" data-stop="1341.226000">that's kind of the standard IDE for now. I think the State of</span> <span class="audio-time caption" data-speaker="" data-start="1341.246000" data-stop="1344.651000">the Clojure survey recently said there are other editors</span> <span class="audio-time caption" data-speaker="" data-start="1344.792000" data-stop="1348.818000">gaining ground... More editors means more</span> <span class="audio-time caption" data-speaker="" data-start="1349.439000" data-stop="1353.205000">places to learn, more places to pick up ideas from, so that's</span> <span class="audio-time caption" data-speaker="" data-start="1353.266000" data-stop="1357.713000">not terrible. It's okay too. But that's</span> <span class="audio-time caption" data-speaker="" data-start="1357.733000" data-stop="1361.642000">definitely a reason why people come into Emacs. because</span> <span class="audio-time caption" data-speaker="" data-start="1363.204000" data-stop="1365.746000">it's the standard way of doing things.</span> <span class="audio-time caption" data-speaker="" data-start="1369.030000" data-stop="1372.874000">And of course, Org is wonderful, and Magit is wonderful, and</span> <span class="audio-time caption" data-speaker="" data-start="1372.914000" data-stop="1377.558000">people come into it just for those reasons. That is okay. And</span> <span class="audio-time caption" data-speaker="" data-start="1377.578000" data-stop="1379.921000">sometimes people use it only for those reasons, and that is</span> <span class="audio-time caption" data-speaker="" data-start="1380.021000" data-stop="1382.963000">also totally okay.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="1382.000000">00:23:02</span> <strong>Emacs News and a map</strong></div><span class="audio-time caption" data-speaker="" data-start="1382.964000" data-stop="1384.465000">Okay, so Emacs News is one of the things</span> <span class="audio-time caption" data-speaker="" data-start="1384.485000" data-stop="1389.370000">that I can fiddle with, and that can go into a map. And the map</span> <span class="audio-time caption" data-speaker="" data-start="1389.450000" data-stop="1394.142000">is more... Again, it's not quite in the state where newbies</span> <span class="audio-time caption" data-speaker="" data-start="1394.202000" data-stop="1397.226000">might navigate it, but if I were theoretically to have</span> <span class="audio-time caption" data-speaker="" data-start="1397.667000" data-stop="1402.894000">office hours, for example, then I might use that to quickly</span> <span class="audio-time caption" data-speaker="" data-start="1402.954000" data-stop="1406.198000">go through, like, okay, where are you? What do you want to</span> <span class="audio-time caption" data-speaker="" data-start="1406.238000" data-stop="1410.844000">learn? And here's some resources that other people have</span> <span class="audio-time caption" data-speaker="" data-start="1410.884000" data-stop="1415.390000">shared that might be helpful. And then theoretically,</span> <span class="audio-time caption" data-speaker="" data-start="1415.410000" data-stop="1418.559000">maybe they will keep exploring from there.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="1418.000000">00:23:38</span> <strong>Cheat sheets</strong></div><span class="audio-time caption" data-speaker="" data-start="1418.560000" data-stop="1419.761000">Oh yes, the How to</span> <span class="audio-time caption" data-speaker="" data-start="1419.801000" data-stop="1426.829000">Learn Emacs cheat sheet that I made ages ago. Learn Emacs. I</span> <span class="audio-time caption" data-speaker="" data-start="1426.949000" data-stop="1433.776000">think this is 2003. No, no, it's 2013, it feels like. I should</span> <span class="audio-time caption" data-speaker="" data-start="1433.836000" data-stop="1436.519000">include here. How to learn Emacs.</span> <span class="audio-time caption" data-speaker="" data-start="1441.204000" data-stop="1448.331000">Yeah, 2013. Okay. And the idea there was kind of a one page</span> <span class="audio-time caption" data-speaker="" data-start="1449.053000" data-stop="1456.103000">sheet with sort of like the most common things.</span> <span class="audio-time caption" data-speaker="" data-start="1456.484000" data-stop="1458.667000">What the difference is between a frame and a window, and</span> <span class="audio-time caption" data-speaker="" data-start="1459.668000" data-stop="1462.893000">what's the mode line, and some pointers to other things that</span> <span class="audio-time caption" data-speaker="" data-start="1463.013000" data-stop="1470.724000">you might want to learn. And this was... I think this was</span> <span class="audio-time caption" data-speaker="" data-start="1470.804000" data-stop="1480.553000">before starter kits like Doom Emacs. I don't even have Oh,</span> <span class="audio-time caption" data-speaker="" data-start="1480.573000" data-stop="1484.702000">this is an old URL. In fact, I should go change that. I don't</span> <span class="audio-time caption" data-speaker="" data-start="1484.742000" data-stop="1488.170000">even have a recommendation to learn Org first</span> <span class="audio-time caption" data-speaker="" data-start="1488.210000" data-stop="1491.236000">thing. Take your notes in it. Oh, no, I do have. See, it's Org</span> <span class="audio-time caption" data-speaker="" data-start="1491.256000" data-stop="1496.488000">Mode. Is it Org-mode? Is that even still? Yeah, okay,</span> <span class="audio-time caption" data-speaker="" data-start="1496.508000" data-stop="1500.356000">okay, that's still on it. Thank goodness. Okay, okay, here</span> <span class="audio-time caption" data-speaker="" data-start="1500.396000" data-stop="1508.899000">we go. Let's add that as a thing. So that's still being</span> <span class="audio-time caption" data-speaker="" data-start="1508.960000" data-stop="1515.030000">recommended, but the idea of having a single page cheat</span> <span class="audio-time caption" data-speaker="" data-start="1515.090000" data-stop="1517.694000">sheet, there are actually quite a few of these cheat sheets</span> <span class="audio-time caption" data-speaker="" data-start="1517.774000" data-stop="1524.305000">anyway. Making one yourself is always a good idea. It's a</span> <span class="audio-time caption" data-speaker="" data-start="1524.345000" data-stop="1530.602000">good way to deal with the overwhelm, so cheat sheet. Jumping</span> <span class="audio-time caption" data-speaker="" data-start="1530.902000" data-stop="1533.046000">all over the place. That's just how my brain works. It's</span> <span class="audio-time caption" data-speaker="" data-start="1533.186000" data-stop="1540.478000">okay. Okay, so the things that I can fiddle with. Emacs news.</span> <span class="audio-time caption" data-speaker="" data-start="1542.742000" data-stop="1547.891000">I have a beginner section up there. I could add an</span> <span class="audio-time caption" data-speaker="" data-start="1548.031000" data-stop="1548.772000">introduction</span> <span class="audio-time caption" data-speaker="" data-start="1552.038000" data-stop="1552.458000">to do.</span> <span class="audio-time caption" data-speaker="" data-start="1555.383000" data-stop="1556.365000">Add intro.</span> <span class="audio-time caption" data-speaker="" data-start="1559.855000" data-stop="1562.779000">So when people get to Emacs News,</span> <span class="audio-time caption" data-speaker="" data-start="1565.983000" data-stop="1570.189000">can I get to it? Yes. Right now, there's just this very basic</span> <span class="audio-time caption" data-speaker="" data-start="1570.249000" data-stop="1575.456000">subscription options, feed XML, mailing list, index.org.</span> <span class="audio-time caption" data-speaker="" data-start="1575.856000" data-stop="1579.820000">But I can add a little more information here for new users. to</span> <span class="audio-time caption" data-speaker="" data-start="1579.840000" data-stop="1585.206000">say, okay, this is how you set up elfeed.</span> <span class="audio-time caption" data-speaker="" data-start="1585.266000" data-stop="1588.610000">This is what Emacs News is. It's a little bit overwhelming,</span> <span class="audio-time caption" data-speaker="" data-start="1588.630000" data-stop="1591.814000">but you can use it for... you can keep an eye out for the</span> <span class="audio-time caption" data-speaker="" data-start="1591.854000" data-stop="1595.538000">beginner thing. You can look through the archives for</span> <span class="audio-time caption" data-speaker="" data-start="1595.658000" data-stop="1600.504000">beginner related links. And you can also start to look for</span> <span class="audio-time caption" data-speaker="" data-start="1601.165000" data-stop="1604.228000">recent resources related to the topics that you're</span> <span class="audio-time caption" data-speaker="" data-start="1604.308000" data-stop="1609.234000">interested in. So that's something I can do.</span> <span class="audio-time caption" data-speaker="" data-start="1611.458000" data-stop="1613.133000">There's probably an interesting way I can mark that in</span> <span class="audio-time caption" data-speaker="" data-start="1613.134000" data-stop="1619.467000">the audio. "Hey Sacha, do this."</span> <span class="audio-time caption" data-speaker="" data-start="1619.468000" data-stop="1624.320000">So that's one thing I can work on.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="1624.000000">00:27:04</span> <strong>Meetups</strong></div><span class="audio-time caption" data-speaker="" data-start="1624.321000" data-stop="1630.676000">Meetups are great for newcomers because you can get over that</span> <span class="audio-time caption" data-speaker="" data-start="1631.396000" data-stop="1634.940000">challenge of isolation, especially when they realize that</span> <span class="audio-time caption" data-speaker="" data-start="1635.040000" data-stop="1638.543000">it's totally okay to ask questions at meetups and show the</span> <span class="audio-time caption" data-speaker="" data-start="1638.623000" data-stop="1641.801000">things that you have that aren't working and then other</span> <span class="audio-time caption" data-speaker="" data-start="1641.841000" data-stop="1644.623000">people will help you think about them and figure something</span> <span class="audio-time caption" data-speaker="" data-start="1644.764000" data-stop="1651.951000">out. I've seen a fair bit of live debugging at places like</span> <span class="audio-time caption" data-speaker="" data-start="1652.291000" data-stop="1656.555000">Emacs Berlin and the Org Meetup.</span> <span class="audio-time caption" data-speaker="" data-start="1658.477000" data-stop="1664.103000">It's hard to ask questions sometimes on Reddit, although a</span> <span class="audio-time caption" data-speaker="" data-start="1664.123000" data-stop="1668.588000">lot of people do. It feels a little bit like Reddit is more</span> <span class="audio-time caption" data-speaker="" data-start="1668.728000" data-stop="1674.112000">effective as a help platform than Stack Exchange.</span> <span class="audio-time caption" data-speaker="" data-start="1676.895000" data-stop="1680.019000">But sometimes you need a bit more back and forth, and that's</span> <span class="audio-time caption" data-speaker="" data-start="1680.079000" data-stop="1683.423000">where the meetups can be helpful. So I guess the progression</span> <span class="audio-time caption" data-speaker="" data-start="1683.463000" data-stop="1688.129000">there is ask on help-gnu-emacs or, well, ask on your</span> <span class="audio-time caption" data-speaker="" data-start="1688.210000" data-stop="1691.594000">project-specific mailing list or help-gnu-emacs or Reddit</span> <span class="audio-time caption" data-speaker="" data-start="1692.275000" data-stop="1695.739000">or the Emacs subreddit. And if it feels like it needs a bit</span> <span class="audio-time caption" data-speaker="" data-start="1695.779000" data-stop="1699.464000">more back and forth or showing things, the meetups are</span> <span class="audio-time caption" data-speaker="" data-start="1699.524000" data-stop="1703.350000">helpful for that. I've also seen people asking questions in</span> <span class="audio-time caption" data-speaker="" data-start="1703.370000" data-stop="1707.795000">Mastodon, which is very nice. But Mastodon is a little bit</span> <span class="audio-time caption" data-speaker="" data-start="1707.815000" data-stop="1711.800000">more of a technical thing, I think. It's not something that a</span> <span class="audio-time caption" data-speaker="" data-start="1711.840000" data-stop="1716.385000">lot of newbies will be on. Anyway,</span> <span class="audio-time caption" data-speaker="" data-start="1716.405000" data-stop="1721.171000">the meetups. People come across meetups. Not that often.</span> <span class="audio-time caption" data-speaker="" data-start="1721.892000" data-stop="1724.735000">But Emacs News helps with coming across meetups because I</span> <span class="audio-time caption" data-speaker="" data-start="1724.835000" data-stop="1733.868000">include upcoming events in the first section here. And so</span> <span class="audio-time caption" data-speaker="" data-start="1734.368000" data-stop="1739.515000">what I should do is in the intro, I should also mention how to</span> <span class="audio-time caption" data-speaker="" data-start="1739.555000" data-stop="1740.296000">subscribe.</span> <span class="audio-time caption" data-speaker="" data-start="1745.443000" data-stop="1749.608000">Meetups are great. Inspiration.</span> <span class="audio-time caption" data-speaker="" data-start="1753.373000" data-stop="1764.395000">Okay. And that's there. We run the Emacs Big Blue</span> <span class="audio-time caption" data-speaker="" data-start="1764.435000" data-stop="1768.862000">Button web conferencing server year-round. We don't leave</span> <span class="audio-time caption" data-speaker="" data-start="1768.902000" data-stop="1771.105000">it scaled up all the time because that would be expensive,</span> <span class="audio-time caption" data-speaker="" data-start="1771.246000" data-stop="1774.491000">but we usually keep it as a Nanode so that I don't have to spend</span> <span class="audio-time caption" data-speaker="" data-start="1774.511000" data-stop="1780.099000">the week before the conference scrambling to get</span> <span class="audio-time caption" data-speaker="" data-start="1780.199000" data-stop="1785.968000">everything sorted out and hoping that the latest install</span> <span class="audio-time caption" data-speaker="" data-start="1785.988000" data-stop="1789.554000">script didn't break anything. So it's fine. We</span> <span class="audio-time caption" data-speaker="" data-start="1789.574000" data-stop="1792.478000">just run it year-round and then scale it up for</span> <span class="audio-time caption" data-speaker="" data-start="1792.538000" data-stop="1798.085000">meetups. Right now it's scaled up monthly for the Emacs</span> <span class="audio-time caption" data-speaker="" data-start="1798.205000" data-stop="1805.514000">Berlin, Emacs APAC, and Org Meetup meetups. But if there are</span> <span class="audio-time caption" data-speaker="" data-start="1805.594000" data-stop="1809.899000">other meetups that would like to have a free and open source</span> <span class="audio-time caption" data-speaker="" data-start="1810.040000" data-stop="1813.824000">software platform to do it, we can certainly do</span> <span class="audio-time caption" data-speaker="" data-start="1813.844000" data-stop="1817.869000">that. We can add them to the list there. Anyway, so that's</span> <span class="audio-time caption" data-speaker="" data-start="1817.949000" data-stop="1819.830000">Emacs. It goes into Emacs News.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="1819.000000">00:30:19</span> <strong>Emacs Calendar</strong></div><span class="audio-time caption" data-speaker="" data-start="1819.831000" data-stop="1821.714000">There is also an ical for it,</span> <span class="audio-time caption" data-speaker="" data-start="1823.677000" data-stop="1825.900000">which I could mention more prominently.</span> <span class="audio-time caption" data-speaker="" data-start="1829.245000" data-stop="1833.051000">Oh yeah, I actually do already mention it fairly</span> <span class="audio-time caption" data-speaker="" data-start="1833.111000" data-stop="1835.495000">prominently over there, so that's fine. Although I guess</span> <span class="audio-time caption" data-speaker="" data-start="1835.735000" data-stop="1839.581000">some people might not know that ical files can go into your</span> <span class="audio-time caption" data-speaker="" data-start="1839.741000" data-stop="1846.899000">calendar. So I should mention calendar in this intro for</span> <span class="audio-time caption" data-speaker="" data-start="1846.939000" data-stop="1849.863000">newbies that I should write, kind of like how to make the most</span> <span class="audio-time caption" data-speaker="" data-start="1849.903000" data-stop="1855.131000">of Emacs News. And that actually takes, is generated by this</span> <span class="audio-time caption" data-speaker="" data-start="1855.371000" data-stop="1864.965000">Emacs calendar thing. So that lists upcoming events. I also</span> <span class="audio-time caption" data-speaker="" data-start="1865.105000" data-stop="1872.555000">update the Emacs Wiki page for it with a copy of the thing, and</span> <span class="audio-time caption" data-speaker="" data-start="1872.976000" data-stop="1876.678000">I generate HTML calendars as well, in case that's what</span> <span class="audio-time caption" data-speaker="" data-start="1876.718000" data-stop="1881.825000">people prefer. Calendars. Calendars all over the place. I</span> <span class="audio-time caption" data-speaker="" data-start="1882.025000" data-stop="1885.410000">even generate org files in a gazillion different time</span> <span class="audio-time caption" data-speaker="" data-start="1885.450000" data-stop="1889.835000">zones, so that people can just include that. And I think then</span> <span class="audio-time caption" data-speaker="" data-start="1889.876000" data-stop="1893.801000">the time zones are all sorted out automatically. Because</span> <span class="audio-time caption" data-speaker="" data-start="1893.901000" data-stop="1896.464000">we... I don't think we still have time zone... We have time</span> <span class="audio-time caption" data-speaker="" data-start="1896.544000" data-stop="1902.953000">zone support yet in Org Mode? Anyway, it's there. Meetups.</span> <span class="audio-time caption" data-speaker="" data-start="1902.973000" data-stop="1907.375000">Where was I with... Yes. I need to add this to the intro. Let's</span> <span class="audio-time caption" data-speaker="" data-start="1907.895000" data-stop="1912.720000">highlight that in the thing that I need to do. Emacs news.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="1914.000000">00:31:54</span> <strong>EmacsConf</strong></div><span class="audio-time caption" data-speaker="" data-start="1914.862000" data-stop="1918.505000">EmacsConf is more of a, again, it's an inspiration sort of</span> <span class="audio-time caption" data-speaker="" data-start="1918.585000" data-stop="1918.886000">thing.</span> <span class="audio-time caption" data-speaker="" data-start="1922.890000" data-stop="1929.736000">We like to start the day with more beginner-oriented talks.</span> <span class="audio-time caption" data-speaker="" data-start="1929.756000" data-stop="1934.475000">So I'm always looking out for presentations that that makes</span> <span class="audio-time caption" data-speaker="" data-start="1934.535000" data-stop="1938.800000">sense to share and encourages people to kind of get into</span> <span class="audio-time caption" data-speaker="" data-start="1939.441000" data-stop="1944.186000">Emacs less slowly or workflows for Org Mode that can inspire</span> <span class="audio-time caption" data-speaker="" data-start="1944.226000" data-stop="1947.770000">them to try it out and make it a little bit</span> <span class="audio-time caption" data-speaker="" data-start="1947.810000" data-stop="1954.217000">more manageable. So that's in a yearly kind of schedule,</span> <span class="audio-time caption" data-speaker="" data-start="1954.657000" data-stop="1957.200000">students, rhythm.</span> <span class="audio-time caption" data-speaker="" data-start="1958.501000" data-stop="1963.494000">And so I guess the Emacs News and Emacs Conf ones are</span> <span class="audio-time caption" data-speaker="" data-start="1963.534000" data-stop="1968.960000">definitely more about inspiration, giving people reasons</span> <span class="audio-time caption" data-speaker="" data-start="1969.040000" data-stop="1972.404000">to stick with the learning curve because they can see what</span> <span class="audio-time caption" data-speaker="" data-start="1972.524000" data-stop="1978.110000">Emacs can do in other people's hands. And the meetups sort of</span> <span class="audio-time caption" data-speaker="" data-start="1978.190000" data-stop="1982.294000">help with the getting over the hump of getting a</span> <span class="audio-time caption" data-speaker="" data-start="1983.335000" data-stop="1986.058000">basic working environment going. Although actually</span> <span class="audio-time caption" data-speaker="" data-start="1986.098000" data-stop="1988.300000">people don't usually ask about basic working environments</span> <span class="audio-time caption" data-speaker="" data-start="1988.801000" data-stop="1992.042000">because they feel maybe a bit embarrassed. About asking</span> <span class="audio-time caption" data-speaker="" data-start="1992.623000" data-stop="1993.164000">about such?</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="1995.000000">00:33:15</span> <strong>Where people ask for help</strong></div><span class="audio-time caption" data-speaker="" data-start="1995.928000" data-stop="1999.072000">I see more of those, like, okay, I'm trying to set up this, you</span> <span class="audio-time caption" data-speaker="" data-start="1999.092000" data-stop="2003.138000">know, this LSP thing, and I'm getting stuck on this thing. I</span> <span class="audio-time caption" data-speaker="" data-start="2003.198000" data-stop="2006.583000">see more of that on Reddit. It might also be in help-gnu-emacs,</span> <span class="audio-time caption" data-speaker="" data-start="2006.663000" data-stop="2009.307000">but I haven't actually been reading help-gnu-emacs, because</span> <span class="audio-time caption" data-speaker="" data-start="2009.908000" data-stop="2012.592000">I feel like it might be a high-traffic mailing list. I should</span> <span class="audio-time caption" data-speaker="" data-start="2012.652000" data-stop="2015.736000">find out, okay, what's help-gnu-emacs like these days?</span> <span class="audio-time caption" data-speaker="" data-start="2022.702000" data-stop="2024.905000">Because I want people to be able to...</span> <span class="audio-time caption" data-speaker="" data-start="2027.968000" data-stop="2030.691000">Okay.</span> <span class="audio-time caption" data-speaker="" data-start="2034.496000" data-stop="2048.592000">So this, I feel like, is more of... It tends to be more of a...</span> <span class="audio-time caption" data-speaker="" data-start="2050.764000" data-stop="2059.995000">More of an intermediate resource at the moment.</span> <span class="audio-time caption" data-speaker="" data-start="2060.014000" data-stop="2063.998000">Now we need a place where... Okay, so Reddit seems to be a</span> <span class="audio-time caption" data-speaker="" data-start="2064.319000" data-stop="2067.902000">place where people are not intimidated by the thought of</span> <span class="audio-time caption" data-speaker="" data-start="2068.003000" data-stop="2073.688000">posting beginner questions. And there's also Emacs Stack</span> <span class="audio-time caption" data-speaker="" data-start="2073.748000" data-stop="2079.876000">Exchange, but I don't think people use that as much these</span> <span class="audio-time caption" data-speaker="" data-start="2079.896000" data-stop="2093.463000">days. Some...</span> <span class="audio-time caption" data-speaker="" data-start="2093.483000" data-stop="2099.451000">Maybe...</span> <span class="audio-time caption" data-speaker="" data-start="2099.471000" data-stop="2102.536000">I think there's... Again, this is sort of still... Still</span> <span class="audio-time caption" data-speaker="" data-start="2102.616000" data-stop="2107.763000">kind of intermediate-ish questions. Maybe what I should do</span> <span class="audio-time caption" data-speaker="" data-start="2107.803000" data-stop="2109.966000">is...</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="2112.000000">00:35:12</span> <strong>Emacs Clinic?</strong></div><span class="audio-time caption" data-speaker="" data-start="2112.292000" data-stop="2116.177000">This actually set up kind of that Emacs clinic sort of idea,</span> <span class="audio-time caption" data-speaker="" data-start="2116.998000" data-stop="2120.021000">which could be Thursday. Tomorrow could be a good time to</span> <span class="audio-time caption" data-speaker="" data-start="2120.061000" data-stop="2122.043000">experiment with it. Okay.</span> <span class="audio-time caption" data-speaker="" data-start="2125.367000" data-stop="2129.572000">Whenever my iPad display times out, the UX screen mirroring</span> <span class="audio-time caption" data-speaker="" data-start="2129.833000" data-stop="2134.418000">becomes unhappy. So let me go restart that.</span> <span class="audio-time caption" data-speaker="" data-start="2143.173000" data-stop="2145.617000">I need to configure a longer timeout.</span> <span class="audio-time caption" data-speaker="" data-start="2151.987000" data-stop="2158.737000">Let me kill that all. Kill all uxplay. All right, let's try</span> <span class="audio-time caption" data-speaker="" data-start="2158.797000" data-stop="2161.541000">that again. Once more with feeling.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="2169.000000">00:36:09</span> <strong>My TODOs</strong></div><span class="audio-time caption" data-speaker="" data-start="2169.133000" data-stop="2174.735000">Okay. So that's probably my big to-do out of this, is Emacs</span> <span class="audio-time caption" data-speaker="" data-start="2174.795000" data-stop="2179.523000">news and how to learn Emacs. Both tend to be starting points.</span> <span class="audio-time caption" data-speaker="" data-start="2179.603000" data-stop="2182.367000">Emacs news more than how to learn Emacs, since how to learn</span> <span class="audio-time caption" data-speaker="" data-start="2182.447000" data-stop="2184.771000">Emacs is a little bit dated and I need to update the URL</span> <span class="audio-time caption" data-speaker="" data-start="2184.991000" data-stop="2198.813000">anyway. Update URL.</span> <span class="audio-time caption" data-speaker="" data-start="2200.801000" data-stop="2204.725000">Where was I going with this?</span> <span class="audio-time caption" data-speaker="" data-start="2204.745000" data-stop="2215.637000">Anita, what was I just talking about? And the</span> <span class="audio-time caption" data-speaker="" data-start="2215.757000" data-stop="2220.702000">inspiration part is actually also useful for encouraging</span> <span class="audio-time caption" data-speaker="" data-start="2220.982000" data-stop="2225.187000">more people to try out Emacs in the first place. So that is</span> <span class="audio-time caption" data-speaker="" data-start="2227.489000" data-stop="2228.530000">part of the journey.</span> <span class="audio-time caption" data-speaker="" data-start="2239.090000" data-stop="2242.754000">Usually it's curiosity drawing people in. Sometimes it's</span> <span class="audio-time caption" data-speaker="" data-start="2244.276000" data-stop="2246.058000">someone saying, I'm your professor, we're going to use</span> <span class="audio-time caption" data-speaker="" data-start="2246.098000" data-stop="2250.783000">this. But usually it's curiosity drawing people into</span> <span class="audio-time caption" data-speaker="" data-start="2250.883000" data-stop="2251.264000">Emacs.</span> <span class="audio-time caption" data-speaker="" data-start="2254.648000" data-stop="2258.933000">So if I wanted to write a blog post about or a reflection about</span> <span class="audio-time caption" data-speaker="" data-start="2259.113000" data-stop="2264.499000">what I can do to help people get into Emacs more effectively,</span> <span class="audio-time caption" data-speaker="" data-start="2266.081000" data-stop="2274.795000">I'm still kind of focusing... I still tend to focus on the</span> <span class="audio-time caption" data-speaker="" data-start="2274.895000" data-stop="2277.037000">intermediate part because...</span> <span class="audio-time caption" data-speaker="" data-start="2280.201000" data-stop="2285.788000">Why do I? Because that's the fun part for me. When you can</span> <span class="audio-time caption" data-speaker="" data-start="2285.828000" data-stop="2290.094000">start to customize Emacs to fit what you want. But in order</span> <span class="audio-time caption" data-speaker="" data-start="2290.154000" data-stop="2293.077000">for people to get to that point, they have to be able to get</span> <span class="audio-time caption" data-speaker="" data-start="2293.118000" data-stop="2296.241000">Emacs to the point where they can use it for their day-to-day</span> <span class="audio-time caption" data-speaker="" data-start="2296.281000" data-stop="2301.327000">stuff. And then they will want to spend more time in it, and</span> <span class="audio-time caption" data-speaker="" data-start="2301.347000" data-stop="2306.356000">then customize it to their particular needs. So, if my evil</span> <span class="audio-time caption" data-speaker="" data-start="2306.416000" data-stop="2309.041000">plan is to continue enjoying the cool stuff that people come</span> <span class="audio-time caption" data-speaker="" data-start="2309.101000" data-stop="2315.393000">up with in Emacs, it does make sense for me to help people get</span> <span class="audio-time caption" data-speaker="" data-start="2315.613000" data-stop="2319.634000">their basic working environment set up.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="2319.000000">00:38:39</span> <strong>Videos</strong></div><span class="audio-time caption" data-speaker="" data-start="2319.635000" data-stop="2321.116000">@benmezger says,</span> <span class="audio-time caption" data-speaker="" data-start="2321.577000" data-stop="2324.660000">there are quite some interesting YouTube channels to learn</span> <span class="audio-time caption" data-speaker="" data-start="2324.820000" data-stop="2329.765000">Emacs too. Yes, yes. There are great</span> <span class="audio-time caption" data-speaker="" data-start="2329.865000" data-stop="2332.948000">video series that people have done in the past. System</span> <span class="audio-time caption" data-speaker="" data-start="2332.988000" data-stop="2336.132000">Crafters is often recommended, although I think David has</span> <span class="audio-time caption" data-speaker="" data-start="2336.212000" data-stop="2341.877000">moved on to focusing on other things lately, like AI. But his</span> <span class="audio-time caption" data-speaker="" data-start="2342.818000" data-stop="2345.281000">videos on Doom Emacs, though, are</span> <span class="audio-time caption" data-speaker="" data-start="2347.423000" data-stop="2351.764000">still often recommended as resources. Video is helpful</span> <span class="audio-time caption" data-speaker="" data-start="2355.308000" data-stop="2361.315000">because it shows people how it fits together and how the</span> <span class="audio-time caption" data-speaker="" data-start="2361.375000" data-stop="2366.580000">workflow works. Things that are hard to see from articles</span> <span class="audio-time caption" data-speaker="" data-start="2366.961000" data-stop="2369.884000">and blog posts. Videos are a little bit frustrating</span> <span class="audio-time caption" data-speaker="" data-start="2369.924000" data-stop="2373.628000">sometimes because they are slow. You actually have to watch</span> <span class="audio-time caption" data-speaker="" data-start="2373.668000" data-stop="2380.737000">them. But I like the way that people have been posting Videos</span> <span class="audio-time caption" data-speaker="" data-start="2381.357000" data-stop="2386.524000">with detailed show notes in a literate programming style,</span> <span class="audio-time caption" data-speaker="" data-start="2386.884000" data-stop="2389.868000">with embedded snippets, and often they will even</span> <span class="audio-time caption" data-speaker="" data-start="2390.028000" data-stop="2394.914000">use this blog post as the starting point of or the final</span> <span class="audio-time caption" data-speaker="" data-start="2394.974000" data-stop="2398.578000">product of their video. I would like to be able to do more of</span> <span class="audio-time caption" data-speaker="" data-start="2398.619000" data-stop="2403.004000">these myself, but it may require that I learn how to organize</span> <span class="audio-time caption" data-speaker="" data-start="2403.064000" data-stop="2405.227000">my thoughts, which is part of this whole</span> <span class="audio-time caption" data-speaker="" data-start="2405.307000" data-stop="2408.350000">brainstorm things, and then ideally turn it into a blog post</span> <span class="audio-time caption" data-speaker="" data-start="2408.411000" data-stop="2411.812000">or series of blog posts. The videos are great because they</span> <span class="audio-time caption" data-speaker="" data-start="2411.872000" data-stop="2419.069000">help people show workflows, which is good for inspiring</span> <span class="audio-time caption" data-speaker="" data-start="2419.149000" data-stop="2422.176000">people to put in the effort to then go through the show notes</span> <span class="audio-time caption" data-speaker="" data-start="2422.677000" data-stop="2431.566000">and try the steps, but also kind of see other things that the</span> <span class="audio-time caption" data-speaker="" data-start="2431.606000" data-stop="2434.290000">person making the video might not have even mentioned.</span> <span class="audio-time caption" data-speaker="" data-start="2435.191000" data-stop="2438.275000">Often people will make a video, and a lot of the comments are</span> <span class="audio-time caption" data-speaker="" data-start="2438.295000" data-stop="2444.063000">like, what is that theme that they are using? Or they do this</span> <span class="audio-time caption" data-speaker="" data-start="2444.584000" data-stop="2447.188000">thing which changes the window configuration, and what is</span> <span class="audio-time caption" data-speaker="" data-start="2447.228000" data-stop="2452.375000">that? Delete other windows vertically. And the presenter</span> <span class="audio-time caption" data-speaker="" data-start="2452.415000" data-stop="2457.525000">might not even have thought of mentioning that. but because</span> <span class="audio-time caption" data-speaker="" data-start="2457.565000" data-stop="2460.350000">we are virtually looking over someone's shoulder, you get</span> <span class="audio-time caption" data-speaker="" data-start="2460.390000" data-stop="2465.158000">to see that. Ben continues, videos, indeed videos help show</span> <span class="audio-time caption" data-speaker="" data-start="2465.318000" data-stop="2469.244000">how powerful Emacs can be. Simply installing Emacs doesn't</span> <span class="audio-time caption" data-speaker="" data-start="2469.324000" data-stop="2472.008000">give you that viewpoint.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="2472.000000">00:41:12</span> <strong>Learning curve</strong></div><span class="audio-time caption" data-speaker="" data-start="2472.009000" data-stop="2474.453000">So that's it. I think, especially</span> <span class="audio-time caption" data-speaker="" data-start="2474.553000" data-stop="2479.261000">since our learning curve is, remember that meme that got</span> <span class="audio-time caption" data-speaker="" data-start="2479.421000" data-stop="2483.307000">passed around before really memes were codified,</span> <span class="audio-time caption" data-speaker="" data-start="2483.347000" data-stop="2486.357000">invented? Where the learning curve of Emacs is kind of like</span> <span class="audio-time caption" data-speaker="" data-start="2486.397000" data-stop="2490.400000">this. This is the learning curve of Emacs. It's just very</span> <span class="audio-time caption" data-speaker="" data-start="2490.460000" data-stop="2499.068000">fractal. We need that inspiration to help us get through the</span> <span class="audio-time caption" data-speaker="" data-start="2499.248000" data-stop="2502.271000">afternoons of, ah, why doesn't this thing just break out of</span> <span class="audio-time caption" data-speaker="" data-start="2502.311000" data-stop="2506.374000">the box? Why do I need to write Emacs Lisp to configure this?</span> <span class="audio-time caption" data-speaker="" data-start="2507.235000" data-stop="2510.118000">It's definitely a very different expectation from many</span> <span class="audio-time caption" data-speaker="" data-start="2510.198000" data-stop="2513.370000">other editors, where you're just expected to either have</span> <span class="audio-time caption" data-speaker="" data-start="2513.490000" data-stop="2518.375000">it, or check a checkbox, and then it's there. But because</span> <span class="audio-time caption" data-speaker="" data-start="2518.495000" data-stop="2521.377000">Emacs, there's so many different ways to use Emacs, it's</span> <span class="audio-time caption" data-speaker="" data-start="2521.437000" data-stop="2522.999000">really hard to say, okay, this stuff is going to be</span> <span class="audio-time caption" data-speaker="" data-start="2523.039000" data-stop="2525.441000">hard-coded for everyone, or this stuff is going to be the</span> <span class="audio-time caption" data-speaker="" data-start="2526.021000" data-stop="2531.967000">easy way. Anyway, and people come into Emacs with all sorts</span> <span class="audio-time caption" data-speaker="" data-start="2532.007000" data-stop="2536.611000">of different expectations too, right? So</span> <span class="audio-time caption" data-speaker="" data-start="2536.651000" data-stop="2541.375000">it really helps to see other people use Emacs in a way that</span> <span class="audio-time caption" data-speaker="" data-start="2541.655000" data-stop="2545.521000">suits them And to know that it is possible to have something</span> <span class="audio-time caption" data-speaker="" data-start="2545.541000" data-stop="2546.622000">that suits you as well.</span> <span class="audio-time caption" data-speaker="" data-start="2549.606000" data-stop="2553.110000">So making more videos. I would like to get the hang of doing</span> <span class="audio-time caption" data-speaker="" data-start="2553.150000" data-stop="2559.016000">that also. But I like blog posts and I like transcripts. So I</span> <span class="audio-time caption" data-speaker="" data-start="2559.076000" data-stop="2561.960000">want to be able to improve my workflow for making these</span> <span class="audio-time caption" data-speaker="" data-start="2562.020000" data-stop="2567.199000">videos and live streams so that They also make sense to</span> <span class="audio-time caption" data-speaker="" data-start="2567.259000" data-stop="2571.144000">people who don't have the time to watch a video stream for one</span> <span class="audio-time caption" data-speaker="" data-start="2571.244000" data-stop="2576.050000">hour or whatever. And it would be great for the video to make</span> <span class="audio-time caption" data-speaker="" data-start="2576.110000" data-stop="2578.693000">sense even if you're not looking at the video directly, you</span> <span class="audio-time caption" data-speaker="" data-start="2578.713000" data-stop="2581.677000">know, to make the audio make sense in case you're listening</span> <span class="audio-time caption" data-speaker="" data-start="2581.717000" data-stop="2585.562000">to it like a podcast while you're washing the dishes or going</span> <span class="audio-time caption" data-speaker="" data-start="2585.622000" data-stop="2589.446000">for a walk.</span> <span class="audio-time caption" data-speaker="" data-start="2589.466000" data-stop="2590.508000">So blog posts</span> <span class="audio-time caption" data-speaker="" data-start="2593.071000" data-stop="2593.992000">and podcasts.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="2601.000000">00:43:21</span> <strong>emacs.tv - TODO: Add more to the beginner tag, make a playlist</strong></div><span class="audio-time caption" data-speaker="" data-start="2601.025000" data-stop="2604.389000">Which reminds me that Emacs TV is a thing, although that's</span> <span class="audio-time caption" data-speaker="" data-start="2604.469000" data-stop="2607.472000">not super beginner-friendly in the sense that I can't just</span> <span class="audio-time caption" data-speaker="" data-start="2607.512000" data-stop="2611.397000">say, here's all the beginner-related topics. I</span> <span class="audio-time caption" data-speaker="" data-start="2611.417000" data-stop="2617.864000">should go back over the 3,000 plus videos over that and maybe</span> <span class="audio-time caption" data-speaker="" data-start="2617.964000" data-stop="2622.790000">index the beginner ones. Let's see what we got here anyway.</span> <span class="audio-time caption" data-speaker="" data-start="2622.830000" data-stop="2631.191000">Emacs TV. How many do we have now? Yeah, 3000 something. Do I</span> <span class="audio-time caption" data-speaker="" data-start="2631.231000" data-stop="2635.895000">have beginner? I do have beginner as a tag. 26 things flagged</span> <span class="audio-time caption" data-speaker="" data-start="2635.955000" data-stop="2639.779000">as beginners. Some of them are in different languages, but</span> <span class="audio-time caption" data-speaker="" data-start="2640.840000" data-stop="2646.786000">that seems like the sort of thing. That could be fun as a</span> <span class="audio-time caption" data-speaker="" data-start="2646.806000" data-stop="2649.229000">YouTube playlist, because people like to just play through</span> <span class="audio-time caption" data-speaker="" data-start="2649.249000" data-stop="2656.336000">a playlist. And then I can try to sort them, I guess?</span> <span class="audio-time caption" data-speaker="" data-start="2656.356000" data-stop="2658.758000">Maybe. Beginner playlist.</span> <span class="audio-time caption" data-speaker="" data-start="2662.113000" data-stop="2663.034000">Beginner playlist.</span> <span class="audio-time caption" data-speaker="" data-start="2670.282000" data-stop="2671.203000">That's another to-do.</span> <span class="audio-time caption" data-speaker="" data-start="2674.486000" data-stop="2676.568000">Okay. Interesting.</span> <span class="audio-time caption" data-speaker="" data-start="2679.672000" data-stop="2682.174000">This is great. I'm identifying a number of to-dos for</span> <span class="audio-time caption" data-speaker="" data-start="2682.194000" data-stop="2686.182000">myself. All right. Lifelong learning, which is how I want to</span> <span class="audio-time caption" data-speaker="" data-start="2686.202000" data-stop="2689.366000">take this idea of newbies and starter kits and apply it to</span> <span class="audio-time caption" data-speaker="" data-start="2689.586000" data-stop="2693.511000">everybody because many of the same problems that we run</span> <span class="audio-time caption" data-speaker="" data-start="2693.591000" data-stop="2698.497000">into, many same problems that newbies run into with regard</span> <span class="audio-time caption" data-speaker="" data-start="2698.577000" data-stop="2702.402000">to isolation and overwhelm and the balance between</span> <span class="audio-time caption" data-speaker="" data-start="2702.942000" data-stop="2707.368000">tinkering with your config and getting stuff done. Let's</span> <span class="audio-time caption" data-speaker="" data-start="2707.408000" data-stop="2709.450000">write that down somewhere.</span> <span class="audio-time caption" data-speaker="" data-start="2724.398000" data-stop="2729.325000">and Isolation.</span> <span class="audio-time caption" data-speaker="" data-start="2729.505000" data-stop="2730.005000">Unknowns.</span> <span class="audio-time caption" data-speaker="" data-start="2737.956000" data-stop="2741.741000">Okay, so four common problems that newbies run into.</span> <span class="audio-time caption" data-speaker="" data-start="2742.482000" data-stop="2747.869000">Isolation, overwhelm, balancing, tinkering with your</span> <span class="audio-time caption" data-speaker="" data-start="2747.889000" data-stop="2752.636000">setup and getting stuff done, and kind of getting the set</span> <span class="audio-time caption" data-speaker="" data-start="2752.676000" data-stop="2756.643000">like Dealing with unknowns.</span> <span class="audio-time caption" data-speaker="" data-start="2757.284000" data-stop="2763.075000">Let me turn down the filter. It's a little too strong.</span> <span class="audio-time caption" data-speaker="" data-start="2771.871000" data-stop="2775.678000">Now can I make hand gestures? Not really. Okay, I will tinker</span> <span class="audio-time caption" data-speaker="" data-start="2775.738000" data-stop="2780.117000">with that eventually. okay um the same kinds of problems</span> <span class="audio-time caption" data-speaker="" data-start="2780.157000" data-stop="2786.348000">that we run into even if we've been using Emacs for decades uh</span> <span class="audio-time caption" data-speaker="" data-start="2787.330000" data-stop="2791.939000">and this uh uh emerald that i'll uh establish in the video</span> <span class="audio-time caption" data-speaker="" data-start="2792.620000" data-stop="2796.786000">it's a lifelong journey uh okay so</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="2796.000000">00:46:36</span> <strong>Isolation</strong></div><span class="audio-time caption" data-speaker="" data-start="2796.787000" data-stop="2798.951000">Isolation. Meetups help.</span> <span class="audio-time caption" data-speaker="" data-start="2799.613000" data-stop="2806.111000">But meetups are harder for people to get to. You might not</span> <span class="audio-time caption" data-speaker="" data-start="2806.151000" data-stop="2809.595000">find something that's the right schedule for you. I highly,</span> <span class="audio-time caption" data-speaker="" data-start="2809.635000" data-stop="2814.462000">highly recommend writing about your Emacs learning.</span> <span class="audio-time caption" data-speaker="" data-start="2815.303000" data-stop="2817.606000">Blogging is a great way to connect with other people who are</span> <span class="audio-time caption" data-speaker="" data-start="2817.646000" data-stop="2821.171000">interested in the same kinds of things. And we've got Planet</span> <span class="audio-time caption" data-speaker="" data-start="2821.271000" data-stop="2825.216000">Emacs Life. Ooh, I should write that down as a thing. Planet</span> <span class="audio-time caption" data-speaker="" data-start="2825.296000" data-stop="2826.057000">Emacs Life.</span> <span class="audio-time caption" data-speaker="" data-start="2833.512000" data-stop="2838.637000">And we've got Emacs News to help kind of keep the</span> <span class="audio-time caption" data-speaker="" data-start="2838.697000" data-stop="2844.522000">conversation circulating. So that's there.</span> <span class="audio-time caption" data-speaker="" data-start="2844.523000" data-stop="2849.387000">@Mtendethecreator says, what's up? What's up, @Mtendethecreator?</span> <span class="audio-time caption" data-speaker="" data-start="2849.388000" data-stop="2854.513000">Currently I am brain dumping various things</span> <span class="audio-time caption" data-speaker="" data-start="2854.514000" data-stop="2860.600000">for various ideas for the Emacs Carnival April.</span> <span class="audio-time caption" data-speaker="" data-start="2866.047000" data-stop="2867.669000">Okay, so isolation,</span> <span class="audio-time caption" data-speaker="" data-start="2870.573000" data-stop="2871.214000">overwhelm,</span> <span class="audio-time caption" data-speaker="" data-start="2873.977000" data-stop="2874.919000">balance of time,</span> <span class="audio-time caption" data-speaker="" data-start="2881.888000" data-stop="2887.976000">unknowns. So here I want to think about, okay, even for</span> <span class="audio-time caption" data-speaker="" data-start="2888.056000" data-stop="2892.822000">people who might not consider themselves as total newbies</span> <span class="audio-time caption" data-speaker="" data-start="2892.962000" data-stop="2897.757000">anymore, It's always good to keep a beginner's mind in Emacs</span> <span class="audio-time caption" data-speaker="" data-start="2897.777000" data-stop="2899.820000">because there's so much to learn. Just the other day, I was</span> <span class="audio-time caption" data-speaker="" data-start="2900.861000" data-stop="2905.586000">reading a discussion thread where one of the commenters was</span> <span class="audio-time caption" data-speaker="" data-start="2905.807000" data-stop="2908.329000">singing the praises of Org Remark, so now I have a new thing</span> <span class="audio-time caption" data-speaker="" data-start="2908.349000" data-stop="2912.034000">that I want to go figure out how to add to my workflow. There's</span> <span class="audio-time caption" data-speaker="" data-start="2912.054000" data-stop="2914.837000">always something interesting to tinker with and learn.</span> <span class="audio-time caption" data-speaker="" data-start="2917.120000" data-stop="2921.505000">Anyway, so everybody can benefit from the things that we can</span> <span class="audio-time caption" data-speaker="" data-start="2921.565000" data-stop="2926.078000">do in this area. Isolation, I'd strongly recommend</span> <span class="audio-time caption" data-speaker="" data-start="2926.118000" data-stop="2926.759000">blogging,</span> <span class="audio-time caption" data-speaker="" data-start="2929.983000" data-stop="2930.443000">Meetups</span> <span class="audio-time caption" data-speaker="" data-start="2933.206000" data-stop="2934.887000">This is where the aggregator goes in.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="2934.000000">00:48:54</span> <strong>Overwhelm</strong></div><span class="audio-time caption" data-speaker="" data-start="2934.888000" data-stop="2937.131000">Overwhelm, figuring</span> <span class="audio-time caption" data-speaker="" data-start="2937.331000" data-stop="2938.673000">out how to take notes</span> <span class="audio-time caption" data-speaker="" data-start="2941.456000" data-stop="2946.342000">and how to bring up your notes... Customize interface</span> <span class="audio-time caption" data-speaker="" data-start="2954.067000" data-stop="2957.950000">So that's how people start to deal with that. Balance of</span> <span class="audio-time caption" data-speaker="" data-start="2958.030000" data-stop="2961.073000">time...</span> <span class="audio-time caption" data-speaker="" data-start="2961.093000" data-stop="2964.576000">I don't know. I think this is a much... This is an ongoing</span> <span class="audio-time caption" data-speaker="" data-start="2964.676000" data-stop="2971.202000">problem. And... Well, ongoing challenge. Because the...</span> <span class="audio-time caption" data-speaker="" data-start="2971.222000" data-stop="2973.584000">You know, tinkering with Emacs becomes more fun as you get</span> <span class="audio-time caption" data-speaker="" data-start="2973.704000" data-stop="2975.205000">used to it.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="2975.000000">00:49:35</span> <strong>IRC</strong></div><span class="audio-time caption" data-speaker="" data-start="2975.206000" data-stop="2977.808000">Oh, IRC. Yes, IRC. I should mention... We should</span> <span class="audio-time caption" data-speaker="" data-start="2977.828000" data-stop="2981.491000">definitely mention that. IRC. Helps with isolation and</span> <span class="audio-time caption" data-speaker="" data-start="2981.731000" data-stop="2982.572000">getting help.</span> <span class="audio-time caption" data-speaker="" data-start="2990.551000" data-stop="2997.821000">Although people also... like some... are they still having</span> <span class="audio-time caption" data-speaker="" data-start="2998.122000" data-stop="3002.868000">issues with spammers and needing to restrict the channel?</span> <span class="audio-time caption" data-speaker="" data-start="3003.970000" data-stop="3006.634000">I've been meaning to write a page that explains what to do in</span> <span class="audio-time caption" data-speaker="" data-start="3006.654000" data-stop="3009.317000">that situation. I should drop in to see what's going on</span> <span class="audio-time caption" data-speaker="" data-start="3009.418000" data-stop="3015.827000">there. Reddit, I think, is where people...</span> <span class="audio-time caption" data-speaker="" data-start="3015.847000" data-stop="3025.553000">Okay, I need to... Okay, let's label these things. A, B, C,</span> <span class="audio-time caption" data-speaker="" data-start="3025.873000" data-stop="3029.577000">and D. And this balance of time is actually related to</span> <span class="audio-time caption" data-speaker="" data-start="3029.617000" data-stop="3036.104000">getting a basic working environment started out. So if the</span> <span class="audio-time caption" data-speaker="" data-start="3036.224000" data-stop="3045.533000">reddit is good at A and C and also D actually.</span> <span class="audio-time caption" data-speaker="" data-start="3049.647000" data-stop="3053.131000">Isolation and balance of time. A little bit. People have to</span> <span class="audio-time caption" data-speaker="" data-start="3053.171000" data-stop="3056.576000">learn how to use pastebin and it's a little bit harder on IRC</span> <span class="audio-time caption" data-speaker="" data-start="3056.856000" data-stop="3061.782000">to say, oh yeah, this is the... People do pastebin</span> <span class="audio-time caption" data-speaker="" data-start="3062.943000" data-stop="3065.987000">the problem and then people sometimes do pastebin the</span> <span class="audio-time caption" data-speaker="" data-start="3066.027000" data-stop="3069.471000">solutions. Sometimes a lot of things can be handled by a</span> <span class="audio-time caption" data-speaker="" data-start="3069.511000" data-stop="3074.878000">quick question, so that's good. Okay, I said isolation.</span> <span class="audio-time caption" data-speaker="" data-start="3078.622000" data-stop="3084.232000">Balance of time is always still a problem, but people</span> <span class="audio-time caption" data-speaker="" data-start="3084.272000" data-stop="3085.915000">develop their own productivity</span> <span class="audio-time caption" data-speaker="" data-start="3088.419000" data-stop="3089.821000">prioritization type things.</span> <span class="audio-time caption" data-speaker="" data-start="3098.056000" data-stop="3099.398000">Structures? Frameworks?</span> <span class="audio-time caption" data-speaker="" data-start="3104.356000" data-stop="3108.240000">And for lifelong learning, this unknowns part becomes</span> <span class="audio-time caption" data-speaker="" data-start="3108.581000" data-stop="3113.506000">really interesting and powerful.</span> <span class="audio-time caption" data-speaker="" data-start="3116.650000" data-stop="3118.912000">Yeah, and this is where bumping into ideas</span> <span class="audio-time caption" data-speaker="" data-start="3124.839000" data-stop="3127.822000">helps. Through IRC, through Reddit,</span> <span class="audio-time caption" data-speaker="" data-start="3131.466000" data-stop="3134.385000">through all the Emacs News, etc.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="3139.000000">00:52:19</span> <strong>Learning from other people's configs; TODO maybe a livestream?</strong></div><span class="audio-time caption" data-speaker="" data-start="3139.752000" data-stop="3143.417000">Charlie says, searching through GitHub for Emacs keywords</span> <span class="audio-time caption" data-speaker="" data-start="3143.497000" data-stop="3147.022000">to see how other people configure things helped my Emacs</span> <span class="audio-time caption" data-speaker="" data-start="3147.082000" data-stop="3152.389000">customization understanding. If Emacs customization is</span> <span class="audio-time caption" data-speaker="" data-start="3152.510000" data-stop="3156.615000">one of the things that helps people move from being a total</span> <span class="audio-time caption" data-speaker="" data-start="3156.695000" data-stop="3160.961000">newbie to an intermediate user, then maybe it makes sense to</span> <span class="audio-time caption" data-speaker="" data-start="3161.061000" data-stop="3166.675000">have and in addition to the clinics that I mentioned, some</span> <span class="audio-time caption" data-speaker="" data-start="3166.716000" data-stop="3169.919000">kind of a live stream where we just go read other people's</span> <span class="audio-time caption" data-speaker="" data-start="3169.980000" data-stop="3178.029000">configs and then talk about how to adapt it and show a</span> <span class="audio-time caption" data-speaker="" data-start="3178.049000" data-stop="3182.795000">demonstration of a way that fits into the workflow. I think</span> <span class="audio-time caption" data-speaker="" data-start="3182.915000" data-stop="3188.001000">that could be a lot of fun. I've been enjoying going through</span> <span class="audio-time caption" data-speaker="" data-start="3188.302000" data-stop="3194.232000">Prot and tecosaur's literate configurations, and slowly</span> <span class="audio-time caption" data-speaker="" data-start="3194.513000" data-stop="3197.597000">assimilating some of those snippets into my</span> <span class="audio-time caption" data-speaker="" data-start="3197.657000" data-stop="3202.765000">configuration. So it might be interesting for people to see</span> <span class="audio-time caption" data-speaker="" data-start="3203.406000" data-stop="3208.934000">more of that process of not just copying and pasting the</span> <span class="audio-time caption" data-speaker="" data-start="3208.974000" data-stop="3213.100000">code, but trying to figure out, okay, what can support me as I</span> <span class="audio-time caption" data-speaker="" data-start="3213.200000" data-stop="3217.025000">try to make this part of the way that I do things? Or how do I</span> <span class="audio-time caption" data-speaker="" data-start="3217.125000" data-stop="3222.922000">tweak it so that it's a blend of what they came up with and</span> <span class="audio-time caption" data-speaker="" data-start="3223.002000" data-stop="3228.829000">also what I want. So yeah, @mtendethecreator says, tsoding's config</span> <span class="audio-time caption" data-speaker="" data-start="3228.889000" data-stop="3234.776000">also. Yeah, whoever's config is posted, we can go through</span> <span class="audio-time caption" data-speaker="" data-start="3234.876000" data-stop="3238.321000">it. And then I can say, oh yeah, that's really cool.</span> <span class="audio-time caption" data-speaker="" data-start="3238.341000" data-stop="3241.244000">Like for example, reading Prot's config. I learned about</span> <span class="audio-time caption" data-speaker="" data-start="3241.464000" data-stop="3244.448000">delete-other-windows-vertically, which I think he had</span> <span class="audio-time caption" data-speaker="" data-start="3244.508000" data-stop="3251.832000">assigned to C-x !, like C-x !, I think, yeah, which is cool because</span> <span class="audio-time caption" data-speaker="" data-start="3251.892000" data-stop="3256.739000">it's like C-x 1 except it's shifted. So that</span> <span class="audio-time caption" data-speaker="" data-start="3256.779000" data-stop="3261.205000">teaches me about the function and also a convenient</span> <span class="audio-time caption" data-speaker="" data-start="3261.265000" data-stop="3265.692000">shortcut that makes sense it's easy to remember so reading</span> <span class="audio-time caption" data-speaker="" data-start="3265.732000" data-stop="3270.439000">through other people's config could be a thing that might be</span> <span class="audio-time caption" data-speaker="" data-start="3270.499000" data-stop="3275.526000">helpful for you to do and because again because video is</span> <span class="audio-time caption" data-speaker="" data-start="3275.566000" data-stop="3280.612000">annoying to go through if i can have my workflow for Adding</span> <span class="audio-time caption" data-speaker="" data-start="3280.752000" data-stop="3287.100000">chapter markers into it. Then I can jump into... Then people</span> <span class="audio-time caption" data-speaker="" data-start="3287.140000" data-stop="3288.701000">can jump to just a section.</span> <span class="audio-time caption" data-speaker="" data-start="3291.424000" data-stop="3294.468000">Charlie says, that sounds nice. I cherry picked a lot of</span> <span class="audio-time caption" data-speaker="" data-start="3294.588000" data-stop="3303.658000">Purcell's config as I hit modes I wanted to use, and then</span> <span class="audio-time caption" data-speaker="" data-start="3303.778000" data-stop="3308.543000">later I adapted it to use-package. And now it's mine. Yes.</span> <span class="audio-time caption" data-speaker="" data-start="3308.563000" data-stop="3313.977000">Yes, that's the... That's wonderful. That's the basic idea.</span> <span class="audio-time caption" data-speaker="" data-start="3314.037000" data-stop="3315.719000">That's one of the reasons why I love it when people share</span> <span class="audio-time caption" data-speaker="" data-start="3315.759000" data-stop="3320.826000">their configs. Okay, so that gives me plenty of things to do.</span> <span class="audio-time caption" data-speaker="" data-start="3323.009000" data-stop="3331.380000">And if I want to think then about this blog post...</span> <span class="audio-time caption" data-speaker="" data-start="3331.400000" data-stop="3335.101000">Let's write in a different color. I can use colors! Let's</span> <span class="audio-time caption" data-speaker="" data-start="3335.201000" data-stop="3339.786000">write in... Can I write in green? Okay. Okay. That's too...</span> <span class="audio-time caption" data-speaker="" data-start="3339.806000" data-stop="3342.929000">Okay. Blue looks... Blue looks linky. Let's write in...</span> <span class="audio-time caption" data-speaker="" data-start="3343.429000" data-stop="3351.337000">Okay. Maroon? Alright. What does this feel like? I have</span> <span class="audio-time caption" data-speaker="" data-start="3351.457000" data-stop="3354.120000">seven minutes before I should probably go check on the kid</span> <span class="audio-time caption" data-speaker="" data-start="3354.260000" data-stop="3357.463000">for maybe doing math together with her. She gets really</span> <span class="audio-time caption" data-speaker="" data-start="3357.503000" data-stop="3361.807000">bored in her math class, so I tried to do... I offered to do</span> <span class="audio-time caption" data-speaker="" data-start="3361.847000" data-stop="3366.360000">some math with her that's a little bit higher level. uh</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="3367.000000">00:56:07</span> <strong>Discord?</strong></div><span class="audio-time caption" data-speaker="" data-start="3367.001000" data-stop="3370.126000">@mtendethecreator says please create a discord for your channel. IRC</span> <span class="audio-time caption" data-speaker="" data-start="3370.166000" data-stop="3374.833000">is cool but the new wave of devs prefer discord. Think about it.</span> <span class="audio-time caption" data-speaker="" data-start="3375.674000" data-stop="3379.500000">I know system crafters runs a discord for their community.</span> <span class="audio-time caption" data-speaker="" data-start="3380.261000" data-stop="3385.729000">Are there other discord places that emacs people hang out in?</span> <span class="audio-time caption" data-speaker="" data-start="3389.135000" data-stop="3390.036000">Yeah, there's like...</span> <span class="audio-time caption" data-speaker="" data-start="3392.699000" data-stop="3395.621000">I have to look into whether it's possible.</span> <span class="audio-time caption" data-speaker="" data-start="3395.622000" data-stop="3403.449000">@DavidMannMD says, I can highly recommend Prot's book on Emacs Lisp.</span> <span class="audio-time caption" data-speaker="" data-start="3403.450000" data-stop="3430.229000">Yes.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="3430.000000">00:57:10</span> <strong>Thinking about the blog posts</strong></div><span class="audio-time caption" data-speaker="" data-start="3430.230000" data-stop="3433.997000">So this sounds like maybe there's a blog post here</span> <span class="audio-time caption" data-speaker="" data-start="3434.277000" data-stop="3445.137000">about the factors that people... Like, trying to give some</span> <span class="audio-time caption" data-speaker="" data-start="3445.377000" data-stop="3451.889000">basic recommendations on where people... If this is your</span> <span class="audio-time caption" data-speaker="" data-start="3451.929000" data-stop="3454.934000">background, this is why we make this recommendation. These</span> <span class="audio-time caption" data-speaker="" data-start="3454.974000" data-stop="3457.638000">are the recommendations people often make. And this is why.</span> <span class="audio-time caption" data-speaker="" data-start="3457.998000" data-stop="3460.662000">And here's some basic resources. So this sounds like</span> <span class="audio-time caption" data-speaker="" data-start="3460.782000" data-stop="3465.829000">possibly a blog post.</span> <span class="audio-time caption" data-speaker="" data-start="3465.849000" data-stop="3469.815000">Post about where people come from.</span> <span class="audio-time caption" data-speaker="" data-start="3475.123000" data-stop="3476.605000">And typical resources.</span> <span class="audio-time caption" data-speaker="" data-start="3480.314000" data-stop="3480.936000">Next steps.</span> <span class="audio-time caption" data-speaker="" data-start="3485.250000" data-stop="3489.784000">And there is probably a blog post here about the challenges.</span> <span class="audio-time caption" data-speaker="" data-start="3503.568000" data-stop="3508.453000">which I can address from both a new user perspective as well</span> <span class="audio-time caption" data-speaker="" data-start="3508.713000" data-stop="3513.518000">as the, hey, this continues to be a challenge. And</span> <span class="audio-time caption" data-speaker="" data-start="3513.558000" data-stop="3517.102000">then there's one here about following up on my to-dos.</span> <span class="audio-time caption" data-speaker="" data-start="3525.310000" data-stop="3530.315000">And let's highlight these, make it easier. Someday I will</span> <span class="audio-time caption" data-speaker="" data-start="3530.415000" data-stop="3532.377000">actually pick colors that go together.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="3535.000000">00:58:55</span> <strong>Books</strong></div><span class="audio-time caption" data-speaker="" data-start="3535.580000" data-stop="3538.084000">Ben says, would including books be a good option for</span> <span class="audio-time caption" data-speaker="" data-start="3538.204000" data-stop="3540.528000">lifelong learning? There's some interesting books I've</span> <span class="audio-time caption" data-speaker="" data-start="3540.608000" data-stop="3548.301000">seen throughout my journey. Yes, yes. I love how the books,</span> <span class="audio-time caption" data-speaker="" data-start="3548.321000" data-stop="3551.185000">there aren't a lot of books because Emacs keeps moving, but</span> <span class="audio-time caption" data-speaker="" data-start="3551.606000" data-stop="3554.571000">it takes a lot of effort to make a book. But the people who have</span> <span class="audio-time caption" data-speaker="" data-start="3554.611000" data-stop="3560.901000">written books, like Prot, like Mickey, do an amazing job of</span> <span class="audio-time caption" data-speaker="" data-start="3561.041000" data-stop="3566.018000">organizing things into a linear structure that makes</span> <span class="audio-time caption" data-speaker="" data-start="3566.118000" data-stop="3573.011000">sense. Books are great for this, especially for dealing</span> <span class="audio-time caption" data-speaker="" data-start="3573.091000" data-stop="3575.395000">with the sense of overwhelm and unknowns.</span> <span class="audio-time caption" data-speaker="" data-start="3582.909000" data-stop="3586.609000">Let's take a few a little bit at a time.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="3586.000000">00:59:46</span> <strong>Manuals
</strong></div><span class="audio-time caption" data-speaker="" data-start="3586.610000" data-stop="3589.395000">The manuals are great too.</span> <span class="audio-time caption" data-speaker="" data-start="3589.396000" data-stop="3591.421000">Just even going through the Org Manual</span> <span class="audio-time caption" data-speaker="" data-start="3591.541000" data-stop="3595.349000">once in a while helps me stumble across things that are</span> <span class="audio-time caption" data-speaker="" data-start="3595.409000" data-stop="3599.979000">helpful. So getting people to feel like they're ready to</span> <span class="audio-time caption" data-speaker="" data-start="3600.080000" data-stop="3604.309000">read a book earlier rather than later, or feel like they're</span> <span class="audio-time caption" data-speaker="" data-start="3604.349000" data-stop="3610.373000">ready to read the manual. and maybe modeling how to do it,</span> <span class="audio-time caption" data-speaker="" data-start="3610.513000" data-stop="3613.397000">like showing them, okay, you can be reading this. The manual</span> <span class="audio-time caption" data-speaker="" data-start="3613.417000" data-stop="3616.441000">doesn't have a lot of examples, but this is how you can dig</span> <span class="audio-time caption" data-speaker="" data-start="3616.501000" data-stop="3625.130000">around for examples to see how it works. Could be helpful.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="3625.000000">01:00:25</span> <strong>Maybe annotating the manual?</strong></div><span class="audio-time caption" data-speaker="" data-start="3625.131000" data-stop="3629.167000">I feel like if we have like an annotated Org Mode manual,</span> <span class="audio-time caption" data-speaker="" data-start="3629.168000" data-stop="3633.700000">here's the manual, but here are also some links to videos</span> <span class="audio-time caption" data-speaker="" data-start="3633.701000" data-stop="3637.033000">where people are demonstrating this concept, it could be</span> <span class="audio-time caption" data-speaker="" data-start="3637.034000" data-stop="3639.967000">interesting. One of my to-do's for a while has been do that</span> <span class="audio-time caption" data-speaker="" data-start="3639.968000" data-stop="3643.974000">do that kind of beginner map, but for Org,</span> <span class="audio-time caption" data-speaker="" data-start="3643.975000" data-stop="3647.300000">because people have shared a ton of Org resources in Emacs News.</span> <span class="audio-time caption" data-speaker="" data-start="3650.200000" data-stop="3654.851000">Where was I? Books. Yes, that is. Okay, so there are three</span> <span class="audio-time caption" data-speaker="" data-start="3654.871000" data-stop="3658.195000">things...</span> <span class="audio-time caption" data-speaker="" data-start="3660.158000" data-stop="3663.883000">probably more.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="3664.000000">01:01:04</span> <strong>Starter kits</strong></div><span class="audio-time caption" data-speaker="" data-start="3664.640000" data-stop="3668.785000">Oh, starter kits! That's a whole other thing. Starter Kits.</span> <span class="audio-time caption" data-speaker="" data-start="3669.767000" data-stop="3675.093000">I think that if people are coming from a, let's say they're</span> <span class="audio-time caption" data-speaker="" data-start="3675.113000" data-stop="3678.137000">coming from a programming background, and there's</span> <span class="audio-time caption" data-speaker="" data-start="3678.138000" data-stop="3681.733000">pressure on them to be productive as soon as possible, then</span> <span class="audio-time caption" data-speaker="" data-start="3681.734000" data-stop="3686.333000">Starter Kits are a great idea, possibly. If they find a</span> <span class="audio-time caption" data-speaker="" data-start="3686.334000" data-stop="3690.033000">Starter Kit that fits the way they think, and gets the stuff</span> <span class="audio-time caption" data-speaker="" data-start="3690.034000" data-stop="3695.300000">they need working as soon as possible, fantastic. Hats off</span> <span class="audio-time caption" data-speaker="" data-start="3695.301000" data-stop="3699.200000">to them. Go for it. And then they can ease into more Emacsy</span> <span class="audio-time caption" data-speaker="" data-start="3699.201000" data-stop="3701.933000">things later on. The challenge, of course, with starter</span> <span class="audio-time caption" data-speaker="" data-start="3701.934000" data-stop="3704.767000">kits is because they change Emacs a lot, it makes it harder</span> <span class="audio-time caption" data-speaker="" data-start="3704.768000" data-stop="3709.300000">for newbies to get help outside that community. So they</span> <span class="audio-time caption" data-speaker="" data-start="3709.301000" data-stop="3712.200000">should pick a starter kit with a community they can ask for</span> <span class="audio-time caption" data-speaker="" data-start="3712.201000" data-stop="3716.433000">help within. Other people will be just like, I don't know</span> <span class="audio-time caption" data-speaker="" data-start="3716.434000" data-stop="3719.333000">what kinds of things are going on there. And of course, the</span> <span class="audio-time caption" data-speaker="" data-start="3719.334000" data-stop="3722.929000">newbie has no idea how to disable things or turn things off or</span> <span class="audio-time caption" data-speaker="" data-start="3723.230000" data-stop="3726.867000">go back to vanilla for some things. And so it's,</span> <span class="audio-time caption" data-speaker="" data-start="3726.868000" data-stop="3730.200000">it's, it's just complicated. Can't really expect people</span> <span class="audio-time caption" data-speaker="" data-start="3730.201000" data-stop="3733.440000">helping to go install this separate starter kit and</span> <span class="audio-time caption" data-speaker="" data-start="3733.441000" data-stop="3738.133000">figure that things out. The starter kits are useful in that</span> <span class="audio-time caption" data-speaker="" data-start="3738.134000" data-stop="3741.433000">situation, but in other cases, like for example, if you're</span> <span class="audio-time caption" data-speaker="" data-start="3741.434000" data-stop="3745.820000">getting into Emacs slowly and</span> <span class="audio-time caption" data-speaker="" data-start="3745.821000" data-stop="3749.900000">you're curious, it can help to start from vanilla so you know</span> <span class="audio-time caption" data-speaker="" data-start="3749.901000" data-stop="3752.139000">what things you're adding to it.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="3752.000000">01:02:32</span> <strong>Navigating source code</strong></div><span class="audio-time caption" data-speaker="" data-start="3752.140000" data-stop="3753.867000">@lispwizard says M-x</span> <span class="audio-time caption" data-speaker="" data-start="3753.868000" data-stop="3757.400000">apropos, looking at Emacs source files for related stuff</span> <span class="audio-time caption" data-speaker="" data-start="3757.401000" data-stop="3760.533000">are also helpful. And learning how to navigate source code</span> <span class="audio-time caption" data-speaker="" data-start="3760.534000" data-stop="3765.500000">to find examples and read it is also a skill that nobody is</span> <span class="audio-time caption" data-speaker="" data-start="3765.501000" data-stop="3768.067000">born with. Figuring out how to help people develop that</span> <span class="audio-time caption" data-speaker="" data-start="3768.068000" data-stop="3771.800000">skill is interesting. But I will go check on the kiddo now.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="3771.000000">01:02:51</span> <strong>Braindumping with company</strong></div><span class="audio-time caption" data-speaker="" data-start="3771.801000" data-stop="3777.033000">This has been very helpful for me. Kind of brain dumping</span> <span class="audio-time caption" data-speaker="" data-start="3777.034000" data-stop="3783.767000">random ideas onto... It's not even really a mind map. It's just</span> <span class="audio-time caption" data-speaker="" data-start="3783.768000" data-stop="3790.500000">bleargh onto this sketch. But doing it with people hanging</span> <span class="audio-time caption" data-speaker="" data-start="3790.838000" data-stop="3794.581000">out and helping me remember stuff or think of stuff is</span> <span class="audio-time caption" data-speaker="" data-start="3794.662000" data-stop="3798.986000">helpful and well worth my voice getting extra tired. So</span> <span class="audio-time caption" data-speaker="" data-start="3799.026000" data-stop="3802.389000">thank you for coming and hanging out with me today. And I will</span> <span class="audio-time caption" data-speaker="" data-start="3802.449000" data-stop="3806.152000">go work on turning these things into blog posts and possibly</span> <span class="audio-time caption" data-speaker="" data-start="3806.212000" data-stop="3812.538000">videos and live streams going forward.</span> <span class="audio-time caption" data-speaker="" data-start="3812.539000" data-stop="3818.827000">I will skedaddle now. Today I need to sew a hat for my</span> <span class="audio-time caption" data-speaker="" data-start="3818.828000" data-stop="3830.001000">kiddo, but tomorrow, I will probably hang out with you maybe</span> <span class="audio-time caption" data-speaker="" data-start="3809.815000" data-stop="3830.001000">slightly roughly at the same time. Thanks, everyone,</span> <span class="audio-time caption" data-speaker="" data-start="3809.815000" data-stop="3830.001000">and see you!</span>
<p></p>


</details>
</div>
</div>
<div id="outline-container-ye20-emacs-carnival-newbies-starter-kits-chat" class="outline-3">
<h3 id="ye20-emacs-carnival-newbies-starter-kits-chat">Chat</h3>
<div class="outline-text-3" id="text-ye20-emacs-carnival-newbies-starter-kits-chat">
<ul class="org-ul">
<li>@j7gy8b: ​​do people still try the built-in tutorial?</li>
<li>@j7gy8b: I'm Jeff from Emacs SF and I don't know how to change my display name</li>
<li>@lispwizard: ​​One problem is platforms which usurp keystrokes which emacs expects (I just wrestled with this on a raspberry pi).</li>
<li>@j7gy8b: ​in the meetup we do see that, the young people who were inspired by a professor to try</li>
<li>@j7gy8b: ​Perhaps Clojure is a route to Emacs for experts. I've heard it's the best IDE for that language</li>
<li>@benmezger: ​​There are quite some interesting youtube channels (yours included) to learn Emacs too</li>
<li>@lispwizard: ​You can often watch videos at 2x speed&hellip;</li>
<li>@benmezger: ​indeed. Videos help show how powerful emacs can be. Simply installing Emacs doesnt give you that viewpoint</li>
<li>@mtendethecreator: ​​wazzup</li>
<li>@mtendethecreator: ​​someone says pi-coding-agent is the emacs for ai agents. thoughts?</li>
<li>@benmezger: ​IRC perhaps? although a little complex, you learn tons from the Emacs channel</li>
<li>@charliemcmackin4859: ​​Searching through Github for emacs keywords to see how other people configure things helped my Emacs customization understanding.</li>
<li>@mtendethecreator: ​tsodings config lol</li>
<li>@charliemcmackin4859: ​​That sounds nice&hellip; I cherry picked a lot of purcell's config as I hit modes I wanted to use&hellip; and then later I adapted it to use-package&hellip;and now it's mine :D</li>
<li>@mtendethecreator: ​please create a discord for your channel. irc is cool but the new wave of devs prefer discord. think about it</li>
<li>@DavidMannMD: ​​I can highly recommend Prot's book on Emacs lisp.</li>
<li>@charliemcmackin4859: ​​(as an idea for looking at other's configs as a method of learning&hellip; "how would I adapt this to use use-package?" is something I find myself thinking a bit)</li>
<li>@benmezger: ​Would including books be a good option for lifelong learning? There are some interesting books I've seen throughout my journey</li>
<li>@lispwizard: ​​m-x apropos, looking at emacs source files for related stuff are also helpful</li>
<li>@lispwizard: ​​Thank you.</li>
</ul>
</div>
</div>
<div><a href="https://sachachua.com/blog/2026/04/ye20-emacs-carnival-newbies-starter-kits/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%2F04%2Fye20-emacs-carnival-newbies-starter-kits%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>
		</item><item>
		<title>YE21 April 23: Continuing to think about newbies / starter kits</title>
		<link>https://sachachua.com/blog/2026/04/ye21-continuing-to-think-about-newbies-starter-kits/</link>
		<dc:creator><![CDATA[Sacha Chua]]></dc:creator>
		<pubDate>Tue, 21 Apr 2026 18:29:24 GMT</pubDate>
    <category>emacs</category>
<category>community</category>
<category>yay-emacs</category>
		<guid isPermaLink="false">https://sachachua.com/blog/2026/04/ye21-continuing-to-think-about-newbies-starter-kits/</guid>
		<description><![CDATA[<p>
I continued thinking about the Emacs Carnival April 2026 theme of <a href="https://www.emacswiki.org/emacs/CarnivalApril2026">newbies / starter kits</a>. Here are <a href="https://sachachua.com/blog/2026/04/ye20-emacs-carnival-newbies-starter-kits/">my notes and transcript</a> from my <a href="https://youtube.com/live/Yht0N26EoF4">previous livestream</a> on the topic.
</p>

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

<div class="sticky-toc" id="org8d48158">
<div id="text-table-of-contents" role="doc-toc">
<ul>
<li><a href="https://sachachua.com/blog/feed/index.xml#ye21-april-23-continuing-to-think-about-newbies-starter-kits-overview">Overview</a></li>
<li><a href="https://sachachua.com/blog/feed/index.xml#ye21-april-23-continuing-to-think-about-newbies-starter-kits-chapters">Chapters</a></li>
<li><a href="https://sachachua.com/blog/feed/index.xml#ye21-april-23-continuing-to-think-about-newbies-starter-kits-transcript">Transcript</a></li>
<li><a href="https://sachachua.com/blog/feed/index.xml#ye21-april-23-continuing-to-think-about-newbies-starter-kits-chat">Chat</a></li>
</ul>
</div>

</div>
<div id="outline-container-ye21-april-23-continuing-to-think-about-newbies-starter-kits-overview" class="outline-3">
<h3 id="ye21-april-23-continuing-to-think-about-newbies-starter-kits-overview">Overview</h3>
<div class="outline-text-3" id="text-ye21-april-23-continuing-to-think-about-newbies-starter-kits-overview">
<p>
My goals for this 1-hour session:
</p>

<p>
People often recommend Emacs News to people who are looking for resources or inspiration. I want to make it easier for newcomers to Emacs to:
</p>

<ul class="org-ul">
<li>feel more connected with the community and find sources of inspiration that can encourage them to keep going</li>
<li>find recent beginner-related resources without needing to page through the archives</li>
<li>find examples of workflows and tutorials for common needs</li>
<li>not feel overwhelmed by all the links; be able to focus on the things at their level</li>
</ul>

<p>
Some things I can do:
</p>

<ul class="org-ul">
<li class="on"><span class="task-done">&#x2611;</span> Update the header of <a href="https://sachachua.com/blog/category/emacs-news/">https://sachachua.com/blog/category/emacs-news/</a> to make it easier for people who are new
<ul class="org-ul">
<li><a href="https://sachachua.com/blog/2026/04/ye21-continuing-to-think-about-newbies-starter-kits/emacs-news.html">file:///home/sacha/proj/static-blog/_data/term-descriptions/emacs-news.html</a></li>
</ul></li>
<li class="on"><span class="task-done">&#x2611;</span> Update <a href="https://sachachua.com/topic/emacs-news/">https://sachachua.com/topic/emacs-news/</a></li>
</ul>

<p>
If there's time, I can flesh out my outline further.
<a href="https://sachachua.com/blog/2026/04/ye20-emacs-carnival-newbies-starter-kits/">YE20: Emacs Carnival: Newbies/starter kits</a>
</p>
</div>
</div>
<div id="outline-container-ye21-april-23-continuing-to-think-about-newbies-starter-kits-chapters" class="outline-3">
<h3 id="ye21-april-23-continuing-to-think-about-newbies-starter-kits-chapters">Chapters</h3>
<div class="outline-text-3" id="text-ye21-april-23-continuing-to-think-about-newbies-starter-kits-chapters">
<ul class="org-ul">
<li><span class="media-time" data-start="1.000">00:01</span> Starting up</li>
<li><span class="media-time" data-start="203.000">03:23</span> Newbies and starter kits</li>
<li><span class="media-time" data-start="355.000">05:55</span> Emacs News</li>
<li><span class="media-time" data-start="434.000">07:14</span> Let's move the mailing list option up</li>
<li><span class="media-time" data-start="471.000">07:51</span> An aside talking to Prot</li>
<li><span class="media-time" data-start="592.000">09:52</span> Challenges: Isolation</li>
<li><span class="media-time" data-start="645.000">10:45</span> Overwhelm</li>
<li><span class="media-time" data-start="674.000">11:14</span> Balance of time</li>
<li><span class="media-time" data-start="693.000">11:33</span> Unknowns</li>
<li><span class="media-time" data-start="840.000">14:00</span> Post-its</li>
<li><span class="media-time" data-start="861.000">14:21</span> Finding help</li>
<li><span class="media-time" data-start="893.000">14:53</span> Testing BigBlueButton</li>
<li><span class="media-time" data-start="1022.000">17:02</span> Thinking about reviving Emacs Hangouts</li>
<li><span class="media-time" data-start="1068.000">17:48</span> Emacs News as a newbie</li>
<li><span class="media-time" data-start="1109.000">18:29</span> Aside: Jeff is looking into making VS Code plugins</li>
<li><span class="media-time" data-start="1137.000">18:57</span> Notes on making the most of Emacs News</li>
<li><span class="media-time" data-start="1250.000">20:50</span> RSS</li>
<li><span class="media-time" data-start="1422.000">23:42</span> newsticker</li>
<li><span class="media-time" data-start="1645.000">27:25</span> Stream delay</li>
<li><span class="media-time" data-start="1711.000">28:31</span> Reading news with newsticker</li>
<li><span class="media-time" data-start="1744.000">29:04</span> The usefulness of screenshots and videos</li>
<li><span class="media-time" data-start="2060.000">34:20</span> Back to Emacs News</li>
<li><span class="media-time" data-start="2100.000">35:00</span> Prerequisite knowledge for Elfeed</li>
<li><span class="media-time" data-start="2249.000">37:29</span> Other resources that people might find useful</li>
<li><span class="media-time" data-start="2456.000">40:56</span> Beginner map</li>
<li><span class="media-time" data-start="2564.000">42:44</span> emacs-news/index.org is 5.5 MB of plain text</li>
<li><span class="media-time" data-start="2635.000">43:55</span> consult-focus-lines</li>
<li><span class="media-time" data-start="2653.000">44:13</span> Organizing the links</li>
<li><span class="media-time" data-start="2702.000">45:02</span> Organizing screenshots and videos by package</li>
<li><span class="media-time" data-start="2749.000">45:49</span> Info pages</li>
<li><span class="media-time" data-start="2828.000">47:08</span> Remembering keybindings</li>
<li><span class="media-time" data-start="2920.000">48:40</span> The guided tour</li>
<li><span class="media-time" data-start="3007.000">50:07</span> Recap</li>
<li><span class="media-time" data-start="3192.000">53:12</span> newcomers-presets</li>
<li><span class="media-time" data-start="3472.000">57:52</span> Wrapping up</li>
<li><span class="media-time" data-start="3499.000">58:19</span> Remembering keybindings</li>
<li><span class="media-time" data-start="3553.000">59:13</span> Picking Prot's brain next week about the newcomer experience</li>
</ul>
</div>
</div>
<div id="outline-container-ye21-april-23-continuing-to-think-about-newbies-starter-kits-transcript" class="outline-3">
<h3 id="ye21-april-23-continuing-to-think-about-newbies-starter-kits-transcript">Transcript</h3>
<div class="outline-text-3" id="text-ye21-april-23-continuing-to-think-about-newbies-starter-kits-transcript">
<details class="code-details" style="padding: 1em;
                 border-radius: 15px;
                 font-size: 0.9em;
                 box-shadow: 0.05em 0.1em 5px 0.01em  #00000057;">
                  <summary><strong>Transcript</strong></summary>
<p>
</p><p></p><div class="transcript-heading"><span class="audio-time" data-start="1.000000">00:00:01</span> <strong>Starting up</strong></div><span class="audio-time caption" data-speaker="" data-start="1.685000" data-stop="10.198000">Alright everyone, this is Yay Emacs 21 and I think it's a good</span> <span class="audio-time caption" data-speaker="" data-start="10.258000" data-stop="14.144000">opportunity to continue with thinking about newbies and</span> <span class="audio-time caption" data-speaker="" data-start="14.225000" data-stop="18.311000">starter kits. Also, theoretically, you might be able to</span> <span class="audio-time caption" data-speaker="" data-start="18.331000" data-stop="22.437000">join via Big Blue Button. I will put the link in the chat and we</span> <span class="audio-time caption" data-speaker="" data-start="22.477000" data-stop="25.182000">can experiment with it because I have no idea if it works or</span> <span class="audio-time caption" data-speaker="" data-start="25.202000" data-stop="34.930000">not. Let's go see. That's not it. Let's get the right one. I</span> <span class="audio-time caption" data-speaker="" data-start="35.010000" data-stop="39.314000">need to have shorter URLs, but that will come eventually.</span> <span class="audio-time caption" data-speaker="" data-start="40.015000" data-stop="44.379000">Step two, find the chat window. I have too many windows.</span> <span class="audio-time caption" data-speaker="" data-start="45.660000" data-stop="48.823000">Okay,</span> <span class="audio-time caption" data-speaker="" data-start="49.224000" data-stop="51.086000">let's see if that works for now.</span> <span class="audio-time caption" data-speaker="" data-start="55.190000" data-stop="64.090000">And then, let's find out if everything gets crazy if I share</span> <span class="audio-time caption" data-speaker="" data-start="64.190000" data-stop="66.634000">my... Like, how does this work?</span> <span class="audio-time caption" data-speaker="" data-start="69.597000" data-stop="76.406000">I unmute myself. Testing. Okay, that shows up. I am logged in</span> <span class="audio-time caption" data-speaker="" data-start="76.426000" data-stop="81.693000">with the EmacsConf user at the moment. I probably have a me</span> <span class="audio-time caption" data-speaker="" data-start="81.753000" data-stop="84.397000">account on this as well. I just don't remember if I've got</span> <span class="audio-time caption" data-speaker="" data-start="84.437000" data-stop="87.464000">that set up yet. Anyway, we're experimenting with these</span> <span class="audio-time caption" data-speaker="" data-start="87.545000" data-stop="91.170000">because next... next week? Next next week. Next next week or</span> <span class="audio-time caption" data-speaker="" data-start="91.210000" data-stop="95.116000">so. Yes, next next week I am chatting with Amin Bandali and</span> <span class="audio-time caption" data-speaker="" data-start="95.297000" data-stop="98.221000">we're going to start doing some Emacs chats, possibly on</span> <span class="audio-time caption" data-speaker="" data-start="99.023000" data-stop="102.668000">BigBlueButton because it's free and open source. So that is</span> <span class="audio-time caption" data-speaker="" data-start="102.829000" data-stop="107.416000">all goodness. And let's share screen one, I think.</span> <span class="audio-time caption" data-speaker="" data-start="111.062000" data-stop="115.824000">Could not share the screen. Hmm. I'm going to try this with</span> <span class="audio-time caption" data-speaker="" data-start="116.565000" data-stop="117.526000">the other browser.</span> <span class="audio-time caption" data-speaker="" data-start="125.977000" data-stop="131.043000">Let's paste in my join link. Let's log in as me.</span> <span class="audio-time caption" data-speaker="" data-start="134.187000" data-stop="138.111000">Microphone.</span> <span class="audio-time caption" data-speaker="" data-start="138.892000" data-stop="145.014000">Ah, it doesn't like my microphone. Fine. Let's see if this</span> <span class="audio-time caption" data-speaker="" data-start="146.035000" data-stop="160.052000">lets me share my screen. Entire screen. Share. Okay. Alright. So</span> <span class="audio-time caption" data-speaker="" data-start="160.112000" data-stop="165.398000">now I'm sharing. I am not sharing. It's not happening.</span> <span class="audio-time caption" data-speaker="" data-start="169.963000" data-stop="174.715000">Well, it's thinking about it. So my goal is to get to the point</span> <span class="audio-time caption" data-speaker="" data-start="174.755000" data-stop="179.220000">where I can use big blue button to share my sub goal, my side</span> <span class="audio-time caption" data-speaker="" data-start="179.240000" data-stop="182.824000">quest, to share my screen so people can see what I'm talking</span> <span class="audio-time caption" data-speaker="" data-start="182.884000" data-stop="188.530000">about and stream at the same time. But it doesn't seem to be</span> <span class="audio-time caption" data-speaker="" data-start="188.590000" data-stop="190.853000">happening, so that might be something I need to fiddle with</span> <span class="audio-time caption" data-speaker="" data-start="191.634000" data-stop="196.999000">off screen. OK, I will just save this for if anyone wants to</span> <span class="audio-time caption" data-speaker="" data-start="197.019000" data-stop="202.045000">drop by and share their stuff. OK, that is cool. I will live.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="203.000000">00:03:23</span> <strong>Newbies and starter kits</strong></div><span class="audio-time caption" data-speaker="" data-start="203.780000" data-stop="213.309000">Okay, let us get back to whatever I can do. So yesterday I was</span> <span class="audio-time caption" data-speaker="" data-start="213.349000" data-stop="217.793000">thinking about this Emacs Carnival April 2026 topic of</span> <span class="audio-time caption" data-speaker="" data-start="217.833000" data-stop="221.917000">newbies and starter kits. And I wanted to start thinking</span> <span class="audio-time caption" data-speaker="" data-start="221.937000" data-stop="225.221000">about what I can do to help people with isolation,</span> <span class="audio-time caption" data-speaker="" data-start="225.281000" data-stop="230.864000">overwhelm, and these little challenges that come with</span> <span class="audio-time caption" data-speaker="" data-start="233.327000" data-stop="238.273000">being new to Emacs, but actually there's still challenges</span> <span class="audio-time caption" data-speaker="" data-start="238.293000" data-stop="243.360000">that we deal with, even when you're experienced. And</span> <span class="audio-time caption" data-speaker="" data-start="247.065000" data-stop="249.108000">I'm seeing people in the chat, but it's not showing up in the</span> <span class="audio-time caption" data-speaker="" data-start="249.148000" data-stop="255.035000">chat of social stream. Boo. So @Mehrad42 says hello, and @JacksonScholberg</span> <span class="audio-time caption" data-speaker="" data-start="255.095000" data-stop="260.238000">also says good morning. Good morning to you too. I have, in</span> <span class="audio-time caption" data-speaker="" data-start="260.339000" data-stop="264.785000">the notes and transcript... I've actually updated this with a</span> <span class="audio-time caption" data-speaker="" data-start="264.866000" data-stop="270.033000">transcript, I think. So now my post from yesterday has the</span> <span class="audio-time caption" data-speaker="" data-start="270.594000" data-stop="273.799000">video from yesterday, which is great. It also has my</span> <span class="audio-time caption" data-speaker="" data-start="273.999000" data-stop="278.406000">outline, which might be slightly easier to read in non-dark</span> <span class="audio-time caption" data-speaker="" data-start="278.466000" data-stop="285.196000">mode. Dark mode, dark mode, dark mode. Tough. One second,</span> <span class="audio-time caption" data-speaker="" data-start="285.216000" data-stop="289.415000">thought. Never mind, you can you can deal with the dark mode</span> <span class="audio-time caption" data-speaker="" data-start="289.435000" data-stop="294.181000">flipping yourself. So I have the outline, I have some to-dos</span> <span class="audio-time caption" data-speaker="" data-start="294.221000" data-stop="298.966000">for myself, and I have this lovely transcript which I edited</span> <span class="audio-time caption" data-speaker="" data-start="299.086000" data-stop="304.132000">and added chapters to because text is wonderful. So all of</span> <span class="audio-time caption" data-speaker="" data-start="304.172000" data-stop="307.916000">that is there. Probably there's still some misrecognized</span> <span class="audio-time caption" data-speaker="" data-start="307.976000" data-stop="314.517000">words in it, but handy. And then the outline up there has the</span> <span class="audio-time caption" data-speaker="" data-start="314.557000" data-stop="319.342000">links. So theoretically, I can start taking this and doing</span> <span class="audio-time caption" data-speaker="" data-start="319.402000" data-stop="324.728000">stuff with the thoughts and with the text to figure out how</span> <span class="audio-time caption" data-speaker="" data-start="324.788000" data-stop="338.682000">that goes. Let's see. Reload. Ah! Did the reload work? No.</span> <span class="audio-time caption" data-speaker="" data-start="345.074000" data-stop="349.200000">Okay. Things that I don't quite understand, but that's</span> <span class="audio-time caption" data-speaker="" data-start="349.260000" data-stop="355.248000">okay. I'll live. Okay. Let's get on with it then.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="355.000000">00:05:55</span> <strong>Emacs News</strong></div><span class="audio-time caption" data-speaker="" data-start="355.268000" data-stop="360.355000">So a lot of people recommend Emacs News to new users or to</span> <span class="audio-time caption" data-speaker="" data-start="360.455000" data-stop="362.978000">other people who are interested in keeping up with what's</span> <span class="audio-time caption" data-speaker="" data-start="363.038000" data-stop="366.743000">going on in the Emacs world.</span> <span class="audio-time caption" data-speaker="" data-start="370.628000" data-stop="373.813000">I want to make it easier for people to find the resources and</span> <span class="audio-time caption" data-speaker="" data-start="373.833000" data-stop="377.594000">know what to do with things. So here's where they often end</span> <span class="audio-time caption" data-speaker="" data-start="377.714000" data-stop="381.198000">up. One of the things I've just added is a note that you can get</span> <span class="audio-time caption" data-speaker="" data-start="381.218000" data-stop="383.679000">to this page using a shorter URL,</span> <span class="audio-time caption" data-speaker="" data-start="383.680000" data-stop="390.607000">like https://sachachua.com/emacs-news or https://sacha.ac/emacs-news.</span> <span class="audio-time caption" data-speaker="" data-start="390.608000" data-stop="395.133000">And I should probably make it also work without the dash because then</span> <span class="audio-time caption" data-speaker="" data-start="395.454000" data-stop="397.916000">peoplethey don't have to remember, okay, does it</span> <span class="audio-time caption" data-speaker="" data-start="397.956000" data-stop="401.781000">have a dash? Does it not have a dash? And so forth. So that can</span> <span class="audio-time caption" data-speaker="" data-start="401.801000" data-stop="414.110000">be a to-do for me. Add an nginx redirection for Emacs News. No</span> <span class="audio-time caption" data-speaker="" data-start="414.150000" data-stop="420.256000">dash. All right. And I've also added this. Are you new to</span> <span class="audio-time caption" data-speaker="" data-start="420.336000" data-stop="422.818000">Emacs? Check out these tips for making the most of Emacs</span> <span class="audio-time caption" data-speaker="" data-start="422.918000" data-stop="429.725000">News. Plus quick subscription options, elfeed and nnrss for</span> <span class="audio-time caption" data-speaker="" data-start="429.765000" data-stop="434.055000">your favorite newsreader, MailChimp, or whatever.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="434.000000">00:07:14</span> <strong>Let's move the mailing list option up</strong></div><span class="audio-time caption" data-speaker="" data-start="434.056000" data-stop="439.121000">I feel like it's slightly easier for newbies to deal with mailing</span> <span class="audio-time caption" data-speaker="" data-start="439.181000" data-stop="443.144000">lists because everyone knows how to do email and not a lot of</span> <span class="audio-time caption" data-speaker="" data-start="443.204000" data-stop="447.909000">people know how to use the awesomeness of RSS readers. So</span> <span class="audio-time caption" data-speaker="" data-start="448.089000" data-stop="452.012000">let's in fact switch this around so that the mailing list is</span> <span class="audio-time caption" data-speaker="" data-start="452.112000" data-stop="460.300000">up there. And let's make elfeed a link.</span> <span class="audio-time caption" data-speaker="" data-start="460.440000" data-stop="461.481000">Where is elfeed?</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="471.000000">00:07:51</span> <strong>An aside talking to Prot</strong></div><span class="audio-time caption" data-speaker="" data-start="471.215000" data-stop="474.699000">Hey, bonjour, Prot! Okay, Prot is also dropping in. I</span> <span class="audio-time caption" data-speaker="" data-start="474.780000" data-stop="478.364000">actually wanted, so I have the session with Prot next week</span> <span class="audio-time caption" data-speaker="" data-start="479.165000" data-stop="484.752000">and I actually want to pick Prot's brain about the newcomer</span> <span class="audio-time caption" data-speaker="" data-start="484.792000" data-stop="488.157000">experience as well. I've decided to draft some notes around</span> <span class="audio-time caption" data-speaker="" data-start="488.217000" data-stop="493.704000">that in here. So instead of my just telling you about all the</span> <span class="audio-time caption" data-speaker="" data-start="493.724000" data-stop="497.248000">cool stuff that I've been building for updating, you know,</span> <span class="audio-time caption" data-speaker="" data-start="497.789000" data-stop="502.397000">updating YouTube related entries on my blog or whatever. I</span> <span class="audio-time caption" data-speaker="" data-start="502.417000" data-stop="505.861000">want to pick Prot's brain about newbies and starter kits,</span> <span class="audio-time caption" data-speaker="" data-start="507.063000" data-stop="509.365000">which is great because Prot had some contemporaneous</span> <span class="audio-time caption" data-speaker="" data-start="509.485000" data-stop="514.091000">notes in 2019 when he started with Emacs. There's a video</span> <span class="audio-time caption" data-speaker="" data-start="514.111000" data-stop="518.336000">blog and he shared his experience starting as a</span> <span class="audio-time caption" data-speaker="" data-start="518.476000" data-stop="523.525000">non-programmer. And in his recent 2026 talk, for which the</span> <span class="audio-time caption" data-speaker="" data-start="523.566000" data-stop="527.151000">transcript and the video are also available online, these</span> <span class="audio-time caption" data-speaker="" data-start="527.731000" data-stop="532.517000">are both in the emacs.com page. You can follow these links</span> <span class="audio-time caption" data-speaker="" data-start="532.577000" data-stop="537.382000">yourself, but I will copy them because I can. Let's copy,</span> <span class="audio-time caption" data-speaker="" data-start="537.442000" data-stop="543.509000">copy, copy, copy as. Why do I have too many options there?</span> <span class="audio-time caption" data-speaker="" data-start="544.350000" data-stop="553.425000">Okay. So I will copy these links in. Prot</span> <span class="audio-time caption" data-speaker="" data-start="555.669000" data-stop="559.157000">says, starting Emacs without a background in programming, he</span> <span class="audio-time caption" data-speaker="" data-start="559.197000" data-stop="561.361000">learned the basics within a few days, started writing his</span> <span class="audio-time caption" data-speaker="" data-start="561.422000" data-stop="564.388000">own Emacs Lisp within weeks, and within a year, he had</span> <span class="audio-time caption" data-speaker="" data-start="564.488000" data-stop="569.642000">contributions to core Emacs. So I'm curious about how we can</span> <span class="audio-time caption" data-speaker="" data-start="569.762000" data-stop="573.769000">make the newbie or starter kit experience better for</span> <span class="audio-time caption" data-speaker="" data-start="573.849000" data-stop="579.078000">people. And as a quick summary of what I discussed yesterday</span> <span class="audio-time caption" data-speaker="" data-start="579.779000" data-stop="585.148000">in my brainstorming thing, it's in posts.org,</span> <span class="audio-time caption" data-speaker="" data-start="587.292000" data-stop="592.967000">which I have a sketch of. Sketch of? Yes.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="592.000000">00:09:52</span> <strong>Challenges: Isolation</strong></div><span class="audio-time caption" data-speaker="" data-start="592.968000" data-stop="598.160000">We are thinking about the problems of isolation, where people generally</span> <span class="audio-time caption" data-speaker="" data-start="598.220000" data-stop="602.791000">don't know somebody else in real life who is into Emacs and</span> <span class="audio-time caption" data-speaker="" data-start="602.831000" data-stop="607.101000">can just lean over and fix stuff for them. And also they're</span> <span class="audio-time caption" data-speaker="" data-start="607.121000" data-stop="609.266000">not looking over someone else's shoulder and getting</span> <span class="audio-time caption" data-speaker="" data-start="609.346000" data-stop="613.429000">inspired by The cool things that they're doing. I'm not sure</span> <span class="audio-time caption" data-speaker="" data-start="613.469000" data-stop="616.714000">you can get much more isolated than being a mountain hermit</span> <span class="audio-time caption" data-speaker="" data-start="616.834000" data-stop="620.580000">in Cyprus, so Prot is an excellent example of still</span> <span class="audio-time caption" data-speaker="" data-start="620.641000" data-stop="623.585000">managing to be virtually connected, even though he's</span> <span class="audio-time caption" data-speaker="" data-start="623.665000" data-stop="627.792000">physically isolated. Oh, wait, actually, we do have some</span> <span class="audio-time caption" data-speaker="" data-start="627.872000" data-stop="632.099000">monks and we have some mountaineering guides who still</span> <span class="audio-time caption" data-speaker="" data-start="632.159000" data-stop="635.104000">manage to make interesting completion frameworks, like</span> <span class="audio-time caption" data-speaker="" data-start="635.164000" data-stop="640.670000">Helm. That's Thierry. Anyhow, so isolation is something that</span> <span class="audio-time caption" data-speaker="" data-start="640.730000" data-stop="644.816000">a lot of people feel is very challenging for them when it</span> <span class="audio-time caption" data-speaker="" data-start="644.836000" data-stop="645.877000">comes to learning.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="645.000000">00:10:45</span> <strong>Overwhelm</strong></div><span class="audio-time caption" data-speaker="" data-start="645.878000" data-stop="649.323000">There's overwhelm, so just the sheer</span> <span class="audio-time caption" data-speaker="" data-start="649.423000" data-stop="652.969000">number of things that you need to learn, the new terms for</span> <span class="audio-time caption" data-speaker="" data-start="653.089000" data-stop="656.675000">everything, the keyboard shortcuts, the things that</span> <span class="audio-time caption" data-speaker="" data-start="656.695000" data-stop="659.599000">you've got to do in order to get a basic working environment</span> <span class="audio-time caption" data-speaker="" data-start="659.679000" data-stop="663.685000">set up to the point where you feel comfortable spending some</span> <span class="audio-time caption" data-speaker="" data-start="663.726000" data-stop="666.850000">time in it every day without feeling like it's holding you</span> <span class="audio-time caption" data-speaker="" data-start="666.891000" data-stop="671.158000">back. Cheat sheets and actually things like menu items</span> <span class="audio-time caption" data-speaker="" data-start="671.218000" data-stop="674.522000">and toolbars can be helpful for that.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="674.000000">00:11:14</span> <strong>Balance of time</strong></div><span class="audio-time caption" data-speaker="" data-start="674.523000" data-stop="679.492000">Third problem is balance of time. You know, spending time tinkering with</span> <span class="audio-time caption" data-speaker="" data-start="679.532000" data-stop="681.776000">your config versus spending time getting things done,</span> <span class="audio-time caption" data-speaker="" data-start="683.038000" data-stop="686.985000">which is less of an issue if you're learning it at a leisurely</span> <span class="audio-time caption" data-speaker="" data-start="687.045000" data-stop="690.190000">pace, but more of an issue if you are under some pressure to</span> <span class="audio-time caption" data-speaker="" data-start="690.230000" data-stop="693.052000">become productive as soon as possible.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="693.000000">00:11:33</span> <strong>Unknowns</strong></div><span class="audio-time caption" data-speaker="" data-start="693.053000" data-stop="696.477000">And the fourth is the things that you don't even know to look for.</span> <span class="audio-time caption" data-speaker="" data-start="696.478000" data-stop="701.987000">This is where Emacs News and other sources of inspiration can be helpful</span> <span class="audio-time caption" data-speaker="" data-start="702.067000" data-stop="704.871000">because then you come across a video or a blog post and you</span> <span class="audio-time caption" data-speaker="" data-start="704.891000" data-stop="709.679000">say, I can do that. And if you're lucky, that video or blog</span> <span class="audio-time caption" data-speaker="" data-start="709.719000" data-stop="712.723000">post will be accompanied by a tutorial that says, okay, this</span> <span class="audio-time caption" data-speaker="" data-start="712.764000" data-stop="715.708000">is step-by-step how to do it. But often there's still a lot of</span> <span class="audio-time caption" data-speaker="" data-start="715.788000" data-stop="718.472000">translation that's needed so that it can fit with your</span> <span class="audio-time caption" data-speaker="" data-start="718.553000" data-stop="723.428000">particular environment or your particular workflow.</span> <span class="audio-time caption" data-speaker="" data-start="723.468000" data-stop="731.579000">@JacksonScholberg shares that they gave up on using Emacs yesterday, and</span> <span class="audio-time caption" data-speaker="" data-start="731.620000" data-stop="734.864000">then they realized they could use VS Code to get things done</span> <span class="audio-time caption" data-speaker="" data-start="735.104000" data-stop="738.529000">while they're learning Emacs. So it's not an all or nothing</span> <span class="audio-time caption" data-speaker="" data-start="738.629000" data-stop="742.615000">thing. You can learn, you know, you can still use another</span> <span class="audio-time caption" data-speaker="" data-start="742.695000" data-stop="747.342000">editor to do most of your work, but use Emacs for a small set of</span> <span class="audio-time caption" data-speaker="" data-start="747.402000" data-stop="749.685000">things that you know how to do with it. You know, you might</span> <span class="audio-time caption" data-speaker="" data-start="749.725000" data-stop="753.021000">just know how to edit a file and save it. And that's it. That's</span> <span class="audio-time caption" data-speaker="" data-start="753.081000" data-stop="756.487000">good. That's great for starters. And then every day you</span> <span class="audio-time caption" data-speaker="" data-start="756.527000" data-stop="761.575000">might learn one new shortcut or one new thing that you can do.</span> <span class="audio-time caption" data-speaker="" data-start="761.595000" data-stop="767.566000">Gradually, your use of Emacs will grow and grow and grow</span> <span class="audio-time caption" data-speaker="" data-start="767.746000" data-stop="771.573000">until you start thinking, hey, why can't I just read my email</span> <span class="audio-time caption" data-speaker="" data-start="771.613000" data-stop="774.879000">in Emacs like all the cool kids? Or why don't I just go figure</span> <span class="audio-time caption" data-speaker="" data-start="774.919000" data-stop="782.526000">out how to browse the web in Emacs or keep track of my sewing in</span> <span class="audio-time caption" data-speaker="" data-start="782.907000" data-stop="787.395000">Emacs. That does actually happen. So yeah, totally just</span> <span class="audio-time caption" data-speaker="" data-start="787.595000" data-stop="792.084000">start small. But this process of breaking things down into</span> <span class="audio-time caption" data-speaker="" data-start="792.184000" data-stop="798.049000">tiny steps is something that newbies might not know.</span> <span class="audio-time caption" data-speaker="" data-start="798.050000" data-stop="822.958000">There are a number of different ways where people can get</span> <span class="audio-time caption" data-speaker="" data-start="822.959000" data-stop="828.525000">this sort of advice on how to break things down to make things simpler.</span> <span class="audio-time caption" data-speaker="" data-start="828.526000" data-stop="833.275000">One is, you know, every time people post this challenge on Reddit or</span> <span class="audio-time caption" data-speaker="" data-start="833.355000" data-stop="836.300000">elsewhere where they say, OK, I want to learn Emacs, but</span> <span class="audio-time caption" data-speaker="" data-start="836.320000" data-stop="839.326000">there's so many things. How do I learn this? Everyone keeps</span> <span class="audio-time caption" data-speaker="" data-start="839.346000" data-stop="840.888000">saying, OK, start small.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="840.000000">00:14:00</span> <strong>Post-its</strong></div><span class="audio-time caption" data-speaker="" data-start="840.889000" data-stop="844.455000">Maybe have a Post-it note, which</span> <span class="audio-time caption" data-speaker="" data-start="844.596000" data-stop="849.445000">cannot be seen, a Post-it note on your monitor with the</span> <span class="audio-time caption" data-speaker="" data-start="849.505000" data-stop="854.401000">keyboard shortcuts that you are trying to learn. or have one</span> <span class="audio-time caption" data-speaker="" data-start="854.461000" data-stop="857.726000">text file where it's just your notes about what you're</span> <span class="audio-time caption" data-speaker="" data-start="857.766000" data-stop="861.350000">learning. Just break it down.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="861.000000">00:14:21</span> <strong>Finding help</strong></div><span class="audio-time caption" data-speaker="" data-start="861.351000" data-stop="863.874000">Or people can go to, if they're</span> <span class="audio-time caption" data-speaker="" data-start="863.934000" data-stop="866.478000">having a hard time finding out what to break it down into,</span> <span class="audio-time caption" data-speaker="" data-start="867.018000" data-stop="872.746000">they can go to places like Reddit or IRC, the Emacs channel</span> <span class="audio-time caption" data-speaker="" data-start="872.866000" data-stop="877.573000">there on libera.chat or in meetups and say, okay, this is</span> <span class="audio-time caption" data-speaker="" data-start="877.653000" data-stop="884.757000">where I am now. How do I do this? How do I get there? And that</span> <span class="audio-time caption" data-speaker="" data-start="884.857000" data-stop="889.607000">might be helpful. Anyway,</span> <span class="audio-time caption" data-speaker="" data-start="891.050000" data-stop="893.234000">so those are the four challenges.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="893.000000">00:14:53</span> <strong>Testing BigBlueButton</strong></div><span class="audio-time caption" data-speaker="" data-start="893.235000" data-stop="894.477000">What I want to do today</span> <span class="audio-time caption" data-speaker="" data-start="894.518000" data-stop="900.109000">with the one hour I have is I want to, unless other people</span> <span class="audio-time caption" data-speaker="" data-start="900.450000" data-stop="904.427000">happen to drop into the Big Blue Button, I think that I am also</span> <span class="audio-time caption" data-speaker="" data-start="904.667000" data-stop="907.191000">trying to experiment with except for some reason I'm not</span> <span class="audio-time caption" data-speaker="" data-start="907.231000" data-stop="910.755000">sure I can share my screen, which is a little inconvenient. I</span> <span class="audio-time caption" data-speaker="" data-start="910.795000" data-stop="913.539000">will debug that later. Anyway, what I can do in the</span> <span class="audio-time caption" data-speaker="" data-start="913.579000" data-stop="916.783000">background is start to think about the experience of coming</span> <span class="audio-time caption" data-speaker="" data-start="916.883000" data-stop="922.090000">to Emacs News as a newbie. Hey, @JacksonScholberg is in there! Okay,</span> <span class="audio-time caption" data-speaker="" data-start="922.270000" data-stop="926.216000">theoretically this sort of works. I don't know if people</span> <span class="audio-time caption" data-speaker="" data-start="926.236000" data-stop="930.301000">want to say things. What is going on? Hang on a second.</span> <span class="audio-time caption" data-speaker="" data-start="951.712000" data-stop="955.578000">uh okay uh. Call from the school so we'll have... I asked him to</span> <span class="audio-time caption" data-speaker="" data-start="955.618000" data-stop="958.783000">call me back in one hour and we'll see how that goes. Hello,</span> <span class="audio-time caption" data-speaker="" data-start="958.803000" data-stop="962.889000">@mtendethecreator! Feel free to unmute yourself and</span> <span class="audio-time caption" data-speaker="" data-start="962.929000" data-stop="965.694000">share anything if you want to in the Big Blue Button. In the</span> <span class="audio-time caption" data-speaker="" data-start="965.734000" data-stop="970.081000">meantime, I will continue... I have not actually spent</span> <span class="audio-time caption" data-speaker="" data-start="970.121000" data-stop="972.564000">some time yet thinking about how audio will work with this</span> <span class="audio-time caption" data-speaker="" data-start="973.105000" data-stop="977.822000">because Google Chrome and Mozilla Firefox have a little</span> <span class="audio-time caption" data-speaker="" data-start="977.862000" data-stop="980.667000">bit of a problem, I think, with sharing my audio. Actually,</span> <span class="audio-time caption" data-speaker="" data-start="981.087000" data-stop="984.633000">maybe this. This is a test. Can you hear me through Big Blue</span> <span class="audio-time caption" data-speaker="" data-start="984.693000" data-stop="988.039000">button? Maybe that works. Maybe that doesn't. We'll see.</span> <span class="audio-time caption" data-speaker="" data-start="989.321000" data-stop="993.729000">Okay. And in the meantime, I can just continue with this</span> <span class="audio-time caption" data-speaker="" data-start="993.869000" data-stop="997.295000">until people want to experiment with that part. All right.</span> <span class="audio-time caption" data-speaker="" data-start="998.036000" data-stop="1003.383000">Emacs News. So Emacs News. Hello. It works! It works! People</span> <span class="audio-time caption" data-speaker="" data-start="1003.423000" data-stop="1007.171000">are talking. I mean, people can talk. Thank you very much. I</span> <span class="audio-time caption" data-speaker="" data-start="1007.211000" data-stop="1010.278000">can actually hear you. Feel free to jump in. And for anyone</span> <span class="audio-time caption" data-speaker="" data-start="1010.338000" data-stop="1015.349000">else who also wants to be on stream, kind of, I will paste the</span> <span class="audio-time caption" data-speaker="" data-start="1015.369000" data-stop="1018.094000">Big Blue Button thing again. And all y'all are going to</span> <span class="audio-time caption" data-speaker="" data-start="1018.135000" data-stop="1022.235000">behave yourselves, I hope. We'll see.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="1022.000000">00:17:02</span> <strong>Thinking about reviving Emacs Hangouts</strong></div><span class="audio-time caption" data-speaker="" data-start="1022.236000" data-stop="1029.526000">One of my long-term goals would be nice to revive these Emacs Hangouts</span> <span class="audio-time caption" data-speaker="" data-start="1029.527000" data-stop="1036.717000">that I used to do on Google Meet, I think, a long time ago. But of</span> <span class="audio-time caption" data-speaker="" data-start="1036.756000" data-stop="1039.802000">course, we've got Big Blue Button now, so we can do it on</span> <span class="audio-time caption" data-speaker="" data-start="1039.862000" data-stop="1043.026000">proper free and open source software, where people just</span> <span class="audio-time caption" data-speaker="" data-start="1043.127000" data-stop="1045.631000">come and share what they're working on, what they're</span> <span class="audio-time caption" data-speaker="" data-start="1045.811000" data-stop="1048.054000">curious about, what they want to learn. And then we can try</span> <span class="audio-time caption" data-speaker="" data-start="1048.113000" data-stop="1059.485000">these sort of... Now I'm going</span> <span class="audio-time caption" data-speaker="" data-start="1061.189000" data-stop="1066.082000">to try to remember to pause every moment so people can</span> <span class="audio-time caption" data-speaker="" data-start="1066.222000" data-stop="1068.336000">interject.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="1068.000000">00:17:48</span> <strong>Emacs News as a newbie</strong></div><span class="audio-time caption" data-speaker="" data-start="1068.337000" data-stop="1076.995000">Emacs News as a new person is a little bit overwhelming. Imagine a</span> <span class="audio-time caption" data-speaker="" data-start="1077.015000" data-stop="1080.483000">newbie says, okay, I'm new to Emacs, what should I read? And</span> <span class="audio-time caption" data-speaker="" data-start="1081.064000" data-stop="1083.750000">people recommend things like, oh, check out the Mastering</span> <span class="audio-time caption" data-speaker="" data-start="1083.810000" data-stop="1092.891000">Emacs book. Read the C-h t tutorial. It's great. It is a great starting point.</span> <span class="audio-time caption" data-speaker="" data-start="1092.892000" data-stop="1096.336000">Oh, if you want to keep up with what's going on, interesting</span> <span class="audio-time caption" data-speaker="" data-start="1096.416000" data-stop="1100.100000">things, and how you get connected to the community, read</span> <span class="audio-time caption" data-speaker="" data-start="1100.120000" data-stop="1105.546000">Emacs News or subscribe to it. So this is a little</span> <span class="audio-time caption" data-speaker="" data-start="1105.906000" data-stop="1109.109000">overwhelming for people.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="1109.000000">00:18:29</span> <strong>Aside: Jeff is looking into making VS Code plugins</strong></div><span class="audio-time caption" data-speaker="" data-start="1109.110000" data-stop="1111.432000">Jeff says that he's researching</span> <span class="audio-time caption" data-speaker="" data-start="1111.473000" data-stop="1116.699000">making a VS Code plugin, actually. Good luck! If you run out</span> <span class="audio-time caption" data-speaker="" data-start="1116.759000" data-stop="1119.102000">of things, like if you run into things that you can't do with</span> <span class="audio-time caption" data-speaker="" data-start="1119.142000" data-stop="1123.987000">VS Code, I think some people have experimented with doing</span> <span class="audio-time caption" data-speaker="" data-start="1124.167000" data-stop="1127.490000">Emacs-y things inside VS Code or vice versa. I'm not</span> <span class="audio-time caption" data-speaker="" data-start="1127.550000" data-stop="1132.736000">entirely sure. I can rummage through my notes and see who has</span> <span class="audio-time caption" data-speaker="" data-start="1132.816000" data-stop="1135.639000">mentioned that before. If there was an EmacsConf proposal</span> <span class="audio-time caption" data-speaker="" data-start="1135.679000" data-stop="1137.280000">for it before.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="1137.000000">00:18:57</span> <strong>Notes on making the most of Emacs News</strong></div><span class="audio-time caption" data-speaker="" data-start="1137.281000" data-stop="1141.144000">Okay. Anyway, Emacs news. So I have this now</span> <span class="audio-time caption" data-speaker="" data-start="1141.385000" data-stop="1143.927000">where I say, okay, check out these tips for making the most of</span> <span class="audio-time caption" data-speaker="" data-start="1144.047000" data-stop="1156.528000">Emacs news. So like I was saying, I was thinking maybe starting with...</span> <span class="audio-time caption" data-speaker="" data-start="1156.529000" data-stop="1158.692000">Let me find the page that edits this.</span> <span class="audio-time caption" data-speaker="" data-start="1161.896000" data-stop="1166.182000">Topics, Emacs News. Okay.</span> <span class="audio-time caption" data-speaker="" data-start="1168.906000" data-stop="1176.035000">Starting with email is probably the easiest, so I will do that.</span> <span class="audio-time caption" data-speaker="" data-start="1179.002000" data-stop="1183.650000">Do I even want to nudge people to use MailChimp? I don't</span> <span class="audio-time caption" data-speaker="" data-start="1183.730000" data-stop="1190.862000">particularly like MailChimp. This is just Emacs News as</span> <span class="audio-time caption" data-speaker="" data-start="1191.103000" data-stop="1194.649000">either HTML or plain text emails.</span> <span class="audio-time caption" data-speaker="" data-start="1197.714000" data-stop="1203.985000">Includes Org version if you prefer. Oh yeah, I mentioned</span> <span class="audio-time caption" data-speaker="" data-start="1204.005000" data-stop="1209.743000">that here. So that's mine, and then I have an explanation of...</span> <span class="audio-time caption" data-speaker="" data-start="1209.783000" data-stop="1215.789000">If you are reading email email in Emacs... Yes! You</span> <span class="audio-time caption" data-speaker="" data-start="1215.809000" data-stop="1229.763000">can read email in Emacs. You have... All right, so there's that.</span> <span class="audio-time caption" data-speaker="" data-start="1229.764000" data-stop="1237.751000">RSS. So now I have more of a description of how to get it by email.</span> <span class="audio-time caption" data-speaker="" data-start="1240.554000" data-stop="1245.339000">And this goes to the subscription page.</span> <span class="audio-time caption" data-speaker="" data-start="1245.340000" data-stop="1248.603000">People can fill it in. It works like all the other mailing lists</span> <span class="audio-time caption" data-speaker="" data-start="1248.604000" data-stop="1250.625000">people are used to.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="1250.000000">00:20:50</span> <strong>RSS</strong></div><span class="audio-time caption" data-speaker="" data-start="1250.626000" data-stop="1255.432000">If people want to subscribe to RSS, new users for Emacs</span> <span class="audio-time caption" data-speaker="" data-start="1255.532000" data-stop="1262.577000">will probably not even know what RSS is. Why they might want</span> <span class="audio-time caption" data-speaker="" data-start="1262.617000" data-stop="1269.308000">to do it. Um...</span> <span class="audio-time caption" data-speaker="" data-start="1269.328000" data-stop="1272.373000">Do I want to explain this here? Okay.</span> <span class="audio-time caption" data-speaker="" data-start="1276.039000" data-stop="1282.129000">Does elfeed come with enough of an explanation so that a user</span> <span class="audio-time caption" data-speaker="" data-start="1282.189000" data-stop="1286.736000">can get started with it?</span> <span class="audio-time caption" data-speaker="" data-start="1288.184000" data-stop="1292.650000">Not very much of an explanation. Okay, is there an elfeed</span> <span class="audio-time caption" data-speaker="" data-start="1293.271000" data-stop="1299.260000">tutorial that I can...</span> <span class="audio-time caption" data-speaker="" data-start="1301.884000" data-stop="1305.689000">I feel like this is not really an elfeed tutorial. I feel like</span> <span class="audio-time caption" data-speaker="" data-start="1305.730000" data-stop="1309.835000">there needs to be like a basic from scratch, "I don't even know</span> <span class="audio-time caption" data-speaker="" data-start="1310.016000" data-stop="1319.457000">which init.el or .config/emacs/init.el or .emacs or whatever</span> <span class="audio-time caption" data-speaker="" data-start="1319.458000" data-stop="1323.681000">thing I should use." There should definitely be a tutorial here.</span> <span class="audio-time caption" data-speaker="" data-start="1323.682000" data-stop="1331.491000">Let's add a comment. I need to actually probably add a tutorial</span> <span class="audio-time caption" data-speaker="" data-start="1331.492000" data-stop="1335.336000">for setting up elfeed from scratch.</span> <span class="audio-time caption" data-speaker="" data-start="1339.130000" data-stop="1343.195000">Okay, is there a feedreader that people like to use?</span> <span class="audio-time caption" data-speaker="" data-start="1343.196000" data-stop="1354.031000">So why RSS? RSS lets you read updates from sites that support it in a</span> <span class="audio-time caption" data-speaker="" data-start="1354.191000" data-stop="1360.800000">way that's more structured, that's separate from email,</span> <span class="audio-time caption" data-speaker="" data-start="1367.193000" data-stop="1369.096000">without using your email client.</span> <span class="audio-time caption" data-speaker="" data-start="1376.808000" data-stop="1384.561000">Why RSS? This is like a nice friendly description. Get updates.</span> <span class="audio-time caption" data-speaker="" data-start="1390.730000" data-stop="1392.373000">You can also...</span> <span class="audio-time caption" data-speaker="" data-start="1394.682000" data-stop="1397.586000">That's not very much of a Why RSS</span> <span class="audio-time caption" data-speaker="" data-start="1400.409000" data-stop="1410.041000">sort of thing. Why RSS versus email... Which is handy when you</span> <span class="audio-time caption" data-speaker="" data-start="1410.081000" data-stop="1422.913000">find email overwhelming. If you find email overwhelming.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="1422.000000">00:23:42</span> <strong>newsticker</strong></div><span class="audio-time caption" data-speaker="" data-start="1422.914000" data-stop="1429.269000">Okay, newsticker. I will also add...</span> <span class="audio-time caption" data-speaker="" data-start="1429.851000" data-stop="1433.820000">@charliemcmackin4859 suggests newsticker. It seems pretty friendly.</span> <span class="audio-time caption" data-speaker="" data-start="1435.524000" data-stop="1440.957000">There is a newsticker feed reader for Emacs. Okay.</span> <span class="audio-time caption" data-speaker="" data-start="1454.470000" data-stop="1457.434000">Is there a newsticker Emacs tutorial</span> <span class="audio-time caption" data-speaker="" data-start="1460.018000" data-stop="1460.959000">that I can link to?</span> <span class="audio-time caption" data-speaker="" data-start="1468.470000" data-stop="1468.930000">Okay.</span> <span class="audio-time caption" data-speaker="" data-start="1475.299000" data-stop="1476.200000">So this is like...</span> <span class="audio-time caption" data-speaker="" data-start="1479.285000" data-stop="1490.574000">use customize-variable... Is there a newsticker?</span> <span class="audio-time caption" data-speaker="" data-start="1490.575000" data-stop="1494.640000">There's load-library, newsticker.</span> <span class="audio-time caption" data-speaker="" data-start="1497.945000" data-stop="1502.531000">newsticker-url-list. Okay, let's go see what that looks</span> <span class="audio-time caption" data-speaker="" data-start="1502.551000" data-stop="1504.894000">like. Okay.</span> <span class="audio-time caption" data-speaker="" data-start="1508.419000" data-stop="1511.963000">I need to load the library before I can do that.</span> <span class="audio-time caption" data-speaker="" data-start="1511.964000" data-stop="1516.590000">load-library newsticker to load it.</span> <span class="audio-time caption" data-speaker="" data-start="1521.751000" data-stop="1524.176000">newsticker-url-list.</span> <span class="audio-time caption" data-speaker="" data-start="1527.522000" data-stop="1533.233000">Okay. Click on INS and add...</span> <span class="audio-time caption" data-speaker="" data-start="1542.130000" data-stop="1543.573000">Oh, as a URI...</span> <span class="audio-time caption" data-speaker="" data-start="1555.501000" data-stop="1556.883000">Click on INS.</span> <span class="audio-time caption" data-speaker="" data-start="1562.693000" data-stop="1568.863000">Emacs News URI. That...</span> <span class="audio-time caption" data-speaker="" data-start="1572.969000" data-stop="1579.800000">Okay, let's try it ourselves. Emacs News.</span> <span class="audio-time caption" data-speaker="" data-start="1579.801000" data-stop="1581.964000">And that is the URI.</span> <span class="audio-time caption" data-speaker="" data-start="1584.239000" data-stop="1587.362000">Huh, I never actually used this.</span> <span class="audio-time caption" data-speaker="" data-start="1587.363000" data-stop="1589.226000">Okay, I'll click on apply and save.</span> <span class="audio-time caption" data-speaker="" data-start="1596.276000" data-stop="1600.061000">And then, how do you actually watch it? I mean, look at it.</span> <span class="audio-time caption" data-speaker="" data-start="1600.062000" data-stop="1609.335000">newsticker. newsticker-start? No, it's not like that. Okay.</span> <span class="audio-time caption" data-speaker="" data-start="1609.355000" data-stop="1610.837000">newsticker-show-news.</span> <span class="audio-time caption" data-speaker="" data-start="1614.547000" data-stop="1620.258000">Oh, okay, okay. newsticker-show-news. Alright, okay,</span> <span class="audio-time caption" data-speaker="" data-start="1620.278000" data-stop="1625.128000">okay. That is newsticker. That is fairly easy to get started</span> <span class="audio-time caption" data-speaker="" data-start="1625.208000" data-stop="1631.661000">with. So let's recommend that. So this is set up.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="1645.000000">00:27:25</span> <strong>Stream delay</strong></div><span class="audio-time caption" data-speaker="" data-start="1645.259000" data-stop="1650.967000">We are slightly delayed, @charliemcmackin4859 says. It is because I am</span> <span class="audio-time caption" data-speaker="" data-start="1651.047000" data-stop="1655.794000">trying to have a 10 second stream delay in case I do silly</span> <span class="audio-time caption" data-speaker="" data-start="1655.854000" data-stop="1662.102000">things like accidentally show my entire email screen</span> <span class="audio-time caption" data-speaker="" data-start="1662.503000" data-stop="1666.549000">online and other such things. I have a panic keyboard</span> <span class="audio-time caption" data-speaker="" data-start="1666.569000" data-stop="1669.993000">shortcut and a panic menu item. This is the panic menu item.</span> <span class="audio-time caption" data-speaker="" data-start="1670.054000" data-stop="1675.089000">See, it says panic, which kills the stream. I previously</span> <span class="audio-time caption" data-speaker="" data-start="1675.209000" data-stop="1679.255000">had another OBS that this could stream to in order for it to</span> <span class="audio-time caption" data-speaker="" data-start="1679.295000" data-stop="1683.560000">switch to a backup message if I cut the streaming, but for</span> <span class="audio-time caption" data-speaker="" data-start="1683.601000" data-stop="1686.845000">some reason that one is segfaulting constantly when I start</span> <span class="audio-time caption" data-speaker="" data-start="1686.905000" data-stop="1690.410000">streaming from that second OBS instance, so I need to look at</span> <span class="audio-time caption" data-speaker="" data-start="1690.470000" data-stop="1693.714000">that more. But yes, now we have a little bit of a stream delay,</span> <span class="audio-time caption" data-speaker="" data-start="1694.115000" data-stop="1698.241000">and 10 seconds is a bit long, but apparently my reflexes and</span> <span class="audio-time caption" data-speaker="" data-start="1698.261000" data-stop="1701.405000">my panicking are still kind of tough at the moment.</span> <span class="audio-time caption" data-speaker="" data-start="1701.740000" data-stop="1704.363000">Eventually, when I get better at saying okay, I know</span> <span class="audio-time caption" data-speaker="" data-start="1704.383000" data-stop="1706.645000">which keyboard shortcut to go, I can reduce the</span> <span class="audio-time caption" data-speaker="" data-start="1706.685000" data-stop="1711.068000">delay, but yes. All right.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="1711.000000">00:28:31</span> <strong>Reading news with newsticker</strong></div><span class="audio-time caption" data-speaker="" data-start="1711.069000" data-stop="1714.131000">Reading news... This is.. what is this again...</span> <span class="audio-time caption" data-speaker="" data-start="1714.132000" data-stop="1719.236000">That was newsticker-show-news. Thank you so much.</span> <span class="audio-time caption" data-speaker="" data-start="1719.237000" data-stop="1723.400000">So that was a very helpful tip from @charliemcmackin4859.</span> <span class="audio-time caption" data-speaker="" data-start="1723.401000" data-stop="1728.070000">Okay so there's the tutorial, mini tutorial...</span> <span class="audio-time caption" data-speaker="" data-start="1728.071000" data-stop="1733.504000">Elfeed is slightly more complicated, but also quite useful.</span> <span class="audio-time caption" data-speaker="" data-start="1733.505000" data-stop="1740.079000">Okay, so we can just move this one for now.</span> <span class="audio-time caption" data-speaker="" data-start="1740.080000" data-stop="1744.723000">We should show people what it looks like.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="1744.000000">00:29:04</span> <strong>The usefulness of screenshots and videos</strong></div><span class="audio-time caption" data-speaker="" data-start="1744.724000" data-stop="1746.265000">So @mehrad42 says, when I</span> <span class="audio-time caption" data-speaker="" data-start="1746.325000" data-stop="1749.148000">started with Emacs, one of the biggest issues was not to know</span> <span class="audio-time caption" data-speaker="" data-start="1749.188000" data-stop="1752.651000">what each package does. Some have a picture or video or ASCII</span> <span class="audio-time caption" data-speaker="" data-start="1752.671000" data-stop="1758.856000">cinema, but most of them don't. Yeah, that's definitely a</span> <span class="audio-time caption" data-speaker="" data-start="1758.917000" data-stop="1762.079000">thing. It would be great for more packages to have</span> <span class="audio-time caption" data-speaker="" data-start="1762.099000" data-stop="1766.223000">screenshots and descriptions, and videos show workflows</span> <span class="audio-time caption" data-speaker="" data-start="1766.283000" data-stop="1772.850000">better than just... Since</span> <span class="audio-time caption" data-speaker="" data-start="1775.333000" data-stop="1777.916000">the people making packages and the people making videos or</span> <span class="audio-time caption" data-speaker="" data-start="1777.976000" data-stop="1780.479000">screenshots or blog posts are not necessarily the same</span> <span class="audio-time caption" data-speaker="" data-start="1780.519000" data-stop="1785.765000">people, we should have a different way of finding the</span> <span class="audio-time caption" data-speaker="" data-start="1786.105000" data-stop="1791.430000">resources related to a package that might be helpful.</span> <span class="audio-time caption" data-speaker="" data-start="1791.531000" data-stop="1796.806000">Where was I? I was actually taking a picture, adding a</span> <span class="audio-time caption" data-speaker="" data-start="1796.866000" data-stop="1800.552000">screenshot of this, right? Okay, so let's show this</span> <span class="audio-time caption" data-speaker="" data-start="1800.652000" data-stop="1805.499000">screenshot over here. And I want to show, this is what it</span> <span class="audio-time caption" data-speaker="" data-start="1805.659000" data-stop="1811.268000">looks like. And I take a screenshot using my [super-s] and this is</span> <span class="audio-time caption" data-speaker="" data-start="1811.608000" data-stop="1816.495000">the newsticker thing.</span> <span class="audio-time caption" data-speaker="" data-start="1816.496000" data-stop="1819.580000">And then I'm going to stick that in this page.</span> <span class="audio-time caption" data-speaker="" data-start="1822.074000" data-stop="1825.481000">And this is what it looks like. This is what I'm saying.</span> <span class="audio-time caption" data-speaker="" data-start="1825.501000" data-stop="1826.484000">Insert screenshot.</span> <span class="audio-time caption" data-speaker="" data-start="1832.116000" data-stop="1833.819000">That is not the last screenshot.</span> <span class="audio-time caption" data-speaker="" data-start="1833.820000" data-stop="1834.882000">Where did the screenshot go?</span> <span class="audio-time caption" data-speaker="" data-start="1837.968000" data-stop="1839.712000">Oh, hang on a second.</span> <span class="audio-time caption" data-speaker="" data-start="1843.421000" data-stop="1847.586000">Okay, newsticker. There we go. That's because the recording</span> <span class="audio-time caption" data-speaker="" data-start="1847.626000" data-stop="1852.511000">keeps getting bigger. So this is a screenshot of</span> <span class="audio-time caption" data-speaker="" data-start="1852.591000" data-stop="1858.438000">newsticker. There you go. People can then see and decide for</span> <span class="audio-time caption" data-speaker="" data-start="1858.478000" data-stop="1865.506000">themselves: is this worth it? Because inspiration is...</span> <span class="audio-time caption" data-speaker="" data-start="1866.186000" data-stop="1871.942000">The things that people struggle with when it comes to</span> <span class="audio-time caption" data-speaker="" data-start="1872.062000" data-stop="1874.504000">overwhelming, there's a lot of stuff to get through.</span> <span class="audio-time caption" data-speaker="" data-start="1874.505000" data-stop="1876.528000">The main question that newbies will have is, is</span> <span class="audio-time caption" data-speaker="" data-start="1876.588000" data-stop="1882.035000">this worth it? Is it worth it to read this tutorial or figure</span> <span class="audio-time caption" data-speaker="" data-start="1882.076000" data-stop="1885.881000">out how to fit this package into my config, figure out how to</span> <span class="audio-time caption" data-speaker="" data-start="1886.141000" data-stop="1890.702000">set up my config in the first place? Having a</span> <span class="audio-time caption" data-speaker="" data-start="1890.782000" data-stop="1895.309000">screenshot or a video up front makes it much easier for</span> <span class="audio-time caption" data-speaker="" data-start="1895.369000" data-stop="1899.095000">people to say, "Yes, I want that, and I'm willing to spend one</span> <span class="audio-time caption" data-speaker="" data-start="1899.135000" data-stop="1904.563000">or two hours to figure out how to get that working."</span> <span class="audio-time caption" data-speaker="" data-start="1904.564000" data-stop="1906.947000">I want to add a screenshot to this one, of course, so that</span> <span class="audio-time caption" data-speaker="" data-start="1907.007000" data-stop="1911.534000">people can see what it looks like. And in fact, why don't I</span> <span class="audio-time caption" data-speaker="" data-start="1911.614000" data-stop="1916.442000">stick this up here so people can see right away.</span> <span class="audio-time caption" data-speaker="" data-start="1920.675000" data-stop="1925.500000">Let's see what that page looks like if I have that.</span> <span class="audio-time caption" data-speaker="" data-start="1929.464000" data-stop="1934.007000">Blog Emacs News. Oh, that's not it actually.</span> <span class="audio-time caption" data-speaker="" data-start="1934.008000" data-stop="1939.993000">This is topic Emacs News. All right.</span> <span class="audio-time caption" data-speaker="" data-start="1939.994000" data-stop="1941.695000">It is not actually showing up.</span> <span class="audio-time caption" data-speaker="" data-start="1941.696000" data-stop="1947.121000">Why isn't it showing up? That shows up there. Okay, good.</span> <span class="audio-time caption" data-speaker="" data-start="1951.455000" data-stop="1956.140000">My export is not exporting.</span> <span class="audio-time caption" data-speaker="" data-start="1960.886000" data-stop="1969.535000">Fun. Okay. Hang on a second. Let's look at the HTML. I expect</span> <span class="audio-time caption" data-speaker="" data-start="1969.595000" data-stop="1970.997000">that to just have</span> <span class="audio-time caption" data-speaker="" data-start="1974.020000" data-stop="1979.927000">~/proj/static-blog/topic/emacs-news/index.html.</span> <span class="audio-time caption" data-speaker="" data-start="1979.928000" data-stop="1982.553000">I expect that to have the image. It does not have the image.</span> <span class="audio-time caption" data-speaker="" data-start="1982.554000" data-stop="1983.876000">Why does it not have the image?</span> <span class="audio-time caption" data-speaker="" data-start="1989.929000" data-stop="1996.261000">Is it because it has a description? Derp.</span> <span class="audio-time caption" data-speaker="" data-start="1996.262000" data-stop="1998.286000">Okay, let's try that once more with feeling.</span> <span class="audio-time caption" data-speaker="" data-start="2007.277000" data-stop="2012.202000">Yes! Okay, okay, okay. Almost. All right.</span> <span class="audio-time caption" data-speaker="" data-start="2012.203000" data-stop="2022.175000">Now my caption is not captioning. Is it because...</span> <span class="audio-time caption" data-speaker="" data-start="2022.195000" data-stop="2025.439000">Is it because it's a list and it's getting confused because</span> <span class="audio-time caption" data-speaker="" data-start="2025.499000" data-stop="2030.965000">it's not a block? Okay, okay, okay. Here's a preview. Here's</span> <span class="audio-time caption" data-speaker="" data-start="2031.006000" data-stop="2034.770000">what newsticker looks like.</span> <span class="audio-time caption" data-speaker="" data-start="2039.576000" data-stop="2045.884000">Built into Emacs.</span> <span class="audio-time caption" data-speaker="" data-start="2045.904000" data-stop="2049.427000">Progress! Progress. @JacksonScholberg says it's gotta be</span> <span class="audio-time caption" data-speaker="" data-start="2049.428000" data-stop="2054.774000">ASCII Cinema. I actually haven't been using ASCII Cinema.</span> <span class="audio-time caption" data-speaker="" data-start="2054.775000" data-stop="2056.455000">I should probably check that out too.</span> <span class="audio-time caption" data-speaker="" data-start="2056.456000" data-stop="2060.902000">I've just been recording videos.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="2060.000000">00:34:20</span> <strong>Back to Emacs News</strong></div><span class="audio-time caption" data-speaker="" data-start="2060.922000" data-stop="2067.210000">Okay, okay. So now on my topic, Emacs News. Has it been copied</span> <span class="audio-time caption" data-speaker="" data-start="2067.290000" data-stop="2074.306000">over yet? We are making things better live. This is great.</span> <span class="audio-time caption" data-speaker="" data-start="2077.739000" data-stop="2081.935000">Okay.</span> <span class="audio-time caption" data-speaker="" data-start="2084.261000" data-stop="2085.923000">Do I want to always, like...</span> <span class="audio-time caption" data-speaker="" data-start="2085.924000" data-stop="2087.646000">People are scrolling through this.</span> <span class="audio-time caption" data-speaker="" data-start="2087.647000" data-stop="2092.614000">Yeah, it's fine. I can put that in a details disclosure</span> <span class="audio-time caption" data-speaker="" data-start="2092.674000" data-stop="2096.220000">thingy if they want to not see it unless they</span> <span class="audio-time caption" data-speaker="" data-start="2096.259000" data-stop="2098.984000">click on it. It's there. People can scroll. It's fine.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="2100.000000">00:35:00</span> <strong>Prerequisite knowledge for Elfeed</strong></div><span class="audio-time caption" data-speaker="" data-start="2100.146000" data-stop="2103.171000">Elfeed is a separate package. You'll need to know how to</span> <span class="audio-time caption" data-speaker="" data-start="2103.251000" data-stop="2108.359000">install packages. You'll need to know how to add... Is it</span> <span class="audio-time caption" data-speaker="" data-start="2108.520000" data-stop="2109.982000">available? Where is it available?</span> <span class="audio-time caption" data-speaker="" data-start="2113.961000" data-stop="2118.086000">It is MELPA or el-get so people would have to know how to to</span> <span class="audio-time caption" data-speaker="" data-start="2118.687000" data-stop="2128.178000">enable MELPA, which is not listed here,</span> <span class="audio-time caption" data-speaker="" data-start="2128.179000" data-stop="2132.984000">so this is a bit more advanced. You'll need...</span> <span class="audio-time caption" data-speaker="" data-start="2132.985000" data-stop="2136.690000">Then nnrss and Gnus is like way advanced, so</span> <span class="audio-time caption" data-speaker="" data-start="2136.750000" data-stop="2138.643000">Elfeed is more of an intermediate.</span> <span class="audio-time caption" data-speaker="" data-start="2138.644000" data-stop="2144.043000">Newsticker's basic. You're right, this is what we</span> <span class="audio-time caption" data-speaker="" data-start="2144.063000" data-stop="2145.785000">should probably recommend if people are just getting</span> <span class="audio-time caption" data-speaker="" data-start="2145.825000" data-stop="2149.949000">started. Which means I should include it in</span> <span class="audio-time caption" data-speaker="" data-start="2150.509000" data-stop="2161.760000">here. News... Do I say elfeed somewhere here?</span> <span class="audio-time caption" data-speaker="" data-start="2162.000000" data-stop="2165.964000">Oh actually, emacs-news.html.</span> <span class="audio-time caption" data-speaker="" data-start="2166.845000" data-stop="2172.357000">This is the header part here. Use newsticker. That means I</span> <span class="audio-time caption" data-speaker="" data-start="2172.398000" data-stop="2182.515000">a tip instead.</span> <span class="audio-time caption" data-speaker="" data-start="2188.325000" data-stop="2194.475000">This is like, topic emacs news, how to subscribe.</span> <span class="audio-time caption" data-speaker="" data-start="2205.170000" data-stop="2213.101000">Oh, I'm not in Org Mode. I can't just use those links. I'm sad.</span> <span class="audio-time caption" data-speaker="" data-start="2213.121000" data-stop="2215.825000">Topic, Emacs News.</span> <span class="audio-time caption" data-speaker="" data-start="2223.055000" data-stop="2230.486000">Fine. Write HTML. Okay, here we go. So now the tip is there.</span> <span class="audio-time caption" data-speaker="" data-start="2232.913000" data-stop="2236.781000">and I can send that to my blog in the background.</span> <span class="audio-time caption" data-speaker="" data-start="2240.510000" data-stop="2249.368000">Progress is being made! Where are we now?</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="2249.000000">00:37:29</span> <strong>Other resources that people might find useful</strong></div><span class="audio-time caption" data-speaker="" data-start="2249.369000" data-stop="2252.255000">Other resources that people might find useful...</span> <span class="audio-time caption" data-speaker="" data-start="2256.892000" data-stop="2265.201000">EmacsWiki has a newbie sort of page. Here we go. This is</span> <span class="audio-time caption" data-speaker="" data-start="2265.261000" data-stop="2272.388000">where I want to gradually start adding stuff.</span> <span class="audio-time caption" data-speaker="" data-start="2272.408000" data-stop="2282.036000">I cannot... Emacs newbie page on Emacs wiki.</span> <span class="audio-time caption" data-speaker="" data-start="2282.037000" data-stop="2286.043000">Okay, so if people are starting out, I</span> <span class="audio-time caption" data-speaker="" data-start="2286.123000" data-stop="2289.989000">want them to come across the Emacs Newbie page for sure.</span> <span class="audio-time caption" data-speaker="" data-start="2298.883000" data-stop="2306.495000">What else should they find out about? So let's go see.</span> <span class="audio-time caption" data-speaker="" data-start="2308.257000" data-stop="2312.490000">Fairly straightforward. I don't know if Emacs Newbie with</span> <span class="audio-time caption" data-speaker="" data-start="2312.530000" data-stop="2324.043000">Icicles is, uh... Well...</span> <span class="audio-time caption" data-speaker="" data-start="2324.063000" data-stop="2328.888000">I feel a little uncertain about this recommendation, but I</span> <span class="audio-time caption" data-speaker="" data-start="2328.928000" data-stop="2331.291000">don't want to take it all away, because someone's put a lot of</span> <span class="audio-time caption" data-speaker="" data-start="2331.311000" data-stop="2336.457000">work into it. Maybe it might be helpful to add some other</span> <span class="audio-time caption" data-speaker="" data-start="2336.477000" data-stop="2341.229000">stuff. Okay, anyway. Help. So i need to make sure there's a</span> <span class="audio-time caption" data-speaker="" data-start="2341.490000" data-stop="2344.234000">way for people to get help. Yes.</span> <span class="audio-time caption" data-speaker="" data-start="2347.980000" data-stop="2348.180000">Okay.</span> <span class="audio-time caption" data-speaker="" data-start="2353.007000" data-stop="2355.231000">The beginner map thing that I mentioned,</span> <span class="audio-time caption" data-speaker="" data-start="2358.316000" data-stop="2359.918000">which I do not have...</span> <span class="audio-time caption" data-speaker="" data-start="2368.892000" data-stop="2370.314000">I should have as a...</span> <span class="audio-time caption" data-speaker="" data-start="2374.601000" data-stop="2380.151000">Beginner resources from Emacs News Archives.</span> <span class="audio-time caption" data-speaker="" data-start="2383.736000" data-stop="2386.301000">And How to Learn Emacs.</span> <span class="audio-time caption" data-speaker="" data-start="2388.905000" data-stop="2391.389000">That's definitely a thing.</span> <span class="audio-time caption" data-speaker="" data-start="2408.480000" data-stop="2413.306000">Oh, yeah, let's mention Planet Emacslife. So we're just</span> <span class="audio-time caption" data-speaker="" data-start="2413.327000" data-stop="2415.730000">going to link up a bunch of things here for now.</span> <span class="audio-time caption" data-speaker="" data-start="2418.513000" data-stop="2427.746000">And, um...</span> <span class="audio-time caption" data-speaker="" data-start="2427.766000" data-stop="2435.036000">Where are we? I'm very confused. Did I accidentally close my</span> <span class="audio-time caption" data-speaker="" data-start="2436.357000" data-stop="2437.559000">Big Blue Button thing?</span> <span class="audio-time caption" data-speaker="" data-start="2440.442000" data-stop="2446.969000">Oh, no, we're still here. Planet Emacslife aggregator</span> <span class="audio-time caption" data-speaker="" data-start="2446.970000" data-stop="2453.257000">brings together lots of Emacs-related blog posts.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="2456.000000">00:40:56</span> <strong>Beginner map</strong></div><span class="audio-time caption" data-speaker="" data-start="2456.241000" data-stop="2460.666000">You know, this thing over here needs to have me saying,</span> <span class="audio-time caption" data-speaker="" data-start="2461.107000" data-stop="2465.252000">Hey, if you need help navigating this, please email me.</span> <span class="audio-time caption" data-speaker="" data-start="2466.413000" data-stop="2473.606000">Where is this even? Beginner map. Okay, if you need</span> <span class="audio-time caption" data-speaker="" data-start="2474.507000" data-stop="2480.960000">help navigating this or would like to suggest other</span> <span class="audio-time caption" data-speaker="" data-start="2481.060000" data-stop="2485.969000">beginner related resources, please email me.</span> <span class="audio-time caption" data-speaker="" data-start="2489.295000" data-stop="2497.673000">Alright. Let's explain why I'm doing this. I want to make a</span> <span class="audio-time caption" data-speaker="" data-start="2497.693000" data-stop="2504.584000">map of those things people often wonder about when they're</span> <span class="audio-time caption" data-speaker="" data-start="2504.644000" data-stop="2509.852000">learning so that you can find what's close by.</span> <span class="audio-time caption" data-speaker="" data-start="2519.653000" data-stop="2523.479000">Maybe we'll add...</span> <span class="audio-time caption" data-speaker="" data-start="2531.631000" data-stop="2538.201000">Theoretically, unless weird things happen, I should have</span> <span class="audio-time caption" data-speaker="" data-start="2538.262000" data-stop="2542.908000">that introduction.</span> <span class="audio-time caption" data-speaker="" data-start="2542.909000" data-stop="2545.392000">It's always good for people to have contact information.</span> <span class="audio-time caption" data-speaker="" data-start="2545.393000" data-stop="2548.377000">There you go. Okay.</span> <span class="audio-time caption" data-speaker="" data-start="2549.842000" data-stop="2552.685000">So that gives them a list of the things that are in this,</span> <span class="audio-time caption" data-speaker="" data-start="2555.589000" data-stop="2564.239000">and then it gives them, like, themes.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="2564.000000">00:42:44</span> <strong>emacs-news/index.org is 5.5 MB of plain text</strong></div><span class="audio-time caption" data-speaker="" data-start="2564.259000" data-stop="2570.466000">Okay, okay, okay. Back to Emacs news. So Emacs Newbie, plan an</span> <span class="audio-time caption" data-speaker="" data-start="2570.547000" data-stop="2574.231000">Emacs life, map of some beginner resources. What do people</span> <span class="audio-time caption" data-speaker="" data-start="2574.331000" data-stop="2577.655000">also find helpful?</span> <span class="audio-time caption" data-speaker="" data-start="2586.765000" data-stop="2588.045000">Yeah, there are tons of resources.</span> <span class="audio-time caption" data-speaker="" data-start="2588.046000" data-stop="2591.908000">So @JacksonScholberg says, I didn't know there were so</span> <span class="audio-time caption" data-speaker="" data-start="2591.909000" data-stop="2594.652000">many resources for Emacs. There are tons</span> <span class="audio-time caption" data-speaker="" data-start="2594.752000" data-stop="2599.496000">of resources for Emacs. In fact, if you want to go through all</span> <span class="audio-time caption" data-speaker="" data-start="2599.536000" data-stop="2603.459000">the ones that I've posted in my Emacs news thus far,</span> <span class="audio-time caption" data-speaker="" data-start="2607.122000" data-stop="2611.946000">this file over here is five megabytes and basically</span> <span class="audio-time caption" data-speaker="" data-start="2612.146000" data-stop="2617.410000">includes all the links, links, links, so many links. ever</span> <span class="audio-time caption" data-speaker="" data-start="2617.511000" data-stop="2624.979000">since the first one that I have in this thing. It's long and</span> <span class="audio-time caption" data-speaker="" data-start="2625.220000" data-stop="2628.798000">it's in Org Mode, so you can you can just search through</span> <span class="audio-time caption" data-speaker="" data-start="2628.818000" data-stop="2632.964000">the categories you're interested in, or you can use occur or</span> <span class="audio-time caption" data-speaker="" data-start="2633.004000" data-stop="2635.246000">this new command that I just found out about.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="2635.000000">00:43:55</span> <strong>consult-focus-lines</strong></div><span class="audio-time caption" data-speaker="" data-start="2635.247000" data-stop="2640.353000">If you have consult, you can consult-focus-lines and it will do kind of</span> <span class="audio-time caption" data-speaker="" data-start="2640.413000" data-stop="2644.779000">like occur but within your regular buffer. So it just</span> <span class="audio-time caption" data-speaker="" data-start="2644.819000" data-stop="2649.025000">focuses on the lines that match or don't match a specific</span> <span class="audio-time caption" data-speaker="" data-start="2650.006000" data-stop="2653.269000">expression. Anyway, there are a lot.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="2653.000000">00:44:13</span> <strong>Organizing the links</strong></div><span class="audio-time caption" data-speaker="" data-start="2653.270000" data-stop="2656.853000">What I'm thinking of doing is I'm thinking of going through</span> <span class="audio-time caption" data-speaker="" data-start="2656.854000" data-stop="2660.397000">all the things that said beginner, anything that I stuck</span> <span class="audio-time caption" data-speaker="" data-start="2660.398000" data-stop="2666.984000">in the beginner category, and filing that somewhere in the map.</span> <span class="audio-time caption" data-speaker="" data-start="2666.985000" data-stop="2670.288000">So for example, here, this is a kind of a meta discussion.</span> <span class="audio-time caption" data-speaker="" data-start="2670.289000" data-stop="2674.654000">How do you deal with that overwhelm problem where you're like,</span> <span class="audio-time caption" data-speaker="" data-start="2674.674000" data-stop="2677.017000">I'm overwhelmed by the number of key bindings that I want to</span> <span class="audio-time caption" data-speaker="" data-start="2677.097000" data-stop="2680.764000">learn. And there's a discussion here about, yeah, you know,</span> <span class="audio-time caption" data-speaker="" data-start="2680.844000" data-stop="2683.447000">do the tutorial, then take advantage of which-key, make sure</span> <span class="audio-time caption" data-speaker="" data-start="2683.467000" data-stop="2687.572000">which key is enabled, memorize the basic movement keys, and</span> <span class="audio-time caption" data-speaker="" data-start="2687.652000" data-stop="2691.036000">then start, you know, start using Post-it notes.</span> <span class="audio-time caption" data-speaker="" data-start="2692.078000" data-stop="2694.281000">Everything's fine. You can just stick a Post-it note on the</span> <span class="audio-time caption" data-speaker="" data-start="2694.321000" data-stop="2697.885000">thing. Yeah. So there are a lot of beginner related</span> <span class="audio-time caption" data-speaker="" data-start="2697.965000" data-stop="2701.049000">resources and there are a ton of other resources for other</span> <span class="audio-time caption" data-speaker="" data-start="2701.089000" data-stop="2702.590000">things.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="2702.000000">00:45:02</span> <strong>Organizing screenshots and videos by package</strong></div><span class="audio-time caption" data-speaker="" data-start="2702.591000" data-stop="2707.812000">So what I probably can do is to help with a newbie</span> <span class="audio-time caption" data-speaker="" data-start="2708.233000" data-stop="2711.977000">issue where they're curious about learning Emacs, they</span> <span class="audio-time caption" data-speaker="" data-start="2712.017000" data-stop="2714.320000">don't know whether it's going to be worth spending the time</span> <span class="audio-time caption" data-speaker="" data-start="2714.420000" data-stop="2720.687000">to do it, is I can look for or keep an eye out for interesting</span> <span class="audio-time caption" data-speaker="" data-start="2720.767000" data-stop="2724.872000">videos that come, you know, or screenshots that come along</span> <span class="audio-time caption" data-speaker="" data-start="2724.912000" data-stop="2728.175000">with detailed tutorials on how to get started.</span> <span class="audio-time caption" data-speaker="" data-start="2728.176000" data-stop="2733.562000">Let's say, for example, Org Mode Latex Export or how to set up your Emacs</span> <span class="audio-time caption" data-speaker="" data-start="2733.622000" data-stop="2738.054000">for JavaScript development. And then I can say, okay, if</span> <span class="audio-time caption" data-speaker="" data-start="2738.075000" data-stop="2740.201000">you're starting out, these are some of the things that you</span> <span class="audio-time caption" data-speaker="" data-start="2740.642000" data-stop="2743.871000">might typically be interested in. How do you get started</span> <span class="audio-time caption" data-speaker="" data-start="2743.931000" data-stop="2749.008000">with it for note-taking, for example.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="2749.000000">00:45:49</span> <strong>Info pages</strong></div><span class="audio-time caption" data-speaker="" data-start="2749.009000" data-stop="2754.362000">@mehrad42 says, also info pages are a very good source of information.</span> <span class="audio-time caption" data-speaker="" data-start="2754.363000" data-stop="2758.386000">The info pages' key bindings are a bit odd at first, so need some</span> <span class="audio-time caption" data-speaker="" data-start="2758.567000" data-stop="2764.271000">explanation. We should say that in the Emacs news,</span> <span class="audio-time caption" data-speaker="" data-start="2764.411000" data-stop="2767.874000">assuming people are starting out from scratch and they</span> <span class="audio-time caption" data-speaker="" data-start="2767.934000" data-stop="2773.980000">don't know how to get help. It's kind of something</span> <span class="audio-time caption" data-speaker="" data-start="2774.040000" data-stop="2780.222000">about... Also the Emacs and Org Mode manuals are great. You can</span> <span class="audio-time caption" data-speaker="" data-start="2780.362000" data-stop="2793.758000">read them as within Emacs with C-h i, with M-x info.</span> <span class="audio-time caption" data-speaker="" data-start="2796.882000" data-stop="2798.064000">Yeah, that's C-h i.</span> <span class="audio-time caption" data-speaker="" data-start="2803.791000" data-stop="2820.185000">Or find them on... Emacs manual, and the Org one is here as well.</span> <span class="audio-time caption" data-speaker="" data-start="2825.632000" data-stop="2825.972000">Okay.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="2828.000000">00:47:08</span> <strong>Remembering keybindings</strong></div><span class="audio-time caption" data-speaker="" data-start="2828.696000" data-stop="2833.482000">@maxfriis says try to articulate what you want to do with words</span> <span class="audio-time caption" data-speaker="" data-start="2833.483000" data-stop="2841.780000">that start with a key binding. To easily memorize key bindings.</span> <span class="audio-time caption" data-speaker="" data-start="2841.781000" data-stop="2851.259000">I like to use M-x. M-x also shows keybindings. I have it</span> <span class="audio-time caption" data-speaker="" data-start="2851.340000" data-stop="2856.810000">set up with marginalia and consult, which I think might be</span> <span class="audio-time caption" data-speaker="" data-start="2856.890000" data-stop="2862.020000">too advanced for newbies, but definitely completion is one</span> <span class="audio-time caption" data-speaker="" data-start="2862.081000" data-stop="2866.806000">of the things I like to get people up and running first.</span> <span class="audio-time caption" data-speaker="" data-start="2866.807000" data-stop="2869.712000">Is there like a recommended quick start?</span> <span class="audio-time caption" data-speaker="" data-start="2869.713000" data-stop="2873.539000">Here, you're brand new to Emacs. Get this going.</span> <span class="audio-time caption" data-speaker="" data-start="2873.540000" data-stop="2876.805000">I guess that's where the newcomer presets thing comes in</span> <span class="audio-time caption" data-speaker="" data-start="2876.806000" data-stop="2879.110000">and I should see what's inside it.</span> <span class="audio-time caption" data-speaker="" data-start="2880.525000" data-stop="2886.571000">Emacs says try to articulate what you want to do with words</span> <span class="audio-time caption" data-speaker="" data-start="2886.591000" data-stop="2888.593000">that start with a keybinding to easily memorize</span> <span class="audio-time caption" data-speaker="" data-start="2888.633000" data-stop="2891.636000">keybindings with the letter used in the keybinding. So this</span> <span class="audio-time caption" data-speaker="" data-start="2891.736000" data-stop="2896.400000">is advice to make your keybindings mnemonic, to make them</span> <span class="audio-time caption" data-speaker="" data-start="2896.420000" data-stop="2901.926000">make sense. And it's probably useful for newbies to learn</span> <span class="audio-time caption" data-speaker="" data-start="2901.966000" data-stop="2905.069000">that you can easily change your keybindings so that they can</span> <span class="audio-time caption" data-speaker="" data-start="2905.089000" data-stop="2910.777000">make more sense to you. Sorry, C-c plus a letter is</span> <span class="audio-time caption" data-speaker="" data-start="2910.877000" data-stop="2913.300000">reserved for your use so you can stick whatever keybindings</span> <span class="audio-time caption" data-speaker="" data-start="2913.620000" data-stop="2916.964000">make sense to you on there with regular letters and</span> <span class="audio-time caption" data-speaker="" data-start="2917.004000" data-stop="2917.424000">everything.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="2920.000000">00:48:40</span> <strong>The guided tour</strong></div><span class="audio-time caption" data-speaker="" data-start="2920.387000" data-stop="2924.512000">So I want to link to something from Emacs News that gets</span> <span class="audio-time caption" data-speaker="" data-start="2924.592000" data-stop="2927.855000">people started on that journey, which I think might be the</span> <span class="audio-time caption" data-speaker="" data-start="2927.935000" data-stop="2933.281000">Emacs Newbie page. So the Emacs Newbie page will link people</span> <span class="audio-time caption" data-speaker="" data-start="2933.361000" data-stop="2940.394000">to is a guided tour. Guided tour. This is not very much of a</span> <span class="audio-time caption" data-speaker="" data-start="2940.554000" data-stop="2944.741000">guided tour. There used to be a better guided tour. Where is</span> <span class="audio-time caption" data-speaker="" data-start="2944.801000" data-stop="2947.605000">it? That's a guided tour. Okay, that's a guided tour. Okay,</span> <span class="audio-time caption" data-speaker="" data-start="2947.625000" data-stop="2948.506000">that's a guided tour.</span> <span class="audio-time caption" data-speaker="" data-start="2952.012000" data-stop="2952.432000">All right.</span> <span class="audio-time caption" data-speaker="" data-start="2957.580000" data-stop="2964.671000">So it gets people through navigation, but it does, can you,</span> <span class="audio-time caption" data-speaker="" data-start="2964.831000" data-stop="2966.894000">does it talk about configuration?</span> <span class="audio-time caption" data-speaker="" data-start="2969.000000" data-stop="2971.724000">It does not talk about getting started with your</span> <span class="audio-time caption" data-speaker="" data-start="2971.764000" data-stop="2977.131000">configuration. Okay, where do we start telling people</span> <span class="audio-time caption" data-speaker="" data-start="2977.291000" data-stop="2981.357000">about getting started with configuration? Learning</span> <span class="audio-time caption" data-speaker="" data-start="2981.417000" data-stop="2981.777000">Emacs.</span> <span class="audio-time caption" data-speaker="" data-start="2990.649000" data-stop="2994.755000">Okay, maybe I should include all these things.</span> <span class="audio-time caption" data-speaker="" data-start="2999.696000" data-stop="3007.327000">I cannot decide.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="3007.000000">00:50:07</span> <strong>Recap</strong></div><span class="audio-time caption" data-speaker="" data-start="3007.347000" data-stop="3009.670000">Okay, well, we'll start with the Emacs New page, which is</span> <span class="audio-time caption" data-speaker="" data-start="3009.790000" data-stop="3015.739000">already better than it used to be before.</span> <span class="audio-time caption" data-speaker="" data-start="3015.759000" data-stop="3023.189000">Okay, so today I wanted to:</span> <span class="audio-time caption" data-speaker="" data-start="3025.447000" data-stop="3028.731000">update the header of the Emacs news page to make it easier for</span> <span class="audio-time caption" data-speaker="" data-start="3028.771000" data-stop="3033.716000">people who are new. I've got the short URL so that people who</span> <span class="audio-time caption" data-speaker="" data-start="3033.736000" data-stop="3037.200000">are recommending them, it's easier I think maybe to stick it</span> <span class="audio-time caption" data-speaker="" data-start="3037.580000" data-stop="3040.623000">in people's brains. Although, challenge as always,</span> <span class="audio-time caption" data-speaker="" data-start="3040.783000" data-stop="3045.068000">spelling my name is tricky. So maybe I need to make sure that</span> <span class="audio-time caption" data-speaker="" data-start="3045.088000" data-stop="3049.733000">yayemacs.com/news goes to this as well.</span> <span class="audio-time caption" data-speaker="" data-start="3052.295000" data-stop="3057.302000">which I don't think it currently does. So, did I already add</span> <span class="audio-time caption" data-speaker="" data-start="3057.322000" data-stop="3069.137000">that as a TODO? Ah, here we are. Also, yayemacs.com/news and</span> <span class="audio-time caption" data-speaker="" data-start="3069.237000" data-stop="3073.283000">emacslife.com/news. I mean, I have domains. I might as well</span> <span class="audio-time caption" data-speaker="" data-start="3073.383000" data-stop="3081.000000">use them. Okay, so that's done. And I've updated this. so</span> <span class="audio-time caption" data-speaker="" data-start="3081.080000" data-stop="3085.947000">that people can start to connect with the community and find</span> <span class="audio-time caption" data-speaker="" data-start="3086.027000" data-stop="3092.678000">ways to work, you know, find better, find ways to use this</span> <span class="audio-time caption" data-speaker="" data-start="3092.878000" data-stop="3094.060000">Emacs beginner thing.</span> <span class="audio-time caption" data-speaker="" data-start="3100.390000" data-stop="3104.056000">It's still a little hard for people to read. You know what I</span> <span class="audio-time caption" data-speaker="" data-start="3104.096000" data-stop="3107.902000">should do is I should take this beginner resources</span> <span class="audio-time caption" data-speaker="" data-start="3109.097000" data-stop="3111.739000">So my beginner resources org is in</span> <span class="audio-time caption" data-speaker="" data-start="3111.840000" data-stop="3115.783000">~sync/web/beginner-map.org.</span> <span class="audio-time caption" data-speaker="" data-start="3117.125000" data-stop="3124.191000">So if I make this part of...</span> <span class="audio-time caption" data-speaker="" data-start="3126.994000" data-stop="3132.499000">sacha-copy-filename.</span> <span class="audio-time caption" data-speaker="" data-start="3133.120000" data-stop="3137.804000">Okay, if I make this part of my...</span> <span class="audio-time caption" data-speaker="" data-start="3139.185000" data-stop="3146.615000">I want to say it's like a refile target. Yeah, here we go. And I</span> <span class="audio-time caption" data-speaker="" data-start="3146.675000" data-stop="3153.284000">want to say, okay, add that to my refiles.</span> <span class="audio-time caption" data-speaker="" data-start="3157.430000" data-stop="3167.535000">So then if I... think about this carefully... C-u C-c C-w,</span> <span class="audio-time caption" data-speaker="" data-start="3167.536000" data-stop="3172.142000">which is org-refile, then I should be able to go to, all right,</span> <span class="audio-time caption" data-speaker="" data-start="3172.143000" data-stop="3174.547000">the beginner maps. Ah, perfect. Okay, okay.</span> <span class="audio-time caption" data-speaker="" data-start="3174.968000" data-stop="3180.176000">So now if I'm talking to somebody and I say, oh, okay,</span> <span class="audio-time caption" data-speaker="" data-start="3180.196000" data-stop="3186.045000">they want to learn more about customization, I can jump to</span> <span class="audio-time caption" data-speaker="" data-start="3187.147000" data-stop="3192.254000">this, which actually reminds me, what?</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="3192.000000">00:53:12</span> <strong>newcomers-presets</strong></div><span class="audio-time caption" data-speaker="" data-start="3192.255000" data-stop="3195.280000">Newcomer, preset, Emacs.</span> <span class="audio-time caption" data-speaker="" data-start="3197.960000" data-stop="3198.780000">Newcomers presets.</span> <span class="audio-time caption" data-speaker="" data-start="3198.781000" data-stop="3202.024000">Is there like a thing that says what this is?</span> <span class="audio-time caption" data-speaker="" data-start="3206.368000" data-stop="3208.390000">Has anyone written a blog post about it yet?</span> <span class="audio-time caption" data-speaker="" data-start="3215.877000" data-stop="3222.062000">Where do I even find this? Okay, okay. Splash screen. It was</span> <span class="audio-time caption" data-speaker="" data-start="3222.142000" data-stop="3225.065000">in the splash screen, wasn't it? How do I...</span> <span class="audio-time caption" data-speaker="" data-start="3231.069000" data-stop="3237.795000">Okay, display splash screen. Splash screen.</span> <span class="audio-time caption" data-speaker="" data-start="3237.796000" data-stop="3241.538000">That is not it. Okay, how do I find this newcomer presets?</span> <span class="audio-time caption" data-speaker="" data-start="3241.539000" data-stop="3248.406000">So I can tell people, this is what you do in order to do it.</span> <span class="audio-time caption" data-speaker="" data-start="3248.426000" data-stop="3255.773000">Chapter 51 of the manual. Read the manual. Emacs. Newcomer.</span> <span class="audio-time caption" data-speaker="" data-start="3259.597000" data-stop="3260.738000">Okay, newcomer theme.</span> <span class="audio-time caption" data-speaker="" data-start="3264.617000" data-stop="3273.228000">Okay, fine. If I say load-theme newcomers-presets...</span> <span class="audio-time caption" data-speaker="" data-start="3273.229000" data-stop="3275.250000">Okay, I don't actually want to load the theme though.</span> <span class="audio-time caption" data-speaker="" data-start="3275.251000" data-stop="3279.416000">Can I say find-theme? I cannot say find-theme. Can I say...</span> <span class="audio-time caption" data-speaker="" data-start="3279.417000" data-stop="3290.732000">Oh, fine. I load the theme and then it'll be loaded.</span> <span class="audio-time caption" data-speaker="" data-start="3293.716000" data-stop="3304.296000">Interesting. So now is it loaded.</span> <span class="audio-time caption" data-speaker="" data-start="3307.119000" data-stop="3311.705000">Newcomers theme. Okay, here we go. I can just find the</span> <span class="audio-time caption" data-speaker="" data-start="3311.865000" data-stop="3315.829000">function newcomers-presets-mode... Okay, now I see it.</span> <span class="audio-time caption" data-speaker="" data-start="3317.291000" data-stop="3318.552000">newcomers presets theme</span> <span class="audio-time caption" data-speaker="" data-start="3321.857000" data-stop="3337.694000">Okay, line number, flymake, flyspell. That makes sense.</span> <span class="audio-time caption" data-speaker="" data-start="3337.714000" data-stop="3349.506000">So, does it...</span> <span class="audio-time caption" data-speaker="" data-start="3349.566000" data-stop="3351.188000">Let's do it in emacs -q.</span> <span class="audio-time caption" data-speaker="" data-start="3354.577000" data-stop="3357.040000">What do I type here in order to get that to work?</span> <span class="audio-time caption" data-speaker="" data-start="3360.303000" data-stop="3366.329000">load-theme newcomers-presets. Completion is still not</span> <span class="audio-time caption" data-speaker="" data-start="3366.349000" data-stop="3369.312000">there. I want completion as part of the newcomer's theme. I</span> <span class="audio-time caption" data-speaker="" data-start="3369.352000" data-stop="3374.077000">should mention that in emacs-devel. Because M-x, it's not</span> <span class="audio-time caption" data-speaker="" data-start="3374.177000" data-stop="3376.980000">obvious that you should type tab in order to complete</span> <span class="audio-time caption" data-speaker="" data-start="3377.020000" data-stop="3381.665000">things. I just do want to have... ido-vertical maybe?</span> <span class="audio-time caption" data-speaker="" data-start="3384.480000" data-stop="3390.047000">fido-vertical-mode. I mean, this by itself would already be</span> <span class="audio-time caption" data-speaker="" data-start="3391.048000" data-stop="3398.617000">nicer, I think. Okay. I need to suggest fido-vertical-mode,</span> <span class="audio-time caption" data-speaker="" data-start="3399.298000" data-stop="3402.462000">maybe, for newcomers-presets.</span> <span class="audio-time caption" data-speaker="" data-start="3409.069000" data-stop="3421.184000">Okay. And then, want to say...</span> <span class="audio-time caption" data-speaker="" data-start="3427.513000" data-stop="3430.978000">this would be nice to have a crash course: here's how you get a</span> <span class="audio-time caption" data-speaker="" data-start="3431.078000" data-stop="3434.803000">reasonable Emacs for the basic working environment</span> <span class="audio-time caption" data-speaker="" data-start="3434.804000" data-stop="3435.525000">that you want,</span> <span class="audio-time caption" data-speaker="" data-start="3439.871000" data-stop="3442.955000">but it's really better than it was before.</span> <span class="audio-time caption" data-speaker="" data-start="3450.832000" data-stop="3453.796000">And I think newcomers-presets is actually even... It's in</span> <span class="audio-time caption" data-speaker="" data-start="3453.797000" data-stop="3457.682000">Emacs 31, so most newbies will not even be on this yet. Okay, so</span> <span class="audio-time caption" data-speaker="" data-start="3458.783000" data-stop="3462.088000">that is... that's more of a future recommendation, I think.</span> <span class="audio-time caption" data-speaker="" data-start="3462.769000" data-stop="3463.570000">Okay, I got two minutes! I got two minutes before it's</span> <span class="audio-time caption" data-speaker="" data-start="3464.271000" data-stop="3465.833000">lunchtime.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="3472.000000">00:57:52</span> <strong>Wrapping up</strong></div><span class="audio-time caption" data-speaker="" data-start="3472.322000" data-stop="3479.100000">Okay, where was I? I'm going to go take this transcript for</span> <span class="audio-time caption" data-speaker="" data-start="3479.101000" data-stop="3482.233000">this session as well and then do my tinkering with the</span> <span class="audio-time caption" data-speaker="" data-start="3482.234000" data-stop="3487.733000">spelling and things like that. But I did set out to do the</span> <span class="audio-time caption" data-speaker="" data-start="3487.734000" data-stop="3491.200000">things, I got the things done that I set out to do, so yay!</span> <span class="audio-time caption" data-speaker="" data-start="3492.241000" data-stop="3494.704000">Thank you so much for the chat because that was very</span> <span class="audio-time caption" data-speaker="" data-start="3494.784000" data-stop="3497.989000">helpful. I learned all sorts of things. I learned about</span> <span class="audio-time caption" data-speaker="" data-start="3498.029000" data-stop="3499.511000">newsticker which I've never used before.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="3499.000000">00:58:19</span> <strong>Remembering keybindings</strong></div><span class="audio-time caption" data-speaker="" data-start="3499.512000" data-stop="3507.276000">I should also note, @maxfriis says, I almost never use operations</span> <span class="audio-time caption" data-speaker="" data-start="3507.316000" data-stop="3511.804000">rectangles, but I remember C-x r and then I can use which-key.</span> <span class="audio-time caption" data-speaker="" data-start="3511.805000" data-stop="3514.110000">So you only need to remember the letter R, @JacksonScholberg says.</span> <span class="audio-time caption" data-speaker="" data-start="3514.130000" data-stop="3516.796000">And @maxfiis says, refer to the operation as an operation or a</span> <span class="audio-time caption" data-speaker="" data-start="3516.856000" data-stop="3519.641000">rectangle. So I remember the R.</span> <span class="audio-time caption" data-speaker="" data-start="3519.642000" data-stop="3525.882000">So if you can get the logic behind the keyboard shortcuts,</span> <span class="audio-time caption" data-speaker="" data-start="3525.883000" data-stop="3527.825000">they become a lot easier to remember.</span> <span class="audio-time caption" data-speaker="" data-start="3527.826000" data-stop="3531.029000">It helps to make your own cheat sheets for that</span> <span class="audio-time caption" data-speaker="" data-start="3531.129000" data-stop="3537.016000">because you can say, all right, C-x 5 is all the frame</span> <span class="audio-time caption" data-speaker="" data-start="3537.076000" data-stop="3540.800000">related things. And here I have which-key kick in</span> <span class="audio-time caption" data-speaker="" data-start="3540.881000" data-stop="3544.865000">automatically after a short while. And it says, okay, these</span> <span class="audio-time caption" data-speaker="" data-start="3544.905000" data-stop="3547.748000">are the things. I've got this like weird highlighting going</span> <span class="audio-time caption" data-speaker="" data-start="3547.889000" data-stop="3553.179000">on. These are the things that start with C-x 5.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="3553.000000">00:59:13</span> <strong>Picking Prot's brain next week about the newcomer experience</strong></div><span class="audio-time caption" data-speaker="" data-start="3553.180000" data-stop="3569.546000">Prot, if you're still listening, I would like to pick your brain next</span> <span class="audio-time caption" data-speaker="" data-start="3569.547000" data-stop="3573.599000">week about what you think about improving the newcomer experience.</span> <span class="audio-time caption" data-speaker="" data-start="3573.600000" data-stop="3576.855000">Especially since we can take advantage of the fact</span> <span class="audio-time caption" data-speaker="" data-start="3576.856000" data-stop="3578.758000">you came in without a programming background. A lot</span> <span class="audio-time caption" data-speaker="" data-start="3578.838000" data-stop="3582.033000">of people are coming into Emacs for surprising reasons,</span> <span class="audio-time caption" data-speaker="" data-start="3582.034000" data-stop="3584.567000">like they've heard awesome things about Org Mode, and</span> <span class="audio-time caption" data-speaker="" data-start="3584.568000" data-stop="3588.033000">they're not programmers, they're writers, or they do other</span> <span class="audio-time caption" data-speaker="" data-start="3588.034000" data-stop="3591.667000">stuff. Sometimes they're teachers, sometimes they just do</span> <span class="audio-time caption" data-speaker="" data-start="3591.668000" data-stop="3594.867000">things, and Org Mode sounds like a thing that might help</span> <span class="audio-time caption" data-speaker="" data-start="3594.868000" data-stop="3597.699000">their brain from going to twenty different places.</span> <span class="audio-time caption" data-speaker="" data-start="3597.700000" data-stop="3604.479000">What can we do to make it better for newcomers to Emacs?</span> <span class="audio-time caption" data-speaker="" data-start="3604.480000" data-stop="3606.333000">What paths can we build?</span> <span class="audio-time caption" data-speaker="" data-start="3606.334000" data-stop="3610.899000">What resources can we share that people can then link to</span> <span class="audio-time caption" data-speaker="" data-start="3610.900000" data-stop="3615.133000">that helps address that? Prot says, yeah, he's listening,</span> <span class="audio-time caption" data-speaker="" data-start="3615.134000" data-stop="3619.433000">happy to discuss this with me and with all y'all if you want to</span> <span class="audio-time caption" data-speaker="" data-start="3619.434000" data-stop="3622.233000">join us next week. But right now the kid is going to come out</span> <span class="audio-time caption" data-speaker="" data-start="3622.234000" data-stop="3624.824000">and have lunch break, so I'm going to have lunch break too.</span> <span class="audio-time caption" data-speaker="" data-start="3625.364000" data-stop="3627.488000">Thank you for joining me. This was fantastic. I'm going to</span> <span class="audio-time caption" data-speaker="" data-start="3627.929000" data-stop="3636.123000">post the notes, the live stream video will already be</span> <span class="audio-time caption" data-speaker="" data-start="3627.929000" data-stop="3636.123000">immediately available from yayemacs.com. If you search</span> <span class="audio-time caption" data-speaker="" data-start="3636.542000" data-stop="3642.288000">for ye21, then you will find wherever the notes end up. Thank</span> <span class="audio-time caption" data-speaker="" data-start="3642.308000" data-stop="3645.944000">you everyone again, and I'll see you around!</span>
<p></p>


</details>
</div>
</div>
<div id="outline-container-ye21-april-23-continuing-to-think-about-newbies-starter-kits-chat" class="outline-3">
<h3 id="ye21-april-23-continuing-to-think-about-newbies-starter-kits-chat">Chat</h3>
<div class="outline-text-3" id="text-ye21-april-23-continuing-to-think-about-newbies-starter-kits-chat">
<ul class="org-ul">
<li>@mehrad42: ​​hand-pink-waving</li>
<li>@JacksonScholberg: ​Good morning Sacha</li>
<li>@protesilaos: ​Bonjour Sacha!</li>
<li>@JacksonScholberg: ​I gave up on Emacs yesterday then I realized I could use VSCode to get things done while I am learning Emacs.</li>
<li>@JacksonScholberg: ​First just edit a file.</li>
<li>@mtendethecreator: Hello. From the other side lol</li>
<li>@j7gy8b: I'm researching making a VSCode plugin actually</li>
<li>@j7gy8b: ​for comparison</li>
<li>@mehrad42: ​​there is an org-mode extension in vascode that is hoping to do things is Emacs way. i'd stick to Emacs, but it someone find it useful, use it.</li>
<li>@charliemcmackin4859: ​​newsticker just happens to be the first one I set up, but seems pretty friendly too</li>
<li>@JacksonScholberg: ​Outside of email would be good. I ignore email sometimes.</li>
<li>@mehrad42: ​​when I started with Emacs, one of the biggest issues was not to know what each package does. some have a picture or video or asciinema, but most of them don't.</li>
<li>@JacksonScholberg: ​That's why I ignore email haha</li>
<li>@charliemcmackin4859: ​newsticker-show-news</li>
<li>@charliemcmackin4859: ​hah, we are delayed</li>
<li>@JacksonScholberg: game over</li>
<li>@JacksonScholberg: ​It's gotta be ascii cinema</li>
<li>@mehrad42: ​​also infopages are very good source of information. The infopages keybindings are a bit odd at first, so need some explanation.</li>
<li>@JacksonScholberg: ​I didn't know there were so many resources for Emacs</li>
<li>@JacksonScholberg: ​Post its are great</li>
<li>@maxfriis: ​​Try to articulate what you want to do with words that start with the keybinding.</li>
<li>@maxfriis: ​​to easily memorize keybindings</li>
<li>@maxfriis: ​with the letter used in the keybinding</li>
<li>@JacksonScholberg: ​Good idea thanks</li>
<li>@maxfriis: ​I almost never use operations on rectangles, but I remember C-x r - then I can use which-key</li>
<li>@JacksonScholberg: ​Only need to remember letter r</li>
<li>@maxfriis: ​and refer to the operation as an operation on a rectangle so I remember the r</li>
<li>@charliemcmackin4859: ​👋 fun stuff</li>
<li>@protesilaos: ​​I am listening. Happy to discuss this with you.</li>
<li>@JacksonScholberg:​ ​Bye!</li>
<li>@maxfriis: ​thanks</li>
<li>@mehrad42: ​awesome. thanks</li>
</ul>
</div>
</div>
<div><a href="https://sachachua.com/blog/2026/04/ye21-continuing-to-think-about-newbies-starter-kits/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%2F04%2Fye21-continuing-to-think-about-newbies-starter-kits%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>
		</item><item>
		<title>YE16: Sacha and Prot talk Emacs</title>
		<link>https://sachachua.com/blog/2026/04/ye16-sacha-and-prot-talk-emacs/</link>
		<dc:creator><![CDATA[Sacha Chua]]></dc:creator>
		<pubDate>Thu, 16 Apr 2026 16:44:19 GMT</pubDate>
    <category>emacs</category>
<category>yay-emacs</category>
		<guid isPermaLink="false">https://sachachua.com/blog/2026/04/ye16-sacha-and-prot-talk-emacs/</guid>
		<description><![CDATA[<div class="update" id="orgfd12aac">
<p>
<span class="timestamp-wrapper"><time class="timestamp" datetime="2026-04-17">[2026-04-17 Fri]</time></span>: Updated chapter markers and transcript
</p>

</div>

<p>
In this livestream, I showed <a href="https://protesilaos.com">Prot</a> what I've been doing since <a href="https://sachachua.com/blog/2026/04/yayemacs-10-emacs-coaching-with-prot-packaging-emacs-lisp/">our last conversation about Emacs configuration and livestreaming</a>.
</p>

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

<ul class="org-ul">
<li><span class="media-time" data-start="0.000">00:00</span> Opening</li>
<li><span class="media-time" data-start="264.000">04:24</span> Workflow checklist</li>
<li><span class="media-time" data-start="287.000">04:47</span> Demonstrating <code>sacha-stream-show-message</code> and <a target="_blank" href="https://melpa.org/#/qrencode">qrencode</a></li>
<li><span class="media-time" data-start="354.000">05:54</span> qrencode</li>
<li><span class="media-time" data-start="475.000">07:55</span> Embark</li>
<li><span class="media-time" data-start="1034.000">17:14</span> My objectives</li>
<li><span class="media-time" data-start="1140.000">19:00</span> keycast-header-mode</li>
<li><span class="media-time" data-start="1185.000">19:45</span> Trade-offs when livestreaming while coding</li>
<li><span class="media-time" data-start="1284.000">21:24</span> Trade-offs: seeing less text on the screen</li>
<li><span class="media-time" data-start="1432.000">23:52</span> Lowering the effort needed to announce a stream: Prot just announces it and the blog post embeds it</li>
<li><span class="media-time" data-start="1483.000">24:43</span> Timestamps</li>
<li><span class="media-time" data-start="1649.000">27:29</span> Different types of livestreams</li>
<li><span class="media-time" data-start="1694.000">28:14</span> Reading other people's configs</li>
<li><span class="media-time" data-start="1812.000">30:12</span> Hanging out</li>
<li><span class="media-time" data-start="1900.000">31:40</span> Livestreams for explaining specific things</li>
<li><span class="media-time" data-start="1920.000">32:00</span> Prot on didactic livestreams</li>
<li><span class="media-time" data-start="2047.000">34:07</span> Prot suggests breadcrumbs</li>
<li><span class="media-time" data-start="2279.000">37:59</span> Announcing livestreams</li>
<li><span class="media-time" data-start="2338.000">38:58</span> Embeds: Prot embeds specific YouTube videos instead of the general channel one</li>
<li><span class="media-time" data-start="2372.000">39:32</span> Demo of my new shortcut for converting time zones</li>
<li><span class="media-time" data-start="2508.000">41:48</span> Ozzloy's questions about time zones and QR codes</li>
<li><span class="media-time" data-start="2626.000">43:46</span> Prot on announcing livestreams on blogs</li>
<li><span class="media-time" data-start="2725.000">45:25</span> Processing the recordings</li>
<li><span class="media-time" data-start="2835.000">47:15</span> Commitment devices</li>
<li><span class="media-time" data-start="2909.000">48:29</span> Automating more of the process</li>
<li><span class="media-time" data-start="3074.000">51:14</span> Copying non-packaged code</li>
<li><span class="media-time" data-start="3145.000">52:25</span> Prot on defcustom</li>
<li><span class="media-time" data-start="3312.000">55:12</span> helpful and elisp-demos</li>
<li><span class="media-time" data-start="3383.000">56:23</span> Prot on code libraries</li>
<li><span class="media-time" data-start="3410.000">56:50</span> Prot rewrites functions to fit his style and naming conventions</li>
<li><span class="media-time" data-start="3558.000">59:18</span> Prot's preference for small functions</li>
<li><span class="media-time" data-start="3623.000">01:00:23</span> avy-goto-char-timer</li>
<li><span class="media-time" data-start="3760.000">01:02:40</span> One-shot keyboard modifiers</li>
<li><span class="media-time" data-start="3809.000">01:03:29</span> Toggling</li>
<li><span class="media-time" data-start="3908.000">01:05:08</span> System-wide toggle shortcuts using emacsclient</li>
<li><span class="media-time" data-start="4045.000">01:07:25</span> My next steps</li>
<li><span class="media-time" data-start="4098.000">01:08:18</span> Tips from Prot: small functions used frequently</li>
<li><span class="media-time" data-start="4146.000">01:09:06</span> Maybe using the header line for tips?</li>
<li><span class="media-time" data-start="4223.000">01:10:23</span> Reorganizing keys</li>
</ul>

<p>
<a class="photoswipe sketch-link" href="https://sketches.sachachua.com/filename/2026-04-16-01%20Preparing%20for%20chat%20with%20Prot.jpeg" data-src="https://sketches.sachachua.com/static/2026-04-16-01%20Preparing%20for%20chat%20with%20Prot.jpeg" data-title="2026-04-16-01 Preparing for chat with Prot.jpeg" data-w="2900" data-h="2050">2026-04-16-01 Preparing for chat with Prot.jpeg</a>
</p>

<ul class="org-ul">
<li>Recap of my objectives:
<ul class="org-ul">
<li>Overall: capture and share more, create opportunities for conversation</li>
<li>Timeline:
<ul class="org-ul">
<li>April, May, June: take advantage of predictable-ish schedule and set up streams, chats</li>
<li>July, Aug: Focus on posts, videos, spontaneous streams</li>
<li>Sept-: prepare for EmacsConf, see what I can squeeze in at the same time</li>
</ul></li>
<li>This session:
<ul class="org-ul">
<li>Share my updates, see if you have other ideas, hear what you've been learning about</li>
</ul></li>
</ul></li>
<li><a href="https://sachachua.com/blog/2026/04/yayemacs-10-emacs-coaching-with-prot-packaging-emacs-lisp/#projects-experiment-with-learning-from-prot-yayemacs-10-emacs-coaching-with-prot-packaging-emacs-lisp-ideas-for-next-steps">#YayEmacs 10: Emacs coaching with Prot: Emacs workflows and streaming</a>
<ul class="org-ul">
<li><a href="https://sachachua.com/dotemacs">Emacs config modularization</a>
<ul class="org-ul">
<li>Moved the functions of my config into .el files and renamed to <code>sacha-</code> prefix</li>
<li>Experimenting with using <a href="https://github.com/rvaiya/keyd">keyd</a> for one-shot ctrl/alt/super modifiers on Linux</li>
<li><a href="https://sachachua.com/dotemacs#toggle">Used C-z to toggle live.org and C-Z to toggle now.org</a></li>
<li>Reading people's configs</li>
</ul></li>
<li>Streaming
<ul class="org-ul">
<li><a href="https://sachachua.com/dotemacs#streaming-mode-for-streaming">Set up mode for livestreaming</a> and <a href="https://github.com/obs-websocket-el/obs-websocket-el/">obs-websocket-el</a>
<ul class="org-ul">
<li>Saves variables, changes agenda / refile targets / capture templates, changes theme, etc.</li>
</ul></li>
<li>Planning upcoming videos / livestreams:
<ul class="org-ul">
<li>Looks like there's lots of interest in <a href="https://sachachua.com/blog/category/emacs-chat-podcast/all/">Emacs Chat</a> (config demos)
<ul class="org-ul">
<li><a href="https://social.sachachua.com/@sacha/statuses/01KP12W9CBT581YR7V3GMWFVN8">Mastodon thread with interested people</a></li>
<li><a href="https://sachachua.com/topic/emacs-chat/">Emacs Chat</a></li>
</ul></li>
<li>I have a video call with jwiegley and Karthik which we will post afterwards</li>
</ul></li>
<li>Watching lots of other people's videos, reading people's configs</li>
<li>Could have fun with a Thursday show-and-tell</li>
</ul></li>
<li>Contributing upstream
<ul class="org-ul">
<li>Sent revised patch for org and sentence-at-point</li>
<li>Bumped into something in which-key which I want to tweak</li>
</ul></li>
</ul></li>
<li><a href="https://protesilaos.com/emacs/dotemacs">GNU Emacs configuration | Protesilaos Stavrou</a></li>
<li><a href="https://sachachua.com/dotemacs/">Sacha Chua's Emacs configuration</a></li>
<li><a target="_blank" href="https://melpa.org/#/qrencode">qrencode</a></li>
<li><a href="https://sachachua.com/dotemacs#org-mode-time-zones">Time zones</a></li>
</ul>

<p>
Questions I'm thinking about / areas I'm working on improving:
</p>

<ul class="org-ul">
<li>(Log) <b>Getting more out of livestreams</b> (for yourself or others)
<ul class="org-ul">
<li>You've mentioned that you don't really go back to your videos to listen to them. I was wondering what could make the livestreamed recordings more useful to either the person who made them, people who watched it live, or people who come across it later.</li>
<li>Tradeoffs for livestreaming:
<ul class="org-ul">
<li>Plus: debugging help, capturing your thinking out loud, conversation, sharing more practices/tips</li>
<li>Minus: Fitting less stuff on screen, distractability</li>
</ul></li>
<li>A few types of livestreams:
<ul class="org-ul">
<li>"I'm going to spend the time doing this anyway, I might as well open it up in case other people are interested."
<ul class="org-ul">
<li>Your package maintenance videos <a href="https://www.youtube.com/watch?v=xFQDYTCS1os&amp;t=1502s">Emacs: live stream about maintaining the modus-themes - YouTube</a></li>
<li>My Emacs News categorization</li>
<li>People coding other things</li>
<li>Other types of tinkering with code, debugging, etc.</li>
</ul></li>
<li>"I have something that I specifically want to teach/show."
<ul class="org-ul">
<li>After writing a post</li>
<li>Before writing a post
<ul class="org-ul">
<li><span class="timestamp-wrapper"><time class="timestamp" datetime="2026-04-16T10:54:00-0400">[2026-04-16 Thu 10:54]</time></span> Leaving yourself breadcrumbs ZZZ consider also colour (font-lock-keywords), maybe occur</li>
</ul></li>
</ul></li>
<li>Reacting to other things
<ul class="org-ul">
<li>Config: <a href="https://www.youtube.com/live/qLjFYMQG71E">YE15: Fiddling with my Emacs config and streaming setup - YouTube</a></li>
</ul></li>
<li>Chatting with a guest
<ul class="org-ul">
<li>I had fun fiddling with my two-speaker workflow for whisperx and subed; hooray for the visual distinction between your subtitles and mine on <a href="https://www.youtube.com/watch?v=kvBS8wz8ZRw">Yay Emacs 10: Talking to Prot about Emacs workflows - YouTube</a> =)</li>
</ul></li>
<li>Chatting with the community, hanging out</li>
<li>Playing</li>
</ul></li>
<li>(Log) <b>Announcing livestreams</b>
<ul class="org-ul">
<li>You add a post for scheduled/spontaneous livestreams and then you update it with the description; probably fine considering RSS readers - people can visit the page if it's finished</li>
<li><p>
Debating whether to embed the channel livestream (picks next public scheduled stream, I think) or embed the specific livestream
</p>
<iframe width="560" height="315" src="https://www.youtube.com/embed/live_stream?channel=UClT2UAbC6j7TqOWurVhkuHQ" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen=""></iframe></li>
<li>Now on <a href="https://yayemacs.com">https://yayemacs.com</a> (also <a href="https://sach.ac/live">https://sach.ac/live</a>, <a href="https://sachachua.com/live">https://sachachua.com/live</a>)</li>
<li>Added timestamp translation to Embark keymap for timestamps, <code>sacha-org-timestamp-in-time-zones</code></li>
<li class="off"><span class="task-todo">&#x2610;</span> TODO: Post template</li>
<li class="off"><span class="task-todo">&#x2610;</span> TODO: ical file</li>
<li class="off"><span class="task-todo">&#x2610;</span> TODO: Easier workflow for embedding streams</li>
<li class="off"><span class="task-todo">&#x2610;</span> TODO: Google API for scheduling a livestream</li>
</ul></li>
<li>(Log) <b>Processing the recordings</b>
<ul class="org-ul">
<li>I like editing transcripts because that also helps me quickly split up chapters</li>
<li>Tracking chapters on the fly</li>
<li>Extracting screenshots and clips</li>
<li>Turning videos into blog posts (or vice versa)</li>
<li class="off"><span class="task-todo">&#x2610;</span> TODO: Automate more of the downloading/transcription, common edits, Internet Archive uploads</li>
</ul></li>
</ul></li>
<li>(Log) Do you sometimes find yourself copying non-packaged code from other people? How do you like to integrate it into your config, keep references to the source, check for updates?
<ul class="org-ul">
<li>convert defvar to defcustom</li>
<li><p>
Current approach: autoload if possible; if not, add a note to the docstring
</p>

<div class="org-src-container">
<pre class="src src-emacs-lisp"><code>   (<span class="org-keyword">use-package</span> prot-comment                <span class="org-comment-delimiter">; </span><span class="org-comment">TODO 2026-04-16:</span>
    <span class="org-builtin">:load-path</span> <span class="org-string">"~/vendor/prot-dotfiles/emacs/.emacs.d/prot-lisp"</span>
          <span class="org-builtin">:commands</span> (prot-comment-timestamp-keyword)
          <span class="org-builtin">:bind</span>
          (<span class="org-builtin">:map</span> prog-mode-map
                                  (<span class="org-string">"C-x M-;"</span> . prot-comment-timestamp-keyword)))
</code></pre>
</div>


<div class="org-src-container">
<pre class="src src-emacs-lisp"><code>   <span class="org-comment-delimiter">;;;</span><span class="org-comment">###autoload</span>
(<span class="org-keyword">defun</span> <span class="org-function-name">sacha-org-capture-region-contents-with-metadata</span> (start end parg)
  <span class="org-doc">"Write selected text between START and END to currently clocked `</span><span class="org-doc"><span class="org-constant">org-mode</span></span><span class="org-doc">' entry.</span>

<span class="org-doc">   With PARG, kill the content instead.</span>
<span class="org-doc">   If there is no clocked task, create it as a new note in my inbox instead.</span>

<span class="org-doc">   From https://takeonrules.com/2022/10/16/adding-another-function-to-sacha-workflow/, modified slightly so that it creates a new entry if we are not currently clocked in."</span>
  (<span class="org-keyword">interactive</span> <span class="org-string">"r\nP"</span>)
  (<span class="org-keyword">let</span> ((text (sacha-org-region-contents-get-with-metadata start end)))
    (<span class="org-keyword">if</span> (car parg)
        (kill-new text)
      (org-capture-string (concat <span class="org-string">"&#45;&#45;&#45;&#45;-\n"</span> text)
                          (<span class="org-keyword">if</span> (org-clocking-p) <span class="org-string">"c"</span>
                            <span class="org-string">"r"</span>)))))
</code></pre>
</div>
</li>
<li>prot-window: run a command in a new frame</li>
<li class="off"><span class="task-todo">&#x2610;</span> Look into using keyd for tap and hold space?</li>
<li class="off"><span class="task-todo">&#x2610;</span> header line format with common tips</li>
</ul></li>
</ul>

<details class="code-details" style="padding: 1em;
                 border-radius: 15px;
                 font-size: 0.9em;
                 box-shadow: 0.05em 0.1em 5px 0.01em  #00000057;">
                  <summary><strong>Transcript</strong></summary>
<style>
span.caption[data-speaker="Prot"] { color: var(&#45;&#45;modus-fg-ochre); }
</style>

<p>
</p><p></p><div class="transcript-heading"><span class="audio-time" data-start="0.000000">00:00:00</span> <strong>Opening</strong></div><p></p><span class="audio-time caption" data-speaker="Sacha" data-start="0.031000" data-stop="4.677000">[Sacha]: This is Yay Emacs number 16. I'm Sacha Chua and today I will be</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4.737000" data-stop="12.728000">talking with Prot once my alarms stop going off. Yes, yes. I'm</span> <span class="audio-time caption" data-speaker="Sacha" data-start="12.768000" data-stop="15.472000">going to be talking with Prot later, assuming that all of</span> <span class="audio-time caption" data-speaker="Sacha" data-start="15.552000" data-stop="24.359000">this stuff works. Let me double check my audio is on. Audio</span> <span class="audio-time caption" data-speaker="Sacha" data-start="24.419000" data-stop="28.144000">is definitely on. I'm trying a little bit early so that I'm</span> <span class="audio-time caption" data-speaker="Sacha" data-start="28.184000" data-stop="32.891000">not doing so much last-minute panicking. Let's see what</span> <span class="audio-time caption" data-speaker="Sacha" data-start="32.931000" data-stop="39.640000">we've got here.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="46.285000" data-stop="52.055000">I am also trying the new OBS 32 interface for things, so that</span> <span class="audio-time caption" data-speaker="Sacha" data-start="52.095000" data-stop="58.866000">should be fun. Alright, thank you to phyzixlab for</span> <span class="audio-time caption" data-speaker="Sacha" data-start="58.906000" data-stop="62.592000">confirming that the audio works. I am so fairly new to this</span> <span class="audio-time caption" data-speaker="Sacha" data-start="62.673000" data-stop="65.778000">livestreaming thing, but I'm looking forward to seeing if I</span> <span class="audio-time caption" data-speaker="Sacha" data-start="65.818000" data-stop="67.961000">can do it more regularly because I have a little bit of</span> <span class="audio-time caption" data-speaker="Sacha" data-start="68.522000" data-stop="72.585000">predictable focus time between now and the end of June. In</span> <span class="audio-time caption" data-speaker="Sacha" data-start="72.645000" data-stop="75.251000">July, the kid is on summer break and so will probably want to</span> <span class="audio-time caption" data-speaker="Sacha" data-start="75.311000" data-stop="78.537000">hang out with me all the time. Or not, you know, kids are like</span> <span class="audio-time caption" data-speaker="Sacha" data-start="78.577000" data-stop="85.130000">that, right? So in the meantime, I am trying to get the hang of</span> <span class="audio-time caption" data-speaker="Sacha" data-start="85.892000" data-stop="90.721000">scheduling things and since Prot happens to have an Emacs</span> <span class="audio-time caption" data-speaker="Sacha" data-start="90.762000" data-stop="94.644000">coaching service, I figured I would engage him to coach me</span> <span class="audio-time caption" data-speaker="Sacha" data-start="95.185000" data-stop="97.848000">on live streaming and Emacs and all sorts of stuff, which is</span> <span class="audio-time caption" data-speaker="Sacha" data-start="97.888000" data-stop="101.552000">really, you know, making sure that I have somebody to talk to</span> <span class="audio-time caption" data-speaker="Sacha" data-start="102.813000" data-stop="106.937000">and bounce ideas around with and see where we end up. So the</span> <span class="audio-time caption" data-speaker="Sacha" data-start="107.038000" data-stop="113.785000">last time, which was, Yay Emacs, when was this? Yay Emacs 10,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="114.766000" data-stop="118.309000">I had a coaching session with him to talk about Emacs</span> <span class="audio-time caption" data-speaker="Sacha" data-start="118.329000" data-stop="120.952000">workflows and streaming. So I've been working on</span> <span class="audio-time caption" data-speaker="Sacha" data-start="120.992000" data-stop="123.709000">modularizing my configuration. I'll explain all of this</span> <span class="audio-time caption" data-speaker="Sacha" data-start="123.769000" data-stop="134.970000">again when he comes on, but just to get the hang of this. I've</span> <span class="audio-time caption" data-speaker="Sacha" data-start="135.031000" data-stop="138.758000">modulized my config. I've gotten through hundreds of</span> <span class="audio-time caption" data-speaker="Sacha" data-start="139.119000" data-stop="142.866000">function definitions and exported them all into</span> <span class="audio-time caption" data-speaker="Sacha" data-start="142.926000" data-stop="149.142000">individual files. I</span> <span class="audio-time caption" data-speaker="Sacha" data-start="149.162000" data-stop="152.586000">have in fact even renamed them from my-whatever to</span> <span class="audio-time caption" data-speaker="Sacha" data-start="152.746000" data-stop="160.015000">sacha-whatever. So it's slightly</span> <span class="audio-time caption" data-speaker="Sacha" data-start="160.075000" data-stop="162.918000">easier to copy my functions because they won't trample over</span> <span class="audio-time caption" data-speaker="Sacha" data-start="163.018000" data-stop="168.165000">other people's custom functions called my-whatever. My</span> <span class="audio-time caption" data-speaker="Sacha" data-start="168.225000" data-stop="173.312000">background blurring is very background blurring. So</span> <span class="audio-time caption" data-speaker="Sacha" data-start="173.352000" data-stop="176.138000">that's all good. And then I've got a couple of other</span> <span class="audio-time caption" data-speaker="Sacha" data-start="177.341000" data-stop="180.207000">modifications that I've made. So I've made good progress on</span> <span class="audio-time caption" data-speaker="Sacha" data-start="180.247000" data-stop="186.020000">this very long to-do list that I had made for myself after his</span> <span class="audio-time caption" data-speaker="Sacha" data-start="186.762000" data-stop="191.532000">chat. But the kiddo is here. Oh my goodness!</span> <span class="audio-time caption" data-speaker="Sacha" data-start="198.970000" data-stop="201.613000">Okay, you're gonna go back to school and stuff? You just</span> <span class="audio-time caption" data-speaker="Sacha" data-start="201.633000" data-stop="204.958000">wanted to drop by and make a comment? Yes. Also, the teacher</span> <span class="audio-time caption" data-speaker="Sacha" data-start="204.978000" data-stop="208.663000">let me change my name, but not family. They just wanted to add</span> <span class="audio-time caption" data-speaker="Sacha" data-start="208.683000" data-stop="213.369000">a - in parenthesis. Oh, yeah. Oh, that's good. Now they</span> <span class="audio-time caption" data-speaker="Sacha" data-start="213.389000" data-stop="221.299000">can refer to you. Post my name and my nickname. Alright, I'm</span> <span class="audio-time caption" data-speaker="Sacha" data-start="221.339000" data-stop="222.160000">going to test this new thing.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="242.305000" data-stop="252.509000">Interesting</span> <span class="audio-time caption" data-speaker="Sacha" data-start="254.132000" data-stop="256.839000">conflict here. The kiddo likes making cameos. I am not sure</span> <span class="audio-time caption" data-speaker="Sacha" data-start="256.858000" data-stop="261.791000">how I feel about the kiddo making cameos. Anyhow! Where are</span> <span class="audio-time caption" data-speaker="Sacha" data-start="261.831000" data-stop="264.918000">we? Okay, the mic is unmuted again.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="264.000000">00:04:24</span> <strong>Workflow checklist</strong></div><p></p><span class="audio-time caption" data-speaker="Sacha" data-start="264.919000" data-stop="265.961000">[Sacha]: I am going through my</span> <span class="audio-time caption" data-speaker="Sacha" data-start="266.061000" data-stop="269.269000">checklist. I have this lovely checklist now. It includes,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="269.831000" data-stop="273.660000">naturally because it's Org Mode, it includes Emacs Lisp</span> <span class="audio-time caption" data-speaker="Sacha" data-start="273.940000" data-stop="277.449000">buttons that I can just click on to get stuff running. In this</span> <span class="audio-time caption" data-speaker="Sacha" data-start="277.509000" data-stop="282.499000">case, for example, I can use obs-websocket-el to start</span> <span class="audio-time caption" data-speaker="Sacha" data-start="282.539000" data-stop="286.487000">recording and start streaming at the same time. So that's</span> <span class="audio-time caption" data-speaker="Sacha" data-start="286.548000" data-stop="287.789000">all good.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="287.000000">00:04:47</span> <strong>Demonstrating =sacha-stream-show-message= and package:qrencode</strong></div><p></p><span class="audio-time caption" data-speaker="Sacha" data-start="287.790000" data-stop="290.135000">[Sacha]: And I want to double check that this message thing</span> <span class="audio-time caption" data-speaker="Sacha" data-start="290.155000" data-stop="295.927000">works. Let's go see if I can send a message to the chat. Show</span> <span class="audio-time caption" data-speaker="Sacha" data-start="295.947000" data-stop="296.528000">string.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="298.955000" data-stop="303.579000">This is a test message that you can ignore. And</span> <span class="audio-time caption" data-speaker="Sacha" data-start="303.759000" data-stop="309.745000">theoretically that shows up there. That shows up in the chat</span> <span class="audio-time caption" data-speaker="Sacha" data-start="309.985000" data-stop="313.709000">with a timestamp. So people using video on demand feature</span> <span class="audio-time caption" data-speaker="Sacha" data-start="313.809000" data-stop="317.052000">where you can go back and just go playback part of the thing</span> <span class="audio-time caption" data-speaker="Sacha" data-start="317.612000" data-stop="323.618000">can go see it. It would help, of course, if I had the time. And</span> <span class="audio-time caption" data-speaker="Sacha" data-start="323.678000" data-stop="328.023000">if I expand this. You have the time in the mode line here. It's</span> <span class="audio-time caption" data-speaker="Sacha" data-start="328.223000" data-stop="333.510000">currently 10:25. But then, my Firefox... Oh, maybe I should</span> <span class="audio-time caption" data-speaker="Sacha" data-start="333.530000" data-stop="340.260000">just tell you what. I will make this above others. There you</span> <span class="audio-time caption" data-speaker="Sacha" data-start="340.300000" data-stop="347.710000">go. Fancy. Super fancy. Except this is right where the...</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="354.000000">00:05:54</span> <strong>qrencode</strong></div><p></p><span class="audio-time caption" data-speaker="Sacha" data-start="354.136000" data-stop="359.003000">[Sacha]: What's the QR code? The QR code just repeats the string. So</span> <span class="audio-time caption" data-speaker="Sacha" data-start="359.103000" data-stop="363.690000">this will be a little more handy if I have... Let me just</span> <span class="audio-time caption" data-speaker="Sacha" data-start="363.730000" data-stop="366.634000">double check that it does do the string properly. Come on,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="366.774000" data-stop="371.401000">show me the thing. Yep. So this is my... In case you're</span> <span class="audio-time caption" data-speaker="Sacha" data-start="371.441000" data-stop="375.526000">watching this in a mobile device and I show URLs, like for</span> <span class="audio-time caption" data-speaker="Sacha" data-start="375.586000" data-stop="380.594000">example, let's bring up Prot's configuration here. Let's</span> <span class="audio-time caption" data-speaker="Sacha" data-start="380.634000" data-stop="387.249000">go to... Let's do, do, do, do, do... Prot. Yeah, here. And</span> <span class="audio-time caption" data-speaker="Sacha" data-start="387.289000" data-stop="393.499000">then if I say show string and I give it the URL, then it gives</span> <span class="audio-time caption" data-speaker="Sacha" data-start="393.559000" data-stop="398.628000">you the string and the URL should be in the QR code. So people</span> <span class="audio-time caption" data-speaker="Sacha" data-start="398.668000" data-stop="401.617000">who are watching mobile. You can do that. People who are in</span> <span class="audio-time caption" data-speaker="Sacha" data-start="401.637000" data-stop="404.863000">the chat can get it from the chat. It's timestamped so that if</span> <span class="audio-time caption" data-speaker="Sacha" data-start="404.923000" data-stop="409.671000">I grab the timestamps later on, I can use that sort of for</span> <span class="audio-time caption" data-speaker="Sacha" data-start="409.791000" data-stop="413.758000">chapters. And just generally all these little</span> <span class="audio-time caption" data-speaker="Sacha" data-start="413.818000" data-stop="417.705000">conveniences. This QR code is provided by the qrencode</span> <span class="audio-time caption" data-speaker="Sacha" data-start="418.386000" data-stop="422.854000">package. So it's in Emacs. It's actually characters.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="423.087000" data-stop="430.017000">There's probably a way to just insert the image. But I</span> <span class="audio-time caption" data-speaker="Sacha" data-start="430.057000" data-stop="434.203000">thought it was cool. I can't remember who had this technique</span> <span class="audio-time caption" data-speaker="Sacha" data-start="434.263000" data-stop="438.309000">in one of his videos. Maybe it was John Kitchin? That seems</span> <span class="audio-time caption" data-speaker="Sacha" data-start="438.329000" data-stop="441.353000">like the sort of thing he might do. Or it might be someone</span> <span class="audio-time caption" data-speaker="Sacha" data-start="441.393000" data-stop="446.120000">else. Anyway, just these little conveniences because</span> <span class="audio-time caption" data-speaker="Sacha" data-start="446.521000" data-stop="450.186000">copying text, especially in mobile, or trying to type</span> <span class="audio-time caption" data-speaker="Sacha" data-start="450.266000" data-stop="455.366000">things... Try to pause the video at just the right moment. It's</span> <span class="audio-time caption" data-speaker="Sacha" data-start="455.386000" data-stop="461.377000">very annoying. Eventually,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="462.099000" data-stop="466.407000">I would like to plug it into all the usual Embark stuff. For</span> <span class="audio-time caption" data-speaker="Sacha" data-start="466.467000" data-stop="470.335000">example, you'll see this later as I go through this stuff</span> <span class="audio-time caption" data-speaker="Sacha" data-start="470.495000" data-stop="475.947000">with Prot. Log buttons will show messages.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="475.000000">00:07:55</span> <strong>Embark</strong></div><p></p><span class="audio-time caption" data-speaker="Sacha" data-start="475.948000" data-stop="479.252000">[Sacha]: But theoretically, it would be nice to have my Embark here. For</span> <span class="audio-time caption" data-speaker="Sacha" data-start="479.292000" data-stop="483.337000">example, I'm on Embark on an org URL link. It makes sense</span> <span class="audio-time caption" data-speaker="Sacha" data-start="483.377000" data-stop="487.262000">that... Wait a minute, I do have it. Okay, I think I have it on Z</span> <span class="audio-time caption" data-speaker="Sacha" data-start="487.342000" data-stop="493.710000">here. Is that a capital Z or a small z? Let's find out. Z? Not a</span> <span class="audio-time caption" data-speaker="Sacha" data-start="493.770000" data-stop="497.194000">small z. Capital Z. Whoa, look at that! Okay, okay, so I</span> <span class="audio-time caption" data-speaker="Sacha" data-start="497.234000" data-stop="501.916000">already do have it. Embark is a package that lets you have</span> <span class="audio-time caption" data-speaker="Sacha" data-start="502.016000" data-stop="506.803000">context-sensitive keyboard shortcuts. And so I have this</span> <span class="audio-time caption" data-speaker="Sacha" data-start="506.924000" data-stop="511.450000">now mapped so that if I want an org link, I can press control</span> <span class="audio-time caption" data-speaker="Sacha" data-start="511.510000" data-stop="517.860000">dot and Z and it will send it to the chat and display it on the</span> <span class="audio-time caption" data-speaker="Sacha" data-start="517.900000" data-stop="523.508000">screen with a message because who wants to type things</span> <span class="audio-time caption" data-speaker="Sacha" data-start="523.568000" data-stop="525.711000">manually? You know, this is Emacs. We don't do anything</span> <span class="audio-time caption" data-speaker="Sacha" data-start="525.751000" data-stop="530.408000">manually. And then theoretically, that also should show up</span> <span class="audio-time caption" data-speaker="Sacha" data-start="530.648000" data-stop="533.312000">in... Look at that! It's showing up over here in my timestamp</span> <span class="audio-time caption" data-speaker="Sacha" data-start="533.352000" data-stop="538.539000">section using the magic of org-capture. It includes a</span> <span class="audio-time caption" data-speaker="Sacha" data-start="538.599000" data-stop="542.804000">timestamp and then, of course, with a little bit of math, I</span> <span class="audio-time caption" data-speaker="Sacha" data-start="542.884000" data-stop="548.792000">can calculate this as an offset into the streaming video</span> <span class="audio-time caption" data-speaker="Sacha" data-start="548.812000" data-stop="552.537000">file because I started the stream probably at the same time.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="552.697000" data-stop="556.101000">Anyway, just a little bit of math to calculate that. And then</span> <span class="audio-time caption" data-speaker="Sacha" data-start="556.161000" data-stop="559.799000">I can get chapters out of it. Theoretically. Or I could use</span> <span class="audio-time caption" data-speaker="Sacha" data-start="559.839000" data-stop="563.363000">that to index into the transcript and edit things. Hello,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="563.383000" data-stop="568.349000">Prot! Hello! We are already live. I have just been on screen.</span> <p></p><span class="audio-time caption" data-speaker="Prot" data-start="568.369000" data-stop="569.830000">[Prot]: Already live! Great. Yes.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="569.831000" data-stop="571.332000">[Sacha]: Panicking. Not panicking.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="571.613000" data-stop="574.837000">Experimenting with all the fun stuff. I'm now going to share</span> <span class="audio-time caption" data-speaker="Sacha" data-start="574.877000" data-stop="580.463000">my screen with you so that you can see also. Select window.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="581.124000" data-stop="584.628000">Let's go to all of it. Screen one? Screen one. I think it's</span> <span class="audio-time caption" data-speaker="Sacha" data-start="584.668000" data-stop="591.186000">screen one. Okay. Allow. So, theoretically, you</span> <span class="audio-time caption" data-speaker="Sacha" data-start="594.111000" data-stop="595.653000">should see my screen.</span> <p></p><span class="audio-time caption" data-speaker="Prot" data-start="595.654000" data-stop="599.219000">[Prot]: Very well, very well. Looks good, looks good.</span> <span class="audio-time caption" data-speaker="Prot" data-start="599.220000" data-stop="602.444000">We have connectivity issues, it seems.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="602.445000" data-stop="607.112000">[Sacha]: Your audio sounds choppy.</span> <p></p><span class="audio-time caption" data-speaker="Prot" data-start="607.113000" data-stop="615.547000">[Prot]: Yeah, same here. I cannot hear you well.</span> <span class="audio-time caption" data-speaker="Prot" data-start="615.548000" data-stop="616.670000">Can you hear me now?</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="616.671000" data-stop="618.113000">[Sacha]: I dropped my performance.</span> <p></p><span class="audio-time caption" data-speaker="Prot" data-start="618.114000" data-stop="619.376000">[Prot]: Okay, okay, do that.</span> <span class="audio-time caption" data-speaker="Prot" data-start="619.377000" data-stop="625.151000">Well, very well. Because it seems that our... Yes, okay, I did the same.</span> <span class="audio-time caption" data-speaker="Prot" data-start="625.171000" data-stop="627.915000">Okay, so hopefully this will work. Let's see.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="627.916000" data-stop="629.377000">[Sacha]: It's an experiment.</span> <p></p><span class="audio-time caption" data-speaker="Prot" data-start="629.378000" data-stop="631.079000">[Prot]: It seems more stable now.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="631.080000" data-stop="633.323000">[Sacha]: Yes, this is one of the reasons why</span> <span class="audio-time caption" data-speaker="Sacha" data-start="633.324000" data-stop="635.206000">we're having these sessions, so that you can</span> <span class="audio-time caption" data-speaker="Sacha" data-start="635.246000" data-stop="638.811000">experiment to see what's possible. And I was just telling</span> <span class="audio-time caption" data-speaker="Sacha" data-start="638.911000" data-stop="643.818000">stream that I've been having a lot of fun tinkering with a lot</span> <span class="audio-time caption" data-speaker="Sacha" data-start="643.878000" data-stop="648.324000">of the ideas that I was working on after the last chat two</span> <span class="audio-time caption" data-speaker="Sacha" data-start="648.445000" data-stop="655.320000">weeks ago. So my goal for this session is to not panic.</span> <p></p><span class="audio-time caption" data-speaker="Prot" data-start="655.321000" data-stop="663.413000">[Prot]: I really cannot hear you clearly. I keep getting</span> <span class="audio-time caption" data-speaker="Prot" data-start="663.654000" data-stop="671.445000">interruptions, so... It seems that... Yeah, I don't know</span> <span class="audio-time caption" data-speaker="Prot" data-start="671.465000" data-stop="677.475000">what we could do. Maybe I can try to leave and rejoin, maybe.</span> <span class="audio-time caption" data-speaker="Prot" data-start="677.495000" data-stop="682.061000">Let me exit and rejoin Jitsi, maybe that will fix it. Okay,</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="682.082000" data-stop="687.175000">[Sacha]: let's try that. Okay, so let me do that very quickly.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="694.542000" data-stop="697.566000">Quite possibly, I am asking my computer to do too many</span> <span class="audio-time caption" data-speaker="Sacha" data-start="697.626000" data-stop="703.412000">things. Let's see. I am asking my computer to do too many</span> <span class="audio-time caption" data-speaker="Sacha" data-start="703.472000" data-stop="704.832000">things, audio-wise.</span> <p></p><span class="audio-time caption" data-speaker="Prot" data-start="704.833000" data-stop="707.395000">[Prot]: Okay, we will see. We will find out.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="707.396000" data-stop="714.652000">[Sacha]: Let me try changing my virtual mic. How about this one?</span> <p></p><span class="audio-time caption" data-speaker="Prot" data-start="714.653000" data-stop="719.864000">[Prot]: No, your audio is still kind of choppy. Why is your audio choppy?</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="719.884000" data-stop="728.039000">[Sacha]: Let's see. What do you think? Yeti, monitor your audio.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="728.040000" data-stop="734.974000">Let me check. Not good. It's okay. Live debugging. Here we go.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="735.578000" data-stop="742.289000">Okay, you are, where are we? You are Firefox. Yes, yes, yes.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="743.090000" data-stop="750.341000">Okay, I can disconnect the, uh, disconnect the</span> <span class="audio-time caption" data-speaker="Sacha" data-start="750.542000" data-stop="754.448000">connections. Let me think.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="757.988000" data-stop="765.680000">Connect the ports of Combined Sink Monitor to Firefox Input.</span> <p></p><span class="audio-time caption" data-speaker="Prot" data-start="769.545000" data-stop="775.714000">[Prot]: And while you do that, we will... Testing.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="775.715000" data-stop="776.816000">[Sacha]: How are we doing?</span> <p></p><span class="audio-time caption" data-speaker="Prot" data-start="778.198000" data-stop="779.840000">[Prot]: There it is.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="779.841000" data-stop="780.882000">[Sacha]: Is this slightly better?</span> <span class="audio-time caption" data-speaker="Sacha" data-start="783.586000" data-stop="785.932000">Testing. One, two, three.</span> <p></p><span class="audio-time caption" data-speaker="Prot" data-start="785.933000" data-stop="787.996000">[Prot]: Yeah, let's see here, so... Okay,</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="788.016000" data-stop="795.226000">[Sacha]: that seems to be good. And now I'm sharing my screen. How is</span> <span class="audio-time caption" data-speaker="Sacha" data-start="795.306000" data-stop="795.967000">our screen?</span> <span class="audio-time caption" data-speaker="Sacha" data-start="801.013000" data-stop="805.419000">Hmm, does not like screen sharing at the same time. Let me see</span> <span class="audio-time caption" data-speaker="Sacha" data-start="805.459000" data-stop="809.264000">what's going on with my memory. My memory is fine. I have</span> <span class="audio-time caption" data-speaker="Sacha" data-start="809.304000" data-stop="814.952000">memory. Let us stop the screen sharing. How are we now? Is our</span> <span class="audio-time caption" data-speaker="Sacha" data-start="815.012000" data-stop="815.653000">audio back?</span> <p></p><span class="audio-time caption" data-speaker="Prot" data-start="819.548000" data-stop="824.773000">[Prot]: Okay. I can hear you well. I can hear you well in terms of the</span> <span class="audio-time caption" data-speaker="Prot" data-start="824.833000" data-stop="828.817000">fact that there is no choppiness now in the audio. However,</span> <span class="audio-time caption" data-speaker="Prot" data-start="828.918000" data-stop="833.022000">your voice has been distorted a little bit. It's not a</span> <span class="audio-time caption" data-speaker="Prot" data-start="833.082000" data-stop="835.905000">problem. I can hear you clearly, but I just mention it for the</span> <span class="audio-time caption" data-speaker="Prot" data-start="836.185000" data-stop="838.968000">sake of your setup.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="840.469000" data-stop="845.094000">[Sacha]: This is interesting and I'm not entirely sure how I will go</span> <span class="audio-time caption" data-speaker="Sacha" data-start="845.174000" data-stop="849.848000">about fixing it at this moment. No</span> <span class="audio-time caption" data-speaker="Sacha" data-start="854.578000" data-stop="858.706000">problem. It's not really a problem because I hear you well,</span> <p></p><span class="audio-time caption" data-speaker="Prot" data-start="858.726000" data-stop="863.055000">[Prot]: so that's enough. I am tempted to suggest the non-free...</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="863.576000" data-stop="866.262000">[Sacha]: Let's jump over to Google Meet and see if that's any better.</span> <p></p><span class="audio-time caption" data-speaker="Prot" data-start="867.237000" data-stop="874.727000">[Prot]: Let's do it. Send me the link and let's do that. No problem.</span> <span class="audio-time caption" data-speaker="Prot" data-start="874.728000" data-stop="882.658000">We are already on YouTube anyways. Let me try this.</span> <span class="audio-time caption" data-speaker="Prot" data-start="882.659000" data-stop="889.027000">[Sacha] I will send it to you in the Jitsi chat and then things will be crazy.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="889.028000" data-stop="895.017000">[Sacha]: It's in the Jitsi chat and we'll see if that works. Does that work?</span> <span class="audio-time caption" data-speaker="Sacha" data-start="896.549000" data-stop="908.986000">I will also email it to you.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="913.212000" data-stop="916.556000">That's not the link.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="922.565000" data-stop="925.088000">Okay.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="926.705000" data-stop="935.593000">Now I need to see whether this actually works. Oh. Ah!</span> <span class="audio-time caption" data-speaker="Sacha" data-start="939.337000" data-stop="947.024000">Ah, technology! How does it work?</span> <span class="audio-time caption" data-speaker="Sacha" data-start="947.044000" data-stop="949.666000">Camera is starting. Camera is not starting. I don't know</span> <span class="audio-time caption" data-speaker="Sacha" data-start="949.686000" data-stop="952.589000">what it's talking about. Camera is starting. Allow camera.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="954.291000" data-stop="963.893000">Join now. Okay. Testing. My audio works. Admit one guest.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="965.475000" data-stop="972.946000">Admit. Okay. Testing. Does this work now? I can hear you</span> <span class="audio-time caption" data-speaker="Sacha" data-start="972.966000" data-stop="980.436000">clearly. Okay. Now I'm going to try sharing this. Yes. Very</span> <p></p><span class="audio-time caption" data-speaker="Prot" data-start="980.476000" data-stop="984.843000">[Prot]: well. And then let's see what happens. Share. Yeah. The</span> <span class="audio-time caption" data-speaker="Prot" data-start="984.923000" data-stop="990.984000">moment of truth. Let's see.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="990.985000" data-stop="992.907000">[Sacha]: Technology continues to work?</span> <p></p><span class="audio-time caption" data-speaker="Prot" data-start="993.968000" data-stop="997.433000">[Prot]: Yeah, yeah, it does work. This is smooth. This works. So</span> <span class="audio-time caption" data-speaker="Prot" data-start="997.533000" data-stop="1000.877000">let's see. Okay, all right. So it probably means that in the</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="1000.957000" data-stop="1004.141000">[Sacha]: future I might actually need to spin up our Big Blue Button</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1004.181000" data-stop="1007.345000">server because sometimes the free Jitsi, you know, you're</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1007.605000" data-stop="1011.783000">just dealing with whatever you get for free, right? We</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1012.924000" data-stop="1016.769000">already have comments. phyzixlab wants to know, well,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1017.390000" data-stop="1020.074000">phyzixlab says, Prot, I'm jealous of your beard. Which</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1020.194000" data-stop="1025.501000">Emacs package can I install to have a glorious beard like</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1025.521000" data-stop="1029.847000">you? Emacs Genes. Emacs Genes. Y'all can book your own</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1030.007000" data-stop="1032.830000">coaching session with Prat. Although technically, I don't</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1032.851000" data-stop="1034.535000">mind sharing mine.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="1034.000000">00:17:14</span> <strong>My objectives</strong></div><p></p><span class="audio-time caption" data-speaker="Sacha" data-start="1034.536000" data-stop="1038.723000">[Sacha]: Okay, so my objectives is I want to</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1038.742000" data-stop="1043.672000">capture and share more, right? And that's great because in</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1043.692000" data-stop="1045.636000">the experiments that I've been doing with live streaming so</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1045.715000" data-stop="1048.560000">far, I have found myself going on tangents based on people's</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1048.641000" data-stop="1052.568000">questions. And theoretically, I can go back and use those</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1052.648000" data-stop="1056.274000">transcripts, which I haven't yet. But that could be more</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1056.355000" data-stop="1059.926000">stuff into blog posts that are more searchable. And</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1059.946000" data-stop="1063.849000">creating opportunities for conversation, which I think</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1063.889000" data-stop="1066.011000">you've also been experiencing with your experiments with</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1066.071000" data-stop="1070.075000">live streams lately. Because it is nice to have that back and</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1070.135000" data-stop="1072.297000">forth when you're demonstrating something and you can</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1072.397000" data-stop="1076.421000">immediately show something that was unclear. Quick</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1076.481000" data-stop="1079.323000">overview of my timeline. Again, until June, I've got a</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1079.443000" data-stop="1082.386000">fairly predictable schedule, except for the times when the</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1082.466000" data-stop="1085.369000">kid turns out to have a substitute teacher and is too grumpy</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1085.409000" data-stop="1089.713000">to go to school. So just some flexibility still with the</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1089.733000" data-stop="1092.557000">schedule, but I am starting to experiment with scheduling</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1092.617000" data-stop="1096.702000">chats. So that's nice. And this is our first experiment with</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1096.762000" data-stop="1099.845000">it. I'm like, okay, let's try a live stream at this date at</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1099.905000" data-stop="1104.931000">this time with somebody who is going to show up also. And then</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1104.971000" data-stop="1107.214000">in July and August, since my schedule will be less</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1107.254000" data-stop="1110.397000">predictable, then we'll do more spontaneous things like we</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1110.437000" data-stop="1112.920000">also have been doing. And then September onwards is</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1112.960000" data-stop="1116.659000">probably going to be EmacsConf. So with that in mind, I want</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1116.699000" data-stop="1120.105000">to quickly share the updates from the last one. And</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1120.165000" data-stop="1123.730000">probably, you know, you will think about stuff and say, oh,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1123.891000" data-stop="1126.395000">yeah, have you thought about doing this? Or, oh, that's</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1126.455000" data-stop="1129.920000">good. Try this one next. Or in my experience, so and so and so.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1131.022000" data-stop="1134.147000">And of course, I'd love to hear what you've been learning</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1134.247000" data-stop="1136.450000">about also.</span> <p></p><span class="audio-time caption" data-speaker="Prot" data-start="1136.451000" data-stop="1139.190000">[Prot]: Yeah, yeah, yeah, yeah, yeah. Very good.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="1139.000000">00:18:59</span> <strong>keycast-header-mode</strong></div><p></p><span class="audio-time caption" data-speaker="Prot" data-start="1139.191000" data-stop="1140.912000">[Prot]: And I will tell you my experience as well,</span> <span class="audio-time caption" data-speaker="Prot" data-start="1140.913000" data-stop="1142.535000">because based on our last exchange,</span> <span class="audio-time caption" data-speaker="Prot" data-start="1142.536000" data-stop="1145.681000">I also tried keycast at the top, for example.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="1145.701000" data-stop="1149.586000">[Sacha]: Yeah, yeah. It gets out of the way of the closed captions.</span> <p></p><span class="audio-time caption" data-speaker="Prot" data-start="1149.587000" data-stop="1152.311000">[Prot]: It does. It does. Yeah. So it has some advantages and it's</span> <span class="audio-time caption" data-speaker="Prot" data-start="1152.391000" data-stop="1155.716000">always visible and the key and the command is always</span> <span class="audio-time caption" data-speaker="Prot" data-start="1155.776000" data-stop="1158.460000">visible. But I have to get used to it because it was</span> <span class="audio-time caption" data-speaker="Prot" data-start="1158.501000" data-stop="1161.097000">distracting me.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="1161.098000" data-stop="1163.401000">[Sacha]: Yeah, I hear you, I hear you. It's kind of a</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1163.461000" data-stop="1167.346000">trade-off, right? And that actually goes to one of the</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1167.406000" data-stop="1172.553000">points that I wanted to touch on later where getting the hang</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1172.733000" data-stop="1175.817000">of live streaming while coding or while working does</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1175.917000" data-stop="1181.144000">require a fair bit of trade-offs. On the plus side, I'm going</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1181.184000" data-stop="1185.870000">to see if this works. It should insert a chapter marker so</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="1185.000000">00:19:45</span> <strong>Trade-offs when livestreaming while coding</strong></div><p></p><span class="audio-time caption" data-speaker="Sacha" data-start="1185.910000" data-stop="1189.532000">[Sacha]: that I know, okay, this part to this part is this conversation.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1189.533000" data-stop="1192.898000">So when you're live streaming while you're</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1193.339000" data-stop="1195.883000">doing package maintenance or you're working on config or</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1195.903000" data-stop="1200.109000">whatever else, it is slightly more distracting because</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1200.329000" data-stop="1202.152000">people come up with interesting comments and</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1202.212000" data-stop="1206.959000">conversations. But on the plus side, it is also, as I've seen</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1207.019000" data-stop="1210.665000">you do, helpful at debugging. You're staring at something.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1210.685000" data-stop="1213.569000">You're like, what's wrong here? And someone is like, oh</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1213.589000" data-stop="1215.789000">yeah, you're missing a trailing slash.</span> <p></p><span class="audio-time caption" data-speaker="Prot" data-start="1215.790000" data-stop="1219.834000">[Prot]: Yes, yes. It really helps.</span> <span class="audio-time caption" data-speaker="Prot" data-start="1219.835000" data-stop="1222.418000">Well, I'm not sure if it helps, though, because the</span> <span class="audio-time caption" data-speaker="Prot" data-start="1222.478000" data-stop="1224.820000">fact that you are talking to the chat means that you are not</span> <span class="audio-time caption" data-speaker="Prot" data-start="1224.861000" data-stop="1230.087000">paying attention to what is in front of you. So it can cut both</span> <span class="audio-time caption" data-speaker="Prot" data-start="1230.187000" data-stop="1233.010000">ways, right? There are times, though, where it really</span> <span class="audio-time caption" data-speaker="Prot" data-start="1233.070000" data-stop="1236.394000">helps. Yes. Where you are completely lost and then the</span> <span class="audio-time caption" data-speaker="Prot" data-start="1236.454000" data-stop="1241.659000">people in the chat are like, hey, that's how you fix it.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="1241.660000" data-stop="1246.089000">[Sacha]: All right. So maybe I just have to A, build up more of a</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1246.570000" data-stop="1250.798000">conversation so that we can get those benefits and B, figure</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1250.838000" data-stop="1255.467000">out how to run my narration on a separate worker thread in my</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1255.528000" data-stop="1259.975000">brain. I don't think it happens. I think I used to be more</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1260.035000" data-stop="1262.778000">multithreaded in the past, but I am slightly less</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1262.818000" data-stop="1265.422000">multithreaded now. However, it turns out that spending all</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1265.442000" data-stop="1269.207000">this time with kids means I am getting better at generating</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1269.267000" data-stop="1272.951000">verbal responses that I'm not necessarily, you know, like</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1273.332000" data-stop="1276.376000">focusing too much on or just saying like stuff to keep them</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1276.436000" data-stop="1280.241000">amused and entertained. Oh, that's quite a skill. Yes,</span> <p></p><span class="audio-time caption" data-speaker="Prot" data-start="1280.381000" data-stop="1283.847000">[Prot]: that's good. That's good. I don't know. But yeah, so there</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="1283.947000" data-stop="1284.868000">[Sacha]: are trade-offs here.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="1284.000000">00:21:24</span> <strong>Trade-offs: seeing less text on the screen</strong></div><p></p><span class="audio-time caption" data-speaker="Sacha" data-start="1284.869000" data-stop="1286.673000">[Sacha]: The other thing is now that I am using</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1286.713000" data-stop="1291.302000">mode to switch on my... I am streaming, do the Fontaine</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1291.362000" data-stop="1294.749000">preset and all of that stuff. Now there's like less space on</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1294.789000" data-stop="1299.693000">my screen for code. So I had to get used to it again. yes yes yes</span> <p></p><span class="audio-time caption" data-speaker="Prot" data-start="1299.773000" data-stop="1303.220000">[Prot]: yes that that's one of the downsides of course yes like you</span> <span class="audio-time caption" data-speaker="Prot" data-start="1303.260000" data-stop="1306.546000">have to have a larger font so that people can see what you are</span> <span class="audio-time caption" data-speaker="Prot" data-start="1306.626000" data-stop="1311.014000">typing and then of course that comes at the cost of including</span> <span class="audio-time caption" data-speaker="Prot" data-start="1311.095000" data-stop="1315.838000">fewer things on screen Though maybe you could have a little</span> <span class="audio-time caption" data-speaker="Prot" data-start="1315.878000" data-stop="1319.244000">bit of a wider frame, like specifically in your case. I don't</span> <span class="audio-time caption" data-speaker="Prot" data-start="1319.264000" data-stop="1322.510000">know, it's already at the 80 characters already? Yeah, it's</span> <span class="audio-time caption" data-speaker="Prot" data-start="1322.590000" data-stop="1327.499000">already... Yeah, I think in my case, my frame fits about 100</span> <span class="audio-time caption" data-speaker="Prot" data-start="1327.599000" data-stop="1331.947000">characters. Well, I haven't measured it, but I think it's</span> <span class="audio-time caption" data-speaker="Prot" data-start="1332.027000" data-stop="1336.234000">something in that... Like, yeah, about there is my frame.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="1336.254000" data-stop="1338.589000">[Sacha]: Yeah, it has about 80 characters.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1338.590000" data-stop="1340.900000">So it's about 75 characters.</span> <p></p><span class="audio-time caption" data-speaker="Prot" data-start="1340.901000" data-stop="1346.167000">[Prot]: So in my case...</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="1346.168000" data-stop="1348.600000">[Sacha]: All right. And then the stream can tell me if this is</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1348.600000" data-stop="1348.600000">still readable, because of course more code on the screen</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1348.601000" data-stop="1357.733000">means more code getting written or done.</span> <p></p><span class="audio-time caption" data-speaker="Prot" data-start="1357.734000" data-stop="1361.706000">[Prot]: And just to say also more code on the screen means</span> <span class="audio-time caption" data-speaker="Prot" data-start="1361.767000" data-stop="1366.514000">that it can be easier to debug or write the code. Because you</span> <span class="audio-time caption" data-speaker="Prot" data-start="1366.574000" data-stop="1369.017000">have the context right there. You don't have to go up and down</span> <span class="audio-time caption" data-speaker="Prot" data-start="1369.117000" data-stop="1370.738000">the screen to find it.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="1370.739000" data-stop="1372.341000">[Sacha]: Especially since I'm used to actually</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1372.421000" data-stop="1376.586000">dividing my frame into two windows so I can do left and right.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1377.367000" data-stop="1382.734000">And I'm doing this on a standard aspect mode. You have a</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1382.814000" data-stop="1385.237000">widescreen, so you're a little bit spoiled in this regard. I</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1385.297000" data-stop="1389.782000">only have like two monitors that I'm doing. But maybe that is</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1389.842000" data-stop="1395.048000">what I'll end up just using separate frames for. Yes, so</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1395.208000" data-stop="1398.471000">slightly smaller font size, and stream can tell me whether</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1398.491000" data-stop="1403.777000">this is too small for them. I know people who are older will</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1403.797000" data-stop="1407.180000">develop an appreciation for larger font also, so take</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1407.220000" data-stop="1410.804000">advantage of this ability to work with medium-sized fonts</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1410.864000" data-stop="1417.412000">while they can. So font sets, that's definitely a thing. And</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1417.492000" data-stop="1422.212000">then just trying to figure out how I can make it</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1422.312000" data-stop="1429.021000">more useful both to other people and for myself and during</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1429.102000" data-stop="1432.185000">the live stream as well as after the live stream.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="1432.000000">00:23:52</span> <strong>Lowering the effort needed to announce a stream: Prot just announces it and the blog post embeds it</strong></div><p></p><span class="audio-time caption" data-speaker="Sacha" data-start="1432.186000" data-stop="1434.108000">[Sacha]: Now you've mentioned you don't actually go back into</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1434.109000" data-stop="1436.251000">your live streams afterwards.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1436.252000" data-stop="1440.738000">You just plug the YouTube video, you update</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1440.778000" data-stop="1443.302000">your description so that it's past tense instead of future</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1443.362000" data-stop="1445.565000">tense and you republish your post. I think that's your</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1445.605000" data-stop="1452.470000">workflow, right? Even less. So I don't even retrofit the</span> <p></p><span class="audio-time caption" data-speaker="Prot" data-start="1452.530000" data-stop="1455.243000">[Prot]: past tense, you know, present tense to past tense. It's like</span> <span class="audio-time caption" data-speaker="Prot" data-start="1455.364000" data-stop="1458.264000">all present tense. It's like I will do a live stream. It will</span> <span class="audio-time caption" data-speaker="Prot" data-start="1458.284000" data-stop="1461.827000">be recorded. You can find it here kind of thing. Okay.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="1461.828000" data-stop="1462.388000">[Sacha]: All right.</span> <p></p><span class="audio-time caption" data-speaker="Prot" data-start="1462.389000" data-stop="1465.732000">[Prot]: And so just to say, though, just to say the reason I do</span> <span class="audio-time caption" data-speaker="Prot" data-start="1465.793000" data-stop="1470.178000">this is because I don't want to go through a three hour stream</span> <span class="audio-time caption" data-speaker="Prot" data-start="1470.258000" data-stop="1472.941000">again because then a three hour stream becomes like a ten</span> <span class="audio-time caption" data-speaker="Prot" data-start="1473.021000" data-stop="1476.665000">hour stream in practice. And this means that it adds</span> <span class="audio-time caption" data-speaker="Prot" data-start="1476.805000" data-stop="1479.909000">friction and it adds to the requirements, which</span> <span class="audio-time caption" data-speaker="Prot" data-start="1479.969000" data-stop="1482.992000">effectively means I will be doing fewer of them. Yeah.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="1483.000000">00:24:43</span> <strong>Timestamps</strong></div><p></p><span class="audio-time caption" data-speaker="Sacha" data-start="1483.630000" data-stop="1486.875000">[Sacha]: That's what I'm thinking. Maybe lightweight sort of</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1487.476000" data-stop="1491.402000">chapter markers. You've mentioned you just remember this</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1491.442000" data-stop="1494.207000">sort of stuff, but since I don't actually remember this sort</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1494.247000" data-stop="1499.235000">of stuff, having a way for Emacs to send messages to the</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1499.275000" data-stop="1504.322000">stream and also show things in the timestamps. I have a</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1504.382000" data-stop="1510.790000">timestamp now. It's nice. It just says Org Capture. And all</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1510.830000" data-stop="1513.993000">that will then theoretically make it easier for me to say,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1514.173000" data-stop="1517.257000">okay, let's go find the chapter and then I'll just adjust the</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1517.317000" data-stop="1520.260000">timestamps afterwards to say, okay, from this point to this</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1520.320000" data-stop="1524.325000">point. If people are interested, they can go in there and</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1524.365000" data-stop="1528.196000">they can look at the transcript for more.</span> <p></p><span class="audio-time caption" data-speaker="Prot" data-start="1528.197000" data-stop="1531.682000">[Prot]: I think we discussed this last time as well.</span> <span class="audio-time caption" data-speaker="Prot" data-start="1531.683000" data-stop="1532.544000">You could have a function</span> <span class="audio-time caption" data-speaker="Prot" data-start="1532.584000" data-stop="1537.372000">like start-stream and it starts a timer or it starts</span> <span class="audio-time caption" data-speaker="Prot" data-start="1537.433000" data-stop="1540.458000">recording the time and then relative to that point, any</span> <span class="audio-time caption" data-speaker="Prot" data-start="1540.558000" data-stop="1543.863000">offset and that's your timestamp right away. And whenever</span> <span class="audio-time caption" data-speaker="Prot" data-start="1543.943000" data-stop="1547.489000">there is some event happening, you can type a key and then</span> <span class="audio-time caption" data-speaker="Prot" data-start="1547.550000" data-stop="1551.336000">maybe it gives you a prompt and you write what is it, like just</span> <span class="audio-time caption" data-speaker="Prot" data-start="1551.376000" data-stop="1553.931000">a string and then that is the chapter.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="1553.932000" data-stop="1557.735000">[Sacha]: An org timer will do that kind of insert a timestamp for you.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1557.736000" data-stop="1559.276000">But one of the reasons why I liked having</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1559.277000" data-stop="1563.482000">my custom show message thing is</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1563.642000" data-stop="1568.006000">that it can display the text on the screen, display a QR code</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1568.106000" data-stop="1570.989000">for the text in case people want to copy the function that I'm</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1571.029000" data-stop="1575.373000">talking about, send it to the chat so that people using video</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1575.393000" data-stop="1580.370000">on demand can say, oh yeah, at around 10:25 or whatever. I'm</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1580.410000" data-stop="1583.396000">currently using wall-clock timestamps, which means I need to</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1583.456000" data-stop="1587.745000">modify my mode line so that the time starts earlier and</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1587.785000" data-stop="1593.757000">people can use that to jump around the thing. And then, so</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1593.777000" data-stop="1597.364000">it's like in half a dozen places, which is what org-timer does</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1597.404000" data-stop="1600.883000">not get me if I'm just inserting a timestamp here. Anyway,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1601.423000" data-stop="1604.728000">minor, like, you know, little workflow improvements. But</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1604.868000" data-stop="1609.595000">it's this whole, as you said, I don't want to go back and spend</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1609.755000" data-stop="1613.059000">six hours processing the three-hour livestream. I want to</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1613.119000" data-stop="1616.844000">say, all right, this video has some potential interesting</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1616.884000" data-stop="1619.548000">things here because these people ask these questions. This</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1619.608000" data-stop="1623.874000">is roughly the time when I answer those questions. Ideally,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1623.894000" data-stop="1626.357000">this is the text of the question. Someday, there might even</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1626.417000" data-stop="1630.164000">be screenshots and clips. I'm modifying compile-media to</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1630.204000" data-stop="1632.910000">make it easier for me to do that kind of video editing from</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1632.950000" data-stop="1635.173000">within Emacs.</span> <p></p><span class="audio-time caption" data-speaker="Prot" data-start="1635.174000" data-stop="1636.215000">[Prot]: Oh, wonderful.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="1636.216000" data-stop="1637.839000">[Sacha]: yeah, yeah. But it's all</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1637.899000" data-stop="1640.243000">still like, okay, progress. First, I've got to develop the</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1640.304000" data-stop="1642.868000">habit of streaming, and then I have to develop the habit of</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1642.928000" data-stop="1647.016000">saying, now we are talking about this topic so that it can all</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1647.076000" data-stop="1649.308000">get marked everywhere.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="1649.000000">00:27:29</span> <strong>Different types of livestreams</strong></div><p></p><span class="audio-time caption" data-speaker="Sacha" data-start="1649.309000" data-stop="1651.712000">[Sacha]: And that got me to thinking, well,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1651.732000" data-stop="1654.216000">there are a couple of different types of live streams and you</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1654.236000" data-stop="1657.060000">might have also done something about which ones fit the way</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1657.080000" data-stop="1660.184000">that you had to present. One is the, you know, the, I'm going</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1660.204000" data-stop="1663.549000">to spend time doing this anyway, which is like your package</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1663.609000" data-stop="1666.372000">maintenance, where you will accept a little bit of</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1666.413000" data-stop="1670.498000">distractibility for the benefit of having other people</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1670.618000" data-stop="1673.683000">around to ask questions and clarify things and stop you when</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1673.703000" data-stop="1681.125000">you're getting stuck somewhere. I have</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1681.185000" data-stop="1683.470000">something I specifically want to teach and you've done this</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1683.510000" data-stop="1686.094000">before with walking through a blog post and just</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1686.154000" data-stop="1689.100000">demonstrating things interactively because there's some</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1689.120000" data-stop="1692.546000">things that are easier when you're showing it, right?</span> <p></p><span class="audio-time caption" data-speaker="Prot" data-start="1693.500000" data-stop="1694.826000">[Prot]: Correct, correct. ...</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="1694.000000">00:28:14</span> <strong>Reading other people's configs</strong></div><p></p><span class="audio-time caption" data-speaker="Sacha" data-start="1694.827000" data-stop="1697.090000">[Sacha]: Reacting to other things. In this</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1697.170000" data-stop="1699.494000">one, I've started to have fun with because I've been going</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1699.514000" data-stop="1702.518000">through your Emacs configuration, which is several</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1702.578000" data-stop="1706.885000">hundred pages when converted to a PDF. And I forget, do you</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1706.965000" data-stop="1709.990000">actually, like, do you produce a PDF, PDF, like a nicely</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1710.410000" data-stop="1711.391000">thingy?</span> <p></p><span class="audio-time caption" data-speaker="Prot" data-start="1711.392000" data-stop="1713.954000">[Prot]: I haven't done it, but that's trivial to do, actually.</span> <span class="audio-time caption" data-speaker="Prot" data-start="1713.955000" data-stop="1715.056000">I could do it.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="1715.057000" data-stop="1718.341000">[Sacha]: Yeah, yeah, so I've also been reading tecosaur's PDF,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1718.342000" data-stop="1720.043000">and his PDF is gorgeous.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1720.044000" data-stop="1724.522000">Like, it starts off with, like, a cover page and and everything.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1724.523000" data-stop="1726.206000">But it's Doom Emacs. I have to translate a</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1726.247000" data-stop="1732.498000">lot of things to my specific setup. But now I have literate</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1732.538000" data-stop="1738.069000">config envy. Anyway, that's an entire category of live</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1738.089000" data-stop="1740.634000">streams here, which could just be me copying interesting</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1740.674000" data-stop="1744.760000">things out of other people's configs. Today we are</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1744.800000" data-stop="1748.103000">experimenting with a chatting with a guest variety of live</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1748.123000" data-stop="1751.687000">stream, which you also do with your Prot asks. Actually, I</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1751.707000" data-stop="1753.548000">forget. Are those live streams?</span> <p></p><span class="audio-time caption" data-speaker="Prot" data-start="1753.549000" data-stop="1755.391000">[Prot]: They are not live streamed,</span> <span class="audio-time caption" data-speaker="Prot" data-start="1755.431000" data-stop="1758.755000">but the idea is that I do not edit them. However, if somebody</span> <span class="audio-time caption" data-speaker="Prot" data-start="1758.835000" data-stop="1763.039000">really wants, I can edit it. So the idea is let's go with the</span> <span class="audio-time caption" data-speaker="Prot" data-start="1763.100000" data-stop="1766.743000">flow. Don't worry about it. It's casual, all that. But if</span> <span class="audio-time caption" data-speaker="Prot" data-start="1766.804000" data-stop="1769.667000">somebody says something that doesn't sound right, doesn't</span> <span class="audio-time caption" data-speaker="Prot" data-start="1769.707000" data-stop="1771.808000">mean it or whatever, I'm happy to edit it.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="1771.809000" data-stop="1775.616000">[Sacha]: Yeah. I'm starting to look into how to do that</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1775.617000" data-stop="1777.602000">if I'm doing this live and</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1777.662000" data-stop="1783.676000">apparently if I set up a sufficiently long buffer in OBS for</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1783.716000" data-stop="1788.125000">streaming, like a delay for 20 seconds or 15 seconds, then I</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1788.166000" data-stop="1792.611000">can stop streaming and the stuff that happened in the last 10</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1792.672000" data-stop="1796.897000">or 15 seconds doesn't make it out to the public, but it's</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1797.738000" data-stop="1798.278000">still kind of...</span> <p></p><span class="audio-time caption" data-speaker="Prot" data-start="1798.279000" data-stop="1799.740000">[Prot]: Living dangerously, yeah.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="1799.741000" data-stop="1800.402000">[Sacha]: Yeah, yeah.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1800.422000" data-stop="1803.005000">Because seeing as I'm still practicing remembering to flip</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1803.025000" data-stop="1807.832000">the webcam down when the kid runs in and wants to be on camera,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1807.852000" data-stop="1812.017000">I'm like... My reaction time, not there yet.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="1812.000000">00:30:12</span> <strong>Hanging out</strong></div><p></p><span class="audio-time caption" data-speaker="Sacha" data-start="1812.018000" data-stop="1813.319000">[Sacha]: And then other</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1813.359000" data-stop="1818.224000">people are like, they just hang out. They're not like, I'm</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1818.264000" data-stop="1820.527000">going to do something. They're just hanging out, which I'm</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1820.607000" data-stop="1822.849000">sort of starting to experiment with when I'm doing Emacs</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1822.909000" data-stop="1825.752000">News on Mondays, because I'm like, I'm categorizing it</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1825.812000" data-stop="1829.035000">anyway, but it doesn't require a lot of brainpower because</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1829.055000" data-stop="1831.338000">I'm not coding or debugging. I'm just saying, okay, this</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1831.378000" data-stop="1833.760000">looks like an Org Mode link. This looks like a miscellaneous</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1834.000000" data-stop="1838.565000">link. And then some people just play games, which is fun too.</span> <p></p><span class="audio-time caption" data-speaker="Prot" data-start="1838.866000" data-stop="1842.089000">[Prot]: Yes, that's good. And they want to have somebody on the side,</span> <span class="audio-time caption" data-speaker="Prot" data-start="1843.131000" data-stop="1845.452000">guide them through what they are doing.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="1845.453000" data-stop="1848.996000">[Sacha]: Yeah, or it blends into a hanging out sort of thing.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1848.997000" data-stop="1852.180000">Yes, yes. And it's like,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1852.200000" data-stop="1854.562000">what is the kiddo doing now?</span> <p></p><span class="audio-time caption" data-speaker="Prot" data-start="1854.563000" data-stop="1856.004000">[Prot]: Yeah, the camera, the camera.</span> <span class="audio-time caption" data-speaker="Prot" data-start="1856.125000" data-stop="1864.333000">That's fun, that's fun. Good reaction time. Yeah, yeah,</span> <span class="audio-time caption" data-speaker="Prot" data-start="1864.714000" data-stop="1868.738000">yeah.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="1870.338000" data-stop="1872.903000">[Sacha]: Yes, thank you for your homework. I will scan this and put it</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1873.003000" data-stop="1880.035000">online later. This is it. Yes, life. Life.</span> <p></p><span class="audio-time caption" data-speaker="Prot" data-start="1880.036000" data-stop="1882.339000">[Prot]: Putting your reaction time to the test.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="1882.340000" data-stop="1886.288000">[Sacha]: Yes. So in terms of getting more</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1886.508000" data-stop="1889.180000">out of livestreams, That's what I've been thinking about</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1889.260000" data-stop="1893.126000">lately. I think I would like to do more of these, you know,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1893.687000" data-stop="1897.032000">hey, folks, keep keeping company while I'm coding this or</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1897.072000" data-stop="1899.677000">whatever, since you've been having a lot of good experience</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1899.717000" data-stop="1900.737000">with that.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="1900.000000">00:31:40</span> <strong>Livestreams for explaining specific things</strong></div><p></p><span class="audio-time caption" data-speaker="Sacha" data-start="1900.738000" data-stop="1903.002000">[Sacha]: I would also like to eventually move into more of</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1903.042000" data-stop="1905.365000">these. I have something I specifically want to</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1905.406000" data-stop="1907.829000">demonstrate, which probably necessitates actually</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1907.970000" data-stop="1911.415000">organizing my thoughts. And you've done a bunch of these.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1911.850000" data-stop="1915.104000">After writing a post, it seems like more like recording a</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1915.164000" data-stop="1918.920000">video and walking through it. Do you also sometimes do them</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1918.980000" data-stop="1920.692000">before writing a post?</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="1920.000000">00:32:00</span> <strong>Prot on didactic livestreams</strong></div><p></p><span class="audio-time caption" data-speaker="Prot" data-start="1920.693000" data-stop="1923.155000">[Prot]: I haven't done that but actually,</span> <span class="audio-time caption" data-speaker="Prot" data-start="1923.156000" data-stop="1925.339000">when I write posts, I write them in one go,</span> <span class="audio-time caption" data-speaker="Prot" data-start="1925.340000" data-stop="1926.620000">so maybe I should do a live stream</span> <span class="audio-time caption" data-speaker="Prot" data-start="1926.621000" data-stop="1928.884000">where I actually write a blog post</span> <span class="audio-time caption" data-speaker="Prot" data-start="1928.885000" data-stop="1933.330000">just to show that I can do it.</span> <span class="audio-time caption" data-speaker="Prot" data-start="1933.331000" data-stop="1936.616000">The thing is of course what do you want to</span> <span class="audio-time caption" data-speaker="Prot" data-start="1936.676000" data-stop="1939.840000">communicate, because if it's teaching, like if you are</span> <span class="audio-time caption" data-speaker="Prot" data-start="1939.920000" data-stop="1943.004000">writing it and trying to teach it at the same time,</span> <span class="audio-time caption" data-speaker="Prot" data-start="1943.005000" data-stop="1945.447000">there is a chance that you might leave something out.</span> <span class="audio-time caption" data-speaker="Prot" data-start="1945.448000" data-stop="1949.411000">Some of that detail, some of that nuance.</span> <span class="audio-time caption" data-speaker="Prot" data-start="1949.412000" data-stop="1951.833000">For example, if you want to explain how</span> <span class="audio-time caption" data-speaker="Prot" data-start="1951.834000" data-stop="1955.978000">a form in Emacs Lisp works, let's say if or cond,</span> <span class="audio-time caption" data-speaker="Prot" data-start="1956.478000" data-stop="1960.522000">you may not come up with a very good example live and it may not</span> <span class="audio-time caption" data-speaker="Prot" data-start="1960.582000" data-stop="1963.645000">have didactic value. So even though you know how it works,</span> <span class="audio-time caption" data-speaker="Prot" data-start="1964.926000" data-stop="1970.471000">the communication value is not there. So that it helps for</span> <span class="audio-time caption" data-speaker="Prot" data-start="1970.531000" data-stop="1974.315000">you to write it in advance. Even if it's in one go, again, you</span> <span class="audio-time caption" data-speaker="Prot" data-start="1974.335000" data-stop="1976.797000">can write it, you can read it, and then you can come up with a</span> <span class="audio-time caption" data-speaker="Prot" data-start="1976.837000" data-stop="1981.981000">good example and then stream that. So it really depends on</span> <span class="audio-time caption" data-speaker="Prot" data-start="1982.021000" data-stop="1984.824000">what you want to do. The other day I did a stream, a live</span> <span class="audio-time caption" data-speaker="Prot" data-start="1984.864000" data-stop="1988.107000">stream, where I was writing a package from scratch, a small</span> <span class="audio-time caption" data-speaker="Prot" data-start="1988.147000" data-stop="1993.551000">package. So there part of it was to teach, but also to</span> <span class="audio-time caption" data-speaker="Prot" data-start="1993.651000" data-stop="1999.636000">demonstrate. And there I don't really care if the didactic</span> <span class="audio-time caption" data-speaker="Prot" data-start="1999.696000" data-stop="2003.801000">value is very high. Because even if there are mistakes, it's</span> <span class="audio-time caption" data-speaker="Prot" data-start="2003.942000" data-stop="2007.290000">part of the process. It's not like, well, you will come here</span> <span class="audio-time caption" data-speaker="Prot" data-start="2007.731000" data-stop="2011.281000">and from zero to hero kind of thing, you will learn</span> <span class="audio-time caption" data-speaker="Prot" data-start="2011.361000" data-stop="2013.827000">everything. It's not like that. It's like you come here, you</span> <span class="audio-time caption" data-speaker="Prot" data-start="2013.947000" data-stop="2018.280000">might learn something, but the bar is relatively low.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="2018.281000" data-stop="2022.125000">[Sacha]: I think especially since my mind likes to jump around a lot&#45;&#45;</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2022.145000" data-stop="2025.408000">you seem a lot more organized when you're thinking through</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2025.428000" data-stop="2027.169000">things, especially if you're saying you write your blog</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2027.189000" data-stop="2030.793000">posts straight in one go. I'm like, okay, do this part over</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2030.833000" data-stop="2033.115000">here, do that part there. I will definitely lose things,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2033.455000" data-stop="2036.538000">like you mentioned, and I will definitely go back and say,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2036.819000" data-stop="2041.944000">no, I need to do this before I can say that. So yeah, I think I</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2041.984000" data-stop="2045.227000">can save that for summer when I might be focusing more on</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2045.267000" data-stop="2047.811000">things I cannot schedule.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="2047.000000">00:34:07</span> <strong>Prot suggests breadcrumbs</strong></div><p></p><span class="audio-time caption" data-speaker="Prot" data-start="2047.812000" data-stop="2050.356000">[Prot]: How about leaving breadcrumbs</span> <span class="audio-time caption" data-speaker="Prot" data-start="2050.596000" data-stop="2054.521000">for yourself? Like, I was writing this. Like, write a</span> <span class="audio-time caption" data-speaker="Prot" data-start="2054.561000" data-stop="2057.284000">comment. Basically, I was writing this, I need to remember</span> <span class="audio-time caption" data-speaker="Prot" data-start="2057.364000" data-stop="2059.527000">that, and then you jump off on the tangent.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="2064.415000" data-stop="2069.583000">[Sacha]: I need to use a universal prefix to get the time, don't I? Yes.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2070.684000" data-stop="2076.187000">Leaving yourself breadcrumbs. Yeah, yeah, yeah.</span> <p></p><span class="audio-time caption" data-speaker="Prot" data-start="2076.188000" data-stop="2079.511000">[Prot]: And then you can retrace your thoughts, basically.</span> <span class="audio-time caption" data-speaker="Prot" data-start="2079.512000" data-stop="2082.575000">Like, okay, I was here, I was meaning to do that.</span> <span class="audio-time caption" data-speaker="Prot" data-start="2082.576000" data-stop="2085.117000">Especially when you are streaming, chances are that</span> <span class="audio-time caption" data-speaker="Prot" data-start="2085.118000" data-stop="2086.940000">there will be several comments</span> <span class="audio-time caption" data-speaker="Prot" data-start="2086.980000" data-stop="2089.882000">that are very interesting and you want to get to. And you</span> <span class="audio-time caption" data-speaker="Prot" data-start="2089.922000" data-stop="2093.507000">might be talking to them for 10 minutes or more. And then, of</span> <span class="audio-time caption" data-speaker="Prot" data-start="2093.547000" data-stop="2096.469000">course, if you don't have that or you want to jump off on a</span> <span class="audio-time caption" data-speaker="Prot" data-start="2096.510000" data-stop="2099.211000">tangent, you will eventually forget what you were doing.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="2099.212000" data-stop="2100.813000">[Sacha]: Do you have anything like this already</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2100.814000" data-stop="2102.520000">that you're currently doing?</span> <p></p><span class="audio-time caption" data-speaker="Prot" data-start="2102.521000" data-stop="2105.353000">[Prot]: And no, but this is the sort of thing that should be a</span> <span class="audio-time caption" data-speaker="Prot" data-start="2105.453000" data-stop="2108.667000">fun exercise to actually demonstrate as well for yourself.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="2109.052000" data-stop="2115.721000">[Sacha]: I use ZZZ if I just put it in text and I have some things, for</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2115.761000" data-stop="2119.086000">example, in my message hooks so I can't send email that</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2119.126000" data-stop="2123.492000">contains this. And</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2123.632000" data-stop="2127.919000">of course, org has its whole clocking and interrupting</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2127.959000" data-stop="2132.365000">tasks that I can use. I just have to have the presence of mind</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2132.405000" data-stop="2134.948000">to actually say, oh yeah, now I'm going to go on this tangent</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2135.008000" data-stop="2138.352000">and I want to go back to this later on. Leaving myself</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2138.392000" data-stop="2140.883000">breadcrumbs is definitely something I need to formalize</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2141.044000" data-stop="2145.096000">into workflows that I actually use.</span> <p></p><span class="audio-time caption" data-speaker="Prot" data-start="2145.097000" data-stop="2146.018000">[Prot]: Yeah, that's the thing.</span> <span class="audio-time caption" data-speaker="Prot" data-start="2146.038000" data-stop="2148.802000">And you can also benefit. I don't know. Of course, that's</span> <span class="audio-time caption" data-speaker="Prot" data-start="2148.922000" data-stop="2152.387000">depending on if you are a visual person or not. But you could</span> <span class="audio-time caption" data-speaker="Prot" data-start="2152.667000" data-stop="2158.015000">also rely on color or, for example, include an emoji as well</span> <span class="audio-time caption" data-speaker="Prot" data-start="2158.235000" data-stop="2162.401000">or modify font-lock-keywords to have like something that</span> <span class="audio-time caption" data-speaker="Prot" data-start="2162.461000" data-stop="2167.387000">stands out. Basically, make it clear that, well, this is an</span> <span class="audio-time caption" data-speaker="Prot" data-start="2167.588000" data-stop="2171.913000">interjection. I will just go and then I will be back. Yeah.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="2171.933000" data-stop="2175.439000">[Sacha]: Good idea. Okay. So that will definitely help with the</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2175.519000" data-stop="2180.586000">things where maybe I want to demonstrate something and I</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2180.646000" data-stop="2184.030000">want to do the thinking out loud so that it's recorded. And</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2184.210000" data-stop="2186.754000">just in case other people have any questions, they can come</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2186.814000" data-stop="2192.722000">by and ask them. And then I can sort of massage it into a proper</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2192.782000" data-stop="2198.269000">blog post, but still leave the link to the video in case</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2198.309000" data-stop="2201.173000">people want to hear the stream of consciousness figuring</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2201.233000" data-stop="2205.795000">out of all of this stuff. That sounds like maybe a more</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2205.876000" data-stop="2210.764000">polished video or blog post with screenshots and clips</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2211.585000" data-stop="2216.193000">coming out of this livestream ramble, kind of tangled.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2216.574000" data-stop="2222.584000">Okay, we're going to jump over here. Gotta leave myself a</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2222.644000" data-stop="2224.748000">breadcrumb because I'm going to go in this detour to answer</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2224.788000" data-stop="2226.281000">someone's question.</span> <p></p><span class="audio-time caption" data-speaker="Prot" data-start="2226.282000" data-stop="2229.846000">[Prot]: There is value to both. There is value</span> <span class="audio-time caption" data-speaker="Prot" data-start="2229.886000" data-stop="2232.750000">to both because the live stream is a stream of</span> <span class="audio-time caption" data-speaker="Prot" data-start="2232.810000" data-stop="2235.654000">consciousness. You can think of it like a bubbling effect.</span> <span class="audio-time caption" data-speaker="Prot" data-start="2235.714000" data-stop="2239.438000">There is fermentation going on, a lot of things happening.</span> <span class="audio-time caption" data-speaker="Prot" data-start="2239.458000" data-stop="2242.162000">And then when you publish the polished, the finished</span> <span class="audio-time caption" data-speaker="Prot" data-start="2242.282000" data-stop="2244.945000">article, that's the distillation effect. So fermentation</span> <span class="audio-time caption" data-speaker="Prot" data-start="2245.005000" data-stop="2248.589000">distillation. So both are useful. Both is good to see and</span> <span class="audio-time caption" data-speaker="Prot" data-start="2249.030000" data-stop="2252.803000">have a sense of what they are up to, what they are doing. Yeah.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="2252.823000" data-stop="2256.787000">[Sacha]: And Charlie in the comments says he likes Emacs' excursions</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2256.867000" data-stop="2259.970000">terminology. So if you can think of it as a save excursion,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2260.050000" data-stop="2263.573000">I'm going to go do something and then come back. I am not very</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2263.593000" data-stop="2269.279000">good at popping the stack, but I will work on it. Yes. A couple</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2269.319000" data-stop="2271.641000">of other things that I want you to pick your brain about. So</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2271.861000" data-stop="2274.944000">you mentioned that in terms of announcing live streams,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2275.184000" data-stop="2278.868000">you're like, look, I'm remembering to mark a topic change.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="2279.000000">00:37:59</span> <strong>Announcing livestreams</strong></div><p></p><span class="audio-time caption" data-speaker="Sacha" data-start="2279.978000" data-stop="2283.442000">[Sacha]: So you mentioned, okay, you have a post for the scheduled or</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2283.482000" data-stop="2287.226000">spontaneous live streams. Then you actually, you don't</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2287.286000" data-stop="2288.908000">even update it with the description. You write the</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2288.928000" data-stop="2292.112000">description beforehand and you leave it alone. Probably</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2292.352000" data-stop="2295.776000">when people get it in their RSS reader, I guess the YouTube</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2295.856000" data-stop="2298.960000">embed always just points to, you know, it's either the</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2299.020000" data-stop="2302.043000">currently playing live stream or the archived recording of</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2302.163000" data-stop="2308.911000">it. And that's that. The link is the same. The link is the</span> <p></p><span class="audio-time caption" data-speaker="Prot" data-start="2308.951000" data-stop="2312.806000">[Prot]: same. Yes. Yeah, on this live page. So now I have</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="2312.866000" data-stop="2316.871000">[Sacha]: yayemacs.com and SachaChua.com/live pointing to</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2316.931000" data-stop="2321.296000">this page. And there's like, there's a YouTube way to embed</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2321.336000" data-stop="2325.100000">just like upcoming live stream, but then it's like fiddly</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2325.140000" data-stop="2328.705000">when it comes to, oh, you know, you've got, if you have more</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2328.745000" data-stop="2332.309000">than one public up scheduled live stream or whatever, do you</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2332.489000" data-stop="2334.731000">use any of this stuff at all where you're like saying a page</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2335.052000" data-stop="2338.382000">that's always has your upcoming or current stuff?</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="2338.000000">00:38:58</span> <strong>Embeds: Prot embeds specific YouTube videos instead of the general channel one</strong></div><p></p><span class="audio-time caption" data-speaker="Prot" data-start="2338.383000" data-stop="2342.808000">[Prot]: No, I have a generic embed which I copied many, many years ago</span> <span class="audio-time caption" data-speaker="Prot" data-start="2342.809000" data-stop="2345.712000">and I have it in my static site generator.</span> <span class="audio-time caption" data-speaker="Prot" data-start="2345.713000" data-stop="2350.699000">Then the only field that changes is the ID of the video.</span> <span class="audio-time caption" data-speaker="Prot" data-start="2350.700000" data-stop="2355.585000">And this works for live streams as well as pre-recorded videos.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="2355.586000" data-stop="2359.210000">[Sacha]: Okay, so you always give it like the video IDs basically.</span> <p></p><span class="audio-time caption" data-speaker="Prot" data-start="2359.211000" data-stop="2363.356000">[Prot]: The video ID, yes. I can share with you the exact snippet.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="2363.357000" data-stop="2367.502000">[Sacha]: Yeah, yeah. That would be, you know, and you can send...</span> <p></p><span class="audio-time caption" data-speaker="Prot" data-start="2367.503000" data-stop="2369.588000">[Prot]: Yeah. Well, it's public anyway.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="2369.589000" data-stop="2372.913000">[Sacha]: I can steal it off your website. It's fine.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="2372.000000">00:39:32</span> <strong>Demo of my new shortcut for converting time zones</strong></div><p></p><span class="audio-time caption" data-speaker="Sacha" data-start="2372.914000" data-stop="2378.583000">[Sacha]: And then I have just added timestamp translation as well.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2378.584000" data-stop="2379.265000">So I can say,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2379.305000" data-stop="2383.573000">okay, you know, let me show it to you. So this is my webpage,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2383.593000" data-stop="2387.299000">right? So here, this is your standard org timestamp. Yeah.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2388.441000" data-stop="2392.448000">And if I open up https://sachachua.com/live, it's also the</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2392.468000" data-stop="2398.002000">same as Emacs. Okay, okay, okay. And I find the browser</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2398.763000" data-stop="2405.731000">window. Okay. Theoretically, if I say, okay, down here, you</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2405.791000" data-stop="2410.936000">click on this, it translates it to your language. Ah, nice,</span> <p></p><span class="audio-time caption" data-speaker="Prot" data-start="2410.956000" data-stop="2411.196000">[Prot]: Nice, nice.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="2411.197000" data-stop="2414.280000">[Sacha]: Because YouTube will do that for the upcoming</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2414.400000" data-stop="2417.604000">one if people link to it. But, you know, it's just people. But</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2417.624000" data-stop="2420.307000">this is JavaScript, anyhow. And the other thing that I have</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2420.407000" data-stop="2427.036000">just added today is I can go onto that in Org. If I press my</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2427.116000" data-stop="2433.524000">control dot embark thing, I can use my Sacha Org timestamp in</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2433.584000" data-stop="2436.989000">time zones, which is shift W. And it translates it into</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2437.029000" data-stop="2437.930000">a gazillion time zones.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2441.315000" data-stop="2444.677000">So then I can mastodon toot it, which I did,</span> <p></p><span class="audio-time caption" data-speaker="Prot" data-start="2444.678000" data-stop="2450.304000">[Prot]: Just to say that copy to the kill ring, okay, yes, okay, good, good, good.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="2450.484000" data-stop="2456.150000">[Sacha]: Because time zones suck. I mean, it's great, but I cannot</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2456.210000" data-stop="2461.035000">do the translation and so I am slightly... I'm working on</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2461.335000" data-stop="2466.100000">announcing those upcoming scheduled streams while</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2466.461000" data-stop="2469.963000">doing all the math so that... well, having emacs do all the math so</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2469.964000" data-stop="2472.606000">that I don't have to do the math.</span> <p></p><span class="audio-time caption" data-speaker="Prot" data-start="2472.607000" data-stop="2473.531000">[Prot]: Yes, that's the spirit.</span> <span class="audio-time caption" data-speaker="Prot" data-start="2473.692000" data-stop="2477.043000">That's good. Very good. This is very nice.</span> <span class="audio-time caption" data-speaker="Prot" data-start="2477.044000" data-stop="2479.814000">Is this timestamp always meant for Mastodon</span> <span class="audio-time caption" data-speaker="Prot" data-start="2479.815000" data-stop="2481.632000">or do you have it elsewhere?</span> <span class="audio-time caption" data-speaker="Prot" data-start="2481.633000" data-stop="2483.692000">I think I've seen it in the Emacs news as well.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="2483.693000" data-stop="2487.237000">[Sacha]: Oh yeah, I'm basically stealing the code.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2487.238000" data-stop="2491.524000">I've used it in Emacs Conf and</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2491.585000" data-stop="2495.490000">for Emacs News. I used to announce the Emacs News events</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2495.590000" data-stop="2500.117000">also. I should get back to doing that. But definitely in the</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2500.217000" data-stop="2504.243000">Emacs News and Emacs Calendar, I translate all of the events</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2504.443000" data-stop="2508.488000">into multiple time zones for the virtual ones.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="2508.000000">00:41:48</span> <strong>Ozzloy's questions about time zones and QR codes</strong></div><p></p><span class="audio-time caption" data-speaker="Sacha" data-start="2508.489000" data-stop="2512.014000">[Sacha]: Line 23 doesn't have a time offset.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2514.255000" data-stop="2525.465000">Okay, someone is commenting.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2525.466000" data-stop="2527.868000">Ozzloy will tell me about it a little bit later.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2527.968000" data-stop="2530.511000">Ozzloy also has a question. Am I creating the QR code with</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2530.631000" data-stop="2535.035000">Emacs Lisp? Is it actually text in Emacs? I'm going to go on a</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2535.175000" data-stop="2539.620000">quick detour to show the QR code. Yes, do it, do it, do it. By</span> <p></p><span class="audio-time caption" data-speaker="Prot" data-start="2539.660000" data-stop="2543.323000">[Prot]: the way, I will like the stream. I didn't have the chance to do</span> <span class="audio-time caption" data-speaker="Prot" data-start="2543.363000" data-stop="2553.253000">that. A show string. Yes. So here, this is my... Look, I'm</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="2553.333000" data-stop="2556.679000">[Sacha]: using line numbers, but they're really long. Yeah, these</span> <p></p><span class="audio-time caption" data-speaker="Prot" data-start="2556.739000" data-stop="2561.287000">[Prot]: are massive. Of course. What can we do? But it's still better</span> <span class="audio-time caption" data-speaker="Prot" data-start="2561.347000" data-stop="2565.474000">because I can say, okay, go to 97, right? And you kind of know</span> <span class="audio-time caption" data-speaker="Prot" data-start="2565.534000" data-stop="2569.234000">where I mean. Yeah. Yeah, so this is qrencode, qrencode</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="2569.254000" data-stop="2573.039000">[Sacha]: format, and all of that stuff. It is in Emacs. I think this one</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2573.059000" data-stop="2575.782000">actually inserts text. There's probably a way to get it to</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2575.802000" data-stop="2582.670000">get images as well. But yeah, so QR codes, because why not?</span> <p></p><span class="audio-time caption" data-speaker="Prot" data-start="2582.690000" data-stop="2585.033000">[Prot]: Yeah, no, that's very efficient. Yeah, yeah, good, good.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="2586.635000" data-stop="2594.683000">[Sacha]: Okay. Yes. So these timestamps are basically in my local</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2594.723000" data-stop="2598.467000">time, and then I can translate them to other time zones, and</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2598.527000" data-stop="2601.911000">then I can start announcing them, which will probably happen</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2601.971000" data-stop="2606.255000">more if I can get my GotoSocial Mastodon thing to be more</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2606.316000" data-stop="2609.799000">reliable. But also following your example, I should try</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2609.859000" data-stop="2612.242000">putting it in my blog. I just feel like a little weird</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2612.282000" data-stop="2616.826000">suddenly going from posting on my blog like once or twice,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2616.846000" data-stop="2619.763000">well, two or three times a week to Hey, OK, every day. All</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2619.783000" data-stop="2622.065000">right. In ten minutes, you're going to have a live stream of</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2622.085000" data-stop="2623.227000">me talking about random stuff.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="2626.000000">00:43:46</span> <strong>Prot on announcing livestreams on blogs</strong></div><p></p><span class="audio-time caption" data-speaker="Prot" data-start="2626.070000" data-stop="2630.456000">[Prot]: Well, in a sense, it is weird because it's not something you</span> <span class="audio-time caption" data-speaker="Prot" data-start="2630.476000" data-stop="2633.640000">would normally do on a blog, right? Like you have been</span> <span class="audio-time caption" data-speaker="Prot" data-start="2633.680000" data-stop="2636.724000">blogging for a long time and you know how blogging is, right?</span> <span class="audio-time caption" data-speaker="Prot" data-start="2636.824000" data-stop="2642.030000">You just do it on your own. But this streaming culture is a</span> <span class="audio-time caption" data-speaker="Prot" data-start="2642.131000" data-stop="2645.818000">different experience. I think, however, it shares a lot</span> <span class="audio-time caption" data-speaker="Prot" data-start="2645.898000" data-stop="2649.387000">with the blogging way of doing things, which is like, well,</span> <span class="audio-time caption" data-speaker="Prot" data-start="2649.407000" data-stop="2652.815000">this is what I have to say. This is what I think. And I just do it</span> <span class="audio-time caption" data-speaker="Prot" data-start="2652.875000" data-stop="2656.484000">in a slightly different format. And of course, because you</span> <span class="audio-time caption" data-speaker="Prot" data-start="2656.524000" data-stop="2660.253000">are doing the stream, ultimately you control how you</span> <span class="audio-time caption" data-speaker="Prot" data-start="2660.293000" data-stop="2664.479000">participate, to the degree that you participate, what you</span> <span class="audio-time caption" data-speaker="Prot" data-start="2664.519000" data-stop="2667.324000">want to comment on. So ultimately, even though it's a live</span> <span class="audio-time caption" data-speaker="Prot" data-start="2667.344000" data-stop="2672.732000">stream, you can control it in a way that is not that much of a</span> <span class="audio-time caption" data-speaker="Prot" data-start="2672.972000" data-stop="2678.620000">live stream. In the sense that you can be very specific, very</span> <span class="audio-time caption" data-speaker="Prot" data-start="2678.641000" data-stop="2680.724000">structured and be like, you know what, this is my structure,</span> <span class="audio-time caption" data-speaker="Prot" data-start="2680.744000" data-stop="2684.089000">this is what I will do, and I will not run off on a tangent, for</span> <span class="audio-time caption" data-speaker="Prot" data-start="2684.149000" data-stop="2685.416000">example.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="2685.417000" data-stop="2688.983000">[Sacha]: I don't know if it is possible for me to not run off on</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2689.003000" data-stop="2695.613000">a tangent. I appreciate people who can be very focused. It's</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2695.693000" data-stop="2700.680000">okay. I think my job, I think my goal is more of how do I at least</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2700.800000" data-stop="2704.286000">describe the tangents in text form so that I can find them</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2704.346000" data-stop="2707.691000">again and so that other people can decide whether this is</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2707.791000" data-stop="2710.956000">worth two hours of their time or whether they can just skip to</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2711.056000" data-stop="2713.840000">the five minutes that concerns the thing that they like.</span> <p></p><span class="audio-time caption" data-speaker="Prot" data-start="2714.867000" data-stop="2719.024000">[Prot]: Yes, in that case the timestamping would be the way to go.</span> <span class="audio-time caption" data-speaker="Prot" data-start="2719.044000" data-stop="2721.934000">Timestamp plus a brief description.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="2721.935000" data-stop="2723.237000">[Sacha]: Yes, yes, and that</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2723.337000" data-stop="2725.818000">actually gets me to... ta-da!</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="2725.000000">00:45:25</span> <strong>Processing the recordings</strong></div><p></p><span class="audio-time caption" data-speaker="Sacha" data-start="2725.819000" data-stop="2727.621000">[Sacha]: topic: processing the recordings</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2728.923000" data-stop="2732.867000">So, yes, as I mentioned, I've been enjoying going back and</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2733.087000" data-stop="2736.811000">editing the transcripts because it becomes an excuse to</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2736.871000" data-stop="2742.637000">tinker with Emacs and subed-mode, and then because I</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2742.697000" data-stop="2747.202000">have this thing for adding a note above the start of a chapter,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2747.672000" data-stop="2751.157000">I can then easily use that to extract the chapter markers for</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2751.959000" data-stop="2755.864000">YouTube and all of that stuff. As I mentioned, I'm working on</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2755.945000" data-stop="2760.331000">some workflows for tracking chapters on the fly. You know,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2760.351000" data-stop="2762.735000">it's actually really nice having this little button. I used</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2762.755000" data-stop="2764.958000">to think, okay, I can just press a keyboard shortcut, but</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2765.018000" data-stop="2767.903000">apparently I forget all of my keyboard shortcuts when I'm</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2768.384000" data-stop="2772.430000">trying to talk at the same time. So if there's a button, I'm</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2772.450000" data-stop="2776.875000">like, I get incentivized to click on it to see whether my</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2776.915000" data-stop="2779.097000">code still works.</span> <p></p><span class="audio-time caption" data-speaker="Prot" data-start="2779.098000" data-stop="2781.860000">[Prot]: Plus it functions as a reminder.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="2781.861000" data-stop="2786.506000">[Sacha]: Yes. So it's very helpful that way.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2786.507000" data-stop="2788.590000">And then, as I mentioned, I still</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2788.610000" data-stop="2790.872000">need to work on a good workflow for extracting the</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2790.892000" data-stop="2794.257000">screenshots and clips so that I can then turn it into blog</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2794.277000" data-stop="2798.141000">posts later on and so forth. Right now, I have a pretty manual</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2798.181000" data-stop="2801.285000">process for, okay, after the video is posted, I'm going to</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2801.325000" data-stop="2804.429000">download it. I have some shell scripts now and the next step</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2804.489000" data-stop="2807.532000">of course after this one is going to write an Emacs function</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2807.973000" data-stop="2811.517000">that actually and I just finished this part. I have an Emacs</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2811.557000" data-stop="2813.519000">function that calls the shell scripts to download the thing</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2813.619000" data-stop="2818.865000">using yt-dlp and then start the transcription process but I</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2818.925000" data-stop="2822.188000">still manually do the upload to internet archive which I</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2822.248000" data-stop="2826.173000">know has a CLI tool so that's next in my list, and fix</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2826.193000" data-stop="2831.745000">subtitles and all that stuff, so that's kind of... if</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2831.865000" data-stop="2834.430000">I want to get more out of the recordings, that's a general</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2834.470000" data-stop="2835.711000">direction I'm going.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="2835.000000">00:47:15</span> <strong>Commitment devices</strong></div><p></p><span class="audio-time caption" data-speaker="Sacha" data-start="2835.712000" data-stop="2836.694000">[Sacha]: This is not something that you're</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2836.734000" data-stop="2840.420000">currently fiddling with.</span> <p></p><span class="audio-time caption" data-speaker="Prot" data-start="2840.421000" data-stop="2844.408000">[Prot]: Basically, I'm the wrong person for this.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="2844.409000" data-stop="2847.214000">[Sacha]: Yeah, it's okay. And part of these conversations</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2847.294000" data-stop="2851.603000">is not so much that I'm looking to you for specific advice on</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2851.663000" data-stop="2854.790000">things that you explicitly don't do because it would be</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2854.850000" data-stop="2858.278000">against the alla prima. Just get it done and lower the barrier</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2858.979000" data-stop="2863.510000">going in. But it's also useful as a commitment device for me</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2863.530000" data-stop="2866.457000">to say, alright, I would like to get better at this. I am</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2866.517000" data-stop="2869.103000">telling Prot in order to be able to demonstrate the stuff and</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2869.384000" data-stop="2872.709000">make myself... If I'm going to see him in another two weeks...</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2872.710000" data-stop="2874.835000">Am I going to see you in another two weeks?</span> <p></p><span class="audio-time caption" data-speaker="Prot" data-start="2874.836000" data-stop="2881.601000">[Prot]: Yes, yes, yes. And I will ask. I keep receipts. Yes, yes, yes.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="2881.602000" data-stop="2885.485000">[Sacha]: Exactly, right? So this is also valuable for that.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2885.486000" data-stop="2890.249000">Not just hoping that in your config, which I have now read,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2890.250000" data-stop="2891.071000">that you would have a snippet</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2891.151000" data-stop="2894.174000">exactly for this purpose, but more like, okay, I'm telling</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2894.234000" data-stop="2897.903000">somebody I'm going to do it, which means I got to go do it.</span> <p></p><span class="audio-time caption" data-speaker="Prot" data-start="2897.904000" data-stop="2901.682000">[Prot]: Yes, yes. And of course, just verbalizing it means that you can</span> <span class="audio-time caption" data-speaker="Prot" data-start="2901.762000" data-stop="2905.750000">also understand it a little bit better. And you start</span> <span class="audio-time caption" data-speaker="Prot" data-start="2905.810000" data-stop="2909.655000">thinking about it. And then it's a matter of writing the code.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="2909.000000">00:48:29</span> <strong>Automating more of the process</strong></div><p></p><span class="audio-time caption" data-speaker="Prot" data-start="2909.656000" data-stop="2913.103000">[Prot]: I'm curious, though, why do you have the shell scripts</span> <span class="audio-time caption" data-speaker="Prot" data-start="2913.183000" data-stop="2917.531000">and not bring all of that into Emacs? What's the advantage of</span> <span class="audio-time caption" data-speaker="Prot" data-start="2917.932000" data-stop="2920.617000">having Emacs called the shell scripts? Or was it just more</span> <span class="audio-time caption" data-speaker="Prot" data-start="2920.657000" data-stop="2921.734000">convenient?</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="2921.735000" data-stop="2925.008000">[Sacha]: It's just out of convenience. Emacs does call</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2925.048000" data-stop="2928.099000">the shell scripts. The shell scripts are there just in case I</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2928.159000" data-stop="2933.446000">happen to be SSH-ing in from my phone. Because I'm</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2933.466000" data-stop="2937.291000">downstairs or whatever and then I can just run it from the</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2937.331000" data-stop="2942.357000">shell also because I use it not just for my... So I have some</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2942.397000" data-stop="2947.423000">shell scripts for downloading the video as an MP3 or as an MP4</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2947.663000" data-stop="2951.868000">or as the subtitles. And so these are generally useful</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2951.908000" data-stop="2955.272000">things that I might not necessarily remember to be in Emacs</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2955.372000" data-stop="2960.157000">for. So that's definitely, you know... I needed to find this</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2960.438000" data-stop="2963.800000">whole process that eventually ends up in a blog post</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2963.801000" data-stop="2965.433000">that has all my lovely stuff.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2965.434000" data-stop="2972.167000">where this chat that I have with you is kind of my high-water mark</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2972.168000" data-stop="2975.167000">of this is really fun. I would like to do more</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2975.168000" data-stop="2979.067000">things like this, where it ends up with</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2979.068000" data-stop="2983.033000">transcripts, resources, kind of like the show notes</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2983.034000" data-stop="2988.067000">chapter marker indexes. These are automatically</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2988.068000" data-stop="2990.725000">extracted from the transcript.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2991.144000" data-stop="2995.100000">Rough notes that we were working on there. The session</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2995.101000" data-stop="2996.453000">... The transcript</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2996.493000" data-stop="3006.991000">has speaker diarization. In a video, I got your subtitles to</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3007.031000" data-stop="3010.958000">show up in italics and my subtitles to show up in plain text.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3011.327000" data-stop="3014.972000">So now that I have</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3018.417000" data-stop="3022.163000">this infrastructure, I feel compelled to make sure I</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3022.223000" data-stop="3026.908000">schedule conversations with people so that I use it.</span> <p></p><span class="audio-time caption" data-speaker="Prot" data-start="3026.909000" data-stop="3031.276000">[Prot]: Yes, of course.</span> <span class="audio-time caption" data-speaker="Prot" data-start="3031.779000" data-stop="3036.363000">And that's actually a good reason generally for writing</span> <span class="audio-time caption" data-speaker="Prot" data-start="3036.423000" data-stop="3040.067000">code, ultimately, because it's the vehicle for doing what</span> <span class="audio-time caption" data-speaker="Prot" data-start="3040.127000" data-stop="3043.490000">the code is supposed to facilitate. So the code is just a</span> <span class="audio-time caption" data-speaker="Prot" data-start="3043.570000" data-stop="3046.251000">pretext for actually doing the thing.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="3046.252000" data-stop="3047.993000">[Sacha]: Or the other way around, yeah.</span> <p></p><span class="audio-time caption" data-speaker="Prot" data-start="3047.994000" data-stop="3050.695000">[Prot]: Or it can be the other way around.</span> <span class="audio-time caption" data-speaker="Prot" data-start="3050.696000" data-stop="3052.136000">So the code is the goal, yeah.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="3052.137000" data-stop="3056.842000">[Sacha]: Yeah, yeah, I know. EmacsConf is basically</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3056.962000" data-stop="3059.204000">the way that I test emacsconf.el.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3064.466000" data-stop="3067.413000">Hi. It's fine. It's fine. Yeah, so that's my thing for</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3067.473000" data-stop="3071.160000">processing recordings. Changing topic.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3071.161000" data-stop="3074.214000">The button. The button. The button. We must press the button.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="3074.000000">00:51:14</span> <strong>Copying non-packaged code</strong></div><p></p><span class="audio-time caption" data-speaker="Sacha" data-start="3074.215000" data-stop="3080.464000">[Sacha]: Non-packaged code. So now that I've modularized my Emacs configuration,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3080.524000" data-stop="3083.311000">I've split all the defuns into different files. I have</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3083.371000" data-stop="3086.896000">renamed everything from my- to sacha- so that I don't step on</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3086.936000" data-stop="3089.981000">other people's function definitions. Now I'm starting to</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3090.042000" data-stop="3092.926000">copy things from other people's code to see whether this is</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3093.006000" data-stop="3098.195000">actually a viable approach. So this is the way I'm currently</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3098.255000" data-stop="3102.502000">stealing something from your prot-comment. Is this sort of</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3103.063000" data-stop="3107.236000">like... It seems to work when I go into something. If I go into</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3107.296000" data-stop="3110.842000">something, I can press C-x M-; and it does</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3110.883000" data-stop="3113.808000">the thing that you define. So this is sort of what you had in</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3113.828000" data-stop="3115.470000">mind, right?</span> <p></p><span class="audio-time caption" data-speaker="Prot" data-start="3115.471000" data-stop="3117.254000">[Prot]: This is basically what I was thinking earlier</span> <span class="audio-time caption" data-speaker="Prot" data-start="3117.274000" data-stop="3120.285000">with the comment. Yeah.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="3120.286000" data-stop="3123.792000">[Sacha]: And then theoretically, this sort</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3123.832000" data-stop="3125.935000">of structure will also work for other people who have</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3125.996000" data-stop="3130.483000">checked out my very large config and they can autoload</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3130.523000" data-stop="3134.109000">specific commands out of it and then they can bind key</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3134.149000" data-stop="3138.115000">bindings without necessarily importing all of my other set</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3138.155000" data-stop="3141.480000">queues and add hooks because that's in a separate file now.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3141.501000" data-stop="3145.597000">The only thing in my list is defuns.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="3145.000000">00:52:25</span> <strong>Prot on defcustom</strong></div><p></p><span class="audio-time caption" data-speaker="Prot" data-start="3145.598000" data-stop="3147.461000">[Prot]: And if you also, just to</span> <span class="audio-time caption" data-speaker="Prot" data-start="3147.621000" data-stop="3152.508000">add, if you also have configurations for your packages,</span> <span class="audio-time caption" data-speaker="Prot" data-start="3152.568000" data-stop="3155.953000">right? You can also have defcustoms for there, maybe with a</span> <span class="audio-time caption" data-speaker="Prot" data-start="3155.993000" data-stop="3159.278000">default value that works for you or with a default value that</span> <span class="audio-time caption" data-speaker="Prot" data-start="3159.338000" data-stop="3162.022000">is generally useful. And then you can also separate that</span> <span class="audio-time caption" data-speaker="Prot" data-start="3162.122000" data-stop="3166.769000">out. So users don't have to pull anything from your</span> <span class="audio-time caption" data-speaker="Prot" data-start="3166.849000" data-stop="3170.493000">configuration, but just pull the package.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="3170.494000" data-stop="3172.918000">[Sacha]: So right now I have...</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3172.919000" data-stop="3179.735000">Right now I have my configurations as defvars because</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3179.795000" data-stop="3184.846000">I'm lazy. Do you happen to have a function or whatever that</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3184.887000" data-stop="3189.359000">you like to use to just convert a defvar into a defcustom?</span> <p></p><span class="audio-time caption" data-speaker="Prot" data-start="3189.360000" data-stop="3192.688000">[Prot]: I haven't done it because it's actually tricky with the type.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="3193.089000" data-stop="3194.209000">[Sacha]: Yes.</span> <p></p><span class="audio-time caption" data-speaker="Prot" data-start="3194.210000" data-stop="3196.933000">[Prot]: You know, the defcustom has the type keyword. And of</span> <span class="audio-time caption" data-speaker="Prot" data-start="3196.973000" data-stop="3199.435000">course, for the most trivial cases, this is easy. Like, OK,</span> <span class="audio-time caption" data-speaker="Prot" data-start="3199.455000" data-stop="3203.299000">it's boolean or it's a string or whatever. But usually it's</span> <span class="audio-time caption" data-speaker="Prot" data-start="3203.339000" data-stop="3205.321000">not that simple. Like if you have an alist, you have to</span> <span class="audio-time caption" data-speaker="Prot" data-start="3205.381000" data-stop="3210.746000">describe what are the key and value pairs or whatever and the</span> <span class="audio-time caption" data-speaker="Prot" data-start="3210.806000" data-stop="3213.929000">elements of the alist. So I haven't done that because it's</span> <span class="audio-time caption" data-speaker="Prot" data-start="3214.069000" data-stop="3219.839000">always on a case by case basis. And many of the defcustom I</span> <span class="audio-time caption" data-speaker="Prot" data-start="3219.939000" data-stop="3224.645000">have will have like a bespoke type because the data</span> <span class="audio-time caption" data-speaker="Prot" data-start="3224.685000" data-stop="3227.729000">structure is really specific. You know, the value they</span> <span class="audio-time caption" data-speaker="Prot" data-start="3227.809000" data-stop="3231.333000">expect. For example, if you are doing something with the</span> <span class="audio-time caption" data-speaker="Prot" data-start="3232.054000" data-stop="3236.379000">action alists of display buffer, like they have a really</span> <span class="audio-time caption" data-speaker="Prot" data-start="3236.419000" data-stop="3239.338000">specific type how you write it.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="3239.339000" data-stop="3241.705000">[Sacha]: Yeah, yeah, I hear you. So I</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3241.745000" data-stop="3245.453000">think because I have a lot of strings, I probably can get away</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3245.493000" data-stop="3249.242000">with something that just reads the form, smooshes it into a</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3249.322000" data-stop="3253.752000">string, adds a string, or possibly what this will end up</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3253.772000" data-stop="3258.022000">looking like is maybe a completing read on the type of the</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3258.082000" data-stop="3262.317000">function. Sorry, the type of the thing. And then I can just</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3262.337000" data-stop="3264.678000">select from several types.</span> <p></p><span class="audio-time caption" data-speaker="Prot" data-start="3264.679000" data-stop="3268.284000">[Prot]: Well, you can make it like you can</span> <span class="audio-time caption" data-speaker="Prot" data-start="3268.584000" data-stop="3272.749000">make it a guess. Like, of course, if this thing is quoted and</span> <span class="audio-time caption" data-speaker="Prot" data-start="3272.809000" data-stop="3277.855000">it's a symbol, it's not a list. Maybe I can have like a choice</span> <span class="audio-time caption" data-speaker="Prot" data-start="3278.456000" data-stop="3282.261000">or a repeat symbol or something like you. You can, but it</span> <span class="audio-time caption" data-speaker="Prot" data-start="3282.361000" data-stop="3285.505000">won't be accurate. Like that would be like for you to fill it</span> <span class="audio-time caption" data-speaker="Prot" data-start="3285.565000" data-stop="3286.885000">in later.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="3286.886000" data-stop="3288.608000">[Sacha]: Yeah. No, I was thinking just more along the lines</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3288.769000" data-stop="3294.575000">of Like a completion so that you can select from maybe some of</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3294.635000" data-stop="3297.959000">your common types. The actual guessing of what type it is</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3298.680000" data-stop="3302.905000">would be an exercise left for future me. But even just not</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3302.965000" data-stop="3308.972000">having to remember exactly what the syntax is for repeat</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3309.252000" data-stop="3310.919000">would be nice.</span> <p></p><span class="audio-time caption" data-speaker="Prot" data-start="3310.920000" data-stop="3312.354000">[Prot]: Actually, that's good.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="3312.000000">00:55:12</span> <strong>helpful and elisp-demos</strong></div><p></p><span class="audio-time caption" data-speaker="Sacha" data-start="3312.355000" data-stop="3313.698000">[Sacha]: Yes. I mean, one of the</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3313.778000" data-stop="3317.524000">things that I always find helpful is, like, I think I've got</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3317.624000" data-stop="3322.852000">some examples now. I'm using helpful, right? And I'm also</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3323.052000" data-stop="3328.701000">using this elisp-demos. So it just tells me, like, I can add</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3328.781000" data-stop="3331.485000">more notes here and I can say, okay, this is what a defcustom,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3331.505000" data-stop="3334.867000">that's a repeat of a string or what a const looks like, so that...</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3334.868000" data-stop="3338.267000">'Cause the manual doesn't have a lot of examples sometimes.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3338.268000" data-stop="3341.000000">Sometimes it's annoying to dig through it looking for examples.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3341.001000" data-stop="3343.767000">Usually it has no examples. I think that that's...</span> <p></p><span class="audio-time caption" data-speaker="Prot" data-start="3343.768000" data-stop="3346.359000">[Prot]: if there was one area of improvement, it's that.</span> <span class="audio-time caption" data-speaker="Prot" data-start="3346.360000" data-stop="3349.588000">Keep it as is, because it's high quality, but complement it with</span> <span class="audio-time caption" data-speaker="Prot" data-start="3349.649000" data-stop="3350.679000">examples.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="3350.680000" data-stop="3353.062000">[Sacha]: I mean, technically, all of Emacs is an example,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3353.102000" data-stop="3356.244000">and you can just find something, but...</span> <p></p><span class="audio-time caption" data-speaker="Prot" data-start="3356.245000" data-stop="3357.706000">[Prot]: Yeah, that's why you have the manual,</span> <span class="audio-time caption" data-speaker="Prot" data-start="3357.707000" data-stop="3359.829000">because if I have to dig through thousands</span> <span class="audio-time caption" data-speaker="Prot" data-start="3359.889000" data-stop="3364.714000">of lines of Emacs Lisp, that will take a toll on my patience.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="3365.254000" data-stop="3369.357000">[Sacha]: Yeah, so for anyone who's watching,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3369.358000" data-stop="3373.200000">helpful and elisp-demos is how to add these</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3373.201000" data-stop="3375.244000">helpful little notes to your</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3375.384000" data-stop="3378.867000">describe-function, because who remembers these things?</span> <p></p><span class="audio-time caption" data-speaker="Prot" data-start="3380.332000" data-stop="3383.458000">[Prot]: Yeah, yeah, yeah. That's very good. That's very good. Yes.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="3383.000000">00:56:23</span> <strong>Prot on code libraries</strong></div><p></p><span class="audio-time caption" data-speaker="Prot" data-start="3383.839000" data-stop="3388.047000">[Prot]: Just to say on the point, if you have packages, this is</span> <span class="audio-time caption" data-speaker="Prot" data-start="3388.107000" data-stop="3391.233000">something I actually do. I just go and reference one of my</span> <span class="audio-time caption" data-speaker="Prot" data-start="3391.293000" data-stop="3394.720000">packages, which I know I have done the research for. So I'm</span> <span class="audio-time caption" data-speaker="Prot" data-start="3394.740000" data-stop="3398.146000">like, okay, how do you do the display buffer action alist</span> <span class="audio-time caption" data-speaker="Prot" data-start="3398.266000" data-stop="3399.227000">type? I will just go to, for example, denote and copy it.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="3399.228000" data-stop="3409.008000">[Sacha]: I will eventually build up a list of examples</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3409.009000" data-stop="3410.531000">that I can refer to.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="3410.000000">00:56:50</span> <strong>Prot rewrites functions to fit his style and naming conventions</strong></div><p></p><span class="audio-time caption" data-speaker="Sacha" data-start="3410.532000" data-stop="3412.977000">[Sacha]: The other question I had though was do you ever find</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3413.018000" data-stop="3417.226000">yourself copying code from people who do not have their You</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3417.246000" data-stop="3419.830000">know, they're functions in nice little things that you can</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3419.870000" data-stop="3424.458000">just import and autoload. And what do you do about it? Like if</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3424.478000" data-stop="3428.924000">they're, you know, let's say they named it, then maybe they</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3428.965000" data-stop="3431.869000">named it without the prefix. So it might be possible to</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3431.909000" data-stop="3437.638000">confuse it with the standard stuff or they, you know, it's</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3437.718000" data-stop="3440.122000">mixed in with the rest of their config so you can just load the</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3440.142000" data-stop="3444.208000">file. What do you like doing when you are copying that kind of</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3444.288000" data-stop="3446.107000">code?</span> <p></p><span class="audio-time caption" data-speaker="Prot" data-start="3446.108000" data-stop="3449.288000">[Prot]: I will basically check if I can make edits to it.</span> <span class="audio-time caption" data-speaker="Prot" data-start="3449.289000" data-stop="3453.319000">The first thing I would make is probably change the style to be</span> <span class="audio-time caption" data-speaker="Prot" data-start="3453.379000" data-stop="3458.086000">like my style. So I would anyway change it so there is no</span> <span class="audio-time caption" data-speaker="Prot" data-start="3458.907000" data-stop="3462.452000">scenario where I would just copy it verbatim and paste it.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="3463.273000" data-stop="3466.378000">[Sacha]: Okay, so you like to rewrite things and then you fit it into</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3467.059000" data-stop="3470.475000">your naming convention because it is now yours.</span> <p></p><span class="audio-time caption" data-speaker="Prot" data-start="3470.476000" data-stop="3474.361000">[Prot]: But also like the style. For example, this function you have over</span> <span class="audio-time caption" data-speaker="Prot" data-start="3474.421000" data-stop="3477.344000">there, like Sacha here, like the one we are seeing now on</span> <span class="audio-time caption" data-speaker="Prot" data-start="3477.364000" data-stop="3482.029000">screen. For example, I would change the name of pargs. Not</span> <span class="audio-time caption" data-speaker="Prot" data-start="3482.069000" data-stop="3484.512000">because it's wrong, but because stylistically it's not</span> <span class="audio-time caption" data-speaker="Prot" data-start="3484.592000" data-stop="3488.210000">what I would write. Then I would change the indentation.</span> <span class="audio-time caption" data-speaker="Prot" data-start="3488.211000" data-stop="3489.597000">Org Capture String, I would put the concat, the line below.</span> <span class="audio-time caption" data-speaker="Prot" data-start="3489.598000" data-stop="3494.904000">I would basically do small tweaks, not because it's wrong</span> <span class="audio-time caption" data-speaker="Prot" data-start="3494.964000" data-stop="3498.528000">what you have, but because stylistically I have a different</span> <span class="audio-time caption" data-speaker="Prot" data-start="3498.588000" data-stop="3500.209000">way of expressing it.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="3500.210000" data-stop="3502.273000">[Sacha]: Yeah, yeah, yeah. Absolutely. I've</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3502.313000" data-stop="3507.541000">started to add where I got it from in the docstring instead</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3507.581000" data-stop="3510.666000">of... I used to put it in the comment. But as you mentioned,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3510.706000" data-stop="3513.509000">the doc strings are a little bit more visible.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3513.510000" data-stop="3519.519000">So then I usually don't end up looking for updates. But at least</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3519.599000" data-stop="3523.285000">theoretically, if I do want to, I could find out who was... Or</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3523.345000" data-stop="3526.129000">if I want to credit somebody or see what else they've come up</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3526.149000" data-stop="3529.622000">with lately, then at least it's there.</span> <p></p><span class="audio-time caption" data-speaker="Prot" data-start="3529.623000" data-stop="3530.864000">[Prot]: Yes, it's good enough.</span> <span class="audio-time caption" data-speaker="Prot" data-start="3530.865000" data-stop="3533.109000">Plus, when we are talking about these smaller</span> <span class="audio-time caption" data-speaker="Prot" data-start="3533.189000" data-stop="3538.597000">functions, having the link there, I think, is enough. Like,</span> <span class="audio-time caption" data-speaker="Prot" data-start="3538.617000" data-stop="3541.962000">you wouldn't need to go search for updates or whatever.</span> <span class="audio-time caption" data-speaker="Prot" data-start="3542.003000" data-stop="3544.506000">Like, if they have made some changes, chances are it's</span> <span class="audio-time caption" data-speaker="Prot" data-start="3544.546000" data-stop="3546.548000">there.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="3546.549000" data-stop="3551.517000">[Sacha]: Yeah. Okay, so rewrite things, make it fit your</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3551.537000" data-stop="3555.543000">style, and add stuff to the docstring because you like to</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3555.604000" data-stop="3558.647000">have thorough docstrings.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="3558.000000">00:59:18</span> <strong>Prot's preference for small functions</strong></div><p></p><span class="audio-time caption" data-speaker="Prot" data-start="3558.648000" data-stop="3560.130000">[Prot]: Yeah, yeah, yeah. There are many</span> <span class="audio-time caption" data-speaker="Prot" data-start="3560.330000" data-stop="3563.494000">functions I have where the docstring is longer than the</span> <span class="audio-time caption" data-speaker="Prot" data-start="3563.534000" data-stop="3568.740000">code. I would say, yeah, many of them are like that. But also,</span> <span class="audio-time caption" data-speaker="Prot" data-start="3568.800000" data-stop="3573.124000">just to say, it's because of how I will write the code, where</span> <span class="audio-time caption" data-speaker="Prot" data-start="3573.165000" data-stop="3576.628000">there are many small functions building up to a big one. And</span> <span class="audio-time caption" data-speaker="Prot" data-start="3576.749000" data-stop="3579.692000">so then the docstring explains basically what all these</span> <span class="audio-time caption" data-speaker="Prot" data-start="3579.732000" data-stop="3582.171000">small functions contribute to.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="3582.172000" data-stop="3583.255000">[Sacha]: I like small functions too</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3583.315000" data-stop="3587.504000">because I got used to coding on even smaller screens, right?</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3587.564000" data-stop="3590.109000">And so anything that could just actually fit in the screen</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3590.149000" data-stop="3593.276000">was much better than things that I had to page through. And it</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3593.316000" data-stop="3597.424000">gives you many more avenues to modify the behavior because</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3597.464000" data-stop="3600.030000">you have more places that you could def-advice, sorry,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3600.771000" data-stop="3603.433000">advice-add :around or whatever.</span> <p></p><span class="audio-time caption" data-speaker="Prot" data-start="3603.434000" data-stop="3604.256000">[Prot]: Actually, this is why I</span> <span class="audio-time caption" data-speaker="Prot" data-start="3604.296000" data-stop="3608.003000">started doing it as well, because it's easier. I had this</span> <span class="audio-time caption" data-speaker="Prot" data-start="3608.584000" data-stop="3613.012000">reason myself. I think it was an org function, which is like</span> <span class="audio-time caption" data-speaker="Prot" data-start="3613.032000" data-stop="3616.279000">200 lines, and I wanted to really change one thing and I had to</span> <span class="audio-time caption" data-speaker="Prot" data-start="3616.319000" data-stop="3619.124000">copy the whole function. And I'm like, well, if this was a</span> <span class="audio-time caption" data-speaker="Prot" data-start="3619.204000" data-stop="3622.310000">helper function, I would be done by just overriding the</span> <span class="audio-time caption" data-speaker="Prot" data-start="3622.350000" data-stop="3623.431000">helper and I would be good.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="3623.000000">01:00:23</span> <strong>avy-goto-char-timer</strong></div><p></p><span class="audio-time caption" data-speaker="Sacha" data-start="3623.432000" data-stop="3627.171000">[Sacha]: I am slowly getting the hang of</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3627.291000" data-stop="3634.242000">using avy-goto-char-timer so that I can copy the symbols from</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3634.263000" data-stop="3640.894000">elsewhere. Because even if I'm using nameless to insert the</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3640.934000" data-stop="3645.400000">prefixes and then I'm using dabbrev-expand or hippie-expand,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3645.620000" data-stop="3648.183000">for which the config I still need to fiddle with to make it</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3648.464000" data-stop="3652.149000">absolutely perfect. It's still a lot of typing sometimes,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3652.229000" data-stop="3655.492000">since we like to use long function names.</span> <p></p><span class="audio-time caption" data-speaker="Prot" data-start="3655.493000" data-stop="3658.916000">[Prot]: And which timer variant do you use? Because it has,</span> <span class="audio-time caption" data-speaker="Prot" data-start="3658.917000" data-stop="3660.899000">with two characters, it has the 0 one,</span> <span class="audio-time caption" data-speaker="Prot" data-start="3660.900000" data-stop="3663.283000">which is type as much as you can within a certain</span> <span class="audio-time caption" data-speaker="Prot" data-start="3663.323000" data-stop="3666.266000">time window.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="3666.267000" data-stop="3672.909000">[Sacha]: That's a good question. Where is this?</span> <p></p><span class="audio-time caption" data-speaker="Prot" data-start="3672.910000" data-stop="3678.186000">[Prot]: Char timer. I think this is based on... I think this is the zero.</span> <span class="audio-time caption" data-speaker="Prot" data-start="3678.206000" data-stop="3681.142000">Yeah, I'm not sure. I remember it's called zero.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="3681.143000" data-stop="3685.228000">[Sacha]: So like I can type li and then go to like lj</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3685.229000" data-stop="3686.991000">to jump to that one and now I have</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3687.072000" data-stop="3696.044000">it so that I can M-j li and then I can press the yank yeah</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3696.264000" data-stop="3702.713000">like y like insert from there which is yes when I was when I was</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3702.733000" data-stop="3707.408000">stealing stuff from your config, I could... oh let me show you...</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3707.409000" data-stop="3714.410000">where is this... So this is your config, right? Well, this is...</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3715.111000" data-stop="3718.156000">Hang on a second. Org link preview.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3720.860000" data-stop="3724.665000">There you go. So now the highlights of your config. I can</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3724.806000" data-stop="3731.435000">steal stuff from your config and say, okay, M-j, open</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3731.455000" data-stop="3733.158000">parenthesis, oops.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3736.007000" data-stop="3741.634000">M-j. Open parenthesis. I can copy the entire line of LK</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3742.595000" data-stop="3748.262000">from avy, which is very nice. Very nice. Yes, yes. So, pretty</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3748.282000" data-stop="3752.648000">fast side there into avy. I have to slow down and actually</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3752.768000" data-stop="3756.573000">focus on doing the keyboard shortcuts because it's a new</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3756.633000" data-stop="3760.176000">habit that I want to build, especially since.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="3760.000000">01:02:40</span> <strong>One-shot keyboard modifiers</strong></div><p></p><span class="audio-time caption" data-speaker="Sacha" data-start="3760.177000" data-stop="3762.801000">[Sacha]: Also related to one of your recent videos, I'm experimenting with</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3762.821000" data-stop="3765.501000">one-shot keyboard modifiers.</span> <p></p><span class="audio-time caption" data-speaker="Prot" data-start="3765.502000" data-stop="3766.382000">[Prot]: Oh, well done.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="3766.383000" data-stop="3770.247000">[Sacha]: Yes. It's a little tricky. I have to get my brain to get used to it. I'm</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3770.267000" data-stop="3778.414000">using keyd to do this on Linux. And it's just getting the hang</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3778.434000" data-stop="3781.817000">of pressing control and then moving to the thing. It's</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3782.238000" data-stop="3785.139000">messing with my brain a little.</span> <p></p><span class="audio-time caption" data-speaker="Prot" data-start="3785.140000" data-stop="3787.382000">[Prot]: But consider that it's a good</span> <span class="audio-time caption" data-speaker="Prot" data-start="3787.422000" data-stop="3792.607000">opportunity to also use two-handed mode, basically. So,</span> <span class="audio-time caption" data-speaker="Prot" data-start="3792.687000" data-stop="3797.889000">for example, C-x, right? Not like C-x. You see</span> <span class="audio-time caption" data-speaker="Prot" data-start="3797.909000" data-stop="3800.412000">what I'm saying? So basically one hand for the modifier.</span> <span class="audio-time caption" data-speaker="Prot" data-start="3800.532000" data-stop="3805.438000">Yeah, exactly. Because that's a good practice in general,</span> <span class="audio-time caption" data-speaker="Prot" data-start="3805.578000" data-stop="3809.181000">even if you use the standard modifiers. Yeah.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="3809.000000">01:03:29</span> <strong>Toggling</strong></div><p></p><span class="audio-time caption" data-speaker="Sacha" data-start="3809.182000" data-stop="3810.043000">[Sacha]: And one of the</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3810.063000" data-stop="3814.308000">other things that I started doing after our previous</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3814.368000" data-stop="3817.511000">conversation and having looked at some of your toggling</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3817.571000" data-stop="3821.822000">sort of things, in your config, what's this idea of using the</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3821.902000" data-stop="3826.308000">C-z and C-S-z shortcuts? Since who likes to</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3826.348000" data-stop="3830.554000">suspend Emacs anyway, right? So now my C-S-z</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3830.714000" data-stop="3834.540000">toggles my now.org, which is the stuff that I'm going to be</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3834.560000" data-stop="3836.984000">working on, including the stuff that I want to get the hang of</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3837.144000" data-stop="3841.891000">using. So this is my, all right, I need to scope it down so that</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3841.931000" data-stop="3845.095000">I don't get overwhelmed. These are the things that will, you</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3845.135000" data-stop="3847.779000">know, these are the things that I'm trying to get the hang of</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3848.020000" data-stop="3863.332000">using. C-z gets me to my stream notes because then I can add things while</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3863.392000" data-stop="3868.479000">I'm live, and then C-S-z is what I have as my now, which</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3868.619000" data-stop="3873.686000">also gets posted to my web page, sort of like what I'm focusing</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3873.806000" data-stop="3878.495000">on. Which, actually, I can reorganize anyway. So I'm liking</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3878.515000" data-stop="3881.298000">this toggling because I can press, like for example, if I'm</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3881.458000" data-stop="3884.340000">in the middle of my scratch buffer, I can press C-S-z,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3884.421000" data-stop="3888.964000">pop it up, and then pop it back down. And I was watching Joshua</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3889.004000" data-stop="3892.668000">Blais's video about he gets to do this sort of like toggling</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3892.748000" data-stop="3896.491000">things in and out from anywhere in his system. So now I'm</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3896.571000" data-stop="3899.253000">jealous and I need to figure out how to get that working too.</span> <p></p><span class="audio-time caption" data-speaker="Prot" data-start="3899.533000" data-stop="3902.996000">[Prot]: Yeah, yeah, yeah. That's the kind of thing that is really</span> <span class="audio-time caption" data-speaker="Prot" data-start="3903.056000" data-stop="3906.740000">helpful. Like pop it out and then when you don't need it, it</span> <span class="audio-time caption" data-speaker="Prot" data-start="3906.880000" data-stop="3908.320000">disappears.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="3908.000000">01:05:08</span> <strong>System-wide toggle shortcuts using emacsclient</strong></div><p></p><span class="audio-time caption" data-speaker="Sacha" data-start="3908.321000" data-stop="3910.023000">[Sacha]: Do you have any of that kind of system level of</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3910.063000" data-stop="3913.447000">toggling even when you don't have Emacs as your main</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3913.967000" data-stop="3918.050000">application sort of thing?</span> <p></p><span class="audio-time caption" data-speaker="Prot" data-start="3918.051000" data-stop="3920.113000">[Prot]: Via emacsclient. So you can have</span> <span class="audio-time caption" data-speaker="Prot" data-start="3920.173000" data-stop="3923.256000">a key binding to emacsclient, an emacsclient call, and it</span> <span class="audio-time caption" data-speaker="Prot" data-start="3923.296000" data-stop="3926.499000">will bring up an Emacs window from anywhere. I have that,</span> <span class="audio-time caption" data-speaker="Prot" data-start="3926.519000" data-stop="3931.824000">yes. I have it for a few things. TMR mostly, the timer</span> <span class="audio-time caption" data-speaker="Prot" data-start="3931.864000" data-stop="3936.962000">package. So if I am, for example, here, I can bring it up and</span> <span class="audio-time caption" data-speaker="Prot" data-start="3937.723000" data-stop="3940.807000">start the timer without actually switching to Emacs. Okay,</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="3940.927000" data-stop="3946.934000">[Sacha]: so that sounds like something I need to look into. It's</span> <p></p><span class="audio-time caption" data-speaker="Prot" data-start="3946.994000" data-stop="3950.718000">[Prot]: in the prot-window file, prot-window.el. I have a macro</span> <span class="audio-time caption" data-speaker="Prot" data-start="3950.758000" data-stop="3956.969000">there, and it's a macro that defines a command. To run in a new</span> <span class="audio-time caption" data-speaker="Prot" data-start="3957.049000" data-stop="3962.855000">frame and once you do something, such as complete or cancel,</span> <span class="audio-time caption" data-speaker="Prot" data-start="3963.396000" data-stop="3967.781000">to close that frame basically. And it's using a condition</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="3967.861000" data-stop="3971.545000">[Sacha]: case. It's using a condition case. I think it's the simplest</span> <p></p><span class="audio-time caption" data-speaker="Prot" data-start="3971.605000" data-stop="3973.686000">[Prot]: you can do.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="3973.687000" data-stop="3976.711000">[Sacha]: And then that's a global keybinding on your</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3976.831000" data-stop="3978.011000">window manager that runs that and then brings that</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3978.012000" data-stop="3984.600000">so that you can pop it up and put it back.</span> <p></p><span class="audio-time caption" data-speaker="Prot" data-start="3984.601000" data-stop="3989.167000">[Prot]: Yeah. It's just emacsclient -e and then the command.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="3989.168000" data-stop="3992.290000">[Sacha]: Oh, that's interesting.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3992.793000" data-stop="3998.158000">Rickard says using space as control has revolutionized</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3998.739000" data-stop="4002.343000">their Emacsing. I'm not sure I'm ready to take that step yet.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4003.043000" data-stop="4006.186000">Also, I can probably figure out how to use keyd to use it as a</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4006.286000" data-stop="4010.070000">modifier. We'll see. It's a nice big key, you know? You're</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4010.270000" data-stop="4013.512000">just tempted to do all sorts of things with it.</span> <p></p><span class="audio-time caption" data-speaker="Prot" data-start="4013.513000" data-stop="4016.155000">[Prot]: Of course, at the keyboard level,</span> <span class="audio-time caption" data-speaker="Prot" data-start="4016.156000" data-stop="4018.198000">you can have different behavior for tap</span> <span class="audio-time caption" data-speaker="Prot" data-start="4018.258000" data-stop="4023.352000">and hold. So when you tap the space, it's an ordinary space.</span> <span class="audio-time caption" data-speaker="Prot" data-start="4023.372000" data-stop="4026.797000">When you hold it, it's control. Maybe that's what they are.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="4026.817000" data-stop="4029.661000">[Sacha]: Yeah, I think that's what's happening there. Look into</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4029.681000" data-stop="4033.204000">using keyd for tap and hold.</span> <p></p><span class="audio-time caption" data-speaker="Prot" data-start="4033.205000" data-stop="4034.568000">[Prot]: Yeah, and this is the principle</span> <span class="audio-time caption" data-speaker="Prot" data-start="4034.608000" data-stop="4039.154000">behind the home row mods, the standard home row mods. It's</span> <span class="audio-time caption" data-speaker="Prot" data-start="4039.234000" data-stop="4043.260000">like when you tap, for example, H, it just does H. When you</span> <span class="audio-time caption" data-speaker="Prot" data-start="4043.320000" data-stop="4045.963000">hold it, it's some modifier key.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="4045.000000">01:07:25</span> <strong>My next steps</strong></div><p></p><span class="audio-time caption" data-speaker="Sacha" data-start="4045.964000" data-stop="4048.028000">[Sacha]: I have three minutes before</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4048.068000" data-stop="4054.999000">the kiddo runs out and goes, mom, it's lunchtime. So do you</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4055.059000" data-stop="4059.287000">have any, like, okay, my next steps, I've got stuff that I</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4059.307000" data-stop="4062.432000">need to work on in terms of improving the processing of</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4062.512000" data-stop="4066.278000">things and automating things. I found this session very</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4066.338000" data-stop="4069.624000">helpful for saying, okay, you know, like, in the weeks</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4069.684000" data-stop="4071.687000">leading up to it, two weeks leading up to it, it's like, okay,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4071.707000" data-stop="4073.629000">I got to write this code because I want to be able to say I did</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4073.710000" data-stop="4079.879000">it, which is good. And as a result, I have all sorts of fancy</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4079.939000" data-stop="4084.686000">things now in my Emacs for streaming and also for my config.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4086.108000" data-stop="4089.072000">In two weeks, I would love to have this kind of conversation</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4089.132000" data-stop="4093.519000">with you again, if that's all right with you. Do you have any</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4094.120000" data-stop="4098.174000">tips before the kiddo comes out?</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="4098.000000">01:08:18</span> <strong>Tips from Prot: small functions used frequently</strong></div><p></p><span class="audio-time caption" data-speaker="Prot" data-start="4098.175000" data-stop="4100.878000">[Prot]: Yeah, yeah, yeah. So for the</span> <span class="audio-time caption" data-speaker="Prot" data-start="4100.958000" data-stop="4105.282000">functions you want to write, you want to make the functions</span> <span class="audio-time caption" data-speaker="Prot" data-start="4105.362000" data-stop="4111.207000">be small so you can test them all and make them part of your</span> <span class="audio-time caption" data-speaker="Prot" data-start="4111.248000" data-stop="4115.110000">habit, like start using them even before the streams. So try</span> <span class="audio-time caption" data-speaker="Prot" data-start="4115.171000" data-stop="4119.233000">to use them every day so that you basically have almost</span> <span class="audio-time caption" data-speaker="Prot" data-start="4119.234000" data-stop="4122.398000">a knee-jerk reaction where it's like, oh, I'm doing this and you</span> <span class="audio-time caption" data-speaker="Prot" data-start="4122.438000" data-stop="4125.621000">call the function basically right away. And I don't know if</span> <span class="audio-time caption" data-speaker="Prot" data-start="4125.661000" data-stop="4129.445000">you use the F keys, the function keys for your shortcuts.</span> <span class="audio-time caption" data-speaker="Prot" data-start="4130.466000" data-stop="4132.787000">Maybe those would be good.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="4132.788000" data-stop="4134.770000">[Sacha]: Yeah, I have some of them. But</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4134.891000" data-stop="4138.715000">again, it's hard for me to remember sometimes which one I</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4138.735000" data-stop="4141.818000">have matched there. So again, it's trying to build it into</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4141.858000" data-stop="4145.342000">muscle memory. Probably what I just need is some kind of</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4145.362000" data-stop="4146.922000">drill thing.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="4146.000000">01:09:06</span> <strong>Maybe using the header line for tips?</strong></div><p></p><span class="audio-time caption" data-speaker="Prot" data-start="4146.923000" data-stop="4152.029000">[Prot]: How about a minor mode that sets the header line</span> <span class="audio-time caption" data-speaker="Prot" data-start="4152.109000" data-stop="4155.430000">format? You have seen in many buffers where it says type</span> <span class="audio-time caption" data-speaker="Prot" data-start="4155.650000" data-stop="4159.996000">C-c C-c to finish, right? So set the header line</span> <span class="audio-time caption" data-speaker="Prot" data-start="4160.056000" data-stop="4164.442000">format to be like, you know, type, I don't know, Ctrl-Z to</span> <span class="audio-time caption" data-speaker="Prot" data-start="4164.521000" data-stop="4166.603000">bring up the pop-up, whatever, right?</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="4166.604000" data-stop="4167.300000">[Sacha]: Yeah, I mean, quick help sort of is that idea...</span> <p></p><span class="audio-time caption" data-speaker="Prot" data-start="4170.820000" data-stop="4174.032000">[Prot]: Yes, quick help would help you do that as well, yeah.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="4174.033000" data-stop="4180.229000">[Sacha]: It's a screen space thing. But if I can find something that I can</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4180.309000" data-stop="4184.238000">smoosh together with keycast so that it reminds me of my key</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4184.297000" data-stop="4186.397000">tip in this context.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4186.398000" data-stop="4192.168000">Ah, with keycast. Interesting.</span> <p></p><span class="audio-time caption" data-speaker="Prot" data-start="4194.792000" data-stop="4197.517000">[Prot]: That's why I was thinking of header-line-format. So it would</span> <span class="audio-time caption" data-speaker="Prot" data-start="4197.557000" data-stop="4201.844000">be something that will appear there. And of course, the</span> <span class="audio-time caption" data-speaker="Prot" data-start="4201.904000" data-stop="4205.370000">header line works exactly like the mode line, meaning that</span> <span class="audio-time caption" data-speaker="Prot" data-start="4205.430000" data-stop="4210.979000">it can update the content. It's not static. So like your mode</span> <span class="audio-time caption" data-speaker="Prot" data-start="4210.999000" data-stop="4213.160000">line will update information.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="4213.161000" data-stop="4215.465000">[Sacha]: Yeah. Okay. All right. So let</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4215.505000" data-stop="4219.570000">me think about which tips might be, you know, like my keyword</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4220.651000" data-stop="4223.854000">shortcut of the day focus could be interesting.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="4223.000000">01:10:23</span> <strong>Reorganizing keys</strong></div><p></p><span class="audio-time caption" data-speaker="Prot" data-start="4223.855000" data-stop="4228.041000">[Prot]: But it also brings the point like here, of course, like the keys you</span> <span class="audio-time caption" data-speaker="Prot" data-start="4228.121000" data-stop="4230.745000">have, maybe it's also a good opportunity to organize them</span> <span class="audio-time caption" data-speaker="Prot" data-start="4230.805000" data-stop="4235.531000">differently. Like the header here should prompt you for one</span> <span class="audio-time caption" data-speaker="Prot" data-start="4235.611000" data-stop="4240.202000">prefix key, for example. Like, you know, C-t, let's</span> <span class="audio-time caption" data-speaker="Prot" data-start="4240.242000" data-stop="4246.314000">say, and that's for transcribing or whatever. Right. And it</span> <span class="audio-time caption" data-speaker="Prot" data-start="4246.354000" data-stop="4249.499000">will just have that one there. And then with the help of</span> <span class="audio-time caption" data-speaker="Prot" data-start="4249.500000" data-stop="4253.414000">which-key, for example, you see what you have behind that prefix.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="4253.415000" data-stop="4257.033000">[Sacha]: I have a hard time figuring out keybindings, which is one of</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4257.053000" data-stop="4259.697000">the reasons why I like looking at configs like yours and</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4259.757000" data-stop="4262.120000">other people. Because I'm like, yeah, I can totally use that</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4262.301000" data-stop="4265.225000">as a starting point for keybindings. But then what else do I</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4265.265000" data-stop="4268.711000">assign to it? So for example, I've got this. I apparently</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4268.771000" data-stop="4274.499000">don't have this. I have this sacha-stream-transient</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4275.120000" data-stop="4278.566000">C-c v. That's where I put it now. Okay. Which now has</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4278.567000" data-stop="4279.835000">things like OBS and all that stuff.</span> <p></p><span class="audio-time caption" data-speaker="Prot" data-start="4279.836000" data-stop="4280.569000">[Prot]: What's the mnemonic for v?</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="4282.925000" data-stop="4286.273000">[Sacha]: Oh, v would have been video sort of thing.</span> <p></p><span class="audio-time caption" data-speaker="Prot" data-start="4286.274000" data-stop="4287.209000">[Prot]: Okay, I see.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="4287.210000" data-stop="4293.261000">[Sacha]: But I have to fiddle with it and the kiddo is going to come out any</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4293.301000" data-stop="4296.591000">moment now. So thanks just in case she comes out.</span> <p></p><span class="audio-time caption" data-speaker="Prot" data-start="4296.592000" data-stop="4300.010000">[Prot]: You're welcome.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="4300.011000" data-stop="4303.276000">[Sacha]: Well, it's lunchtime. Thank you for this. I will</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4303.516000" data-stop="4305.840000">schedule something else in two weeks. I'm going to try to</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4305.900000" data-stop="4310.206000">practice more scheduled live streams and keep fiddling</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4310.247000" data-stop="4312.629000">with this workflow. This has all been very helpful. And</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4312.729000" data-stop="4316.513000">thank you to the people who also have dropped by and said</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4316.553000" data-stop="4319.656000">hello. You can check the chat later. It's fine. Yes, yes.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4319.676000" data-stop="4324.180000">Thanks, everybody. All right. Okay. I'm going to say bye</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4324.261000" data-stop="4327.283000">here just in case. Take care. Take care. Take care, Sacha.</span> <p></p><span class="audio-time caption" data-speaker="Prot" data-start="4327.303000" data-stop="4337.333000">[Prot]: Take care, everybody. Bye-bye. Bye-bye. Thank you.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="4339.372000" data-stop="4344.379000">[Sacha]: Thank you everyone for hanging out. That was my chat with</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4345.020000" data-stop="4349.666000">Prot. And I will see y'all again maybe Thurs... Well,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4349.967000" data-stop="4353.531000">probably before then. But I will try to schedule something</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4353.712000" data-stop="4356.496000">on Thursday for around that time. Who knows what it's going</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4356.516000" data-stop="4360.401000">to be about. But yeah, thank you for coming and</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4360.461000" data-stop="4366.149000">experimenting with me. Let us end the stream there. Because</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4366.189000" data-stop="4367.050000">it's lunchtime.</span>
<p></p>


</details>
<div><a href="https://sachachua.com/blog/2026/04/ye16-sacha-and-prot-talk-emacs/index.org">View Org source for this post</a></div>
<p>You can <a href="mailto:sacha@sachachua.com?subject=Comment%20on%20https%3A%2F%2Fsachachua.com%2Fblog%2F2026%2F04%2Fye16-sacha-and-prot-talk-emacs%2F&body=Name%20you%20want%20to%20be%20credited%20by%20(if%20any)%3A%20%0AMessage%3A%20%0ACan%20I%20share%20your%20comment%20so%20other%20people%20can%20learn%20from%20it%3F%20Yes%2FNo%0A">e-mail me at sacha@sachachua.com</a>.</p>]]></description>
		</item><item>
		<title>YE12: Categorizing Emacs News, epwgraph, languages</title>
		<link>https://sachachua.com/blog/2026/04/ye12-categorizing-emacs-news-epwgraph-languages/</link>
		<dc:creator><![CDATA[Sacha Chua]]></dc:creator>
		<pubDate>Mon, 06 Apr 2026 14:36:57 GMT</pubDate>
    <category>emacs</category>
<category>stream</category>
<category>yay-emacs</category>
		<guid isPermaLink="false">https://sachachua.com/blog/2026/04/ye12-categorizing-emacs-news-epwgraph-languages/</guid>
		<description><![CDATA[<p>
<video controls="1" src="https://archive.org/download/2026-04-06-ye-12-emacs-news-epwgraph-languages/2026-04-06-ye12-emacs-news-epwgraph-languages.mp4" type="video/mp4"></video>
</p>

<p>
<a href="https://archive.org/details/2026-04-06-ye-12-emacs-news-epwgraph-languages">View in the Internet Archive</a>, <a href="https://youtube.com/live/zMcyTAOG0i8">watch or comment on YouTube</a>, or <a href="mailto:sacha@sachachua.com">email me</a>.
</p>

<p>
Chapters:
</p>

<ul class="org-ul">
<li><span class="media-time" data-start="2481.000">00:41:21</span> epwgraph</li>
<li><span class="media-time" data-start="3296.000">00:54:56</span> learning languages</li>
</ul>

<p>
Thanks for your patience with the audio issues! At some point, I need to work out the contention between all the different processes that I want to be listening to the audio from my mic. =)
</p>

<p>
In this livestream, I categorize <a href="https://sachachua.com/blog/2026/04/2026-04-06-emacs-news/">Emacs News for 2026-04-06</a>, show <a href="https://github.com/sachac/epwgraph">epwgraph</a> for managing Pipewire connections from Emacs, and share some of my <a href="https://codeberg.org/sachac/learn-lang/">language learning workflows</a>.
</p>
<div><a href="https://sachachua.com/blog/2026/04/ye12-categorizing-emacs-news-epwgraph-languages/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%2F04%2Fye12-categorizing-emacs-news-epwgraph-languages%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>
		</item><item>
		<title>YE11: Fix find-function for Emacs Lisp from org-babel or scratch</title>
		<link>https://sachachua.com/blog/2026/04/ye11-fix-find-function-for-emacs-lisp-from-org-babel-or-scratch/</link>
		<dc:creator><![CDATA[Sacha Chua]]></dc:creator>
		<pubDate>Sun, 05 Apr 2026 21:03:48 GMT</pubDate>
    <category>org</category>
<category>emacs</category>
<category>elisp</category>
<category>stream</category>
<category>yay-emacs</category>
		<guid isPermaLink="false">https://sachachua.com/blog/2026/04/ye11-fix-find-function-for-emacs-lisp-from-org-babel-or-scratch/</guid>
		<description><![CDATA[<p>
<video controls="1" src="https://archive.org/download/yay-emacs-11-fix-find-function-for-emacs-lisp-from-org-babel-or-scratch/ye11-find-function.mp4" poster="https://sachachua.com/blog/2026/04/ye11-fix-find-function-for-emacs-lisp-from-org-babel-or-scratch/2026-04-05-19-25-03.png" type="video/mp4"><track kind="subtitles" label="Captions" src="https://sachachua.com/blog/2026/04/ye11-fix-find-function-for-emacs-lisp-from-org-babel-or-scratch/Yay%20Emacs%2011:%20Fix%20find-function%20for%20Emacs%20Lisp%20from%20org-babel%20or%20scratch.vtt" srclang="en" default=""><span>Video not supported. Thumbnail:<br><img src="https://sachachua.com/blog/2026/04/ye11-fix-find-function-for-emacs-lisp-from-org-babel-or-scratch/2026-04-05-19-25-03.png" alt="Thumbnail"></span></video>
</p>

<p>
<a href="https://archive.org/details/yay-emacs-11-fix-find-function-for-emacs-lisp-from-org-babel-or-scratch">Watch on Internet Archive</a>, <a href="https://youtube.com/live/PKkV1Tbev_Y">watch/comment on YouTube</a>, <a href="https://sachachua.com/blog/2026/04/ye11-fix-find-function-for-emacs-lisp-from-org-babel-or-scratch/Yay%20Emacs%2011:%20Fix%20find-function%20for%20Emacs%20Lisp%20from%20org-babel%20or%20scratch.vtt">download captions</a>, or <a href="mailto:sacha@sachachua.com">email me</a>
</p>


<p>
Where can you define an Emacs Lisp function so
that you can use <code>find-function</code> to jump to it
again later?
</p>

<ul class="org-ul">
<li><b>A: In an indirect buffer</b> from Org Mode source
block with your favorite eval function like
<code>eval-defun</code> <label class="hint"><input type="checkbox"> <span class="hint-desc">(hint)</span><span class="hint-text">nope</span></label>

<ul class="org-ul">
<li><p>
<code>C-c '</code> (<code>org-edit-special</code>) inside the block; execute the defun with <code>C-M-x</code> (<code>eval-defun</code>), <code>C-x C-e</code> (<code>eval-last-sexp</code>), or <code>eval-buffer</code>.
</p>


<div class="org-src-container">
<pre class="src src-emacs-lisp"><code>    (<span class="org-keyword">defun</span> <span class="org-function-name">my-test-1</span> () (message <span class="org-string">"Hello"</span>))
</code></pre>
</div>
</li>
</ul></li>

<li><p>
<b>B: In an Org Mode file</b> by executing the block
with C-c C-c <label class="hint"><input type="checkbox"> <span class="hint-desc">(hint)</span><span class="hint-text">nope</span></label>
</p>


<div class="org-src-container">
<pre class="src src-emacs-lisp"><code>  (<span class="org-keyword">defun</span> <span class="org-function-name">my-test-2</span> () (message <span class="org-string">"Hello"</span>))
</code></pre>
</div>
</li>

<li><p>
<b>C: In a .el file</b> <label class="hint"><input type="checkbox"> <span class="hint-desc">(hint)</span><span class="hint-text">yup</span></label>
</p>

<p>
<a href="https://sachachua.com/blog/2026/04/ye11-fix-find-function-for-emacs-lisp-from-org-babel-or-scratch/test-search-function.el">file:///tmp/test-search-function.el</a> : execute the defun with <code>C-M-x</code> (<code>eval-defun</code>), <code>C-x C-e</code> (<code>eval-last-sexp</code>), or <code>eval-buffer</code>
</p></li>

<li><p>
<b>D: In a scratch buffer,</b> other temporary buffer,
or really any buffer thanks to eval-last-sexp
<label class="hint"><input type="checkbox"> <span class="hint-desc">(hint)</span><span class="hint-text">nope</span></label>
</p>

<p>
<code>(defun my-test-4 () (message "Hello"))</code>
</p></li>
</ul>

<p>
Only option C works - it's gotta be in an .el file for
<code>find-function</code> to find it. But I love jumping to
function definitions using <code>find-function</code> or
<code>lispy-goto-symbol</code> (which is bound to <code>M-.</code> if
you use <a target="_blank" href="https://melpa.org/#/lispy">lispy</a> and set up <code>lispy-mode</code>) so
that I can look at or change how something works.
It can be a little frustrating when I try to jump
to a definition and it says, "Don't know where
blahblahblah is defined." I just defined it five
minutes ago! It's there in one of my other
buffers, don't make me look for it myself.
Probably this will get fixed in Emacs core
someday, but no worries, we can work around it
today with a little bit of advice.
</p>

<p>
I did some digging around in the source code.
Turns out that <code>symbol-file</code> can't find the
function definition in the <code>load-history</code> variable
if you're not in a .el file, so
<code>find-function-search-for-symbol</code> gets called with
<code>nil</code> for the library, which causes the error.
(<a href="https://github.com/emacs-mirror/emacs/blob/master/lisp/subr.el">emacs:subr.el</a>)
</p>

<p>
I wrote some advice that searches in any open
<code>emacs-lisp-mode</code> buffers or in a list of other
files, like my Emacs configuration.
This is how I activate it:
</p>


<div class="org-src-container">
<pre class="src src-emacs-lisp"><code>(<span class="org-keyword">setq</span> sacha-elisp-find-function-search-extra <span class="org-highlight-quoted-quote">'</span>(<span class="org-string">"~/sync/emacs/Sacha.org"</span>))
(advice-add <span class="org-highlight-quoted-quote">'</span><span class="org-highlight-quoted-symbol">find-function-search-for-symbol</span> <span class="org-builtin">:around</span> <span class="org-highlight-quoted-quote">#'</span><span class="org-highlight-quoted-symbol">sacha-elisp-find-function-search-for-symbol</span>)
</code></pre>
</div>


<p>
Now I should be able to jump to all those
functions wherever they're defined.
</p>


<div class="org-src-container">
<pre class="src src-emacs-lisp"><code>(my-test-1)
(my-test-2)
(my-test-3)
(my-test-4)
</code></pre>
</div>


<p>
Note that by default, <code>M-.</code> in <code>emacs-lisp-mode</code> uses <code>xref-find-definitions</code>, which seems to really want files. I haven't figured out a good workaround for that yet, but <a target="_blank" href="https://melpa.org/#/lispy">lispy-mode</a> makes <code>M-.</code> work and gives me a bunch of other great shortcuts, so I'd recommend checking that out.
</p>

<p>
Here's the source code for the find function thing:
</p>


<div class="org-src-container">
<pre class="src src-emacs-lisp"><code>(<span class="org-keyword">defvar</span> <span class="org-variable-name">sacha-elisp-find-function-search-extra</span>
  nil
  <span class="org-doc">"List of filenames to search for functions."</span>)

<span class="org-comment-delimiter">;;;</span><span class="org-comment">###</span><span class="org-comment"><span class="org-warning">autoload</span></span>
(<span class="org-keyword">defun</span> <span class="org-function-name">sacha-elisp-find-function-search-for-symbol</span> (fn symbol type library <span class="org-type">&amp;rest</span> _)
  <span class="org-doc">"Find SYMBOL with TYPE in Emacs Lisp buffers or `</span><span class="org-doc"><span class="org-constant">sacha-find-function-search-extra</span></span><span class="org-doc">'.</span>
<span class="org-doc">Prioritize buffers that do not have associated files, such as Org Src</span>
<span class="org-doc">buffers or *scratch*. Note that the fallback search uses \"^([</span><span class="org-doc"><span class="org-negation-char">^</span></span><span class="org-doc"> )]+\" so that</span>
<span class="org-doc">it isn't confused by preceding forms.</span>

<span class="org-doc">If LIBRARY is specified, fall back to FN.</span>

<span class="org-doc">Activate this with:</span>

<span class="org-doc">(advice-add 'find-function-search-for-symbol</span>
<span class="org-doc"> :around #'sacha-org-babel-find-function-search-for-symbol-in-dotemacs)"</span>
  (<span class="org-keyword">if</span> (null library)
      <span class="org-comment-delimiter">;; </span><span class="org-comment">Could not find library; search my-dotemacs-file just in case</span>
      (<span class="org-keyword">progn</span>
        (<span class="org-keyword">while</span> (<span class="org-keyword">and</span> (symbolp symbol) (get symbol <span class="org-highlight-quoted-quote">'</span><span class="org-highlight-quoted-symbol">definition-name</span>))
          (<span class="org-keyword">setq</span> symbol (get symbol <span class="org-highlight-quoted-quote">'</span><span class="org-highlight-quoted-symbol">definition-name</span>)))
        (<span class="org-keyword">catch</span> <span class="org-highlight-quoted-quote">'</span><span class="org-constant">found</span>
          (mapc
           (<span class="org-keyword">lambda</span> (buffer-or-file)
             (<span class="org-keyword">with-current-buffer</span> (<span class="org-keyword">if</span> (bufferp buffer-or-file)
                                      buffer-or-file
                                    (find-file-noselect buffer-or-file))
               (<span class="org-keyword">let*</span> ((regexp-symbol
                       (<span class="org-keyword">or</span> (<span class="org-keyword">and</span> (symbolp symbol)
                                (alist-get type (get symbol <span class="org-highlight-quoted-quote">'</span><span class="org-highlight-quoted-symbol">find-function-type-alist</span>)))
                           (alist-get type find-function-regexp-alist)))
                      (form-matcher-factory
                       (<span class="org-keyword">and</span> (functionp (cdr-safe regexp-symbol))
                            (cdr regexp-symbol)))
                      (regexp-symbol (<span class="org-keyword">if</span> form-matcher-factory
                                         (car regexp-symbol)
                                       regexp-symbol))

                      (case-fold-search)
                      (regexp (<span class="org-keyword">if</span> (functionp regexp-symbol) regexp-symbol
                                (format (symbol-value regexp-symbol)
                                        <span class="org-comment-delimiter">;; </span><span class="org-comment">Entry for ` (backquote) macro in loaddefs.el,</span>
                                        <span class="org-comment-delimiter">;; </span><span class="org-comment">(defalias (quote \`)..., has a \ but</span>
                                        <span class="org-comment-delimiter">;; </span><span class="org-comment">(symbol-name symbol) doesn't.  Add an</span>
                                        <span class="org-comment-delimiter">;; </span><span class="org-comment">optional \ to catch this.</span>
                                        (concat <span class="org-string">"\\\\?"</span>
                                                (regexp-quote (symbol-name symbol)))))))
                 (<span class="org-keyword">save-restriction</span>
                   (widen)
                   (<span class="org-keyword">with-syntax-table</span> emacs-lisp-mode-syntax-table
                     (goto-char (point-min))
                     (<span class="org-keyword">if</span> (<span class="org-keyword">if</span> (functionp regexp)
                             (funcall regexp symbol)
                           (<span class="org-keyword">or</span> (re-search-forward regexp nil t)
                               <span class="org-comment-delimiter">;; </span><span class="org-comment">`</span><span class="org-comment"><span class="org-constant">regexp</span></span><span class="org-comment">' matches definitions using known forms like</span>
                               <span class="org-comment-delimiter">;; </span><span class="org-comment">`</span><span class="org-comment"><span class="org-constant">defun</span></span><span class="org-comment">', or `</span><span class="org-comment"><span class="org-constant">defvar</span></span><span class="org-comment">'.  But some functions/variables</span>
                               <span class="org-comment-delimiter">;; </span><span class="org-comment">are defined using special macros (or functions), so</span>
                               <span class="org-comment-delimiter">;; </span><span class="org-comment">if `</span><span class="org-comment"><span class="org-constant">regexp</span></span><span class="org-comment">' can't find the definition, we look for</span>
                               <span class="org-comment-delimiter">;; </span><span class="org-comment">something of the form "(SOMETHING &lt;symbol&gt; ...)".</span>
                               <span class="org-comment-delimiter">;; </span><span class="org-comment">This fails to distinguish function definitions from</span>
                               <span class="org-comment-delimiter">;; </span><span class="org-comment">variable declarations (or even uses thereof), but is</span>
                               <span class="org-comment-delimiter">;; </span><span class="org-comment">a good pragmatic fallback.</span>
                               (re-search-forward
                                (concat <span class="org-string">"^([</span><span class="org-string"><span class="org-negation-char">^</span></span><span class="org-string"> )]+"</span> find-function-space-re <span class="org-string">"['(]?"</span>
                                        (regexp-quote (symbol-name symbol))
                                        <span class="org-string">"\\_&gt;"</span>)
                                nil t)))
                         (<span class="org-keyword">progn</span>
                           (beginning-of-line)
                           (<span class="org-keyword">throw</span> <span class="org-highlight-quoted-quote">'</span><span class="org-constant">found</span>
                                   (cons (current-buffer) (point))))
                       (<span class="org-keyword">when-let*</span> ((find-expanded
                                    (<span class="org-keyword">when</span> (trusted-content-p)
                                      (find-function&#45;&#45;search-by-expanding-macros
                                       (current-buffer) symbol type
                                       form-matcher-factory))))
                         (<span class="org-keyword">throw</span> <span class="org-highlight-quoted-quote">'</span><span class="org-constant">found</span>
                                 (cons (current-buffer)
                                       find-expanded)))))))))
           (delq nil
                 (append
                  (sort
                   (match-buffers <span class="org-highlight-quoted-quote">'</span>(derived-mode . emacs-lisp-mode))
                   <span class="org-builtin">:key</span> (<span class="org-keyword">lambda</span> (o) (<span class="org-keyword">or</span> (buffer-file-name o) <span class="org-string">""</span>)))
                  sacha-elisp-find-function-search-extra)))))
    (funcall fn symbol type library)))
</code></pre>
</div>


<p>
I even figured out how to <span title="(ignore (ert &quot;sacha-elisp&#45;&#45;find-function-search-for-symbol&#45;&#45;.*&quot;))">write tests for it</span>:
</p>


<div class="org-src-container">
<pre class="src src-emacs-lisp"><code>(<span class="org-keyword">ert-deftest</span> <span class="org-function-name">sacha-elisp&#45;&#45;find-function-search-for-symbol&#45;&#45;in-buffer</span> ()
  (<span class="org-keyword">let</span> ((sym (make-temp-name <span class="org-string">"&#45;&#45;test-fn"</span>))
        buffer)
    (<span class="org-keyword">unwind-protect</span>
        (<span class="org-keyword">with-temp-buffer</span>
          (emacs-lisp-mode)
          (insert (format <span class="org-string">";; Comment\n(defun %s () (message \"Hello\"))"</span> sym))
          (eval-last-sexp nil)
          (<span class="org-keyword">setq</span> buffer (current-buffer))
          (<span class="org-keyword">with-temp-buffer</span>
            (<span class="org-keyword">let</span> ((pos (sacha-elisp-find-function-search-for-symbol nil (intern sym) nil nil)))
              (<span class="org-keyword">should</span> (equal (car pos) buffer))
              (<span class="org-keyword">should</span> (equal (cdr pos) 12)))))
      (fmakunbound (intern sym)))))

(<span class="org-keyword">ert-deftest</span> <span class="org-function-name">sacha-elisp&#45;&#45;find-function-search-for-symbol&#45;&#45;in-file</span> ()
  (<span class="org-keyword">let*</span> ((sym (make-temp-name <span class="org-string">"&#45;&#45;test-fn"</span>))
         (temp-file (make-temp-file
                     <span class="org-string">"test-"</span> nil <span class="org-string">".org"</span>
                     (format
                      <span class="org-string">"#+begin_src emacs-lisp\n;; Comment\n(defun %s () (message \"Hello\"))\n#+end_src"</span>
                      sym)))
         (sacha-elisp-find-function-search-extra (list temp-file))
         buffer)
    (<span class="org-keyword">unwind-protect</span>
        (<span class="org-keyword">with-temp-buffer</span>
          (<span class="org-keyword">let</span> ((pos (sacha-elisp-find-function-search-for-symbol nil (intern sym) nil nil)))
            (<span class="org-keyword">should</span> (equal (buffer-file-name (car pos)) temp-file))
            (<span class="org-keyword">should</span> (equal (cdr pos) 35))))
      (delete-file temp-file))))
</code></pre>
</div>


<div class="note">This is part of my <a href="https://sachachua.com/dotemacs#org-mode-org-babel-fix-find-function-when-i-ve-evaluated-something-from-org-babel">Emacs configuration.</a></div><div><a href="https://sachachua.com/blog/2026/04/ye11-fix-find-function-for-emacs-lisp-from-org-babel-or-scratch/index.org">View Org source for this post</a></div>
<p>You can <a href="https://social.sachachua.com/@sacha/statuses/01KNFTFSC3D0K7XH1JW1XTF6QG" 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%2F04%2Fye11-fix-find-function-for-emacs-lisp-from-org-babel-or-scratch%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>
		</item>
	</channel>
</rss>