WEBVTT

NOTE Warming up

00:00:08.560 --> 00:00:14.879
[Sacha]: All right. Hello, this is Yay Emacs 24, I think.

00:00:14.880 --> 00:00:19.039
And today I'm going to be talking to Prot,

00:00:19.040 --> 00:00:20.999
who is going to join eventually.

00:00:21.000 --> 00:00:24.119
In about five minutes is our scheduled time.

00:00:24.120 --> 00:00:26.999
And I want to pick his brain about newcomers,

00:00:27.000 --> 00:00:30.679
the newcomer experience for Emacs, the starter kits,

00:00:30.680 --> 00:00:33.799
what we can do to make it easier for people to get into Emacs,

00:00:33.800 --> 00:00:36.599
and how we can support lifelong learning.

00:00:36.600 --> 00:00:38.519
So let me spend a few minutes here

00:00:38.520 --> 00:00:41.239
getting all set up so that if you have any questions,

00:00:41.240 --> 00:00:44.319
you can use the YouTube chat during the live stream

00:00:44.320 --> 00:00:48.599
so that I can read your questions out loud to Prot.

00:00:48.600 --> 00:00:51.439
And also so that I can share everything.

00:00:51.440 --> 00:00:55.719
I think my audio is working.

00:00:55.720 --> 00:00:58.439
And also in the meantime,

00:00:58.440 --> 00:01:01.399
I can tell you what I've been doing lately.

00:01:01.400 --> 00:01:06.159
I have just posted a guide to newcomers presets,

00:01:06.160 --> 00:01:08.479
which is a new feature in Emacs 31.

00:01:08.480 --> 00:01:11.319
It's a theme that enables a bunch of defaults.

00:01:11.320 --> 00:01:14.199
Sorry, that changes a bunch of defaults

00:01:14.200 --> 00:01:19.759
to make it a little bit nicer for people.

00:01:19.760 --> 00:01:21.679
And let's see, what was that?

00:01:21.680 --> 00:01:25.279
I don't know what that sound just meant.

00:01:25.280 --> 00:01:30.919
Okay, Prot, it says he's in the Google Meet room.

00:01:30.920 --> 00:01:33.999
So I will now admit him.

00:01:34.000 --> 00:01:37.199
And I think we should be live.

00:01:37.200 --> 00:01:38.159
Fantastic.

00:01:38.160 --> 00:01:39.199
Hello.

00:01:39.200 --> 00:01:40.319
Hello, hello.

00:01:40.320 --> 00:01:41.079
All right.

00:01:41.080 --> 00:01:42.879
[Prot]: Hello, Sacha.

00:01:42.880 --> 00:01:43.639
Good day.

00:01:43.640 --> 00:01:44.999
[Sacha]: Hello, Prot.

00:01:45.000 --> 00:01:45.799
Good day.

00:01:45.800 --> 00:01:47.439
Thank you for joining early.

00:01:47.440 --> 00:01:53.279
I was just doing my pre-session panicking and warming up.

00:01:53.280 --> 00:01:54.159
But since you're here

00:01:54.160 --> 00:01:56.639
and since I have a hard stop in about one hour,

00:01:56.640 --> 00:01:57.959
a little over one hour

00:01:57.960 --> 00:01:59.999
since I have to make the kid a grilled cheese sandwich,

00:02:00.000 --> 00:02:01.599
let's dive right into it.

00:02:01.600 --> 00:02:02.919
[Prot]: Yes, yes.

00:02:02.920 --> 00:02:04.719
The grilled sandwich cannot wait.

00:02:04.720 --> 00:02:06.199
[Sacha]: No, no, no.

00:02:06.200 --> 00:02:07.479
She'll be hungry.

00:02:07.480 --> 00:02:11.479
So, the theme for the Emacs Carnival this month

00:02:11.480 --> 00:02:13.799
was newbies and starter kits.

00:02:13.800 --> 00:02:15.759
And it gives us a good excuse

00:02:15.760 --> 00:02:17.559
to start thinking about

00:02:17.560 --> 00:02:19.439
How do we make the Emacs experience

00:02:19.440 --> 00:02:21.039
better for new users?

00:02:21.040 --> 00:02:22.679
Now I know you probably have run into

00:02:22.680 --> 00:02:26.719
a lot of new users from the talks that you've been giving,

00:02:26.720 --> 00:02:30.919
the packages you make, everything, the coaching.

00:02:30.920 --> 00:02:33.879
So tell me about what you've been thinking

00:02:33.880 --> 00:02:36.619
about this so far.

NOTE C-g is supposed to get you out of everything, but it doesn't work for the minibuffer

00:02:36.620 --> 00:02:38.719
[Prot]: Yeah, yeah, yeah.

00:02:38.720 --> 00:02:41.639
So broadly speaking, there are a few pain points

00:02:41.640 --> 00:02:44.439
that I think every new user experiences.

00:02:44.440 --> 00:02:47.759
One is the behavior of C-g.

00:02:47.760 --> 00:02:49.999
The fact that you have the mini buffer open

00:02:50.000 --> 00:02:53.359
and you do C-g because C-g is supposed to get you

00:02:53.360 --> 00:02:54.959
out of where you are

00:02:54.960 --> 00:02:57.719
and the mini buffer will stay open by default.

00:02:57.720 --> 00:02:59.599
And I have seen people struggle live.

00:02:59.600 --> 00:03:01.879
It's like, oh, I am, you know,

00:03:01.880 --> 00:03:02.959
they have the mini buffer open,

00:03:02.960 --> 00:03:05.439
they click somewhere else, then they type C-g,

00:03:05.440 --> 00:03:06.799
the mini buffer stays there,

00:03:06.800 --> 00:03:07.999
and they're like, what is happening?

00:03:08.000 --> 00:03:09.159
Why is this not working?

00:03:09.160 --> 00:03:10.439
It stopped working.

00:03:10.440 --> 00:03:11.559
That's the one thing.

NOTE 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.

00:03:11.560 --> 00:03:14.639
The other big area where a lot of people,

00:03:14.640 --> 00:03:17.519
not just beginners, struggle with is

00:03:17.520 --> 00:03:20.639
anything related to display buffers,

00:03:20.640 --> 00:03:22.639
which can be configured, of course,

00:03:22.640 --> 00:03:25.879
via the display-buffer-alist.

00:03:25.880 --> 00:03:28.719
And some of the common pain points with that

00:03:28.720 --> 00:03:33.759
are the fact that many windows do not focus by default.

00:03:33.760 --> 00:03:35.919
For example, you open a helper buffer,

00:03:35.920 --> 00:03:38.239
it doesn't focus the window by default.

00:03:38.240 --> 00:03:40.399
So if you want to type q to dismiss it,

00:03:40.400 --> 00:03:43.039
you have to switch to it, then type q.

00:03:43.040 --> 00:03:45.559
You do a care, it doesn't focus a care by default.

00:03:45.560 --> 00:03:47.759
You have to go there and then interact with it.

00:03:47.760 --> 00:03:49.079
These sorts of things.

00:03:49.080 --> 00:03:52.679
And then there are a few other things.

00:03:52.680 --> 00:03:54.279
I have written some settings

00:03:54.280 --> 00:03:55.959
that I can share with you as well.

00:03:55.960 --> 00:03:58.479
Maybe I can, I don't know,

00:03:58.480 --> 00:04:02.079
email them to you and then you can...

00:04:02.080 --> 00:04:03.279
I don't hear you now.

00:04:03.280 --> 00:04:03.959
One second.

00:04:03.960 --> 00:04:06.039
[Sacha]: Sorry, I turned on mute.

00:04:06.040 --> 00:04:07.639
Do you want to share your screen?

00:04:07.640 --> 00:04:09.279
Because that's another thing you can do.

00:04:09.280 --> 00:04:11.079
[Prot]: Yes, of course, of course, of course.

00:04:11.080 --> 00:04:14.799
But I meant to say that, so I have this here,

00:04:14.800 --> 00:04:17.959
and I was of course about to write a blog post and all that.

00:04:17.960 --> 00:04:20.159
Let me increase the font size.

00:04:20.160 --> 00:04:23.039
Is this font size okay or is it too small?

00:04:23.040 --> 00:04:24.479
[Sacha]: Oh, this is good.

00:04:24.480 --> 00:04:24.519
Yeah, yeah, yeah.

00:04:24.520 --> 00:04:26.479
[Prot]: Okay, so I have written a few things,

00:04:26.480 --> 00:04:28.799
so I don't have to go through all of them.

NOTE
Good defaults
#+SCREENSHOT: /home/sacha/proj/yay-emacs/mpv-shot0004.jpg
#+SCREENSHOT_TIME: 00:04:28.800
#+SCREENSHOT_CROP: 147 119 924 775

00:04:28.800 --> 00:04:32.859
But these are basically good defaults

00:04:32.860 --> 00:04:35.059
based on what I have noticed.

NOTE
How do I set my fonts? Which is the one I should be using?
#+SCREENSHOT: /home/sacha/proj/yay-emacs/mpv-shot0005.png
#+SCREENSHOT_TIME: 00:04:36.367
#+SCREENSHOT_CROP: 164 466 842 899

00:04:35.160 --> 00:04:37.319
Another thing that is really common is

00:04:37.320 --> 00:04:39.959
how do I actually set my fonts, right?

00:04:39.960 --> 00:04:41.559
Because there are like

00:04:41.560 --> 00:04:43.679
a million ways to do this as well.

00:04:43.680 --> 00:04:45.079
And the people are like, okay,

00:04:45.080 --> 00:04:47.319
but which is the one that I should be using?

00:04:47.320 --> 00:04:50.559
And of course, when I pick one option,

00:04:50.560 --> 00:04:53.559
I don't mean to say that this is the right option,

00:04:53.560 --> 00:04:56.479
but it's just to not be technical about it.

00:04:56.480 --> 00:05:01.459
Like, okay, just use this and forget about it.

NOTE
#+SCREENSHOT: /home/sacha/proj/yay-emacs/mpv-shot0006.jpg
#+SCREENSHOT_TIME: 00:05:01.467
#+SCREENSHOT_CROP: 102 330 829 903

00:05:01.460 --> 00:05:06.759
A few other settings and a few common packages.

00:05:06.760 --> 00:05:10.799
And at the end of this... Oh, sorry.

00:05:10.800 --> 00:05:13.539
I have to really make this point.

NOTE
ediff is unusable by default for everyone, not just newcomers
#+SCREENSHOT: /home/sacha/proj/yay-emacs/mpv-shot0007.jpg
#+SCREENSHOT_TIME: 00:05:13.567
#+SCREENSHOT_CROUP: 130 400 683 587

00:05:13.540 --> 00:05:16.399
Ediff by default is unusable.

00:05:16.400 --> 00:05:19.239
Out of the box, Ediff is literally unusable.

00:05:19.240 --> 00:05:20.479
I cannot excuse that.

00:05:20.480 --> 00:05:21.759
Everything else I can excuse,

00:05:21.760 --> 00:05:22.799
this is not excusable.

00:05:22.800 --> 00:05:23.319
Sorry.

00:05:23.320 --> 00:05:28.359
This is the minimum viable setup for it.

00:05:28.360 --> 00:05:31.079
[Sacha]: So maybe that's something to suggest

00:05:31.080 --> 00:05:34.559
for newcomer presets or maybe even the defaults.

00:05:34.560 --> 00:05:36.239
[Prot]: I would say the defaults.

00:05:36.240 --> 00:05:38.159
This is not a newcomer thing.

00:05:38.160 --> 00:05:40.839
Basically, if you want to have that default layout,

00:05:40.840 --> 00:05:44.439
you just have to opt into it.

00:05:44.440 --> 00:05:48.239
Sorry if I'm offending anyone,

00:05:48.240 --> 00:05:49.439
but I don't mean to say that.

00:05:49.440 --> 00:05:52.479
You have to consider the ergonomics of it.

NOTE Packages to install


00:05:52.480 --> 00:05:54.519
And then towards the bottom of this list,

00:05:54.520 --> 00:05:57.239
some packages, third party packages.

00:05:57.240 --> 00:06:00.079
that I recommend for installation.

00:06:00.080 --> 00:06:01.479
This is not exhaustive.

00:06:01.480 --> 00:06:03.359
I try to be minimalist here.

00:06:03.360 --> 00:06:06.039
So, of course, there are many, many good,

00:06:06.040 --> 00:06:08.479
excellent, top-notch packages

00:06:08.480 --> 00:06:10.319
that I don't recommend here.

00:06:10.320 --> 00:06:11.719
And, for example, I don't recommend

00:06:11.720 --> 00:06:13.159
any of my packages here.

00:06:13.160 --> 00:06:16.439
But I just included some for people to get started.

00:06:16.440 --> 00:06:21.559
[Sacha]: So it sounds like we should have a Prot starter kit.

00:06:21.560 --> 00:06:24.519
[Prot]: No, no.

00:06:24.520 --> 00:06:28.919
I already have too many packages that I maintain.

NOTE People muddle through, but it's confusing

00:06:28.920 --> 00:06:30.039
[Sacha]: It also sounds like

00:06:30.040 --> 00:06:32.239
you are talking to a lot of newbies

00:06:32.240 --> 00:06:33.759
and you are hearing about

00:06:33.760 --> 00:06:36.439
a lot of pain points and frustrations.

00:06:36.440 --> 00:06:41.439
How are people finding information in the first place?

00:06:41.440 --> 00:06:44.519
How are people finding this information?

00:06:44.520 --> 00:06:46.999
Do people tell you about

00:06:47.000 --> 00:06:52.879
their experience of getting into Emacs?

00:06:52.880 --> 00:06:54.999
Where are they finding the stuff?

00:06:55.000 --> 00:06:57.039
How do they find their way to you?

00:06:57.040 --> 00:07:00.119
[Prot]: Generally they muddle through.

00:07:00.120 --> 00:07:03.999
So they will find a blog post,

00:07:04.000 --> 00:07:08.879
they will find a video, they will just do some search.

00:07:08.880 --> 00:07:09.559
Now, of course,

00:07:09.560 --> 00:07:12.559
there is also LLMs providing feedback.

00:07:12.560 --> 00:07:15.559
So it's a combination of all those

00:07:15.560 --> 00:07:17.239
and they try to piece together

00:07:17.240 --> 00:07:21.839
whatever kind of knowledge those sources provide.

00:07:21.840 --> 00:07:25.319
The thing with the newcomer experience is that

00:07:25.320 --> 00:07:27.999
there isn't a curation of content.

00:07:28.000 --> 00:07:30.759
Like of course you were doing

00:07:30.760 --> 00:07:31.999
that thing with the wiki, right?

00:07:32.000 --> 00:07:34.039
So of course you are working towards that.

00:07:34.040 --> 00:07:37.199
But what I mean is there are like options like,

00:07:37.200 --> 00:07:40.519
oh, you can do it in these 10 different ways.

00:07:40.520 --> 00:07:42.559
But for a newcomer,

00:07:42.560 --> 00:07:46.079
this is just details that don't make sense.

00:07:46.080 --> 00:07:48.519
Because the newcomer cannot weigh

00:07:48.520 --> 00:07:50.239
the pros and cons of each option,

00:07:50.240 --> 00:07:52.519
or even if they have pros and cons,

00:07:52.520 --> 00:07:54.359
or they are just different ways

00:07:54.360 --> 00:07:56.079
of expressing the same intent.

00:07:56.080 --> 00:07:57.719
Such as with the fonts, for example.

00:07:57.720 --> 00:07:59.399
You can do the frame fonts,

00:07:59.400 --> 00:08:01.199
or the faces, or whatever.

00:08:01.200 --> 00:08:05.199
[Sacha]: Okay, so if there was something more curated,

00:08:05.200 --> 00:08:06.479
what would that look like?

00:08:06.480 --> 00:08:08.879
I know you spend a lot of time thinking about the,

00:08:08.880 --> 00:08:11.479
you know, the information architecture of your documentation,

00:08:11.480 --> 00:08:13.039
which is the lovely thing about your pack,

00:08:13.040 --> 00:08:15.279
one of the many lovely things about your packages.

00:08:15.280 --> 00:08:16.959
But what could that kind of

00:08:16.960 --> 00:08:20.419
newcomer experience look like for documentation?

NOTE The wiki might be a good approach for the community. Start here.

00:08:20.420 --> 00:08:21.759
[Prot]: What you were doing with the wiki,

00:08:21.760 --> 00:08:25.479
I think is the right approach from a community perspective,

00:08:25.480 --> 00:08:28.359
meaning like, yeah, here is the single point of entry.

00:08:28.360 --> 00:08:30.839
Take it from there.

00:08:30.840 --> 00:08:32.519
Basically, don't look elsewhere.

00:08:32.520 --> 00:08:33.959
Start with this.

00:08:33.960 --> 00:08:35.679
No matter what you do, start with this.

00:08:35.680 --> 00:08:37.439
I think that's a good approach

00:08:37.440 --> 00:08:39.359
and basically in the community

00:08:39.360 --> 00:08:41.639
we should be agreeing on that.

00:08:41.640 --> 00:08:44.359
I didn't see all of your videos yesterday.

00:08:44.360 --> 00:08:46.199
I don't have the time to watch all of it.

00:08:46.200 --> 00:08:48.279
But basically on the Emacs subreddit,

00:08:48.280 --> 00:08:51.079
which is basically where a lot of people find information.

00:08:51.080 --> 00:08:54.199
That's the first thing that should be on the sidebar

00:08:54.200 --> 00:08:56.559
or basically it could even be pinned

00:08:56.560 --> 00:09:00.439
on the on the top of the tips and tricks section,

00:09:00.440 --> 00:09:01.839
the thread there.

00:09:01.840 --> 00:09:04.159
So that's the one thing.

00:09:04.160 --> 00:09:05.039
Yes, please.

00:09:05.040 --> 00:09:08.319
[Sacha]: Yes, so the Emacs subreddit does have

00:09:08.320 --> 00:09:10.639
in its sidebar a link to the Emacs Wiki.

00:09:10.640 --> 00:09:13.039
Not calling out the Emacs Newbie page specifically,

00:09:13.040 --> 00:09:14.199
but there is a page.

00:09:14.200 --> 00:09:16.479
There's a link to the Emacs Newbie page

00:09:16.480 --> 00:09:18.879
from the Emacs Wiki homepage, I think.

00:09:18.880 --> 00:09:21.679
But yeah, as long as we can come up with

00:09:21.680 --> 00:09:25.079
a reasonably coherent starting point for people,

00:09:25.080 --> 00:09:26.679
then that will inevitably show up

00:09:26.680 --> 00:09:27.839
in people's recommendations

00:09:27.840 --> 00:09:29.559
as they respond to all these threads.

00:09:29.560 --> 00:09:33.039
[Prot]: Yes, yes, very well, very well.

NOTE The direction of the newcomers theme is nice

00:09:33.040 --> 00:09:35.519
Other than that, I really like

00:09:35.520 --> 00:09:37.959
the direction of the newcomers theme.

00:09:37.960 --> 00:09:41.479
I don't know exactly now

00:09:41.480 --> 00:09:44.639
if newcomers theme works in practice.

00:09:44.640 --> 00:09:46.199
Like, I don't know what happens

00:09:46.200 --> 00:09:48.359
if you do Emacs disable-heme,

00:09:48.360 --> 00:09:50.439
or specifically what I mean.

NOTE
#+SCREENSHOT: /home/sacha/proj/yay-emacs/mpv-shot0002.jpg
#+SCREENSHOT_TIME: 00:10:01.967
#+SCREENSHOT_CROP: 138 417 477 460

00:09:50.440 --> 00:09:51.879
I haven't tried this

00:09:51.880 --> 00:09:56.639
but what I mean if you do this: mapc disable-theme right,

00:09:56.640 --> 00:09:58.879
the custom enabled theme

00:09:58.880 --> 00:10:00.519
maybe you have seen this right

00:10:00.520 --> 00:10:03.159
so you want to disable all the other themes

00:10:03.160 --> 00:10:04.759
before loading your theme right

00:10:04.760 --> 00:10:07.159
I'm sure somebody has written something like this

00:10:07.160 --> 00:10:08.359
maybe I have done it

00:10:08.360 --> 00:10:09.799
and then it's like you know

00:10:09.800 --> 00:10:11.759
load your favorite theme now right

00:10:11.760 --> 00:10:15.399
and then you do your favorite theme or whatever

00:10:15.400 --> 00:10:18.279
For example, here.

00:10:18.280 --> 00:10:19.839
So in this case, I don't know

00:10:19.840 --> 00:10:21.079
what happens to the newcomers theme.

00:10:21.080 --> 00:10:23.079
I will assume that it will disable it.

00:10:23.080 --> 00:10:26.759
In which case, I think that has to be prevented.

00:10:26.760 --> 00:10:28.759
[Sacha]: Oh, but then it wouldn't be treated

00:10:28.760 --> 00:10:30.439
the same as other things.

00:10:30.440 --> 00:10:32.319
[Prot]: Which you can do.

00:10:32.320 --> 00:10:35.599
Which you can do, for example, if I go to Fontaine.

00:10:35.600 --> 00:10:37.999
And of course, I got this from use-package.

00:10:38.000 --> 00:10:41.959
But you can do it with a synthetic theme.

00:10:41.960 --> 00:10:45.239
So there is a little trick you can do.

NOTE Themes versus minor modes

00:10:45.240 --> 00:10:51.439
[Sacha]: I was looking at newcomers presets recently,

00:10:51.440 --> 00:10:54.999
and when I was trying to make instructions for people

00:10:55.000 --> 00:10:56.079
to actually use this stuff,

00:10:56.080 --> 00:10:58.439
I ended up leaning towards just telling them

00:10:58.440 --> 00:11:00.239
to use either the splash screen, of course,

00:11:00.240 --> 00:11:02.239
or M-x customize-themes,

00:11:02.240 --> 00:11:05.359
from where they can check and uncheck things

00:11:05.360 --> 00:11:08.799
if they wanted additional themes layered on top of that.

00:11:08.800 --> 00:11:11.679
It's not like you can't uncheck it

00:11:11.680 --> 00:11:12.919
and then all of your settings

00:11:12.920 --> 00:11:14.519
go back to what they were before.

00:11:14.520 --> 00:11:16.479
Some of the things are still left over.

00:11:16.480 --> 00:11:20.559
[Prot]: That's why I like the direction.

00:11:20.560 --> 00:11:23.639
I'm not sure if it should be a theme though.

00:11:23.640 --> 00:11:25.319
I think it should be a minor mode.

00:11:25.320 --> 00:11:28.559
And the minor mode should be like

00:11:28.560 --> 00:11:31.559
here is the opinionated settings

00:11:31.560 --> 00:11:33.119
and here are the default settings.

00:11:33.120 --> 00:11:36.199
[Sacha]: Do we already have like a mechanism

00:11:36.200 --> 00:11:40.519
for letting minor modes override the variables in a nice way

00:11:40.520 --> 00:11:43.439
but let you go back to the previous version?

00:11:43.440 --> 00:11:45.399
Because it's not just

00:11:45.400 --> 00:11:47.919
restoring the default customized ones either.

00:11:47.920 --> 00:11:51.599
[Prot]: I do something like that in Logos

00:11:51.600 --> 00:11:55.159
but I'm not sure to be honest right now

00:11:55.160 --> 00:11:56.959
how I even do it.

00:11:56.960 --> 00:12:00.839
Set arg and maybe this was a wrong time ago

00:12:00.840 --> 00:12:03.719
so I cannot even recall what exactly I was doing

00:12:03.720 --> 00:12:07.879
but actually this was contributed by Daniel Mendler

00:12:07.880 --> 00:12:12.199
so of course something like this

00:12:12.200 --> 00:12:13.959
could be added to Core Emacs

00:12:13.960 --> 00:12:16.719
as part of the newcomers theme eventually.

00:12:16.720 --> 00:12:19.439
If not, somewhere in core anyway.

NOTE People think of themes as styles, not arbitrary customizations

00:12:19.440 --> 00:12:20.919
But I think it shouldn't be a theme.

00:12:20.920 --> 00:12:23.239
Basically, I like the idea,

00:12:23.240 --> 00:12:25.119
I don't think it's the right tool.

00:12:25.120 --> 00:12:26.879
Because themes are...

00:12:26.880 --> 00:12:30.199
It's also confusing language, you know?

00:12:30.200 --> 00:12:33.879
Because theme, when you talk to the average person,

00:12:33.880 --> 00:12:36.319
they will think of the style.

00:12:36.320 --> 00:12:39.799
And they won't think about arbitrary customizations.

00:12:39.800 --> 00:12:41.399
Whereas in Emacs we have

00:12:41.400 --> 00:12:43.519
this idiosyncratic conception of theme

00:12:43.520 --> 00:12:49.279
where it's like any kind of a user option as well as faces.

00:12:49.280 --> 00:12:52.599
[Sacha]: So it sounds like if it were a package

00:12:52.600 --> 00:13:01.399
that defined a minor mode that people could turn on and off

00:13:01.400 --> 00:13:10.359
Even better, yes, exactly.

00:13:10.360 --> 00:13:18.279
[Prot]: And there is this user option.

00:13:18.280 --> 00:13:23.759
I forget, do I even have it here for the built-in packages?

00:13:23.760 --> 00:13:25.759
I don't remember if I added it here.

00:13:25.760 --> 00:13:32.799
No, there is something like update the built-in packages.

00:13:32.800 --> 00:13:35.239
Yeah, so there is an option like that.

00:13:35.240 --> 00:13:37.679
So, of course, it could be like built into

00:13:37.680 --> 00:13:41.559
Emacs 31 as well as ELPA, kind of like Eglot.

00:13:41.560 --> 00:13:46.079
And then users could be like, okay, update this.

00:13:46.080 --> 00:13:47.599
So going forward, they can also

00:13:47.600 --> 00:13:49.879
benefit from whatever comes from Emacs 31.

00:13:49.880 --> 00:13:55.279
Or, you know, the development target of Emacs going forward.

NOTE Listing changes for newcomers-presets

00:13:55.280 --> 00:13:57.599
[Sacha]: One of the challenges that I encountered

00:13:57.600 --> 00:14:00.799
when I was starting to play around with newcomers presets

00:14:00.800 --> 00:14:04.119
or other things like that is that

00:14:04.120 --> 00:14:07.079
it turns on all these options,

00:14:07.080 --> 00:14:10.599
but there's no easy way for people to say,

00:14:10.600 --> 00:14:14.359
okay, this is what has changed.

00:14:14.360 --> 00:14:16.639
This is how to use it.

00:14:16.640 --> 00:14:21.199
So I've started documenting that.

00:14:21.200 --> 00:14:24.799
And I think this is a challenge generally

00:14:24.800 --> 00:14:27.439
for many of the starter kits.

00:14:27.440 --> 00:14:29.399
It takes already a lot of work

00:14:29.400 --> 00:14:31.839
to make the configuration

00:14:31.840 --> 00:14:37.679
and maybe answer people's questions or

00:14:37.680 --> 00:14:42.639
It's a tricky situation how best to do it.

00:14:42.640 --> 00:14:47.239
[Prot]: I guess the natural place for that is the manual.

00:14:47.240 --> 00:14:50.119
And the manual, I believe right now

00:14:50.120 --> 00:14:53.759
the manual mentions something along the lines of, well,

00:14:53.760 --> 00:14:56.679
newcomers can just toggle this on kind of thing,

00:14:56.680 --> 00:15:01.199
but it doesn't really tell them what that will entail.

00:15:01.200 --> 00:15:03.559
So I think it's worth actually

00:15:03.560 --> 00:15:06.639
keeping track of all the changes and be like, well,

00:15:06.640 --> 00:15:10.679
the newcomers theme will change this and that and the other.

00:15:10.680 --> 00:15:13.759
And it could just be a bullet point of items.

00:15:13.760 --> 00:15:15.319
Maybe it doesn't have to go into

00:15:15.320 --> 00:15:18.079
all the technicalities like, hey, we are changing,

00:15:18.080 --> 00:15:21.879
I don't know, the isearch so that it shows the counter.

00:15:21.880 --> 00:15:24.359
By default, it doesn't show the counter, right?

00:15:24.360 --> 00:15:26.599
Like, it doesn't need to be as detailed.

00:15:26.600 --> 00:15:27.759
It can just say, okay,

00:15:27.760 --> 00:15:29.959
these are the user options that are affected.

00:15:29.960 --> 00:15:32.159
[Sacha]: or the minor modes that are enabled.

00:15:32.160 --> 00:15:34.239
You know, the specific

00:15:34.240 --> 00:15:39.879
commands and variable settings, whatever.

00:15:39.880 --> 00:15:42.519
It's like, how do I combine

00:15:42.520 --> 00:15:47.799
these different concepts to do something?

00:15:47.800 --> 00:15:51.719
Or taking a step back further,

00:15:51.720 --> 00:15:57.879
something we've talked about in previous conversations,

00:15:57.880 --> 00:15:59.959
how do I even begin to learn

00:15:59.960 --> 00:16:02.679
this overwhelming number of concepts?

00:16:02.680 --> 00:16:04.959
You know, how do I start to memorize

00:16:04.960 --> 00:16:06.479
all these keyboard shortcuts?

00:16:06.480 --> 00:16:10.379
And I'm not sure we have a lot of support for that yet.

NOTE Terminology is also a challenge

00:16:10.380 --> 00:16:13.819
[Prot]: No, because I think part of the challenge here

00:16:13.820 --> 00:16:15.319
is the terminology.

00:16:15.320 --> 00:16:18.519
For example, if we say completion

00:16:18.520 --> 00:16:20.239
like me and you and other users,

00:16:20.240 --> 00:16:22.479
we kind of know what we are talking about, right?

00:16:22.480 --> 00:16:27.279
So minibuffer and orderless and all that, right?

00:16:27.280 --> 00:16:30.759
But if the user wants to express

00:16:30.760 --> 00:16:34.399
something along the lines, they may say the search box.

00:16:34.400 --> 00:16:39.639
Or, you know, like the interaction panel or whatever.

00:16:39.640 --> 00:16:42.319
So they don't have a language

00:16:42.320 --> 00:16:44.119
of the completion framework

00:16:44.120 --> 00:16:46.159
or the mini buffer or whatever.

00:16:46.160 --> 00:16:48.999
So even then it can be tricky for them

00:16:49.000 --> 00:16:51.999
to kind of narrow down what they are searching for.

NOTE Maybe documentation aliases?

00:16:52.000 --> 00:16:54.719
And maybe then it makes sense

00:16:54.720 --> 00:16:59.159
to also think in terms of clusters of configuration,

00:16:59.160 --> 00:17:00.639
kind of what starter kits do

00:17:00.640 --> 00:17:02.879
with the various modules they define.

00:17:02.880 --> 00:17:06.639
And you can have aliases for them.

00:17:06.640 --> 00:17:09.039
Aliases in the manual, I mean.

00:17:09.040 --> 00:17:11.399
Like in the manual, if you type i,

00:17:11.400 --> 00:17:13.919
it goes to the index, right?

00:17:13.920 --> 00:17:16.359
And you can have a concept index.

00:17:16.360 --> 00:17:20.919
So you can have a concept index

00:17:20.920 --> 00:17:23.559
for the search panel or whatever.

00:17:23.560 --> 00:17:25.839
And that means the minibuffer and friends.

00:17:25.840 --> 00:17:28.559
[Sacha]: So it's like we're doing search engine optimization

00:17:28.560 --> 00:17:31.999
so that people can find things with the words that they use.

00:17:32.000 --> 00:17:34.519
I'm not sure that will be in the Emacs manual itself,

00:17:34.520 --> 00:17:36.399
but one of the things I've appreciated

00:17:36.400 --> 00:17:37.679
about people sharing their notes

00:17:37.680 --> 00:17:39.559
through blog posts and things like that

00:17:39.560 --> 00:17:42.879
is because they're using their words to describe a concept,

00:17:42.880 --> 00:17:44.719
and they're linking it to the code

00:17:44.720 --> 00:17:46.759
that uses the words that Emacs does.

00:17:46.760 --> 00:17:50.479
So then people can then say, oh, I'm looking for this.

00:17:50.480 --> 00:17:52.919
It's actually called this in the Emacs world.

00:17:52.920 --> 00:17:54.479
But this takes time for people

00:17:54.480 --> 00:17:56.239
to kind of make those connections.

NOTE Learning Emacs as a nonprogrammer

00:17:56.240 --> 00:17:57.399
What was it like

00:17:57.400 --> 00:17:59.799
if you can look back to like 2019

00:17:59.800 --> 00:18:00.999
when you were learning all of this stuff

00:18:01.000 --> 00:18:01.759
for the first time?

00:18:01.760 --> 00:18:04.039
What was it like for you as a non-programmer

00:18:04.040 --> 00:18:05.559
to come into this world

00:18:05.560 --> 00:18:07.599
where people are using all these strange terms?

00:18:07.600 --> 00:18:11.119
[Prot]: Yeah, it was a challenge for sure.

00:18:11.120 --> 00:18:12.399
But I think actually

00:18:12.400 --> 00:18:16.319
the fact that I started out as a beginner,

00:18:16.320 --> 00:18:19.279
as a beginner into programming, I mean,

00:18:19.280 --> 00:18:21.319
benefited me in the sense

00:18:21.320 --> 00:18:23.399
that I was a blank slate.

00:18:23.400 --> 00:18:26.399
I don't have to unlearn terms.

00:18:26.400 --> 00:18:30.479
So I didn't have a concept of, okay,

00:18:30.480 --> 00:18:34.519
in other, I don't know, programming IDEs, for example,

00:18:34.520 --> 00:18:37.799
they call this the narrowing framework or

00:18:37.800 --> 00:18:38.519
whatever.

00:18:38.520 --> 00:18:39.679
I was like, completion.

00:18:39.680 --> 00:18:41.639
Okay, let's move on.

00:18:41.640 --> 00:18:45.319
It was the first time I was introduced to such concepts.

00:18:45.320 --> 00:18:47.119
So I think in that sense, I was lucky.

00:18:47.120 --> 00:18:51.639
That granted, there is a lot of reading involved.

00:18:51.640 --> 00:18:55.159
I was reading the manual and learning from it.

00:18:55.160 --> 00:18:58.959
[Sacha]: And that's something I do too.

00:18:58.960 --> 00:19:01.439
I mean, I'll still casually flip through

00:19:01.440 --> 00:19:03.559
the Emacs manual or the Org manual

00:19:03.560 --> 00:19:05.279
because every time you read it,

00:19:05.280 --> 00:19:07.359
there's something else that catches your eye

00:19:07.360 --> 00:19:09.399
and makes you think, how do I use that?

00:19:09.400 --> 00:19:10.599
How do I do that?

00:19:10.600 --> 00:19:12.999
And I like that, you know,

00:19:13.000 --> 00:19:14.839
you and Mickey Peterson and other people

00:19:14.840 --> 00:19:17.639
have also been organizing these thoughts

00:19:17.640 --> 00:19:19.999
into like a linear arrangement

00:19:20.000 --> 00:19:22.359
of logical progression.

00:19:22.360 --> 00:19:24.599
So that's the books that

00:19:24.600 --> 00:19:27.399
There aren't a lot of books about Emacs

00:19:27.400 --> 00:19:29.119
that people can read.

NOTE Emacs Lisp Elements

00:19:29.120 --> 00:19:31.759
But how do people get to something like

00:19:31.760 --> 00:19:33.439
your Emacs Lisp elements?

00:19:33.440 --> 00:19:36.399
How do we support their learning journey from,

00:19:36.400 --> 00:19:38.199
I have absolutely no idea

00:19:38.200 --> 00:19:39.719
how to do anything in Emacs

00:19:39.720 --> 00:19:41.479
to, okay, I'm ready to read this book

00:19:41.480 --> 00:19:42.399
and get stuff out of it?

00:19:42.400 --> 00:19:44.479
[Prot]: Yeah, yeah.

00:19:44.480 --> 00:19:46.439
When I recommend that book,

00:19:46.440 --> 00:19:48.359
I recommend it to people

00:19:48.360 --> 00:19:50.439
who have already decided

00:19:50.440 --> 00:19:52.199
that Emacs is the right tool for them.

00:19:52.200 --> 00:19:54.839
So I would basically say, look,

00:19:54.840 --> 00:19:59.079
Elisp is for you if you are already sold on Emacs,

00:19:59.080 --> 00:20:01.319
because what Elisp gives you

00:20:01.320 --> 00:20:04.239
is that extra you need

00:20:04.240 --> 00:20:06.399
to make Emacs do what you want,

00:20:06.400 --> 00:20:08.359
basically to tap into

00:20:08.360 --> 00:20:10.759
the potential programmability of Emacs.

00:20:10.760 --> 00:20:12.799
But to get to that point,

00:20:12.800 --> 00:20:14.919
you have already been convinced

00:20:14.920 --> 00:20:17.639
that you already like Emacs.

00:20:17.640 --> 00:20:22.079
If you don't vibe with it at the outset,

00:20:22.080 --> 00:20:24.239
you won't learn Elisp,

00:20:24.240 --> 00:20:28.699
not least because it's a niche language.

NOTE Getting the hang of Emacs

00:20:28.700 --> 00:20:30.479
[Sacha]: Okay, so how do we get people to the point

00:20:30.480 --> 00:20:32.599
where they can vibe with Emacs?

00:20:32.600 --> 00:20:34.959
Where they can appreciate it?

00:20:34.960 --> 00:20:36.879
Because when they start off,

00:20:36.880 --> 00:20:38.799
it's this clunky text editor

00:20:38.800 --> 00:20:40.519
that has these weird keyboard shortcuts

00:20:40.520 --> 00:20:41.919
and strange terms,

00:20:41.920 --> 00:20:44.119
and all we can do is offer them

00:20:44.120 --> 00:20:46.999
videos and blog posts from people who say,

00:20:47.000 --> 00:20:47.959
this is totally awesome.

00:20:47.960 --> 00:20:49.199
I've been using it for three years

00:20:49.200 --> 00:20:52.479
or 20 years or whatever, and I love it.

00:20:52.480 --> 00:20:54.159
That's the light at the end of the tunnel,

00:20:54.160 --> 00:20:56.159
but there's a lot of tunnel to get through.

00:20:56.160 --> 00:20:58.839
[Prot]: correct correct correct it's difficult

00:20:58.840 --> 00:21:02.319
and i think that's why something like the newcomers theme

00:21:02.320 --> 00:21:04.319
ultimately is the way forward

00:21:04.320 --> 00:21:06.319
where it's like yeah opt into this

00:21:06.320 --> 00:21:08.799
and that's already a good set of defaults

00:21:08.800 --> 00:21:11.759
and i think what really matters

00:21:11.760 --> 00:21:13.279
is to reach a point

00:21:13.280 --> 00:21:15.839
where you can actually open your files

00:21:15.840 --> 00:21:17.839
actually move around

00:21:17.840 --> 00:21:21.999
and that happens with the very basics

00:21:22.000 --> 00:21:23.879
like that happens with the tutorial already

00:21:23.880 --> 00:21:26.039
what the tutorial doesn't give you

00:21:26.040 --> 00:21:27.959
is the basic interface,

00:21:27.960 --> 00:21:28.959
such as the mini-buffer.

00:21:28.960 --> 00:21:31.199
The default mini-buffer,

00:21:31.200 --> 00:21:33.079
I don't think it's good for beginners.

00:21:33.080 --> 00:21:36.159
Actually, maybe it's not even

00:21:36.160 --> 00:21:37.879
good for advanced users, but that's another.

00:21:37.880 --> 00:21:43.239
You have to have a few of the basic packages enabled,

00:21:43.240 --> 00:21:47.199
and then the tutorial, I think, is enough for that initial push.

00:21:47.200 --> 00:21:50.359
Then, of course, it's also up to the user

00:21:50.360 --> 00:21:51.519
to do some reading,

00:21:51.520 --> 00:21:54.519
based on what you will provide them with.

00:21:54.520 --> 00:21:57.639
[Sacha]: I know when I was trying this,

00:21:57.640 --> 00:21:59.519
I started a fresh Emacs

00:21:59.520 --> 00:22:01.559
so that I could see what it's like

00:22:01.560 --> 00:22:03.119
when people don't have their

00:22:03.120 --> 00:22:06.239
accumulated cruft of 20 years of configuration.

00:22:06.240 --> 00:22:09.079
And I was like, I need some kind of completion

00:22:09.080 --> 00:22:11.039
that I don't have to keep pressing tab for.

00:22:11.040 --> 00:22:14.319
So maybe Fido vertical mode can be part of that,

00:22:14.320 --> 00:22:16.679
you know, standard, at least in ?? or whatever,

00:22:16.680 --> 00:22:17.359
that would be nice.

00:22:17.360 --> 00:22:19.199
But yeah, there are

00:22:19.200 --> 00:22:20.839
a lot of these niceties

00:22:20.840 --> 00:22:22.279
that reduce the friction

00:22:22.280 --> 00:22:24.599
enough that people can then

00:22:24.600 --> 00:22:26.519
start enjoying things more and more.

NOTE Getting help when you have a starter kit

00:22:28.960 --> 00:22:31.279
Newcomers presets are some kind of starter kit.

00:22:31.280 --> 00:22:34.199
They're great at getting people over that initial hump.

00:22:34.200 --> 00:22:36.199
But the challenge with starter kits

00:22:36.200 --> 00:22:38.519
and probably things like the newcomers presets

00:22:38.520 --> 00:22:41.959
has also been that when people ask for help,

00:22:41.960 --> 00:22:44.799
it's hard because they don't know the things

00:22:44.800 --> 00:22:46.239
that have changed under the hood.

00:22:46.240 --> 00:22:47.479
So they're asking for help

00:22:47.480 --> 00:22:48.719
and the people who are helping them are like,

00:22:48.720 --> 00:22:51.199
I don't know what's going on there.

00:22:51.200 --> 00:22:56.639
[Prot]: More so if the starter kit has its own macros

00:22:56.640 --> 00:22:57.679
and way of doing things,

00:22:57.680 --> 00:22:59.359
such as Doom Emacs.

00:22:59.360 --> 00:23:02.599
On the one hand, Doom Emacs does an excellent job

00:23:02.600 --> 00:23:04.319
at integrating everything,

00:23:04.320 --> 00:23:06.199
providing a polished experience,

00:23:06.200 --> 00:23:08.959
comprehensive configuration and so on.

00:23:08.960 --> 00:23:09.919
On the other hand,

00:23:09.920 --> 00:23:11.359
they have their own way of doing things

00:23:11.360 --> 00:23:12.839
like they have their own macros.

00:23:12.840 --> 00:23:15.959
You have to use Doom sync or whatever

00:23:15.960 --> 00:23:18.279
to do things from the command line.

00:23:18.280 --> 00:23:21.119
So somebody who is not using Doom

00:23:21.120 --> 00:23:23.719
basically has no means of knowing

00:23:23.720 --> 00:23:24.879
what is happening in that world.

00:23:24.880 --> 00:23:27.519
So that is definitely a challenge.

00:23:27.520 --> 00:23:31.559
So for me, a good starter kit is one that

00:23:31.560 --> 00:23:33.959
at the very least uses

00:23:33.960 --> 00:23:36.799
what a generic configuration would use,

00:23:36.800 --> 00:23:41.319
meaning no macros, no weird shell scripts

00:23:41.320 --> 00:23:42.679
and that sort of thing.

00:23:42.680 --> 00:23:46.119
[Sacha]: And I did spend some time going over

00:23:46.120 --> 00:23:49.639
the starter kit list in the Emacs wiki

00:23:49.640 --> 00:23:52.479
to try to sort it by minimalist,

00:23:52.480 --> 00:23:54.399
stays close to vanilla,

00:23:54.400 --> 00:23:57.399
all the way to the changes a lot of things about Emacs

00:23:57.400 --> 00:23:58.999
and you probably should ask

00:23:59.000 --> 00:24:00.999
the community of that starter kit first

00:24:01.000 --> 00:24:02.479
if you need help.

00:24:02.480 --> 00:24:05.599
So that's kind of like Doom Emacs and Spacemacs

00:24:05.600 --> 00:24:07.679
at that end of the spectrum

00:24:07.680 --> 00:24:10.359
and things like better defaults would be like at the

00:24:10.360 --> 00:24:14.239
Like just a little bit of smoothing over of things.

00:24:14.240 --> 00:24:16.679
But then also, it was interesting to see

00:24:16.680 --> 00:24:19.799
some of the starter kits focus on saying, okay,

00:24:19.800 --> 00:24:22.759
you don't have to write any code to extend this further.

00:24:22.760 --> 00:24:23.839
A lot of the things

00:24:23.840 --> 00:24:25.839
are available through Customize.

NOTE Customize is overwhelming for beginners

00:24:25.840 --> 00:24:29.559
Now, Customize is pretty overwhelming also

00:24:29.560 --> 00:24:30.999
for a newcomer.

00:24:31.000 --> 00:24:33.359
So how do we get people to the point

00:24:33.360 --> 00:24:35.959
where they might feel comfortable going through

00:24:35.960 --> 00:24:37.799
this Customize interface

00:24:37.800 --> 00:24:40.439
And saying, oh, I can find what I want to change

00:24:40.440 --> 00:24:41.679
and I can change it

00:24:41.680 --> 00:24:43.279
and I'm not worried about breaking everything.

00:24:43.280 --> 00:24:45.399
[Prot]: Yeah, I actually,

00:24:45.400 --> 00:24:48.199
when I was trying to use Customize with people,

00:24:48.200 --> 00:24:49.639
I gave it an honest try.

00:24:49.640 --> 00:24:50.719
Like, for example,

00:24:50.720 --> 00:24:52.479
we tried to do Emacs Customize

00:24:52.480 --> 00:24:53.919
the org capture templates.

00:24:53.920 --> 00:24:57.679
And I was seeing it live.

00:24:57.680 --> 00:24:58.999
Impossible for people

00:24:59.000 --> 00:25:00.359
to understand what is happening.

00:25:00.360 --> 00:25:01.879
Like, Customize has

00:25:01.880 --> 00:25:04.159
this concept of the insert button, right?

00:25:04.160 --> 00:25:06.199
So if you have a list of things,

00:25:06.200 --> 00:25:09.599
you can do insert to add the next element to the list.

00:25:09.600 --> 00:25:12.119
If you have an Elisp understanding

00:25:12.120 --> 00:25:14.039
of what you are actually interacting with,

00:25:14.040 --> 00:25:16.799
you kind of know what to do, right?

00:25:16.800 --> 00:25:19.399
But otherwise, I was seeing it live.

00:25:19.400 --> 00:25:19.639
It's like...

00:25:19.640 --> 00:25:22.079
I have no idea what is happening.

00:25:22.080 --> 00:25:23.359
What is this?

00:25:23.360 --> 00:25:27.119
So for me, my approach is basically

00:25:27.120 --> 00:25:29.119
skip customize altogether.

00:25:29.120 --> 00:25:30.519
For me, it's a lost cause.

00:25:30.520 --> 00:25:33.319
Unless it's completely rewritten,

00:25:33.320 --> 00:25:34.919
I mean in its current form,

00:25:34.920 --> 00:25:37.959
it's not good for beginners

00:25:37.960 --> 00:25:39.639
unless it's for toggles,

00:25:39.640 --> 00:25:42.599
like true or false kind of thing.

00:25:42.600 --> 00:25:44.879
If it's for anything more involved,

00:25:44.880 --> 00:25:46.919
it's not good.

00:25:46.920 --> 00:25:51.519
And what it is good for is for discovery,

00:25:51.520 --> 00:25:53.079
discovery of user options.

00:25:53.080 --> 00:25:56.839
But it presents the user options

00:25:56.840 --> 00:26:00.399
in a human-readable format

00:26:00.400 --> 00:26:02.279
which you cannot just copy-paste

00:26:02.280 --> 00:26:04.159
into your configuration.

00:26:04.160 --> 00:26:04.959
So, for example,

00:26:04.960 --> 00:26:06.839
it doesn't have the dashes for the names.

00:26:06.840 --> 00:26:11.799
[Sacha]: Yeah, and getting it out of

00:26:11.800 --> 00:26:13.279
the customized variables

00:26:13.280 --> 00:26:16.319
if you wanted to keep a nice clean Emacs is hard.

00:26:16.320 --> 00:26:17.599
Although I would say

00:26:17.600 --> 00:26:19.679
that's more of an intermediate level concern.

00:26:19.680 --> 00:26:21.519
When they start caring about having

00:26:21.520 --> 00:26:22.319
a beautiful Emacs

00:26:22.320 --> 00:26:23.679
that other people can learn from.

00:26:23.680 --> 00:26:25.319
A couple of comments in

00:26:25.320 --> 00:26:26.639
from people who are watching the stream.

00:26:26.640 --> 00:26:27.719
Hello, folks!

00:26:27.720 --> 00:26:28.399
Hello!

00:26:28.400 --> 00:26:31.119
@hajovonta6300 says, "Hi legends."

00:26:31.120 --> 00:26:35.639
@JacksonScholberg and @petertillemans2231 say,

00:26:35.640 --> 00:26:37.279
well, @JacksonScholberg says hi.

00:26:37.280 --> 00:26:41.039
@petertillemans2231 says, "I am not worthy."

00:26:41.040 --> 00:26:44.519
@takoverflow says, "Thank you for these streams."

00:26:44.520 --> 00:26:46.239
@ShaeErisson says, "I love Emacs

00:26:46.240 --> 00:26:48.239
but haven't really learned Elisp."

00:26:48.240 --> 00:26:50.959
And I know Shae has been using Emacs for a long time.

00:26:50.960 --> 00:26:52.119
So that's interesting

00:26:52.120 --> 00:26:55.759
that you have people who enjoy using Emacs.

00:26:55.760 --> 00:26:58.039
I don't know whether something

00:26:58.040 --> 00:26:59.959
is getting in their way

00:26:59.960 --> 00:27:02.279
when it comes to learning Emacs Lisp

00:27:02.280 --> 00:27:05.199
or whether it's just totally fine already

00:27:05.200 --> 00:27:06.119
the way it is.

00:27:06.120 --> 00:27:08.119
So that's different things.

00:27:08.120 --> 00:27:12.159
@JacksonScholberg says, oh, so @hajovonta6300 says,

00:27:12.160 --> 00:27:14.479
"you are worthy if you are willing to learn."

00:27:14.480 --> 00:27:17.959
Maybe the resources are there

00:27:17.960 --> 00:27:21.199
as people start digging into EmacsLisp.

00:27:21.200 --> 00:27:23.079
Maybe the combination of

00:27:23.080 --> 00:27:25.799
looking at other people's source code

00:27:25.800 --> 00:27:28.319
and trying to ask on Reddit or whatever is enough.

00:27:28.320 --> 00:27:31.999
@JacksonScholberg says," I vibe with Emacs

00:27:32.000 --> 00:27:33.679
after using other text editors

00:27:33.680 --> 00:27:35.839
that were not minimalist enough for my preferences,

00:27:35.840 --> 00:27:37.359
plus having experience

00:27:37.360 --> 00:27:39.759
with other open source software like Linux."

00:27:39.760 --> 00:27:41.479
@petertillemans2231 says,

00:27:41.480 --> 00:27:43.199
"Well, Emacs and minimalist in the same sentence.

00:27:43.200 --> 00:27:46.639
Strange concept, but I know what you mean."

00:27:46.640 --> 00:27:47.799
There's a whole spectrum

00:27:47.800 --> 00:27:49.519
of things you can do with Emacs, right?

00:27:49.520 --> 00:27:53.059
So yeah, people can just use basic Emacs.

NOTE debug-init

00:27:53.060 --> 00:27:55.199
And then @petertillemans2231 says,

00:27:55.200 --> 00:27:56.679
"I guess learn starters quickly

00:27:56.680 --> 00:27:58.079
to use emacs --debug-init.

00:27:58.080 --> 00:28:00.759
Maybe not in the first hour, but close to it.

00:28:00.760 --> 00:28:02.279
Close to tweaking.

00:28:02.280 --> 00:28:05.439
[Prot]: Yeah. Which of course doesn't help.

00:28:05.440 --> 00:28:07.199
It's very useful, of course,

00:28:07.200 --> 00:28:08.599
but it doesn't help beginners

00:28:08.600 --> 00:28:10.279
because they cannot read the backtrace.

00:28:10.280 --> 00:28:12.439
[Sacha]: Yeah, it is hard to navigate

00:28:12.440 --> 00:28:13.959
even for people who are experienced

00:28:13.960 --> 00:28:16.079
like there's a whole bunch of things

00:28:16.080 --> 00:28:17.039
and what you need to change

00:28:17.040 --> 00:28:17.959
is like a small thing

00:28:17.960 --> 00:28:19.359
and you don't know about edebug

00:28:19.360 --> 00:28:20.759
and all that other stuff.

00:28:20.760 --> 00:28:23.159
[Prot]: But of course debugging it

00:28:23.160 --> 00:28:24.559
many times of course

00:28:24.560 --> 00:28:26.079
it is a lifesaver for sure.

00:28:26.080 --> 00:28:27.959
[Sacha]: Yeah, and I think

00:28:27.960 --> 00:28:30.159
a lot of these things can be stepped around

00:28:30.160 --> 00:28:32.159
if you have, you know, like you,

00:28:32.160 --> 00:28:34.119
someone more experienced with Emacs

00:28:34.120 --> 00:28:35.439
to watch over your shoulder

00:28:35.440 --> 00:28:37.959
either in person or virtually and say,

00:28:37.960 --> 00:28:40.319
you know, do it this way instead,

00:28:40.320 --> 00:28:43.039
or have you heard about this package?

00:28:43.040 --> 00:28:44.159
But this is an experience

00:28:44.160 --> 00:28:46.359
that I think not a lot of people have

00:28:46.360 --> 00:28:49.319
because many times they're isolated, right?

00:28:49.320 --> 00:28:53.279
They're the only Emacs person they know around them.

00:28:53.280 --> 00:28:54.879
And maybe they'll go to meet up,

00:28:54.880 --> 00:28:57.039
but maybe they're intimidated by the idea

00:28:57.040 --> 00:28:59.159
of asking about their beginner problem

00:28:59.160 --> 00:29:00.719
with all these other people

00:29:00.720 --> 00:29:03.319
talking about arcane Emacs list things.

00:29:03.320 --> 00:29:05.039
So how do we get people to the point

00:29:05.040 --> 00:29:06.119
where they can get help?

NOTE Getting help: partially bridged by LLMs?

00:29:06.120 --> 00:29:11.039
[Prot]: Yeah, I think this is partially bridged.

00:29:11.040 --> 00:29:13.879
This gap is partially bridged by LLMs.

00:29:13.880 --> 00:29:18.439
Like a lot of people will just check with a bot

00:29:18.440 --> 00:29:20.479
and get something useful out of it

00:29:20.480 --> 00:29:23.119
and basically continue from there.

00:29:23.120 --> 00:29:24.759
And that's why I said earlier

00:29:24.760 --> 00:29:25.839
they muddle through

00:29:25.840 --> 00:29:29.039
because LLMs of course will give you what you ask.

00:29:29.040 --> 00:29:32.279
So if you kind of don't know what to ask,

00:29:32.280 --> 00:29:34.919
you will get something that may be useful,

00:29:34.920 --> 00:29:38.279
maybe needs a further tweak to it.

00:29:38.280 --> 00:29:40.639
That's why sometimes it's hit or miss.

00:29:40.640 --> 00:29:43.719
[Sacha]: And I am seeing that in

00:29:43.720 --> 00:29:46.679
a lot of the discussion threads now.

00:29:46.680 --> 00:29:48.919
Of course, people are concerned about

00:29:48.920 --> 00:29:49.959
the environmental impacts

00:29:49.960 --> 00:29:51.679
and the ethical considerations

00:29:51.680 --> 00:29:53.079
around large language models,

00:29:53.080 --> 00:29:54.519
but there are also people who are saying,

00:29:54.520 --> 00:29:56.959
you know, this is what helped me

00:29:56.960 --> 00:29:58.679
write my first bit of Emacs Lisp,

00:29:58.680 --> 00:30:00.919
or this is what helped me figure out

00:30:00.920 --> 00:30:01.919
how to configure Emacs

00:30:01.920 --> 00:30:04.079
to do the thing that I wanted to do.

00:30:04.080 --> 00:30:05.759
So for that, I'm like, okay,

00:30:05.760 --> 00:30:07.519
then maybe there's something there.

00:30:07.520 --> 00:30:09.559
Challenge, of course,

00:30:09.560 --> 00:30:11.159
if it's hallucinating something,

00:30:11.160 --> 00:30:12.039
you're like, no,

00:30:12.040 --> 00:30:13.919
that function does not actually exist.

00:30:13.920 --> 00:30:15.199
You got to do it this other way.

00:30:15.200 --> 00:30:17.839
But if you can get them over some of the humps,

00:30:17.840 --> 00:30:19.959
maybe that's useful for them.

00:30:19.960 --> 00:30:21.839
[Prot]: Yes, yes, yes.

00:30:21.840 --> 00:30:24.919
I think, of course, it's not 100% good,

00:30:24.920 --> 00:30:28.159
but I think it is, on the balance,

00:30:28.160 --> 00:30:30.319
I think it is good.

00:30:30.320 --> 00:30:34.719
[Sacha]: So when people are too embarrassed

00:30:34.720 --> 00:30:37.599
or too intimidated to ask people in person,

00:30:37.600 --> 00:30:38.959
and when I go to these meetups,

00:30:38.960 --> 00:30:40.719
everyone's always super friendly.

00:30:40.720 --> 00:30:42.959
Sometimes we're live debugging

00:30:42.960 --> 00:30:45.999
someone's configuration or someone's function

00:30:46.000 --> 00:30:46.999
in real time.

00:30:47.000 --> 00:30:49.359
But sometimes that is a little difficult

00:30:49.360 --> 00:30:52.639
for people to get to for schedule or other reasons.

00:30:52.640 --> 00:30:54.919
There are other ways to understand something

00:30:54.920 --> 00:31:01.279
and ask questions about it and figure it out.

NOTE Things people don't even know about

00:31:01.280 --> 00:31:03.679
But sometimes you don't even know

00:31:03.680 --> 00:31:04.839
what to ask questions about.

00:31:04.840 --> 00:31:07.119
How do we help people in that situation

00:31:07.120 --> 00:31:08.639
where they don't even know

00:31:08.640 --> 00:31:10.799
that they're doing something inefficiently

00:31:10.800 --> 00:31:14.519
and that the solution for their problems

00:31:14.520 --> 00:31:16.999
is just one package away?

00:31:17.000 --> 00:31:19.359
How do we help?

00:31:19.360 --> 00:31:22.399
[Prot]: That's difficult

00:31:22.400 --> 00:31:24.519
because it's on a case-by-case basis.

00:31:24.520 --> 00:31:26.919
I think you cannot optimize for that

00:31:26.920 --> 00:31:31.559
because each person will have different intuitions

00:31:31.560 --> 00:31:34.359
or different pain points, let's say.

00:31:34.360 --> 00:31:37.839
And maybe you can do it by having

00:31:37.840 --> 00:31:40.639
the most exhaustive kind of documentation

00:31:40.640 --> 00:31:43.599
with the equivalent of search engine optimization,

00:31:43.600 --> 00:31:44.719
as you were saying earlier.

00:31:44.720 --> 00:31:46.759
But I think eventually

00:31:46.760 --> 00:31:48.839
people will still have questions

00:31:48.840 --> 00:31:51.639
and even the formulation of the question

00:31:51.640 --> 00:31:52.879
may be idiosyncratic.

00:31:52.880 --> 00:31:55.319
So even if the concept is there,

00:31:55.320 --> 00:31:58.039
the way it is presented,

00:31:58.040 --> 00:32:00.159
you might not have a perfect match.

00:32:00.160 --> 00:32:03.639
[Sacha]: And the idiosyncrasy of things

00:32:03.640 --> 00:32:07.759
is something that it's definitely a challenge for us

00:32:07.760 --> 00:32:08.919
when we're working with Emacs

00:32:08.920 --> 00:32:12.119
because everyone has their own way of doing things

00:32:12.120 --> 00:32:14.159
and everyone therefore has their own...

00:32:14.160 --> 00:32:17.719
How they set it up

00:32:17.720 --> 00:32:20.959
or the keyboard shortcuts that they use

00:32:20.960 --> 00:32:23.999
or the ways that they want the functions to work.

00:32:24.000 --> 00:32:28.759
Even trying to write documentation to say,

00:32:28.760 --> 00:32:30.759
if you're learning this,

00:32:30.760 --> 00:32:33.759
you might want to check out this stuff next,

00:32:33.760 --> 00:32:35.679
I have a hard time figuring out

00:32:35.680 --> 00:32:38.479
how to make that make sense

00:32:38.480 --> 00:32:39.719
to as many people as possible

00:32:39.720 --> 00:32:42.359
without overwhelming them with 20 different questions.

NOTE Filling in the blanks

00:32:42.360 --> 00:32:44.799
[Prot]: That's the difficult part.

00:32:44.800 --> 00:32:46.679
Actually, I think that's the part

00:32:46.680 --> 00:32:47.919
where you have to assume

00:32:47.920 --> 00:32:49.479
that people will fill in the blanks.

00:32:49.480 --> 00:32:50.879
For example, I think yesterday

00:32:50.880 --> 00:32:52.399
you were doing this thing where,

00:32:52.400 --> 00:32:54.639
well, somebody needs to use Git,

00:32:54.640 --> 00:32:56.399
but what is even Git?

00:32:56.400 --> 00:32:58.639
So you have to even know about Git, right?

00:32:58.640 --> 00:33:01.479
And that's recursive because, well,

00:33:01.480 --> 00:33:02.679
how do you install Git?

00:33:02.680 --> 00:33:03.719
Well, you need a terminal.

00:33:03.720 --> 00:33:04.919
What is a terminal, right?

00:33:04.920 --> 00:33:07.279
Well, you need to have this thing called Linux.

00:33:07.280 --> 00:33:10.199
What is a Linux?

00:33:10.200 --> 00:33:13.599
So basically at some point you have to just say

00:33:13.600 --> 00:33:16.159
like I will give you as much as I can

00:33:16.160 --> 00:33:19.079
but I will limit it to the scope of this

00:33:19.080 --> 00:33:20.199
like Emacs basically.

00:33:20.200 --> 00:33:23.799
Because otherwise it has infinite scope.

00:33:23.800 --> 00:33:25.719
[Sacha]: And I find that hyperlinks

00:33:25.720 --> 00:33:26.719
help a lot with that then

00:33:26.720 --> 00:33:27.999
because we can say,

00:33:28.000 --> 00:33:30.119
if you need a more detailed description,

00:33:30.120 --> 00:33:31.479
you can go over there.

00:33:31.480 --> 00:33:34.959
So now I'm trying to make it easier for myself

00:33:34.960 --> 00:33:36.039
whenever I say, oh yeah,

00:33:36.040 --> 00:33:37.319
put this in your .emacs.

NOTE .emacs

00:33:37.320 --> 00:33:39.079
I'm just like, oh, I'm just going to link to

00:33:39.080 --> 00:33:40.959
the Emacs wiki page on init files.

00:33:40.960 --> 00:33:42.839
Because there's this whole discussion

00:33:42.840 --> 00:33:44.119
that you have to have about

00:33:44.120 --> 00:33:45.439
what is your .emacs

00:33:45.440 --> 00:33:49.359
and sometimes it's actually your .emacs.d/init.el

00:33:49.360 --> 00:33:54.039
but sometimes it's actually your .config/emacs/init.el

00:33:54.040 --> 00:33:58.679
and, like, pass that off to a page to explain all that stuff.

00:33:58.680 --> 00:34:00.519
[Prot]: Actually I want to say something about this

00:34:00.520 --> 00:34:01.879
because now it reminded me.

00:34:01.880 --> 00:34:05.639
So many people nowadays

00:34:05.640 --> 00:34:10.759
will use .emacs.d/init.el or .config/emacs/init.el

00:34:10.760 --> 00:34:12.759
But Emacs defaults to reading

00:34:12.760 --> 00:34:14.719
the .emacs file from your home directory.

00:34:14.720 --> 00:34:17.279
And I had this case where a user

00:34:17.280 --> 00:34:19.279
was writing their init file

00:34:19.280 --> 00:34:21.439
in one of those specified locations,

00:34:21.440 --> 00:34:24.919
but they did something with Emacs Customize beforehand

00:34:24.920 --> 00:34:28.919
and Emacs Customize wrote to the .emacs file.

00:34:28.920 --> 00:34:30.679
So they were loading Emacs

00:34:30.680 --> 00:34:31.759
and nothing was showing up

00:34:31.760 --> 00:34:32.839
and they were like, what is wrong?

00:34:32.840 --> 00:34:33.799
My init file is there.

00:34:33.800 --> 00:34:35.199
Why is it not working?

00:34:35.200 --> 00:34:37.159
I'm loading, you know, this dark thing.

00:34:37.160 --> 00:34:37.999
Why is it white?

00:34:38.000 --> 00:34:39.119
or whatever.

00:34:39.120 --> 00:34:41.999
And eventually it was because of the .emacs file.

00:34:42.000 --> 00:34:45.039
I'm not sure how best to resolve that

00:34:45.040 --> 00:34:47.679
given that you want to also be backward compatible.

00:34:47.680 --> 00:34:49.319
[Sacha]: No, no, no.

00:34:49.320 --> 00:34:49.599
Okay.

00:34:49.600 --> 00:34:51.239
So when I tell people just, you know,

00:34:51.240 --> 00:34:53.679
here's the link to the init file page in the Emacs wiki,

00:34:53.680 --> 00:34:56.919
it also includes a describe-variable user-init-file,

00:34:56.920 --> 00:34:59.799
which will tell you which one is actually loading.

00:34:59.800 --> 00:35:02.719
And I have a to-do to suggest on emacs-devel,

00:35:02.720 --> 00:35:04.639
if they haven't already discussed it endlessly,

00:35:04.640 --> 00:35:06.479
that maybe there should be kind of like

00:35:06.480 --> 00:35:08.959
a M-x find-user-init-file

00:35:08.960 --> 00:35:11.559
that just opens that specific file.

00:35:11.560 --> 00:35:13.319
Would be nice. But yeah.

00:35:13.320 --> 00:35:15.719
Going back to the chat

00:35:15.720 --> 00:35:17.999
because people have been sharing

00:35:18.000 --> 00:35:19.039
great comments as well.

00:35:19.040 --> 00:35:22.239
Shae says, "I learned about new Emacs packages

00:35:22.240 --> 00:35:24.039
by pairing with other users and asking,

00:35:24.040 --> 00:35:25.839
how did you do that thing?"

00:35:25.840 --> 00:35:29.279
Which I think is a great thing for screencasts.

00:35:29.280 --> 00:35:31.999
People sharing videos as well

00:35:32.000 --> 00:35:34.279
because when people share a video,

00:35:34.280 --> 00:35:35.799
sometimes they see things

00:35:35.800 --> 00:35:37.279
that they wouldn't have mentioned

00:35:37.280 --> 00:35:40.799
because they totally take advantage of it.

00:35:40.800 --> 00:35:45.079
It's just something they take for granted.

00:35:45.080 --> 00:35:46.239
For example, in your live stream

00:35:46.240 --> 00:35:48.039
package maintenance sessions,

00:35:48.040 --> 00:35:49.679
I'm sure you've had this a couple of times.

00:35:49.680 --> 00:35:50.359
People are asking,

00:35:50.360 --> 00:35:52.239
what is that that you just did?

00:35:52.240 --> 00:35:54.999
Videos are great for this.

00:35:55.000 --> 00:35:59.359
[Prot]: Let me open the door for my puppy.

00:35:59.360 --> 00:36:00.559
I'll be back.

00:36:00.560 --> 00:36:02.799
[Sacha]: In the meantime,

00:36:02.800 --> 00:36:05.839
let's see if there's anything here

00:36:05.840 --> 00:36:07.559
I can address by myself.

00:36:07.560 --> 00:36:09.479
The puppies cannot wait.

00:36:09.480 --> 00:36:13.879
[Prot]: No, the puppies cannot wait.

00:36:13.880 --> 00:36:16.279
[Sacha]: Small mammals in general are like,

00:36:16.280 --> 00:36:19.519
they need us, they need us.

00:36:19.520 --> 00:36:25.359
@hajovonta6300 says, "I used Emacs since 2010

00:36:25.360 --> 00:36:26.359
and had become a power user,

00:36:26.360 --> 00:36:27.439
but in the last year,

00:36:27.440 --> 00:36:30.079
I feel LLMs took over most of the tasks

00:36:30.080 --> 00:36:32.879
I usually solved with Emacs."

00:36:32.880 --> 00:36:35.399
I mean actually it's a bit of a tangent here

00:36:35.400 --> 00:36:36.959
but we're seeing that also with

00:36:36.960 --> 00:36:40.079
some of the long-term users of Emacs

00:36:40.080 --> 00:36:41.559
moving on to other editors

00:36:41.560 --> 00:36:44.159
because whatever they had customized

00:36:44.160 --> 00:36:46.239
on top of Emacs

00:36:46.240 --> 00:36:52.159
could be replicated by a custom application

00:36:52.160 --> 00:36:52.719
written by an LLM.

00:36:52.720 --> 00:36:53.999
The movement is going both ways.

00:36:54.000 --> 00:36:55.639
People leaving Emacs for other things,

00:36:55.640 --> 00:36:57.399
people coming into Emacs

00:36:57.400 --> 00:36:59.559
because LLMs can help them with stuff.

00:36:59.560 --> 00:37:01.599
So I just wanted to mention that

00:37:01.600 --> 00:37:03.999
because things are happening.

NOTE Discovery and the info manual

00:37:04.000 --> 00:37:04.399
@petertillemans2231 says,

00:37:04.400 --> 00:37:06.799
"Emacs documentation is very extensive,

00:37:06.800 --> 00:37:11.519
but I feel discovery of the docs is a problem for new users."

00:37:11.520 --> 00:37:13.039
And I want to dig into that a bit more.

00:37:13.040 --> 00:37:18.359
How do we help with this discovery thing?

00:37:18.360 --> 00:37:19.519
[Prot]: In the info manuals,

00:37:19.520 --> 00:37:21.799
if you know two key bindings,

00:37:21.800 --> 00:37:22.759
it really helps a lot.

00:37:22.760 --> 00:37:24.359
One is g, the other is i.

00:37:24.360 --> 00:37:27.399
But you have to have completion already set up,

00:37:27.400 --> 00:37:30.199
like vertico-mode, for example.

00:37:30.200 --> 00:37:32.799
[Sacha]: I also like using s for search.

00:37:32.800 --> 00:37:34.679
[Prot]: Or s for search.

00:37:34.680 --> 00:37:37.039
Those help a lot,

00:37:37.040 --> 00:37:39.679
because then you can jump

00:37:39.680 --> 00:37:41.959
to a node or an index.

00:37:41.960 --> 00:37:44.399
Without those navigating,

00:37:44.400 --> 00:37:48.119
the manuals can feel cumbersome.

00:37:48.120 --> 00:37:51.639
That granted, we are back to the point

00:37:51.640 --> 00:37:54.599
where the user also has to do some research on their own.

00:37:54.600 --> 00:37:59.599
You cannot compensate for drive, motivation.

00:37:59.600 --> 00:38:01.719
No matter how much we write,

00:38:01.720 --> 00:38:05.399
no matter how many themes or minor modes we define,

00:38:05.400 --> 00:38:07.679
the user also has to be searching.

00:38:07.680 --> 00:38:11.479
[Sacha]: Yeah. And it's going back

00:38:11.480 --> 00:38:13.639
to the challenge of being overwhelmed.

00:38:13.640 --> 00:38:15.319
You know, sometimes it's difficult

00:38:15.320 --> 00:38:19.279
for new users to say, okay, there's so much to learn.

00:38:19.280 --> 00:38:21.799
How do I scope this so that I don't go crazy?

00:38:21.800 --> 00:38:24.119
You know, what is the most important thing

00:38:24.120 --> 00:38:25.359
that I need to learn about first?

00:38:25.360 --> 00:38:27.999
And then what is the tiniest step after that

00:38:28.000 --> 00:38:30.079
that I can take? And so forth.

00:38:30.080 --> 00:38:31.919
Otherwise, it's just like,

00:38:31.920 --> 00:38:34.379
I want to learn about everything.

NOTE Address your immediate need; small steps

00:38:34.380 --> 00:38:36.039
[Prot]: Based on the discussions I have had,

00:38:36.040 --> 00:38:41.079
I think the consensus is address your immediate needs.

00:38:41.080 --> 00:38:43.839
For example, you want to write a to-do list,

00:38:43.840 --> 00:38:46.559
all you need to know at this early stage is Org Mode.

00:38:46.560 --> 00:38:48.119
And not all of Org,

00:38:48.120 --> 00:38:51.959
because Org has approximately one zillion commands.

00:38:51.960 --> 00:38:53.959
Just to-do and done.

00:38:53.960 --> 00:38:57.239
And maybe schedule a date.

00:38:57.240 --> 00:39:02.239
Just learn that, and by learning that,

00:39:02.240 --> 00:39:04.359
do that for a week, do it for a month,

00:39:04.360 --> 00:39:05.799
however long it takes

00:39:05.800 --> 00:39:08.839
for you to embed it as part of your knowledge .

00:39:08.840 --> 00:39:10.719
And then once you have done that,

00:39:10.720 --> 00:39:11.879
move on to the next thing.

00:39:11.880 --> 00:39:14.439
Like, okay, now that I am solid on my to-do's,

00:39:14.440 --> 00:39:16.319
how do I do the agenda, for example,

00:39:16.320 --> 00:39:19.359
and incrementally add to that.

00:39:19.360 --> 00:39:20.359
And the idea is

00:39:20.360 --> 00:39:23.079
by piecing together your system this way,

00:39:23.080 --> 00:39:24.919
you achieve two things.

00:39:24.920 --> 00:39:26.919
First, you build on

00:39:26.920 --> 00:39:29.199
a solid foundation of knowledge

00:39:29.200 --> 00:39:30.359
where you know what you are doing.

00:39:30.360 --> 00:39:32.799
And two, you understand

00:39:32.800 --> 00:39:34.479
how your system is pieced together.

00:39:34.480 --> 00:39:35.799
So if something breaks,

00:39:35.800 --> 00:39:37.279
you already have an intuition

00:39:37.280 --> 00:39:39.159
of what it could be.

00:39:39.160 --> 00:39:41.079
Even if you don't know Emacs Lisp,

00:39:41.080 --> 00:39:43.239
you can guess like, oh,

00:39:43.240 --> 00:39:44.759
I added this thing the other day

00:39:44.760 --> 00:39:46.239
and now my Emacs is broken.

00:39:46.240 --> 00:39:48.279
So probably the breakage is there.

00:39:48.280 --> 00:39:52.079
[Sacha]: And this decomposing it

00:39:52.080 --> 00:39:53.679
into those tiny steps

00:39:53.680 --> 00:39:55.239
so that you can piece them together

00:39:55.240 --> 00:39:56.319
and build slowly

00:39:56.320 --> 00:39:58.799
understanding each step along the way

00:39:58.800 --> 00:40:02.119
is something that new people struggle with

00:40:02.120 --> 00:40:04.439
because they don't have experience

00:40:04.440 --> 00:40:06.119
to know what the small step is.

00:40:06.120 --> 00:40:07.719
And I think that's where

00:40:07.720 --> 00:40:10.879
coaching and mentoring and you know sometimes

00:40:10.880 --> 00:40:12.639
If you're lucky enough

00:40:12.640 --> 00:40:14.479
to be able to sit with somebody

00:40:14.480 --> 00:40:17.919
who says, okay, your next step is just to do this.

00:40:17.920 --> 00:40:20.159
That would be super lucky.

00:40:20.160 --> 00:40:22.999
But most people will just have to content themselves

00:40:23.000 --> 00:40:26.159
with sometimes there's a playlist of videos

00:40:26.160 --> 00:40:27.599
that they can follow in sequence.

00:40:27.600 --> 00:40:30.479
Or maybe there's someone, you know,

00:40:30.480 --> 00:40:34.119
maybe they'll post on Reddit saying, okay, I know this.

00:40:34.120 --> 00:40:35.679
What should I learn next?

00:40:35.680 --> 00:40:40.199
I just wish it were easier for us to say...

00:40:40.200 --> 00:40:45.559
Let's imagine this from the helper point of view.

00:40:45.560 --> 00:40:48.239
How do we make it easier for people to say,

00:40:48.240 --> 00:40:51.439
all right, this is where you are.

00:40:51.440 --> 00:40:54.959
Here's some things that you can look into next.

00:40:54.960 --> 00:40:56.919
What do you do when you're coaching someone?

00:40:56.920 --> 00:40:59.519
[Prot]: Yes, I always ask them

00:40:59.520 --> 00:41:01.199
what their needs are.

00:41:01.200 --> 00:41:03.159
There are some needs which are common.

00:41:03.160 --> 00:41:04.279
For example, completion.

00:41:04.280 --> 00:41:07.079
Vertico, for example, I think

00:41:07.080 --> 00:41:08.919
basically everybody can benefit

00:41:08.920 --> 00:41:10.599
unless you have a really special use case.

00:41:10.600 --> 00:41:13.119
But other than that, it's like, well,

00:41:13.120 --> 00:41:14.839
we don't need to fix everything.

00:41:14.840 --> 00:41:16.719
Let's understand what your needs are.

00:41:16.720 --> 00:41:19.119
Let's work towards that goal.

00:41:19.120 --> 00:41:23.839
And one way to break it down also conceptually

00:41:23.840 --> 00:41:26.039
is with use-package blocks.

00:41:26.040 --> 00:41:28.199
I think use-package is an excellent, of course,

00:41:28.200 --> 00:41:29.759
it's an excellent tool in its own right,

00:41:29.760 --> 00:41:32.799
but it's an excellent way of saying,

00:41:32.800 --> 00:41:33.359
you know what?

00:41:33.360 --> 00:41:34.919
This is one thing.

00:41:34.920 --> 00:41:36.679
This is one step.

00:41:36.680 --> 00:41:38.559
And this is the next step.

00:41:38.560 --> 00:41:40.839
And so people can start thinking

00:41:40.840 --> 00:41:45.919
in terms of each use-package is a step.

NOTE :config and setq is nicer than :custom for C-x C-e purposes (eval-last-sexp)

00:41:45.920 --> 00:41:46.879
[Sacha]: I sometimes feel like

00:41:46.880 --> 00:41:47.999
I'm going back and forth.

00:41:48.000 --> 00:41:49.199
use-package is nice

00:41:49.200 --> 00:41:52.559
because it allows us to add the hooks

00:41:52.560 --> 00:41:54.719
and say this stuff happens

00:41:54.720 --> 00:41:55.919
after the package is loaded,

00:41:55.920 --> 00:41:57.839
so I don't have to keep having

00:41:57.840 --> 00:41:59.279
lots of with-eval-after-load.

00:41:59.280 --> 00:42:00.279
But on the other hand,

00:42:00.280 --> 00:42:02.239
it becomes harder for people

00:42:02.240 --> 00:42:04.479
to copy and paste things

00:42:04.480 --> 00:42:07.159
because then they have to know

00:42:07.160 --> 00:42:09.359
it needs to go inside the use-package.

00:42:09.360 --> 00:42:11.679
Do I use the custom keyword

00:42:11.680 --> 00:42:13.799
or do I just use setq

00:42:13.800 --> 00:42:17.279
because it looks more copyable?

00:42:17.280 --> 00:42:18.439
[Prot]: This is why me,

00:42:18.440 --> 00:42:19.839
I don't use the custom.

00:42:19.840 --> 00:42:22.199
It's not that I have anything personal against it.

00:42:22.200 --> 00:42:24.239
It's that I found that it's unusable.

00:42:24.240 --> 00:42:26.719
If you have the equivalent of this in a custom,

00:42:26.720 --> 00:42:31.879
you cannot do C-x C-e.

00:42:31.880 --> 00:42:34.959
If you say use-package is syntactic sugar...

00:42:34.960 --> 00:42:36.399
I have read this before.

00:42:36.400 --> 00:42:40.719
To somebody who doesn't speak programming lingo,

00:42:40.720 --> 00:42:43.319
syntactic sugar doesn't mean anything.

00:42:43.320 --> 00:42:45.159
To me, it barely means anything

00:42:45.160 --> 00:42:47.199
after knowing all this stuff.

00:42:47.200 --> 00:42:50.519
So what does syntactic sugar actually mean?

00:42:50.520 --> 00:42:53.879
So what do I have to do to evaluate this, right?

00:42:53.880 --> 00:42:58.039
So I am like, okay, the more minimal you can do

00:42:58.040 --> 00:42:59.559
is just have a config

00:42:59.560 --> 00:43:01.359
and then you can do add-hook there,

00:43:01.360 --> 00:43:03.239
bind-key there or whatever.

00:43:03.240 --> 00:43:05.719
Granted, I don't do this here.

00:43:05.720 --> 00:43:06.879
I don't follow this.

00:43:06.880 --> 00:43:08.679
But I mean, if you want to have

00:43:08.680 --> 00:43:10.479
like a combination of what you were saying

00:43:10.480 --> 00:43:11.679
of the back and forth

00:43:11.680 --> 00:43:13.159
while still retaining use-package,

00:43:13.160 --> 00:43:16.119
you salvage that by doing the equivalent of this.

00:43:16.120 --> 00:43:17.359
Just this.

00:43:17.360 --> 00:43:19.439
And then everything goes under config.

00:43:19.440 --> 00:43:23.239
[Sacha]: And that's what I end up doing too.

00:43:23.240 --> 00:43:27.599
Just making it easier for me to change things

00:43:27.600 --> 00:43:30.879
and re-evaluate them with C-x C-e

00:43:30.880 --> 00:43:33.879
is definitely one of the major considerations.

00:43:33.880 --> 00:43:37.919
Okay, I've temporarily misplaced my...

00:43:37.920 --> 00:43:39.559
Some people are very lucky.

00:43:39.560 --> 00:43:42.519
They actually have an Emacs channel at work

00:43:42.520 --> 00:43:44.839
that they can ask for help

00:43:44.840 --> 00:43:48.799
or they can come across recommendations for.

00:43:48.800 --> 00:43:53.359
That's nice for learning, @Rossbaker9079 says.

00:43:53.360 --> 00:43:55.719
It's not a full replacement for these other ideas,

00:43:55.720 --> 00:43:57.279
but it brings together people

00:43:57.280 --> 00:43:59.679
solving the same problems with Emacs.

00:43:59.680 --> 00:44:01.319
Some people are lucky enough

00:44:01.320 --> 00:44:02.799
to work in a large company

00:44:02.800 --> 00:44:04.439
where other people are using Emacs.

00:44:04.440 --> 00:44:06.079
You should definitely take advantage of that.

00:44:06.080 --> 00:44:10.239
I hear there's actually a Discord server as well,

00:44:10.240 --> 00:44:11.639
and of course there's IRC,

00:44:11.640 --> 00:44:14.039
where people can also hang out

00:44:14.040 --> 00:44:16.479
and hear other people talk about Emacs,

00:44:16.480 --> 00:44:18.999
ask questions, learn from other people's questions.

00:44:19.000 --> 00:44:24.079
I don't think you hang out in IRC or any of these places.

00:44:24.080 --> 00:44:26.159
[Prot]: No, no.

00:44:26.160 --> 00:44:28.199
I haven't done it in a very long time.

00:44:28.200 --> 00:44:30.199
I have an account there on IRC.

00:44:30.200 --> 00:44:31.199
I think the last time I did,

00:44:31.200 --> 00:44:34.199
it was in the last EmacsConf I could attend,

00:44:34.200 --> 00:44:37.879
which is like maybe two or three years ago.

00:44:37.880 --> 00:44:39.919
I forgot already.

00:44:39.920 --> 00:44:42.239
[Sacha]: It's yet another thing

00:44:42.240 --> 00:44:44.999
that kind of distracts your attention.

00:44:45.000 --> 00:44:47.439
I also find Mastodon to be very helpful

00:44:47.440 --> 00:44:50.399
for this stream of little updates

00:44:50.400 --> 00:44:52.599
from people sharing their Emacs questions

00:44:52.600 --> 00:44:55.359
or their things that they've just figured out.

00:44:55.360 --> 00:44:58.559
That's another useful resource for people.

00:44:58.560 --> 00:45:01.279
I've started trying to get people...

00:45:01.280 --> 00:45:03.879
to support them in hooking up with this community,

00:45:03.880 --> 00:45:05.999
connecting with this community.

00:45:06.000 --> 00:45:08.279
The Emacs Newbie page has a link to learning Emacs,

00:45:08.280 --> 00:45:12.639
and one of those things says links to category community.

00:45:12.640 --> 00:45:15.279
Because if you're learning these things in isolation,

00:45:15.280 --> 00:45:16.999
you will get really, really stuck.

00:45:17.000 --> 00:45:18.999
And you will not progress.

00:45:19.000 --> 00:45:22.039
I think being able to connect with the Emacs community

00:45:22.040 --> 00:45:26.619
is great for inspiration and figuring things out.

00:45:26.620 --> 00:45:28.639
[Prot]: Yes, yes, I agree, I agree.

NOTE Culture of documentation and sharing

00:45:28.640 --> 00:45:31.439
Plus, it's another reason to hang out,

00:45:31.440 --> 00:45:34.279
basically, like the social aspect of it.

00:45:34.280 --> 00:45:35.919
Like, well, of course, I use it as a tool,

00:45:35.920 --> 00:45:38.879
but there is a cultural component to it.

00:45:38.880 --> 00:45:42.399
[Sacha]: So tell me, what is your impression

00:45:42.400 --> 00:45:44.519
of the Emacs culture so far?

00:45:44.520 --> 00:45:47.199
[Prot]: Oh, it's, of course,

00:45:47.200 --> 00:45:49.439
we are talking about people who stick around, right?

00:45:49.440 --> 00:45:51.959
Not people who will use Emacs once and then leave.

00:45:51.960 --> 00:45:53.839
I think fundamentally

00:45:53.840 --> 00:45:56.239
it's people who care about sharing.

00:45:56.240 --> 00:45:59.479
I think the essence of it, it's really sharing.

00:45:59.480 --> 00:46:02.479
And then, of course, that is expressed sharing code,

00:46:02.480 --> 00:46:05.799
sharing ideas, and then, of course, documenting things.

00:46:05.800 --> 00:46:08.199
So the documentation culture of Emacs,

00:46:08.200 --> 00:46:09.439
I think it's really strong.

00:46:09.440 --> 00:46:12.159
Like in other free software communities,

00:46:12.160 --> 00:46:14.399
they are like, okay, we are sharing code,

00:46:14.400 --> 00:46:18.199
but then code is its own documentation kind of thing.

00:46:18.200 --> 00:46:20.199
Good code speaks for itself kind of thing.

00:46:20.200 --> 00:46:23.359
Whereas in Emacs land, we are like, okay,

00:46:23.360 --> 00:46:24.599
good code speaks for itself,

00:46:24.600 --> 00:46:28.919
but here is this wall of text just in case.

00:46:28.920 --> 00:46:30.599
[Sacha]: And, you know,

00:46:30.600 --> 00:46:32.039
this is probably something

00:46:32.040 --> 00:46:33.479
only two other people in the world

00:46:33.480 --> 00:46:34.679
will ever want to do,

00:46:34.680 --> 00:46:36.879
but here it is just in case.

00:46:36.880 --> 00:46:39.399
I love those.

00:46:39.400 --> 00:46:40.399
I'm like, yeah,

00:46:40.400 --> 00:46:43.279
that's exactly what I wanted to do, actually.

00:46:43.280 --> 00:46:43.719
Thank you.

00:46:43.720 --> 00:46:46.159
[Prot]: Yeah, yeah, I agree.

00:46:46.160 --> 00:46:47.919
[Sacha]: It's a wonderful community,

00:46:47.920 --> 00:46:50.039
and I'm very glad that you're part of it,

00:46:50.040 --> 00:46:51.439
and I'm very glad

00:46:51.440 --> 00:46:54.079
that lots of other people have joined in as well.

00:46:54.080 --> 00:46:55.559
Okay, let me go.

00:46:55.560 --> 00:46:57.719
Once again, I have misplaced my...

00:46:59.280 --> 00:47:02.379
Okay, here we go.

00:47:02.380 --> 00:47:04.459
@ShaeErisson asked, "Is there a way to ask Emacs

00:47:04.460 --> 00:47:07.299
which file it has read below the current configuration?"

00:47:07.300 --> 00:47:09.439
That's the user init file variable,

00:47:09.440 --> 00:47:11.399
Shae, so you can just describe that.

NOTE Link to a search

00:47:11.400 --> 00:47:12.300
@charliemcmackin4859 says,

00:47:12.301 --> 00:47:13.479
"thinking of the terminology problem,

00:47:13.480 --> 00:47:15.999
maybe offering search terms

00:47:16.000 --> 00:47:17.159
for further exploration

00:47:17.160 --> 00:47:20.559
rather than or in addition to links."

00:47:20.560 --> 00:47:22.759
Which I guess like instead of just looking to

00:47:22.760 --> 00:47:25.639
a specific resource which may or may not still exist.

00:47:25.640 --> 00:47:27.319
I was going through my beginner resources

00:47:27.320 --> 00:47:29.279
and it's like this page no longer resolves

00:47:29.280 --> 00:47:31.919
but like saying okay this is this is what it's called

00:47:31.920 --> 00:47:34.159
and you can go search for your own resources,

00:47:34.160 --> 00:47:35.599
or this is the link,

00:47:35.600 --> 00:47:37.159
but also here's some other terms

00:47:37.160 --> 00:47:38.719
that you might find useful.

00:47:38.720 --> 00:47:39.719
[Prot]: Yeah, yeah.

00:47:39.720 --> 00:47:41.839
Just to add to what this person was asking,

00:47:41.840 --> 00:47:43.159
was suggesting is like,

00:47:43.160 --> 00:47:45.919
because we had something like this in Denote

00:47:45.920 --> 00:47:47.999
and eventually I implemented it.

00:47:48.000 --> 00:47:49.559
So there are two kinds of links.

00:47:49.560 --> 00:47:53.479
One is a direct pointer where it's like, go there.

00:47:53.480 --> 00:47:56.959
The other is basically the equivalent of a button

00:47:56.960 --> 00:47:58.079
that triggers a search.

00:47:58.080 --> 00:48:00.079
For example, let's imagine

00:48:00.080 --> 00:48:02.159
in terms of files and directories,

00:48:02.160 --> 00:48:04.559
like a direct link goes to a file.

00:48:04.560 --> 00:48:07.559
A query link, you click on it,

00:48:07.560 --> 00:48:09.679
it opens a directory listing

00:48:09.680 --> 00:48:11.559
of all files that match the query.

00:48:11.560 --> 00:48:13.879
And that is basically evergreen.

00:48:13.880 --> 00:48:16.639
It will always show you whatever is matching.

00:48:16.640 --> 00:48:19.559
And maybe we could have something like that

00:48:19.560 --> 00:48:23.679
for info buffers, where instead of a link to a node,

00:48:23.680 --> 00:48:26.639
you do that and it produces a listing

00:48:26.640 --> 00:48:28.599
of all nodes that match the query.

00:48:28.600 --> 00:48:32.279
[Sacha]: Hmm, that's quite interesting.

00:48:32.280 --> 00:48:33.839
Or like when we, you know,

00:48:33.840 --> 00:48:35.239
if we're writing about something,

00:48:35.240 --> 00:48:37.319
we can say, you know,

00:48:37.320 --> 00:48:39.199
here's the apropos command

00:48:39.200 --> 00:48:41.639
to go find all the commands,

00:48:41.640 --> 00:48:44.879
things that are related to this concept.

00:48:44.880 --> 00:48:47.199
Even just getting people

00:48:47.200 --> 00:48:49.279
to learn about how to use apropos,

00:48:49.280 --> 00:48:54.039
I think, would be a great step in helping them.

00:48:54.040 --> 00:48:58.399
Even before that, just getting them to a completion setup

00:48:58.400 --> 00:49:03.079
where they can ideally use something like orderless

00:49:03.080 --> 00:49:05.119
to just find things.

00:49:05.120 --> 00:49:09.479
Yeah. I think it would definitely help with

00:49:09.480 --> 00:49:10.719
the discoverability thing.

00:49:10.720 --> 00:49:15.359
[Prot]: Yes. I think like Vertico and Orderless are like...

00:49:15.360 --> 00:49:19.079
if you have to install two packages, it's those two.

00:49:19.080 --> 00:49:22.439
[Sacha]: Yeah. It is great.

00:49:22.440 --> 00:49:23.519
Okay.

00:49:23.520 --> 00:49:26.479
Where are we now?

00:49:26.480 --> 00:49:27.319
I keep...

00:49:27.320 --> 00:49:34.079
We've talked about the sandwich that has to be made.

00:49:34.080 --> 00:49:38.399
We've talked about getting people into it,

00:49:38.400 --> 00:49:40.919
helping them discover concepts,

00:49:40.920 --> 00:49:44.599
helping them connect with the community.

00:49:44.600 --> 00:49:45.799
And then there's a thing about

00:49:45.800 --> 00:49:46.999
how do we support people

00:49:47.000 --> 00:49:48.939
as they do their lifelong learning.

NOTE Getting through the gap between beginner tutorials and the next step

00:49:48.940 --> 00:49:49.279
A lot of people,

00:49:49.280 --> 00:49:51.759
maybe they'll get through the tutorial fine,

00:49:51.760 --> 00:49:53.919
but then when they start to try to do

00:49:53.920 --> 00:49:55.999
something more sophisticated, like,

00:49:56.000 --> 00:49:59.559
oh yeah, I need to do something similar to my IDE.

00:49:59.560 --> 00:50:02.079
I want to have all these different bits and bobs

00:50:02.080 --> 00:50:04.319
working the way that they do in my other editor.

00:50:04.320 --> 00:50:06.079
That's where things break down

00:50:06.080 --> 00:50:10.239
because the tutorial gets them through the, you know,

00:50:10.240 --> 00:50:10.879
here are the basics,

00:50:10.880 --> 00:50:13.319
but then there's this huge gulf before that,

00:50:13.320 --> 00:50:15.999
okay, this is how I can be more productive with it.

00:50:16.000 --> 00:50:17.519
How do we fix that?

00:50:17.520 --> 00:50:19.999
[Prot]: Yes, that's very difficult

00:50:20.000 --> 00:50:24.759
because part of that requires Emacs Lisp knowledge.

00:50:24.760 --> 00:50:26.919
Like, for example, an IDE, of course,

00:50:26.920 --> 00:50:28.879
I haven't used one myself,

00:50:28.880 --> 00:50:29.919
but from what I understand,

00:50:29.920 --> 00:50:31.079
there is a sidebar

00:50:31.080 --> 00:50:33.559
with the tree view of your files.

00:50:33.560 --> 00:50:35.359
At the bottom, there is a shell.

00:50:35.360 --> 00:50:36.799
Maybe there is some debugger there,

00:50:36.800 --> 00:50:40.199
some other sidebar on the side.

00:50:40.200 --> 00:50:41.759
So to replicate that,

00:50:41.760 --> 00:50:44.559
you really need to massage the display-buffer-alist

00:50:44.560 --> 00:50:48.399
which I think requires a lot of knowledge,

00:50:48.400 --> 00:50:50.559
like you need to understand the display buffer,

00:50:50.560 --> 00:50:53.399
you need to know about window...

00:50:53.400 --> 00:50:57.919
what's it called? Even I forget. Attributes and all that.

00:50:57.920 --> 00:51:00.119
[Sacha]: I don't even do it myself.

00:51:00.120 --> 00:51:02.599
If I feel like I need to do anything related to

00:51:02.600 --> 00:51:05.159
display-buffer-alist, I'm just like, okay,

00:51:05.160 --> 00:51:06.000
I'm going to look for an example

00:51:06.001 --> 00:51:08.499
and I'm going to copy it very carefully.

NOTE
Predictability
#+SCREENSHOT: /home/sacha/proj/yay-emacs/mpv-shot0003.jpg
#+SCREENSHOT_TIME: 00:51:10.900
#+SCREENSHOT_CROP: 123 464 832 708

00:51:08.500 --> 00:51:13.879
[Prot]: Okay, so this is for you.

00:51:13.880 --> 00:51:17.599
It's like too much work, but I must say.

00:51:17.600 --> 00:51:19.879
This looks like arcane knowledge

00:51:19.880 --> 00:51:22.359
but this sort of thing

00:51:22.360 --> 00:51:25.479
actually is a quality of life improvement

00:51:25.480 --> 00:51:26.199
to your Emacs

00:51:26.200 --> 00:51:29.279
because one thing that I think is bad

00:51:29.280 --> 00:51:31.239
about the default Emacs experience

00:51:31.240 --> 00:51:34.599
is uncertainty about where things will show up.

00:51:34.600 --> 00:51:35.959
Like, you never know.

00:51:35.960 --> 00:51:37.839
Like, you cannot predict it.

00:51:37.840 --> 00:51:41.559
Because Emacs tries to be sensible about it

00:51:41.560 --> 00:51:43.239
or whatever, but you cannot predict it.

00:51:43.240 --> 00:51:46.439
Whereas things that are ancillary

00:51:46.440 --> 00:51:51.119
should have kind of a more predictable behavior.

NOTE Brief mention of Popper

00:51:51.120 --> 00:51:52.239
And by the way, there is a package

00:51:52.240 --> 00:51:54.599
by Karthik Chikmagalur called Popper.

00:51:54.600 --> 00:51:56.639
I didn't mention it, but yeah,

00:51:56.640 --> 00:51:58.599
it's basically another way

00:51:58.600 --> 00:52:00.439
to do the display-buffer-alist.

00:52:00.440 --> 00:52:03.959
[Sacha]: Mm-hmm.

00:52:03.960 --> 00:52:06.199
So there's an interesting thing here

00:52:06.200 --> 00:52:07.239
where you have the beginners.

00:52:07.240 --> 00:52:11.759
Okay, they're just getting through the tutorial.

00:52:11.760 --> 00:52:13.399
If they can get to the point

00:52:13.400 --> 00:52:15.079
where they can edit the file, click on,

00:52:15.080 --> 00:52:17.519
even just use the menu bar to say file save,

00:52:17.520 --> 00:52:20.359
file open and all that stuff, that's great.

00:52:20.360 --> 00:52:22.279
Then the step beyond that is, okay,

00:52:22.280 --> 00:52:23.879
how do they start to use packages?

00:52:23.880 --> 00:52:25.879
And quite...

NOTE Earlier is better than later for Emacs Lisp. Take it as is.

00:52:25.880 --> 00:52:28.759
It feels like in order for them

00:52:28.760 --> 00:52:30.879
to be able to use packages like Popper or all these,

00:52:30.880 --> 00:52:34.279
they gotta be unafraid to use Emacs Lisp.

00:52:34.280 --> 00:52:36.599
Because all the packages, you know, tell them,

00:52:36.600 --> 00:52:39.999
okay, just put this use package in your config,

00:52:40.000 --> 00:52:41.779
but you gotta be comfortable.

00:52:41.780 --> 00:52:43.319
[Prot]: And that's why I think

00:52:43.320 --> 00:52:45.519
you have to basically circumvent Customize.

00:52:45.520 --> 00:52:49.279
Like the earlier you are exposed to Emacs Lisp,

00:52:49.280 --> 00:52:51.759
I think the better it is for you long term.

00:52:51.760 --> 00:52:54.799
Because there is no way around it.

00:52:54.800 --> 00:52:56.359
You will have to deal with it.

00:52:56.360 --> 00:53:01.439
and even if you don't quite know how things work,

00:53:01.440 --> 00:53:04.079
like even, for example, this thing here,

00:53:04.080 --> 00:53:06.719
where it's like, there is a line between them,

00:53:06.720 --> 00:53:08.479
even if you don't understand code,

00:53:08.480 --> 00:53:12.399
you can start to think in terms of blocks

00:53:12.400 --> 00:53:15.799
even if you don't understand this code...

00:53:15.800 --> 00:53:17.759
Maybe with a few comments here and there,

00:53:17.760 --> 00:53:20.119
that can become a bit more obvious as well.

00:53:20.120 --> 00:53:24.719
But of course, like you go to a package

00:53:24.720 --> 00:53:27.079
and the first thing it will tell you is, okay,

00:53:27.080 --> 00:53:28.359
add this to your config

00:53:28.360 --> 00:53:30.519
and it's a use-package declaration, for example.

00:53:30.520 --> 00:53:36.959
And you will be like, what is a config?

00:53:36.960 --> 00:53:40.799
The better solution is

00:53:40.800 --> 00:53:42.279
for you to know that quickly,

00:53:42.280 --> 00:53:43.159
learn it quickly.

00:53:43.160 --> 00:53:46.119
[Sacha]: There's this whole intimidation factor,

00:53:46.120 --> 00:53:48.199
especially for people who are coming from

00:53:48.200 --> 00:53:49.119
non-programming backgrounds,

00:53:49.120 --> 00:53:50.679
and suddenly they're like,

00:53:50.680 --> 00:53:52.919
there are a lot of parentheses in this.

00:53:52.920 --> 00:53:58.119
Do I have to be a programmer in order to use this?

00:53:58.120 --> 00:54:00.319
You just go right into it,

00:54:00.320 --> 00:54:02.999
but I'm sure you've talked to people

00:54:03.000 --> 00:54:05.399
who maybe weren't sure about it.

00:54:05.400 --> 00:54:07.119
How do you get them over that hump?

00:54:07.120 --> 00:54:11.319
[Prot]: Basically the idea is treat it

00:54:11.320 --> 00:54:14.719
as something that is inscrutable right now.

00:54:14.720 --> 00:54:16.039
Just take it as is.

00:54:16.040 --> 00:54:17.999
Take it at face value basically.

00:54:18.000 --> 00:54:19.479
You don't need to understand it.

00:54:19.480 --> 00:54:21.399
You don't need to be able to debug it.

00:54:21.400 --> 00:54:24.479
Take it as is and just make sure

00:54:24.480 --> 00:54:25.799
moving your cursor

00:54:25.800 --> 00:54:29.719
that this kind of balance is preserved

00:54:29.720 --> 00:54:32.599
by checking that there is a parenthesis at the beginning

00:54:32.600 --> 00:54:34.599
and there is a parenthesis at the end.

00:54:34.600 --> 00:54:38.679
So, show parent mode helps in that regard,

00:54:38.680 --> 00:54:39.999
which is enabled by default.

00:54:40.000 --> 00:54:44.039
Of course, you cannot really get around it.

00:54:44.040 --> 00:54:46.799
Like, you cannot have a training wheels mode

00:54:46.800 --> 00:54:49.879
for Elisp, unfortunately.

00:54:49.880 --> 00:54:53.959
You can do something like rainbow-delimiters, you know, the package.

00:54:53.960 --> 00:54:57.959
You can help, but I'm not sure that helps by a lot.

00:54:57.960 --> 00:55:02.279
[Sacha]: Yeah, yeah.

00:55:02.280 --> 00:55:06.959
And it's like, OK, so you just got to do it.

00:55:06.960 --> 00:55:08.319
Don't be too scared.

00:55:08.320 --> 00:55:10.079
But it's OK to just copy and paste

00:55:10.080 --> 00:55:11.559
and trust that as you do this,

00:55:11.560 --> 00:55:14.279
you will learn enough that when you go back,

00:55:14.280 --> 00:55:17.079
you'll be able to understand more and more of it.

NOTE Before and after comparisons

00:55:17.080 --> 00:55:19.079
[Prot]: Yes. What helps, for example,

00:55:19.080 --> 00:55:20.399
in this block here, of course,

00:55:20.400 --> 00:55:22.359
I don't have to describe the code.

00:55:22.360 --> 00:55:26.159
But if you do this iterative approach

00:55:26.160 --> 00:55:28.239
that we mentioned earlier of step by step,

00:55:28.240 --> 00:55:31.879
like you can try your Emacs before this and after this.

00:55:31.880 --> 00:55:35.279
And based of course on some comment or whatever,

00:55:35.280 --> 00:55:37.079
you can see what the difference is.

00:55:37.080 --> 00:55:38.999
So even if you don't understand the code,

00:55:39.000 --> 00:55:41.079
you understand the effects of the code.

00:55:41.080 --> 00:55:42.119
[Sacha]: Yeah, yeah.

00:55:42.120 --> 00:55:44.039
Before and after comparisons.

00:55:44.040 --> 00:55:50.799
I'm guilty of not taking advantage of this enough myself.

00:55:50.800 --> 00:55:52.119
I'm just like, oh yeah,

00:55:52.120 --> 00:55:54.599
I'm just going to evaluate it in my current Emacs

00:55:54.600 --> 00:55:56.079
and sometimes the results are obvious

00:55:56.080 --> 00:55:58.319
and sometimes the results kind of break my Emacs

00:55:58.320 --> 00:56:00.799
and I'm like, okay, I got to restart Emacs instead.

00:56:00.800 --> 00:56:04.639
I should have just started a new Emacs and tried it there.

NOTE user-init-directory

00:56:04.640 --> 00:56:07.079
But with the new user... Well, I say new,

00:56:07.080 --> 00:56:10.879
but actually --user-init-directory has been around since Emacs 29.

00:56:10.880 --> 00:56:13.359
So it's pretty much widely available now.

00:56:13.360 --> 00:56:16.399
People can actually try, for example,

00:56:16.400 --> 00:56:18.759
a starter kit without committing to it.

00:56:18.760 --> 00:56:21.679
Do you see newbies actually use this?

00:56:21.680 --> 00:56:24.079
Because I tell people, okay, you can do this,

00:56:24.080 --> 00:56:25.959
but it requires using the command line

00:56:25.960 --> 00:56:27.279
and using command line arguments.

00:56:27.280 --> 00:56:31.159
Is that a thing they can do?

00:56:31.160 --> 00:56:33.359
[Prot]: I have introduced it to some people

00:56:33.360 --> 00:56:34.799
and they have used it, yes.

00:56:34.800 --> 00:56:37.919
But I don't know if people use it

00:56:37.920 --> 00:56:39.519
as part of their workflow

00:56:39.520 --> 00:56:42.119
or maybe they have just a cheat sheet

00:56:42.120 --> 00:56:43.159
specifically for this

00:56:43.160 --> 00:56:45.079
where it's like, oh, I want to try this

00:56:45.080 --> 00:56:46.319
and I want to try that.

00:56:46.320 --> 00:56:51.679
But eventually they don't use it day by day, I think.

00:56:51.680 --> 00:56:52.959
They just settle.

00:56:52.960 --> 00:56:55.159
[Sacha]: if you want to try something big,

00:56:55.160 --> 00:56:58.119
then you know you can say, try that starter kit,

00:56:58.120 --> 00:57:00.719
but don't necessarily go to

00:57:00.720 --> 00:57:03.239
the work of making it my .emacs.d and so forth.

00:57:03.240 --> 00:57:05.159
Yes, that's a good one.

00:57:05.160 --> 00:57:07.900
They just say put this in your init file

00:57:07.901 --> 00:57:09.500
so it's a lot easier to back it out

00:57:09.501 --> 00:57:10.600
and change your mind.

00:57:10.601 --> 00:57:17.167
I had a thought, but it has disappeared,

00:57:17.168 --> 00:57:18.867
so I will just read something else from the chat.

00:57:18.868 --> 00:57:20.719
[Prot]: That's fine.

NOTE Emacs core

00:57:20.720 --> 00:57:21.367
[Sacha]: @romsno says,

00:57:21.368 --> 00:57:23.439
"Do you fear that Emacs C core will go unmaintained?

00:57:23.440 --> 00:57:26.159
Deep knowledge is rare, held by few, like Eli.

00:57:26.160 --> 00:57:28.599
While finding Elisp maintainers is easier,

00:57:28.600 --> 00:57:31.119
like with elfeed, the core is hard to replace."

00:57:31.120 --> 00:57:32.679
So I guess if you're thinking about

00:57:32.680 --> 00:57:36.479
the long-term: newbie, to package user,

00:57:36.480 --> 00:57:38.679
to package developer, to who knows,

00:57:38.680 --> 00:57:40.119
Emacs core contributor,

00:57:40.120 --> 00:57:42.239
And then off to the C,

00:57:42.240 --> 00:57:44.679
like somebody who knows the C core,

00:57:44.680 --> 00:57:48.279
that's a very long and somewhat leaky pathway.

00:57:48.280 --> 00:57:50.719
[Prot]: It is for sure, for sure.

00:57:50.720 --> 00:57:52.999
But of course, here we are talking about

00:57:53.000 --> 00:57:57.879
people who have expertise in those specific domains.

00:57:57.880 --> 00:57:59.759
And yeah, that's something

00:57:59.760 --> 00:58:02.319
that it's an experienced Emacs user already.

00:58:02.320 --> 00:58:03.959
Like we are talking about somebody

00:58:03.960 --> 00:58:06.599
who not only is actually an experienced Emacs user,

00:58:06.600 --> 00:58:10.759
but also knows the relevant technical knowledge.

00:58:10.760 --> 00:58:11.439
Right.

00:58:11.440 --> 00:58:14.279
I am an experienced user, for example,

00:58:14.280 --> 00:58:15.119
but I don't know C,

00:58:15.120 --> 00:58:17.159
so I'm useless in this regard.

00:58:17.160 --> 00:58:22.519
[Sacha]: I guess if we zoom out a little bit,

00:58:22.520 --> 00:58:27.279
we can think about how do we help people connect with

00:58:27.280 --> 00:58:30.679
the long-term motivation that drives,

00:58:30.680 --> 00:58:31.799
that you mentioned earlier,

00:58:31.800 --> 00:58:34.919
to keep using Emacs,

00:58:34.920 --> 00:58:36.079
to learn more about it,

00:58:36.080 --> 00:58:39.159
to enjoy using it and fiddling with it

00:58:39.160 --> 00:58:40.759
and get deeper into it.

00:58:40.760 --> 00:58:43.679
For some people, Emacs clicks right away

00:58:43.680 --> 00:58:47.279
because they already tinker with other things

00:58:47.280 --> 00:58:49.639
and it becomes another thing to tinker with.

00:58:49.640 --> 00:58:52.519
For some people, it's like, I don't know,

00:58:52.520 --> 00:58:54.279
I've heard I should use

00:58:54.280 --> 00:58:56.399
this or I've heard people say good things

00:58:56.400 --> 00:58:58.119
about Org Mode or about Magit.

00:58:58.120 --> 00:59:02.619
I just want to see what it's like.

NOTE Getting past the initial awkward phase

00:59:02.620 --> 00:59:04.639
So going back to that, how do we get people hooked?

00:59:04.640 --> 00:59:07.359
[Prot]: Yeah, yeah, yeah.

00:59:07.360 --> 00:59:09.479
It's that initial awkward phase.

00:59:09.480 --> 00:59:10.719
Like if they can get past that,

00:59:10.720 --> 00:59:13.359
and by awkward phase, here I mean

00:59:13.360 --> 00:59:18.439
to actually understand Emacs and the key bindings

00:59:18.440 --> 00:59:20.519
and how to move between windows

00:59:20.520 --> 00:59:23.199
and there is a mini buffer, that sort of thing.

00:59:23.200 --> 00:59:24.439
Once they get past that,

00:59:24.440 --> 00:59:26.959
I think that people stick around.

00:59:26.960 --> 00:59:28.959
Like if they have, for example,

00:59:28.960 --> 00:59:30.439
a use for it such as, okay,

00:59:30.440 --> 00:59:34.619
I use it for org, they do stick around.

NOTE Even reporting an issue is a great contribution

00:59:34.620 --> 00:59:36.279
There are a lot of people who contribute,

00:59:36.280 --> 00:59:37.839
like even non-programmers.

00:59:37.840 --> 00:59:40.159
And this is something I encourage in my packages,

00:59:40.160 --> 00:59:43.319
for example, where it's like, write me an issue.

00:59:43.320 --> 00:59:45.199
You don't need to know any code.

00:59:45.200 --> 00:59:47.079
You don't have to tell me about how to do it.

00:59:47.080 --> 00:59:48.679
Just tell me what your idea is.

00:59:48.680 --> 00:59:51.199
And in all my manuals that I write,

00:59:51.200 --> 00:59:53.159
I have an acknowledgement section

00:59:53.160 --> 00:59:54.479
where I have, you know,

00:59:54.480 --> 00:59:56.719
ideas or suggestions or whatever.

00:59:56.720 --> 00:59:59.479
And I write the name of everybody

00:59:59.480 --> 01:00:00.839
who has ever created an issue

01:00:00.840 --> 01:00:03.159
because it's like you help

01:00:03.160 --> 01:00:06.199
even by telling me what your use case is.

01:00:06.200 --> 01:00:08.799
And that already helps.

01:00:08.800 --> 01:00:10.359
And it gets the people involved as well.

01:00:10.360 --> 01:00:12.479
[Sacha]: They spend time trying it out

01:00:12.480 --> 01:00:14.799
and describing what the difference was

01:00:14.800 --> 01:00:15.559
between what happened

01:00:15.560 --> 01:00:17.479
and what they wanted to happen.

01:00:17.480 --> 01:00:19.799
And sometimes even just identifying the issue

01:00:19.800 --> 01:00:21.959
is a big part of it already

01:00:21.960 --> 01:00:23.759
because you can't test everything.

01:00:23.760 --> 01:00:26.679
So we can definitely help people

01:00:26.680 --> 01:00:30.199
feel more included in the community

01:00:30.200 --> 01:00:34.399
because they don't have to be core developers

01:00:34.400 --> 01:00:37.919
or package authors to be part of the community.

01:00:37.920 --> 01:00:44.679
Even using it and writing about it is a big help.

NOTE Next steps: adding to the wiki

01:00:44.680 --> 01:00:45.599
In the four minutes before

01:00:45.600 --> 01:00:48.399
I have to make a grilled cheese sandwich,

01:00:48.400 --> 01:00:51.359
shall we wrap up with some concrete things

01:00:51.360 --> 01:00:53.719
that you or me or somebody listening can do

01:00:53.720 --> 01:00:58.359
to help improve the newcomer experience for Emacs?

01:00:58.360 --> 01:01:00.919
[Prot]: You were doing it already.

01:01:00.920 --> 01:01:02.559
You were doing the wiki.

01:01:02.560 --> 01:01:03.479
I think that's good.

01:01:03.480 --> 01:01:05.239
A link, a direct link

01:01:05.240 --> 01:01:07.159
to the newbie section I think is great.

01:01:07.160 --> 01:01:10.439
Maybe you can even have a permanent link

01:01:10.440 --> 01:01:13.399
in your Emacs News, like the topmost line.

01:01:13.400 --> 01:01:16.599
It would be like, well, new...

01:01:16.600 --> 01:01:22.239
[Sacha]: Don't get overwhelmed by all these people

01:01:22.240 --> 01:01:27.439
talking about SDL graphics loops and Emacs and whatever.

01:01:27.440 --> 01:01:32.079
Very far down the path of the learning journey.

01:01:32.080 --> 01:01:34.759
So making one of these starting points

01:01:34.760 --> 01:01:37.159
where people can then kind of

01:01:37.160 --> 01:01:40.519
find the trail that then leads them to different places.

01:01:40.520 --> 01:01:44.519
I'm looking forward to reviewing the Emacs news things

01:01:44.520 --> 01:01:45.799
for beginner resources

01:01:45.800 --> 01:01:47.279
that I've already previously identified

01:01:47.280 --> 01:01:49.919
and then fitting them into the Emacs Wiki

01:01:49.920 --> 01:01:52.159
in various places where people might come across them.

01:01:52.160 --> 01:01:56.319
And then of course, it would be nice

01:01:56.320 --> 01:01:58.879
if we could test these with actual people.

01:01:58.880 --> 01:02:00.359
So in your coaching sessions,

01:02:00.360 --> 01:02:03.119
we can find out where the other gaps are.

01:02:03.120 --> 01:02:08.439
There's a lovely conversation in the chat

01:02:08.440 --> 01:02:09.439
about other things

01:02:09.440 --> 01:02:13.439
that I don't have the fast speaking rate

01:02:13.440 --> 01:02:18.079
to cram into the next three minutes.

01:02:18.080 --> 01:02:21.919
Thank you so much for this conversation.

01:02:21.920 --> 01:02:23.479
It was great.

01:02:23.480 --> 01:02:25.639
I always like picking your brain about things.

01:02:25.640 --> 01:02:30.959
It's a big project but Emacs is fun to play with

01:02:30.960 --> 01:02:33.999
and I hope lots of other people

01:02:34.000 --> 01:02:37.339
come to have fun with it too.

NOTE Core longevity

01:02:37.340 --> 01:02:39.519
[Prot]: Yes, and maybe I can make a final comment

01:02:39.520 --> 01:02:41.479
about the C core and the fact that

01:02:41.480 --> 01:02:44.199
there are a few people such as Eli Zaretskii

01:02:44.200 --> 01:02:45.799
who have expertise in that.

01:02:45.800 --> 01:02:47.999
I am an optimist.

01:02:48.000 --> 01:02:50.759
I think things will be ironed out.

01:02:50.760 --> 01:02:53.839
I think they will work out on their own.

01:02:53.840 --> 01:02:56.479
There are people who have the expertise.

01:02:56.480 --> 01:02:59.319
Maybe it's a cultural issue or

01:02:59.320 --> 01:03:02.959
We could say like a bureaucracy issue,

01:03:02.960 --> 01:03:04.519
like they don't want to deal with

01:03:04.520 --> 01:03:05.519
mailing lists or whatever.

01:03:05.520 --> 01:03:08.119
Maybe they don't like the current style.

01:03:08.120 --> 01:03:08.759
I don't know.

01:03:08.760 --> 01:03:11.199
But I'm sure that when push comes to shove,

01:03:11.200 --> 01:03:12.879
somebody will step up.

01:03:12.880 --> 01:03:15.359
[Sacha]: I think it's actually very encouraging

01:03:15.360 --> 01:03:17.959
that because Emacs has such a long history,

01:03:17.960 --> 01:03:19.639
we've actually seen this kind of

01:03:19.640 --> 01:03:21.799
generational transfer of knowledge already

01:03:21.800 --> 01:03:23.799
in the sense that the people

01:03:23.800 --> 01:03:25.679
who are maintaining Emacs now,

01:03:25.680 --> 01:03:29.119
aside of course from Dr. Stallman himself,

01:03:29.120 --> 01:03:31.639
they're not the originals who started this project.

01:03:31.640 --> 01:03:32.919
They came into it afterwards,

01:03:32.920 --> 01:03:33.999
decided they liked it,

01:03:34.000 --> 01:03:36.439
dug deep enough into it

01:03:36.440 --> 01:03:38.759
to learn all these different things

01:03:38.760 --> 01:03:40.439
and have continued from there.

01:03:40.440 --> 01:03:42.639
And we've also seen lots of, you know,

01:03:42.640 --> 01:03:43.919
lots of trends come and go.

01:03:43.920 --> 01:03:45.479
People leave Emacs for Atom.

01:03:45.480 --> 01:03:46.439
People come back

01:03:46.440 --> 01:03:48.959
when Atom gets discontinued.

01:03:48.960 --> 01:03:50.759
People leave Emacs for VS Code.

01:03:50.760 --> 01:03:51.879
Who knows what will happen then?

01:03:51.880 --> 01:03:53.439
But when they come back,

01:03:53.440 --> 01:03:56.119
they come back bringing even more ideas.

01:03:56.120 --> 01:03:58.119
Thank you for watching!

01:03:58.120 --> 01:04:01.439
Okay, so in about one minute,

01:04:01.440 --> 01:04:02.919
the kid is going to start

01:04:02.920 --> 01:04:04.359
barreling down the hallway

01:04:04.360 --> 01:04:07.519
and asking for a grilled cheese sandwich.

01:04:07.520 --> 01:04:12.279
I'm going to wrap it up nicely here

01:04:12.280 --> 01:04:15.119
so I can remember to copy the chat this time.

01:04:15.120 --> 01:04:17.679
[Prot]: Very well, very well.

01:04:17.680 --> 01:04:19.559
[Sacha]: Yeah, yeah.

01:04:19.560 --> 01:04:22.159
The notes are going to be in, like, you know,

01:04:22.160 --> 01:04:25.039
if you go to yayemacs.com,

01:04:25.040 --> 01:04:30.399
they're probably going to be in, like, yayemacs24.

01:04:30.400 --> 01:04:32.239
And you're going to send me

01:04:32.240 --> 01:04:34.799
this markdown file or whatever that you showed me,

01:04:34.800 --> 01:04:37.319
so I can post that as well.

01:04:37.320 --> 01:04:39.799
Thank you so much, everyone.

01:04:39.800 --> 01:04:43.719
Thank you, Prot, and thank you

01:04:43.720 --> 01:04:46.199
to the people who joined in the chat.

01:04:46.200 --> 01:04:47.079
We'll see where it goes.

01:04:47.080 --> 01:04:48.599
Okay, bye.

01:04:48.600 --> 01:04:49.679
[Prot]: Take care.

01:04:49.680 --> 01:04:50.159
Take care.

01:04:50.160 --> 01:04:50.639
Bye, Sacha.

01:04:50.640 --> 01:04:51.199
Bye, folks.

01:04:51.200 --> 01:05:09.960
Take care.
