WEBVTT

NOTE Opening

00:00:00.000 --> 00:00:06.239
[Sacha]: I'm going to start recording.

00:00:06.240 --> 00:00:07.879
I'm going to do the thing.

00:00:07.880 --> 00:00:09.079
I'll let you know.

00:00:09.080 --> 00:00:09.719
Okay.

00:00:09.720 --> 00:00:10.639
Let's do this.

00:00:10.640 --> 00:00:11.159
Yeah.

00:00:11.160 --> 00:00:12.759
[Prot]: Yeah.

00:00:12.760 --> 00:00:13.839
[Sacha]: Yeah.

00:00:13.840 --> 00:00:14.239
Okay.

00:00:14.240 --> 00:00:16.319
Hang on a second.

00:00:16.320 --> 00:00:18.119
Starting, going live.

00:00:18.120 --> 00:00:18.879
Okay.

00:00:18.880 --> 00:00:20.279
So, hello, everyone.

00:00:20.280 --> 00:00:22.079
This is Yay Emacs 29.

00:00:22.080 --> 00:00:24.084
And today I am here with Prot and

00:00:24.085 --> 00:00:25.239
Philip Kaludercic.

00:00:25.240 --> 00:00:28.234
We're having this conversation about Emacs

00:00:28.235 --> 00:00:31.534
newcomer experience, which started off with an

00:00:31.535 --> 00:00:34.645
Emacs carnival last month about newbies and

00:00:34.646 --> 00:00:38.165
starter kits, which Cena started and you fleshed

00:00:38.166 --> 00:00:39.999
out with more questions.

00:00:40.000 --> 00:00:42.254
And now this is snowballing to, okay, let's

00:00:42.255 --> 00:00:44.719
figure out what we can do to make Emacs easier

00:00:44.720 --> 00:00:47.664
for newbies who are coming in, maybe they're

00:00:47.665 --> 00:00:50.825
non-developers who have heard good things about

00:00:50.826 --> 00:00:54.141
Org Mode, or maybe they're developers who want to

00:00:54.142 --> 00:00:57.350
try out what this Emacs thing is and what's all

00:00:57.351 --> 00:01:00.332
the fuss about having an editor that's been

00:01:00.333 --> 00:01:01.719
around for so long.

00:01:01.720 --> 00:01:04.882
Or maybe they're actually still VS Code or Vim

00:01:04.883 --> 00:01:08.222
fans, but they really just want to use Magit, so

00:01:08.223 --> 00:01:10.519
they're coming in just for that.

00:01:10.520 --> 00:01:15.999
A lot of different paths to coming into Emacs.

00:01:16.000 --> 00:01:18.448
We do have this live stream, so if people have

00:01:18.449 --> 00:01:21.029
questions, I will at some point figure out where

00:01:21.030 --> 00:01:23.601
the chat is on my screen so I can read them out

00:01:23.602 --> 00:01:24.039
to you.

00:01:24.040 --> 00:01:26.530
But my plan here is I'll just be in the

00:01:26.531 --> 00:01:29.374
background taking notes most of the time and

00:01:29.375 --> 00:01:31.959
interjecting with occasional questions.

00:01:31.960 --> 00:01:34.788
And maybe Philip and Prot, you can go brain dump

00:01:34.789 --> 00:01:37.472
all the wonderful things you've been thinking

00:01:37.473 --> 00:01:39.679
about the Emacs newcomer experience.

00:01:39.680 --> 00:01:42.442
[Philip]: At this point, regret not having

00:01:42.443 --> 00:01:45.421
written down any notes from the last video or

00:01:45.422 --> 00:01:48.496
from your last recording of YouTube, because I

00:01:48.497 --> 00:01:51.351
noticed I had a few things I wanted to add

00:01:51.352 --> 00:01:52.439
or intersperse.

00:01:52.440 --> 00:01:55.119
But I guess we can take a look at two things.

00:01:55.120 --> 00:02:00.266
So first one is the state of introducing people

00:02:00.267 --> 00:02:01.799
to Emacs now.

00:02:01.800 --> 00:02:04.589
And the question there is, who are we introducing

00:02:04.590 --> 00:02:05.159
Emacs to?

00:02:05.160 --> 00:02:07.954
Just like you said, you sketched out a few

00:02:07.955 --> 00:02:11.196
different profiles of people who presumably have

00:02:11.197 --> 00:02:12.479
entirely different

00:02:12.480 --> 00:02:16.590
Interests, motivations, like if someone wants to

00:02:16.591 --> 00:02:19.759
just use Magits like Emacs is there.

00:02:19.760 --> 00:02:22.924
It's the tool, it's the GUI that implements

00:02:22.925 --> 00:02:25.958
Magit, then these people have an entirely

00:02:25.959 --> 00:02:29.385
different motivation than someone who actually

00:02:29.386 --> 00:02:32.922
says, well, I'm coming at it from, I heard it's

00:02:32.923 --> 00:02:36.759
an interesting tool for free software development.

00:02:36.760 --> 00:02:39.707
Build your own or like understand free software

00:02:39.708 --> 00:02:42.617
in a different sense where you can actually do

00:02:42.618 --> 00:02:45.442
find function and open the definition of the

00:02:45.443 --> 00:02:46.919
function you just use.

00:02:46.920 --> 00:02:51.085
And I think malleable is the current catch word

00:02:51.086 --> 00:02:54.719
that people like to use in that context.

00:02:54.720 --> 00:02:59.239
So there's some issue in that sense.

NOTE newcomers-presets user option theme; would be nice to explain what the changes are

00:02:59.240 --> 00:03:01.676
And then the specific comment from the last

00:03:01.677 --> 00:03:03.999
discussion which caught my attention was

00:03:04.000 --> 00:03:07.904
We were talking about Emacs 31, there's this

00:03:07.905 --> 00:03:11.719
preset theme, the newcomers-presets theme,

00:03:11.720 --> 00:03:14.458
which is implemented as a user option theme, or

00:03:14.459 --> 00:03:16.439
that's how I like to refer to it.

00:03:16.440 --> 00:03:19.056
And I probably should just briefly stop and say

00:03:19.057 --> 00:03:21.155
that everything I'm saying is from my

00:03:21.156 --> 00:03:22.119
own perspective.

00:03:22.120 --> 00:03:25.238
I don't feel comfortable saying that this is the

00:03:25.239 --> 00:03:28.387
Emacs level perspective or that any other of the

00:03:28.388 --> 00:03:31.197
Emacs developers necessarily have to agree

00:03:31.198 --> 00:03:31.799
with me.

00:03:31.800 --> 00:03:33.399
I just think that I might have a few things.

00:03:33.400 --> 00:03:35.679
[Prot]: Sorry, I lost your audio.

00:03:35.680 --> 00:03:40.319
Just to say I lost your audio, Philip.

00:03:40.320 --> 00:03:41.039
Excuse me.

00:03:41.040 --> 00:03:42.919
Sorry, I lost your audio for a second.

00:03:42.920 --> 00:03:44.039
You could hear it fine.

00:03:44.040 --> 00:03:47.119
I will hear it in the recording.

00:03:47.120 --> 00:03:50.845
[Sacha]: Okay, so basically, you can repeat it,

00:03:50.846 --> 00:03:51.559
I guess.

00:03:51.560 --> 00:03:52.359
Go ahead.

00:03:52.360 --> 00:03:55.679
[Philip]: What did I say?

00:03:55.680 --> 00:03:57.334
So you were saying that... I'm not

00:03:57.335 --> 00:03:58.599
representing emacs-devel.

00:03:58.600 --> 00:04:02.999
These are my views which are informed by the

00:04:03.000 --> 00:04:07.562
discussions that we had in emacs-devel that I

00:04:07.563 --> 00:04:10.199
hope will be represented.

00:04:10.200 --> 00:04:13.504
I think I'm the maintainer of the preset theme,

00:04:13.505 --> 00:04:16.921
but of course other people are also contributing

00:04:16.922 --> 00:04:19.199
to it and adding other options.

00:04:19.200 --> 00:04:21.884
Specific points I had like the target audience of

00:04:21.885 --> 00:04:24.329
the preset theme was not people who would be

00:04:24.330 --> 00:04:25.719
particularly interested.

00:04:25.720 --> 00:04:27.439
What the options are.

00:04:27.440 --> 00:04:30.199
I think that was a discussion point last time.

00:04:30.200 --> 00:04:34.479
I admit it's a technical deficiency currently.

00:04:34.480 --> 00:04:35.799
There's no pretty way.

00:04:35.800 --> 00:04:38.607
I think it would be nice if we extended describe

00:04:38.608 --> 00:04:41.145
theme to actually list the options that are

00:04:41.146 --> 00:04:43.961
modified with hyperlinks so that you could look

00:04:43.962 --> 00:04:45.159
into these options.

00:04:45.160 --> 00:04:47.199
That's currently not there.

00:04:47.200 --> 00:04:50.383
We didn't add it in time for the feature cut for

00:04:50.384 --> 00:04:53.546
Emacs 31, but I think for Emacs 32 that's going

00:04:53.547 --> 00:04:54.959
to be an interesting

00:04:54.960 --> 00:05:00.239
Feature to have at some point.

NOTE finding a balance between "it's fine the way it is" and "just use Doom Emacs"

00:05:00.240 --> 00:05:03.727
And actually the idea had been floating around I

00:05:03.728 --> 00:05:07.084
think like every time there was like there's a

00:05:07.085 --> 00:05:10.605
periodic, periodical discussions like how should

00:05:10.606 --> 00:05:14.076
we make Emacs more user-friendly on Emacs level

00:05:14.077 --> 00:05:17.658
and people say we have to like say the extremist

00:05:17.659 --> 00:05:21.239
position is what do you mean not user-friendly.

00:05:21.240 --> 00:05:25.679
It's perfect the way it is.

00:05:25.680 --> 00:05:25.879
It's

00:05:25.880 --> 00:05:28.559
God-given configuration.

00:05:28.560 --> 00:05:30.738
And the other people who say, well, why don't we

00:05:30.739 --> 00:05:32.632
just install Doom Emacs and make that the

00:05:32.633 --> 00:05:33.279
default then?

00:05:33.280 --> 00:05:35.870
Somewhere in between, I think there is a

00:05:35.871 --> 00:05:37.879
reasonable position to be had.

00:05:37.880 --> 00:05:41.909
But in these discussions, one of the reasons this

00:05:41.910 --> 00:05:45.199
came... I participated maybe in like...

00:05:45.200 --> 00:05:48.319
Four or five of them and then this point came up.

00:05:48.320 --> 00:05:50.781
Why don't we have a theme like a collection of

00:05:50.782 --> 00:05:53.304
user options which you can toggle in one switch

00:05:53.305 --> 00:05:55.891
which enable all the options from which we would

00:05:55.892 --> 00:05:58.272
not find which existing users would not find

00:05:58.273 --> 00:06:00.667
interesting which are always the bulk of the

00:06:00.668 --> 00:06:03.354
users most people are already existing users they

00:06:03.355 --> 00:06:05.962
don't come in and one of the things are lots of

00:06:05.963 --> 00:06:07.959
existing users I'm thinking of like

00:06:07.960 --> 00:06:11.240
A 60-year-old professor who has been using Emacs

00:06:11.241 --> 00:06:14.473
for 30 years or a software engineer who's using

00:06:14.474 --> 00:06:17.321
it and maybe consciously or unconsciously

00:06:17.322 --> 00:06:20.782
appreciates the fact that it doesn't change every

00:06:20.783 --> 00:06:21.559
few years.

00:06:21.560 --> 00:06:24.359
You don't have a graphic designer.

00:06:24.360 --> 00:06:27.111
This is, of course, me against graphic designers

00:06:27.112 --> 00:06:29.890
and UI designers who have a need to reinvent the

00:06:29.891 --> 00:06:32.074
UI interface every few years and then

00:06:32.075 --> 00:06:32.959
things change.

00:06:32.960 --> 00:06:34.079
And how do I save now?

00:06:34.080 --> 00:06:35.119
What's the...

00:06:35.120 --> 00:06:36.439
What's the button to do this?

00:06:36.440 --> 00:06:37.519
And the UI changes.

NOTE people value stability, but also conventions have shifted.

00:06:37.520 --> 00:06:39.039
The people who value the stability.

00:06:39.040 --> 00:06:42.613
But of course, the common conventions have

00:06:42.614 --> 00:06:43.719
grown apart.

00:06:43.720 --> 00:06:48.669
What Emacs does and what people are used to from

00:06:48.670 --> 00:06:50.319
other programs.

NOTE ways Emacs does things differently: ex: terminal vs eshell, output is editable; new users want to edit the previous prompt; sometimes goes against people's intuitions

00:06:50.320 --> 00:06:53.039
Now, at this point, we also have to distinguish

00:06:53.040 --> 00:06:55.850
that there are things which Emacs doesn't do the

00:06:55.851 --> 00:06:57.959
way other programs do, which are...

00:06:57.960 --> 00:07:00.839
Which I would argue are actually sensible.

00:07:00.840 --> 00:07:04.150
For example, I think one issue I remember was

00:07:04.151 --> 00:07:07.217
when I first started using Emacs, I had a

00:07:07.218 --> 00:07:08.639
terminal emulator.

00:07:08.640 --> 00:07:10.999
I wanted to have a terminal emulator within Emacs.

00:07:11.000 --> 00:07:15.888
Nowadays I use Emacs Shell, which to me seems

00:07:15.889 --> 00:07:19.799
like a more truer Emacs experience.

00:07:19.800 --> 00:07:22.479
It's an opinion, a strong opinion maybe.

00:07:22.480 --> 00:07:25.093
And it's also influenced by a history of using

00:07:25.094 --> 00:07:27.797
Plan 9 and that kind of terminal where actually

00:07:27.798 --> 00:07:29.639
the output is just as editable.

00:07:29.640 --> 00:07:30.439
You can just search it.

00:07:30.440 --> 00:07:31.079
You can edit it.

00:07:31.080 --> 00:07:31.919
You can cut it.

00:07:31.920 --> 00:07:34.982
You can interact with the output any way you

00:07:34.983 --> 00:07:38.284
would use a normal text, which is not something

00:07:38.285 --> 00:07:40.929
you can do with a terminal for purely

00:07:40.930 --> 00:07:42.359
historical reasons.

00:07:42.360 --> 00:07:46.033
At my university, the university where I studied

00:07:46.034 --> 00:07:49.676
computer science, I frequently helped people in

00:07:49.677 --> 00:07:52.079
the introductory Linux course.

00:07:52.080 --> 00:07:53.587
One thing you notice there, these are

00:07:53.588 --> 00:07:54.239
real newcomers.

00:07:54.240 --> 00:07:55.988
These are people who have never used Linux or a

00:07:55.989 --> 00:07:57.439
terminal or anything like that before.

00:07:57.440 --> 00:08:00.306
The first thing they do when they want to, like,

00:08:00.307 --> 00:08:03.081
they use the arrow keys expecting or click on,

00:08:03.082 --> 00:08:05.233
they use the mouse and click on the

00:08:05.234 --> 00:08:06.279
previous prompt.

00:08:06.280 --> 00:08:07.999
And they want to modify the previous prompt.

00:08:08.000 --> 00:08:10.250
Of course, that doesn't work because that's not

00:08:10.251 --> 00:08:11.639
how terminal emulators work.

00:08:11.640 --> 00:08:14.199
All the previous output, that's fixed.

00:08:14.200 --> 00:08:15.319
You don't touch that anymore.

00:08:15.320 --> 00:08:18.003
Everyone, I guess even people who we describe

00:08:18.004 --> 00:08:18.839
as newcomers,

00:08:18.840 --> 00:08:20.519
Talking about Emacs.

00:08:20.520 --> 00:08:21.759
Obviously, no.

00:08:21.760 --> 00:08:23.957
Of course you don't touch the previous prompt in

00:08:23.958 --> 00:08:24.599
the terminal.

00:08:24.600 --> 00:08:27.255
These are some expectations you have if you use

00:08:27.256 --> 00:08:29.881
Eclipse, if you use VS Code, if you use... I'm

00:08:29.882 --> 00:08:32.679
not sure how the NeoVim terminal emulator works.

00:08:32.680 --> 00:08:33.799
I know they have a built-in one.

00:08:33.800 --> 00:08:36.439
I think Vim also, but I'm guessing right now.

00:08:36.440 --> 00:08:38.962
So there are some accumulated intuitions which

00:08:38.963 --> 00:08:41.759
Emacs actually intentionally doesn't want to give.

00:08:41.760 --> 00:08:45.302
doesn't want to give in all purposes because I'd

00:08:45.303 --> 00:08:48.490
argue that one of the strengths of Emacs is

00:08:48.491 --> 00:08:52.143
really having this uniform text interface where I

00:08:52.144 --> 00:08:55.749
can use I search, I can use occur, I can use the

00:08:55.750 --> 00:08:59.477
highlighting commands, I can just select a region

00:08:59.478 --> 00:09:01.759
and write it out to a buffer.

00:09:01.760 --> 00:09:03.479
And stuff like that.

00:09:03.480 --> 00:09:06.013
That shell buffer is no different than anything

00:09:06.014 --> 00:09:07.199
else in that respect.

00:09:07.200 --> 00:09:10.159
Please interrupt me by the way.

00:09:10.160 --> 00:09:11.999
This is not supposed to be a monologue.

00:09:12.000 --> 00:09:13.719
[Prot]: No, no, no.

00:09:13.720 --> 00:09:14.079
Go ahead.

00:09:14.080 --> 00:09:17.064
[Sacha]: So it sounds like there's an interesting

00:09:17.065 --> 00:09:18.039
challenge here.

00:09:18.040 --> 00:09:19.610
[Philip]: Breaking some of these intuitions

00:09:19.611 --> 00:09:20.159
is legitimate.

00:09:20.160 --> 00:09:21.439
[Sacha]: Yeah.

NOTE How do people develop Emacs intuition? Immersion

00:09:21.440 --> 00:09:23.458
How do we help people develop the

00:09:23.459 --> 00:09:24.559
Emacs intuitions?

00:09:24.560 --> 00:09:28.261
[Philip]: To some degree, it really feels like it

00:09:28.262 --> 00:09:32.039
has to be something that you immerse yourself in.

00:09:32.040 --> 00:09:34.747
The issue, I guess, is, well, I know, I mean, I

00:09:34.748 --> 00:09:36.879
knew people who actually used Emacs.

00:09:36.880 --> 00:09:39.866
I mean, you can help them in a face-to-face

00:09:39.867 --> 00:09:42.133
setting or like Prot does in his

00:09:42.134 --> 00:09:43.479
teaching settings.

00:09:43.480 --> 00:09:46.456
Then you communicate certain things, which I

00:09:46.457 --> 00:09:48.959
don't want to say they're ineffable.

00:09:48.960 --> 00:09:51.361
It's not like you couldn't write them down in a

00:09:51.362 --> 00:09:52.639
manual, but it's also...

00:09:52.640 --> 00:09:55.679
Like the mentality that people have.

NOTE example: dabbrev, there's no undo? Ah, it's just the regular undo.

00:09:55.680 --> 00:09:58.002
A different example I have, like, I remember I

00:09:58.003 --> 00:09:59.958
was using daabrev for the first time

00:09:59.959 --> 00:10:00.679
or something.

00:10:00.680 --> 00:10:02.519
For a while I was irritated.

00:10:02.520 --> 00:10:03.399
There was no undo.

00:10:03.400 --> 00:10:06.185
Like, how do I go back to the previous

00:10:06.186 --> 00:10:07.359
text expansion?

00:10:07.360 --> 00:10:09.609
Until at some point I realized, oh wait, it's

00:10:09.610 --> 00:10:10.559
just regular undo.

00:10:10.560 --> 00:10:14.519
That's just the way you undo it.

00:10:14.520 --> 00:10:19.679
But somehow writing this down in a manual is...

00:10:19.680 --> 00:10:22.511
It's not an easy thing to always think of

00:10:22.512 --> 00:10:23.479
these things.

00:10:23.480 --> 00:10:25.804
For me it seems obvious now, but at that point I

00:10:25.805 --> 00:10:27.839
specifically remember it was unintuitive.

00:10:27.840 --> 00:10:31.000
I had this accumulated expectation from other

00:10:31.001 --> 00:10:34.250
programmers if I have a text expansion in this

00:10:34.251 --> 00:10:37.312
case that I'm actually cycling through some

00:10:37.313 --> 00:10:40.772
special sort of menu, not thinking of it as just

00:10:40.773 --> 00:10:43.079
regular text buffer operations.

00:10:43.080 --> 00:10:45.839
Just text editing in some fancy way.

00:10:45.840 --> 00:10:48.079
But that's one

00:10:48.080 --> 00:10:50.919
We should keep in mind.

00:10:50.920 --> 00:10:54.951
This was all related to the preset theme in some

00:10:54.952 --> 00:10:55.959
way, right?

00:10:55.960 --> 00:10:56.999
You're writing this down.

00:10:57.000 --> 00:10:58.639
[Sacha]: Yes, I'm writing this down.

00:10:58.640 --> 00:11:00.399
That's why we have notes.

NOTE newcomers presets: smooth over the intuition-disrupting things that are not actually necessary/beneficial; ex: enable whichkey

00:11:00.400 --> 00:11:03.147
So what I'm thinking is you wanted the idea

00:11:03.148 --> 00:11:06.294
behind the newcomers presets is to kind of smooth

00:11:06.295 --> 00:11:09.270
over some of those intuition disrupting things

00:11:09.271 --> 00:11:11.688
where people are coming in with maybe

00:11:11.689 --> 00:11:14.481
expectations of how stuff should work in a

00:11:14.482 --> 00:11:15.479
modern editor.

00:11:15.480 --> 00:11:18.199
[Philip]: Specifically the intuition.

00:11:18.200 --> 00:11:19.599
Go ahead.

00:11:19.600 --> 00:11:22.570
Specifically the intuition-disrupting things

00:11:22.571 --> 00:11:25.616
which are not necessary, in some sense. Like, we

00:11:25.617 --> 00:11:28.943
wouldn't want to be an intuition disrupt... like you

00:11:28.944 --> 00:11:32.078
could probably... Like Cua mode or something that

00:11:32.079 --> 00:11:35.159
would be something where people if they would

00:11:35.160 --> 00:11:38.394
start using... If you would enable Cua-mode

00:11:38.395 --> 00:11:41.792
by default, that would inhibit further development,

00:11:41.793 --> 00:11:44.951
because then it might be confusing with using

00:11:44.952 --> 00:11:47.479
C-c, like if you... because suddenly

00:11:47.480 --> 00:11:51.347
Delay becomes a user input, which is usually not

00:11:51.348 --> 00:11:53.039
the case with Emacs.

00:11:53.040 --> 00:11:55.769
I know which-key is an exception in that case,

00:11:55.770 --> 00:11:58.595
because which-key pausing actually is an action

00:11:58.596 --> 00:12:00.439
and displays a pop-up buffer.

00:12:00.440 --> 00:12:03.282
And we do enable which-key due to popular requests

00:12:03.283 --> 00:12:04.559
and the preset theme.

00:12:04.560 --> 00:12:07.269
I personally was a bit hesitant about that one,

00:12:07.270 --> 00:12:08.999
but it seems to be something.

00:12:09.000 --> 00:12:11.305
where you have to really weigh it on a

00:12:11.306 --> 00:12:12.519
case-to-case basis.

00:12:12.520 --> 00:12:15.780
But, Sacha, do you have the... What version of

00:12:15.781 --> 00:12:18.119
Emacs do you have running there?

00:12:18.120 --> 00:12:19.599
I can't make it out.

00:12:19.600 --> 00:12:22.964
[Sacha]: Yeah, this is Emacs 31, so I do have...

00:12:22.965 --> 00:12:25.839
So you can open the preset theme, right?

00:12:25.840 --> 00:12:26.639
Yeah, yeah.

00:12:26.640 --> 00:12:28.199
Hang on a second.

00:12:28.200 --> 00:12:32.613
Let me bring up a... I have now a terminal, so I

00:12:32.614 --> 00:12:37.119
can... Let me bring up a completely fresh Emacs.

00:12:37.120 --> 00:12:39.239
[Philip]: No, I just wanted to open the file.

00:12:39.240 --> 00:12:41.839
Because in the file there is a prelude.

00:12:41.840 --> 00:12:43.708
There's a commentary section that actually

00:12:43.709 --> 00:12:44.599
explains the curve.

00:12:44.600 --> 00:12:45.999
It's not a library.

00:12:46.000 --> 00:12:48.805
[Prot]: That's exactly the joke with the... Yeah,

00:12:48.806 --> 00:12:51.439
that's part of the problem with those themes.

00:12:51.440 --> 00:12:52.319
That's the problem.

00:12:52.320 --> 00:12:53.719
Wait, really?

00:12:53.720 --> 00:12:56.439
It would be easier if they were all there.

00:12:56.440 --> 00:12:59.031
It's a kind of an implementation detail that from

00:12:59.032 --> 00:13:01.359
a user it doesn't really make a difference.

00:13:01.360 --> 00:13:03.776
[Philip]: You have the same problem with all

00:13:03.777 --> 00:13:05.919
these things, if I remember correctly.

00:13:05.920 --> 00:13:07.679
Yeah, yeah, exactly.

00:13:07.680 --> 00:13:10.519
Yeah, and you see up there the commentary section?

00:13:10.520 --> 00:13:11.359
[Sacha]: Yeah.

00:13:11.360 --> 00:13:14.048
[Philip]: If you scroll up a bit, it's above

00:13:14.049 --> 00:13:14.599
line 37.

00:13:14.600 --> 00:13:18.945
The theme configures which we can reasonably

00:13:18.946 --> 00:13:23.533
expect the average user to want to enable, but

00:13:23.534 --> 00:13:27.801
would otherwise be unlikely to discover on

00:13:27.802 --> 00:13:28.919
their own.

00:13:28.920 --> 00:13:32.549
That's sort of the overall guide of what options

00:13:32.550 --> 00:13:33.759
we want to add.

00:13:33.760 --> 00:13:36.349
That's why it's also an option on the

00:13:36.350 --> 00:13:37.399
splash screen.

00:13:37.400 --> 00:13:41.461
You just tick it and then the user options

00:13:41.462 --> 00:13:46.199
enablement theme should be activated by default.

00:13:46.200 --> 00:13:48.479
[Sacha]: That's sort of the idea.

00:13:48.480 --> 00:13:51.359
So it is available on the splash screen.

00:13:51.360 --> 00:13:52.519
So if I say display splash.

00:13:52.520 --> 00:13:55.199
Oh my goodness, how do I get to the splash screen?

00:13:55.200 --> 00:13:57.239
[Prot]: It's C-h C-a or not?

00:13:57.240 --> 00:13:58.239
I forgot.

00:13:58.240 --> 00:13:59.399
There are two things.

00:13:59.400 --> 00:14:02.664
[Sacha]: There's a splash screen and there's

00:14:02.665 --> 00:14:04.519
the... Hang on a second.

00:14:04.520 --> 00:14:08.159
I'm just going to start a new Emacs.

00:14:08.160 --> 00:14:11.948
[Prot]: Yeah, I haven't done that in, like, I

00:14:11.949 --> 00:14:12.959
don't know.

00:14:12.960 --> 00:14:14.719
That's the about Emacs screen.

00:14:14.720 --> 00:14:16.439
But you have a display splash screen.

00:14:16.440 --> 00:14:17.639
C-h C-a on mine.

00:14:17.640 --> 00:14:20.519
About Emacs.

00:14:20.520 --> 00:14:21.639
Emacs about Emacs.

00:14:21.640 --> 00:14:24.279
[Sacha]: Then I have a better idea.

00:14:24.280 --> 00:14:26.039
I'm going to start this new Emacs person.

00:14:26.040 --> 00:14:27.039
Okay, here we go.

00:14:27.040 --> 00:14:27.439
New Emacs.

00:14:27.440 --> 00:14:28.159
Fresh person.

NOTE
#+SCREENSHOT: ye29-prot-and-pkal-emacs-newcomer-experience-00-14-32-733.jpg
#+SCREENSHOT_TIME: 00:14:32.733
#+SCREENSHOT_CROP: 371 158 875 700

00:14:28.160 --> 00:14:29.719
So we click on this, right?

00:14:29.720 --> 00:14:32.237
And it turns on a bunch of things including the

00:14:32.238 --> 00:14:32.719
tab bar.

NOTE
newcomers-presets choice is not saved at the moment

00:14:32.720 --> 00:14:35.578
I wasn't entirely sure how people would save that

00:14:35.579 --> 00:14:37.679
so that it happens again next time.

00:14:37.680 --> 00:14:39.239
Is the idea that they just keep

00:14:39.240 --> 00:14:39.999
checking that box?

00:14:40.000 --> 00:14:41.319
[Philip]: That's not done currently.

00:14:41.320 --> 00:14:44.199
That's something we haven't simply decided on.

00:14:44.200 --> 00:14:47.162
[Philip]: The current presentation is you enable

00:14:47.163 --> 00:14:50.145
it in that mode and then you'd have to, which is

00:14:50.146 --> 00:14:52.844
of course saying it out loud makes it sound

00:14:52.845 --> 00:14:55.592
stupid, but you'd have to persistently save

00:14:55.593 --> 00:14:56.359
the themes.

00:14:56.360 --> 00:14:58.967
So then I think it's optional to save themes

00:14:58.968 --> 00:15:01.199
and then...

NOTE
#+SCREENSHOT: ye29-prot-and-pkal-emacs-newcomer-experience-00-15-14-000.jpg
#+SCREENSHOT_TIME: 00:15:14.000
#+SCREENSHOT_CROP: 371 158 875 700

00:15:01.200 --> 00:15:03.487
[Sacha]: It is possible for people to get to it

00:15:03.488 --> 00:15:05.999
if we leave them a breadcrumb.

00:15:06.000 --> 00:15:08.615
But it's not going to occur to them because it

00:15:08.616 --> 00:15:11.426
would never occur to them to say customize Emacs,

00:15:11.427 --> 00:15:13.990
custom themes, and then I can pick newcomers

00:15:13.991 --> 00:15:15.039
themes from here.

00:15:15.040 --> 00:15:19.984
[Philip]: It's a point that I at least intended

00:15:19.985 --> 00:15:22.719
to mention at some point.

00:15:22.720 --> 00:15:24.912
Emacs level whether we want to make this because

00:15:24.913 --> 00:15:27.124
currently it just loads the theme but it doesn't

00:15:27.125 --> 00:15:29.183
persist the choice but it could just as well

00:15:29.184 --> 00:15:30.119
persist the choice.

00:15:30.120 --> 00:15:32.383
There's a discussion to be had which of these two

00:15:32.384 --> 00:15:34.611
behaviors is more intuitive because of course if

00:15:34.612 --> 00:15:36.478
you persist the option then you have the

00:15:36.479 --> 00:15:38.595
disadvantage that someone might enable it but

00:15:38.596 --> 00:15:40.783
doesn't actually want it but now somehow their

00:15:40.784 --> 00:15:42.639
Emacs is broken from their perspective.

00:15:42.640 --> 00:15:45.171
I don't want tabs or whatever they say or I don't

00:15:45.172 --> 00:15:47.744
want which key and they don't know how to disable

00:15:47.745 --> 00:15:48.479
it so this is

00:15:48.480 --> 00:15:51.447
I wouldn't say it's an obvious decision in

00:15:51.448 --> 00:15:52.719
either direction.

00:15:52.720 --> 00:15:55.716
[Prot]: Like if there is an enable button or

00:15:55.717 --> 00:15:58.697
save, there should be a disable and unsave,

00:15:58.698 --> 00:15:59.599
like remove.

00:15:59.600 --> 00:16:02.359
Yeah, that's the checkbox idea in that case.

00:16:02.360 --> 00:16:08.439
[Philip]: That would be the tricky part.

00:16:08.440 --> 00:16:10.143
And especially finding the place on the splash

00:16:10.144 --> 00:16:11.959
screen so that this actually works for everyone.

00:16:11.960 --> 00:16:15.258
Because if you open it in a TUI mode, I think then

00:16:15.259 --> 00:16:18.451
initially, if I remember correctly, we had this

00:16:18.452 --> 00:16:21.695
button or this new to Emacs line was underneath

00:16:21.696 --> 00:16:22.799
the copyrights.

00:16:22.800 --> 00:16:24.319
No, no, that was a different thing.

NOTE
#+SCREENSHOT: ye29-prot-and-pkal-emacs-newcomer-experience-00-16-46-233.jpg
#+SCREENSHOT_TIME: 00:16:46.233
#+SCREENSHOT_CROP: 371 158 875 700

00:16:24.320 --> 00:16:27.392
If you click on newcomers preset, for example,

00:16:27.393 --> 00:16:30.399
then you are redirected to the manual entry.

00:16:30.400 --> 00:16:34.636
And I think we had some, yeah, there's this, the

00:16:34.637 --> 00:16:35.519
top line.

00:16:35.520 --> 00:16:38.141
If you got here by clicking the link on the

00:16:38.142 --> 00:16:40.519
splash screen, that was on the bottom.

00:16:40.520 --> 00:16:42.399
That was on the bottom of the manual entry.

00:16:42.400 --> 00:16:46.212
But if you open it up in an 80x24 terminal, you

00:16:46.213 --> 00:16:48.159
wouldn't see this line.

00:16:48.160 --> 00:16:50.902
[Sacha]: You can't see it and you don't know how

00:16:50.903 --> 00:16:53.622
to... These are the complications that you have

00:16:53.623 --> 00:16:55.359
to keep in mind in that case.

00:16:55.360 --> 00:16:57.777
[Philip]: You might not have the intuition to

00:16:57.778 --> 00:17:00.347
space the scroll, which I think that's the case

00:17:00.348 --> 00:17:00.839
in less.

00:17:00.840 --> 00:17:03.033
But yes, again, you have this accumulated

00:17:03.034 --> 00:17:04.799
intuition from using Unix tools.

00:17:04.800 --> 00:17:08.199
Which is one of the points I wanted to bring up.

NOTE newcomers without much computing experience might even find it easier (no C-c expectations, C-v etc)

00:17:08.200 --> 00:17:09.759
Who is this mythical newcomer?

00:17:09.760 --> 00:17:12.039
What's their actual background?

00:17:12.040 --> 00:17:15.379
Because I claim, and this might be controversial,

00:17:15.380 --> 00:17:18.729
that if someone's actually new to using computers

00:17:18.730 --> 00:17:21.748
at all, which is something I have seen, like

00:17:21.749 --> 00:17:23.567
people who have never programmed, people who have

00:17:23.568 --> 00:17:26.767
never used Unix, people who have never used more

00:17:26.768 --> 00:17:31.233
than a web browser, to exaggerate, they appear to

00:17:31.234 --> 00:17:32.933
do fine with Emacs because they have no

00:17:32.934 --> 00:17:36.067
expectation of using C-c, C-v, C-c, and so on.

00:17:36.068 --> 00:17:38.200
They know that they have to use the buttons

00:17:38.201 --> 00:17:38.767
up there.

00:17:38.768 --> 00:17:40.100
So in that sense, they're fine.

00:17:40.101 --> 00:17:43.329
There's an optimization loop

00:17:43.330 --> 00:17:45.367
when you're used to these shortcuts

00:17:45.368 --> 00:17:47.433
and a few of these conventions how to move around,

00:17:47.434 --> 00:17:54.359
that Emacs defaults appear to be inconvenient.

00:17:54.360 --> 00:17:56.767
So that's also a distinction you have to make in

00:17:56.768 --> 00:17:58.900
that setting.

00:17:58.901 --> 00:18:00.467
[Prot]: Exactly, exactly.

00:18:00.468 --> 00:18:03.000
Plus you cannot optimize for everybody.

00:18:03.001 --> 00:18:06.040
Eventually you just have to make some assumptions.

00:18:06.041 --> 00:18:07.580
[Philip]: Exactly.

00:18:07.581 --> 00:18:10.600
But what these assumptions are is the controversial...

00:18:10.600 --> 00:18:12.280
[Prot]: I think the way you approached it

00:18:12.280 --> 00:18:13.880
makes sense.

00:18:13.880 --> 00:18:16.067
This is the reasonable way, I think, to do it.

00:18:16.068 --> 00:18:17.767
You have to assume that they have this

00:18:17.768 --> 00:18:18.700
background knowledge.

00:18:18.701 --> 00:18:20.767
And if they don't, it's what you said.

00:18:20.768 --> 00:18:23.833
They don't have to relearn something because they

00:18:23.834 --> 00:18:25.100
didn't know it to begin with.

00:18:25.101 --> 00:18:30.339
So they start from a good basis.

NOTE Focus group?

00:18:30.340 --> 00:18:32.400
[Sacha]: Is there interest in having some kind of

00:18:32.401 --> 00:18:36.767
focus group or something like that so that if we

00:18:36.768 --> 00:18:39.467
come across newbies, we can say, hey, you know,

00:18:39.468 --> 00:18:41.840
the developers would like to be able to float

00:18:41.841 --> 00:18:44.067
some questions once in a while to see what actual

00:18:44.068 --> 00:18:45.933
newbies would think of this?

00:18:45.934 --> 00:18:48.967
[Philip]: I have actually tried this once.

00:18:48.960 --> 00:18:52.680
I was in a hacker... what's it called?

00:18:52.680 --> 00:18:55.880
There's this computer club in Germany and they

00:18:55.880 --> 00:18:59.760
have local events on a regular basis and I was

00:18:59.760 --> 00:19:02.920
going to one anyway because a few friends of mine

00:19:02.920 --> 00:19:04.840
were going there and then I did an introduction

00:19:04.840 --> 00:19:09.320
to Emacs course there and printed out a survey

00:19:09.320 --> 00:19:12.640
basically, a questionnaire for Emacs neophytes.

00:19:12.640 --> 00:19:15.320
I think if you search for that string on the

00:19:15.320 --> 00:19:17.760
Emacs development list, you're going to find that.

00:19:17.760 --> 00:19:20.040
And I gave a few people these texts.

00:19:20.040 --> 00:19:20.800
I printed it out.

00:19:20.800 --> 00:19:23.600
It was actually pieces of paper, so it wouldn't be

00:19:23.600 --> 00:19:26.560
personally identified. There wouldn't be any

00:19:26.560 --> 00:19:28.280
information there.

00:19:28.280 --> 00:19:30.040
And one of the things I thought was interesting

00:19:30.040 --> 00:19:31.920
in the results was that the main thing people

00:19:31.920 --> 00:19:35.560
were saying was it's overwhelming.

00:19:35.560 --> 00:19:38.600
Like the amount of things...

00:19:38.600 --> 00:19:39.760
Just the default Emacs.

00:19:39.760 --> 00:19:46.480
No configuration, no options, no auto-completion,

00:19:46.480 --> 00:19:49.720
no fido, whatever.

00:19:49.720 --> 00:19:52.840
It was just so many new things, so many

00:19:52.840 --> 00:19:56.160
differences that they lost an overview, basically.

00:19:56.160 --> 00:20:01.520
This was a group of people who, I think there

00:20:01.520 --> 00:20:04.320
were questions, and they were like, how long have

00:20:04.320 --> 00:20:05.680
you been using computers?

00:20:05.680 --> 00:20:07.880
Because, of course, it was so generic.

00:20:07.880 --> 00:20:11.800
What previous UIs have you had experience with?

00:20:11.800 --> 00:20:16.360
Most people use Eclipse or Vi, NeoVim and even

00:20:16.360 --> 00:20:19.440
reasonably complex Vim configurations.

00:20:19.440 --> 00:20:22.760
Of course, this is a bias due to the setting in

00:20:22.760 --> 00:20:25.440
which I was asking these questions.

00:20:25.440 --> 00:20:28.160
I'm actually planning to repeat this experiment

00:20:28.160 --> 00:20:29.880
because I'm going to

00:20:29.880 --> 00:20:34.160
another one of these congresses or these meetups

00:20:34.160 --> 00:20:35.267
in a month or so.

00:20:35.268 --> 00:20:37.367
I wanted to offer this again to people,

00:20:37.368 --> 00:20:43.480
specifically seeing if these newcomer presets are

00:20:43.480 --> 00:20:45.840
valuable or if they help people or not.

00:20:45.880 --> 00:20:48.485
But of course, doing this in a properly

00:20:48.486 --> 00:20:51.759
scientific setting would be much more difficult.

00:20:51.760 --> 00:20:53.799
Yeah, of course.

00:20:53.800 --> 00:20:54.719
We need money.

00:20:54.720 --> 00:20:57.679
Difficult steps of doing this.

00:20:57.680 --> 00:21:00.479
[Sacha]: Maybe even like a mailing list.

00:21:00.480 --> 00:21:02.200
We can say, hey, you know, you're new to Emacs,

00:21:02.201 --> 00:21:07.599
but you kind of want to make it better.

00:21:07.600 --> 00:21:09.360
Email this person.

00:21:09.360 --> 00:21:11.880
And every so often when developers have a

00:21:11.880 --> 00:21:15.040
question, they can say like, does this make sense

00:21:15.040 --> 00:21:15.280
to you?

00:21:15.280 --> 00:21:16.320
Here's a screenshot.

00:21:16.320 --> 00:21:17.800
Or would you prefer this versus this?

00:21:17.800 --> 00:21:18.680
[Philip]: As in, we would send an email to all

00:21:18.680 --> 00:21:21.600
the people, but then I think, I mean, the big

00:21:21.600 --> 00:21:26.680
question, difficulty in that sense is then data

00:21:26.680 --> 00:21:27.520
protection, I think.

00:21:27.520 --> 00:21:29.480
That's what I was trying to avoid with having

00:21:29.480 --> 00:21:32.080
this just printed out and no personal

00:21:32.080 --> 00:21:37.000
identification, because then we have to store

00:21:37.000 --> 00:21:38.240
email addresses.

00:21:38.240 --> 00:21:39.000
[Sacha]: Okay, all right.

00:21:39.000 --> 00:21:39.440
That's fine.

00:21:39.440 --> 00:21:40.880
[Philip]: That's fair.

00:21:40.880 --> 00:21:44.240
So, sounds like an excuse.

00:21:44.240 --> 00:21:46.360
[Philip]: Partially it is, but something like,

00:21:46.360 --> 00:21:48.400
I mean...

00:21:48.400 --> 00:21:51.360
I'm not saying that my approach, what I was doing

00:21:51.360 --> 00:21:52.600
was unbiased.

00:21:52.600 --> 00:21:56.200
There are people who would be more willing to

00:21:56.200 --> 00:21:57.560
answer these things and people who are

00:21:57.560 --> 00:22:00.320
less willing.

00:22:00.320 --> 00:22:02.440
I know the bias in this case because I actually

00:22:02.440 --> 00:22:04.520
saw the people and I had a feeling for what kind

00:22:04.520 --> 00:22:05.920
of people they were.

00:22:05.920 --> 00:22:09.520
So I think I'm in a better position to factor

00:22:09.520 --> 00:22:09.880
it out.

00:22:09.880 --> 00:22:12.560
But if it's actually properly, if you just have

00:22:12.560 --> 00:22:15.400
people who you send emails to

NOTE Emacs survey before

00:22:15.400 --> 00:22:18.880
I'm not sure if it remains represented because

00:22:18.880 --> 00:22:22.319
there have been these Emacs surveys in the past.

00:22:22.320 --> 00:22:26.200
I remember at least two generations.

00:22:26.200 --> 00:22:28.600
And they're of course the ones which are

00:22:28.600 --> 00:22:34.240
circulated on Reddit, on Hacker News, on IRC,

00:22:34.240 --> 00:22:36.440
which I still think is a bubble of maybe

00:22:36.440 --> 00:22:39.280
200 people.

00:22:39.280 --> 00:22:43.600
Like mainly 200 people and some people who are

00:22:43.600 --> 00:22:45.680
Surrounding these groups.

00:22:45.680 --> 00:22:48.640
So I'm always sort of dubious because these are

00:22:48.640 --> 00:22:48.880
the people.

NOTE people's backgrounds influence their responses

00:22:48.880 --> 00:22:50.880
I mean, these are people who are much more likely

00:22:50.880 --> 00:22:56.800
to have heard of, what's it called, Evil Mode or

00:22:56.800 --> 00:23:00.200
something like that, or had some experience with

00:23:00.200 --> 00:23:01.320
other editors.

00:23:01.320 --> 00:23:07.760
And these things all influence their responses.

00:23:07.760 --> 00:23:09.520
always taints the results.

00:23:09.520 --> 00:23:12.840
Every time these discussions are brought up on

00:23:12.865 --> 00:23:16.523
Emacs devel, people have some level of doubts as

00:23:16.524 --> 00:23:19.039
to how reliable the results are.

00:23:19.040 --> 00:23:21.519
[Prot]: Correct, correct.

00:23:21.520 --> 00:23:24.904
It's hard to get reliable results, though some

00:23:24.905 --> 00:23:27.479
data is still better than nothing.

00:23:27.480 --> 00:23:30.113
But granted, you don't want to base decisions on

00:23:30.114 --> 00:23:31.759
those results, of course not.

00:23:31.760 --> 00:23:34.101
[Philip]: Yeah, that shouldn't be the last

00:23:34.102 --> 00:23:35.439
decision-making factor.

00:23:35.440 --> 00:23:37.936
You should just have a function where the input

00:23:37.937 --> 00:23:40.464
is whatever the data is, and then the output is

00:23:40.465 --> 00:23:42.239
mechanically determined by that.

00:23:42.240 --> 00:23:46.439
Yes?

NOTE Hypothetical: Reset themes, to reset things back to the defaults of a specific Emacs version

00:23:46.440 --> 00:23:49.312
Now, related to the preset theme, there's also been

00:23:49.313 --> 00:23:51.663
a discussion (I don't think this has been

00:23:51.664 --> 00:23:54.433
mentioned much online) of so-called reset themes.

00:23:54.434 --> 00:23:57.330
I'm not sure if you've heard of these. So the idea

00:23:57.331 --> 00:24:00.177
would be, additionally to having preset themes of

00:24:00.178 --> 00:24:02.799
options, which we have changed, which we would

00:24:02.800 --> 00:24:05.375
recommend because the newcomer

00:24:05.376 --> 00:24:08.150
preset theme makes no real assumption that the

00:24:08.151 --> 00:24:10.954
options will be stable, so we might change

00:24:10.955 --> 00:24:13.879
them from version to version, this gives us

00:24:13.880 --> 00:24:18.520
some flexibility to say we have a new option. Like,

00:24:18.520 --> 00:24:19.820
for example, if the preset theme had existed since

00:24:19.821 --> 00:24:21.999
Emacs 29, and now in Emacs...

NOTE package-autosuggest-mode suggests based on file extension

00:24:22.000 --> 00:24:22.967
That was actually the

00:24:22.968 --> 00:24:25.700
reason this entire discussion started when Emacs

00:24:25.701 --> 00:24:30.233
31, that's the current release...

00:24:30.234 --> 00:24:32.733
to be released, there's this

00:24:32.734 --> 00:24:34.367
package-autosuggest-mode

00:24:34.368 --> 00:24:36.833
so that's a little prompt, when it's enabled,

00:24:36.834 --> 00:24:38.967
a little prompt in the mode line.

00:24:38.968 --> 00:24:41.760
You can click on it, Emacs installs the package

00:24:41.761 --> 00:24:41.760
which it believes to be the right one

00:24:41.761 --> 00:24:47.080
for the current file.

00:24:47.081 --> 00:24:49.100
[Prot]: The major mode, right?

00:24:49.101 --> 00:24:50.000
[Philip]: No, it's a minor mode.

00:24:50.001 --> 00:24:50.833
It's a global minor mode.

00:24:50.834 --> 00:24:52.833
[Prot]: No, no, I mean, but it installs based on

00:24:52.834 --> 00:24:54.100
the major mode, right?

00:24:54.101 --> 00:24:55.033
[Philip]: Ah, yes, yes, yes.

00:24:55.034 --> 00:25:00.767
It installs a major mode package, which matches

00:25:00.768 --> 00:25:03.000
the current file format being used based on

00:25:03.001 --> 00:25:06.132
auto-mode-alist or the magic,

00:25:06.133 --> 00:25:09.115
what's it called, magic file alist

00:25:09.116 --> 00:25:11.359
and all these things, and it can...

00:25:11.360 --> 00:25:12.880
We didn't want to enable this by default, but we

00:25:12.880 --> 00:25:15.360
wanted to enable it for newcomers.

00:25:15.400 --> 00:25:18.151
That was actually the first option in the

00:25:18.152 --> 00:25:19.359
newcomers preset.

00:25:19.360 --> 00:25:22.156
If the preset had been older, we would have still

00:25:22.157 --> 00:25:24.439
wanted to add this to the preset theme.

00:25:24.440 --> 00:25:25.759
It's not supposed to be set in stone.

00:25:25.760 --> 00:25:28.305
Now the idea with the reset theme is, and this is

00:25:28.306 --> 00:25:30.770
still hypothetical since we haven't implemented

00:25:30.771 --> 00:25:32.905
it, is to have reset themes for specific

00:25:32.906 --> 00:25:33.759
Emacs versions.

00:25:33.760 --> 00:25:36.950
So we, in Emacs 32, we might have an Emacs 31

00:25:36.920 --> 00:25:39.960
reset theme for all the options that we have

00:25:39.960 --> 00:25:44.800
changed in Emacs 31, in Emacs 32, so that we

00:25:44.800 --> 00:25:46.320
could reset them to the previous option.

00:25:46.320 --> 00:25:49.080
So that in this sense too, if the discussion, if

00:25:49.080 --> 00:25:51.280
the question is really just, we don't want to

00:25:51.280 --> 00:25:53.680
annoy people who have...

00:25:53.680 --> 00:25:55.800
When upgrading, of course, it's still a minor

00:25:55.800 --> 00:25:57.320
inconvenience because they have to write

00:25:57.320 --> 00:26:01.600
load-theme emacs31-reset in their configuration, but

00:26:01.600 --> 00:26:04.160
it would be easier for them to actually undo

00:26:04.160 --> 00:26:04.840
any changes.

00:26:04.840 --> 00:26:07.080
And in future versions of Emacs, hopefully also

00:26:07.080 --> 00:26:09.880
persist these changes so that you can really sort

00:26:09.880 --> 00:26:13.400
of like pinning your version of Emacs, a soft

00:26:13.400 --> 00:26:14.400
pinning of options.

00:26:14.400 --> 00:26:17.480
So this is something for the future.

00:26:17.480 --> 00:26:19.880
Consider as well, which would be reusing the

00:26:19.880 --> 00:26:22.320
theme approach, which is another reason why I

00:26:22.320 --> 00:26:24.600
hope that the notion of user option themes will

00:26:24.600 --> 00:26:27.000
become more, because it's been there from

00:26:27.000 --> 00:26:27.200
the beginning.

00:26:27.200 --> 00:26:32.080
The Customize system has always supported user

00:26:32.080 --> 00:26:33.800
options to be added, but people have always only

00:26:33.800 --> 00:26:37.040
customized, not only... I'm not sure no one has

00:26:37.040 --> 00:26:38.800
ever done it, but it has not been a popular

00:26:38.800 --> 00:26:40.720
approach to use the user options, even though the

00:26:40.720 --> 00:26:46.280
technical facilities have been there all the time.

00:26:46.280 --> 00:26:48.720
That's also going to be interesting if the reset

00:26:48.720 --> 00:26:50.960
theme would be forwards compatible.

00:26:50.960 --> 00:26:54.480
But that's another discussion that makes it even

00:26:54.480 --> 00:26:55.440
more complicated.

00:26:55.440 --> 00:26:59.040
So that you could add them hypothetically to ELPA

00:26:59.040 --> 00:27:00.160
as a core package.

00:27:00.160 --> 00:27:00.680
[Prot]: Nice. Yeah.

00:27:01.520 --> 00:27:02.320
Of course, the reset themes, if you

00:27:02.320 --> 00:27:05.920
implement them, that's great because it opens up

00:27:05.920 --> 00:27:10.560
the possibility to be a little bit more ambitious

00:27:10.560 --> 00:27:12.880
with the defaults and break.

00:27:12.880 --> 00:27:13.960
[Philip]: Yeah.

00:27:13.960 --> 00:27:16.400
Because that's exactly... Every core...

00:27:16.400 --> 00:27:19.360
Every default discussion boils down to: if we

00:27:19.360 --> 00:27:22.120
break this, people won't understand what changed.

00:27:22.120 --> 00:27:23.920
If we change this, people won't understand

00:27:23.920 --> 00:27:26.920
what broke. But on the other side, people like

00:27:26.920 --> 00:27:27.560
all new...

00:27:27.560 --> 00:27:30.560
Can we reasonably assume that all new people

00:27:30.560 --> 00:27:32.480
would actually want this theme?

00:27:32.480 --> 00:27:34.160
Then we want to give us some sort of more

00:27:34.160 --> 00:27:36.200
flexibility in this sense without actually the

00:27:36.200 --> 00:27:38.320
support, because I think that the value

00:27:38.320 --> 00:27:41.680
proposition of having a stable interface where

00:27:41.680 --> 00:27:45.440
you can expect the appearance of the theme to be

00:27:45.440 --> 00:27:48.280
somewhat stable over time, how Emacs behaves,

00:27:48.280 --> 00:27:52.879
that's actually a positive thing.

NOTE Emacs 32: bundled versions of Emacs (Big Emacs - distributions that include more packages)

00:27:52.880 --> 00:27:58.080
And finally, in Emacs 32, this is also a finally.

00:27:58.080 --> 00:28:00.760
For now, one thing I just thought of, which I was

00:28:00.760 --> 00:28:04.320
reminded of, there's a big plan for Emacs 31.

00:28:04.320 --> 00:28:08.040
This is one of, I've never pronounced his name,

00:28:08.040 --> 00:28:12.440
Sean Whitton, I think it should be pronounced.

00:28:12.440 --> 00:28:16.160
He said that one of his plans as a maintainer

00:28:16.160 --> 00:28:19.960
will be to work on the bundled version of Emacs,

00:28:19.960 --> 00:28:21.880
which some people, including myself, have been

00:28:21.880 --> 00:28:23.440
calling Fat Emacs.

00:28:23.440 --> 00:28:27.240
So adding, selecting certain packages from ELPA,

00:28:27.240 --> 00:28:29.960
from GNU ELPA, and bundle a secondary

00:28:29.960 --> 00:28:31.720
distribution of Emacs which would include

00:28:31.720 --> 00:28:33.640
additional packages,

00:28:33.640 --> 00:28:35.760
Which are currently, so for example, one example

00:28:35.760 --> 00:28:36.320
would be org-tex.

00:28:36.320 --> 00:28:38.880
And then you could, when you install Emacs, you

00:28:38.880 --> 00:28:40.680
could install, I don't know, big or fat

00:28:40.680 --> 00:28:41.840
or whatever...

00:28:41.840 --> 00:28:44.480
Big Emacs with all these packages pre-installed,

00:28:44.480 --> 00:28:46.320
which would be pinned to the right version which

00:28:46.320 --> 00:28:48.600
we would have

00:28:48.600 --> 00:28:50.920
hopefully ensured that they're actually compatible

00:28:50.920 --> 00:28:51.400
with one another.

00:28:51.400 --> 00:28:53.920
And then you have the normal Emacs, which would

00:28:53.920 --> 00:28:55.160
be the thinner one.

00:28:55.160 --> 00:28:57.000
And an interesting corollary of all of this would

00:28:57.000 --> 00:29:00.760
also be that if the way from ELPA into the core

00:29:00.760 --> 00:29:03.840
would be made easier, that the way out of the

00:29:03.840 --> 00:29:07.160
core into ELPA would also be made easier.

00:29:07.160 --> 00:29:09.440
Because that would mean it's more easier to

00:29:09.440 --> 00:29:12.680
deprecate packages over time since you can

00:29:12.680 --> 00:29:13.840
install it.

00:29:13.840 --> 00:29:16.040
This protective layer, let's say, protective

00:29:16.040 --> 00:29:19.520
layer, protected merely by inconvenience and the

00:29:19.520 --> 00:29:22.640
annoyance of moving these packages in and out,

00:29:22.640 --> 00:29:24.040
would fade away over time.

00:29:24.040 --> 00:29:27.640
Some cruft within Emacs itself, within core

00:29:27.640 --> 00:29:30.520
Emacs, could be moved to ELPA.

00:29:30.520 --> 00:29:33.760
So we could actually thin down Emacs.

00:29:33.760 --> 00:29:35.120
That's one possibility.

00:29:35.120 --> 00:29:36.200
Oh, that's big.

00:29:36.200 --> 00:29:37.000
Yeah.

00:29:37.000 --> 00:29:38.440
One strand of commentary in that direction.

00:29:38.440 --> 00:29:43.400
That's something that I'm planning to help in the

00:29:43.400 --> 00:29:45.680
Emacs 32 development cycle.

00:29:45.680 --> 00:29:48.080
Because these options then could also be in...

00:29:48.080 --> 00:29:51.600
Any options related to this could also be added

00:29:51.600 --> 00:29:54.160
to the newcomers preset theme.

NOTE Selection versus multiple completion

00:29:54.160 --> 00:29:58.120
So one could of course... Vertico or these

00:29:58.120 --> 00:30:01.120
interactive selection packages... I think I've

00:30:01.120 --> 00:30:02.800
commented that before there is a certain

00:30:02.800 --> 00:30:04.560
controversy there. I think that

00:30:04.560 --> 00:30:09.640
there's a certain controversy that

00:30:09.640 --> 00:30:11.520
selection is not always the same as text

00:30:11.520 --> 00:30:14.920
expansion, which is sometimes like... There are, I

00:30:14.920 --> 00:30:20.200
think, the certain... skeleton, or there's

00:30:20.200 --> 00:30:22.440
this insert... what's it called, auto-insert command...

00:30:22.440 --> 00:30:26.160
It's not auto-insert, something like that, that

00:30:26.160 --> 00:30:29.160
prompts the user for multiple things, but it's not

00:30:29.160 --> 00:30:31.400
written using [completing-read-multiple], but it's

00:30:31.400 --> 00:30:32.720
written in a way that there's a

00:30:32.720 --> 00:30:36.520
manual loop, which waits for an empty input to

00:30:36.520 --> 00:30:39.640
occur. But if you're using vertico or fido,

00:30:39.640 --> 00:30:41.920
by default, if you just press RET, you don't

00:30:41.920 --> 00:30:43.840
actually have an empty input. You just select

00:30:43.840 --> 00:30:46.760
the default option. There's settings like

00:30:46.760 --> 00:30:49.680
these which where these sort of these two kinds

00:30:49.680 --> 00:30:53.120
of completion diverge from one another which

00:30:53.120 --> 00:30:55.400
which is also something I've been talking about

00:30:55.400 --> 00:30:57.720
for a few years but never came around to

00:30:57.720 --> 00:30:59.480
implementing that there should be an API

00:30:59.480 --> 00:31:02.080
distinction between actually selecting user

00:31:02.080 --> 00:31:05.560
options from a list and the completion interface

00:31:05.560 --> 00:31:08.720
which we have for files or commands currently.

00:31:08.720 --> 00:31:10.760
These are semantically two different things, which

00:31:10.760 --> 00:31:14.520
would be interesting to see if it would be worth

00:31:14.520 --> 00:31:18.440
distinguishing the two in a technical sense,

00:31:18.440 --> 00:31:20.800
because that would mean that in certain settings,

00:31:20.800 --> 00:31:22.800
we could enable Fido. I totally admit that

00:31:22.800 --> 00:31:25.240
Fido and Vertico have their advantages when it

00:31:25.240 --> 00:31:27.640
comes to discoverability over standard

00:31:27.640 --> 00:31:28.400
text completion.

00:31:28.400 --> 00:31:31.440
The compromise now was that in Emacs 31 there's

00:31:31.440 --> 00:31:34.560
this option, I think it's eager completion

00:31:34.560 --> 00:31:36.520
updating or something.

00:31:36.520 --> 00:31:38.160
It's a combination, it's a permutation of these

00:31:38.160 --> 00:31:41.640
words in some sense.

00:31:41.640 --> 00:31:44.960
So that's if the completions buffer pops up.

00:31:44.960 --> 00:31:48.033
No, you don't have to...

00:31:48.034 --> 00:31:49.667
It doesn't matter.

00:31:49.668 --> 00:31:52.480
You don't have to visualize it.

00:31:52.480 --> 00:31:55.160
Yeah, where they update as you type.

00:31:55.160 --> 00:31:57.040
Updates as you type, yeah.

00:31:57.040 --> 00:32:00.040
But that doesn't occur down there, but it only

00:32:00.040 --> 00:32:02.160
occurs in the completions buffer.

00:32:02.160 --> 00:32:04.240
That's sort of a compromise.

00:32:04.240 --> 00:32:07.539
That's Fido, right?

00:32:07.520 --> 00:32:10.900
[Prot]: But the generic completions has had a lot

00:32:10.901 --> 00:32:13.400
of improvements over the last few years.

00:32:13.400 --> 00:32:16.700
And in Emacs 31, it's in a very good state, all

00:32:16.701 --> 00:32:18.167
things considered.

00:32:18.168 --> 00:32:21.333
[Philip]: Which was also partially driven by your

00:32:21.334 --> 00:32:23.560
MCT package?

00:32:23.560 --> 00:32:24.200
[Prot]: MCT, yeah.

00:32:24.200 --> 00:32:26.520
Which was an experiment, of course.

00:32:26.520 --> 00:32:32.400
But yeah, it's basically that idea.

00:32:32.400 --> 00:32:34.760
Because I have used this in earnest, like the

00:32:34.760 --> 00:32:37.040
default like this, I have used it for a long time

00:32:37.040 --> 00:32:39.560
in earnest, like just defaults.

00:32:39.560 --> 00:32:40.200
It's very good.

00:32:40.200 --> 00:32:42.600
It's for sure very good.

00:32:42.600 --> 00:32:47.120
Whereas Fido and Vertico are better if you are

00:32:47.120 --> 00:32:49.840
just getting started and you don't know that

00:32:49.840 --> 00:32:52.560
there is a completion on the mini buffer and

00:32:52.560 --> 00:32:55.000
somehow there is a distinction between the two.

00:32:55.000 --> 00:32:57.680
Like, for somebody who is getting started

00:32:57.680 --> 00:33:00.720
especially, I think this interface is not good.

00:33:00.720 --> 00:33:02.880
But if you know what you are doing, I think this

00:33:02.880 --> 00:33:05.200
interface actually works perfectly.

00:33:05.200 --> 00:33:07.960
And it has a lot of options.

00:33:07.960 --> 00:33:09.880
So, Sacha, what you are showing there is the

00:33:09.880 --> 00:33:13.440
absolute default, but it has so many options that

00:33:13.440 --> 00:33:16.240
you can make it look actually quite different

00:33:16.240 --> 00:33:19.960
from this and very similar to Vertico, for

00:33:19.960 --> 00:33:22.880
example, in terms of the user experience.

00:33:22.880 --> 00:33:24.520
I just realized that...

00:33:24.520 --> 00:33:27.133
[Sacha]: Oh, I just realized that if you do the

00:33:27.134 --> 00:33:30.833
TAB TAB, if you do the TAB TAB, it now goes to

00:33:30.834 --> 00:33:32.520
that one, which is great, but you can't filter it

00:33:32.520 --> 00:33:33.200
from there.

00:33:33.200 --> 00:33:37.459
You can't type into it and have stuff happen.

00:33:37.460 --> 00:33:38.500
[Philip]: Yeah, it's not down there.

00:33:38.501 --> 00:33:41.640
If you're down there in the mini-buffer, you type.

00:33:41.641 --> 00:33:45.667
There you have just a regular text buffer, so you

00:33:45.668 --> 00:33:48.920
can search or you can select stuff out of there.

00:33:48.920 --> 00:33:50.933
[Prot]: And that's also an option, by the way.

00:33:50.934 --> 00:33:53.840
So what happens on the second tab, for example,

00:33:53.840 --> 00:33:55.880
so you can configure that.

00:33:55.880 --> 00:33:56.720
[Sacha]: Right, so that was the second tab

00:33:56.720 --> 00:34:00.640
behavior from newcomer-presets.

00:34:00.640 --> 00:34:03.600
[Philip]: That's the option I proposed and then

00:34:03.601 --> 00:34:04.920
objected to.

00:34:04.920 --> 00:34:06.880
[Sacha]: Yes, work in progress.

00:34:06.880 --> 00:34:08.920
So basically, you have these newcomers.

00:34:08.920 --> 00:34:11.720
We're trying to figure out how to get them

00:34:11.720 --> 00:34:13.280
through their learning journey.

00:34:13.280 --> 00:34:16.000
The newcomer presets can smooth over some of

00:34:16.000 --> 00:34:16.840
the edges.

00:34:16.840 --> 00:34:18.520
It can get over that

00:34:18.520 --> 00:34:20.800
"Yes, there are a lot of options, but at least

00:34:20.800 --> 00:34:23.200
M-x with tab completion will show you the

00:34:23.200 --> 00:34:24.967
things so that you don't have to memorize the

00:34:24.968 --> 00:34:30.400
names as much."

00:34:30.400 --> 00:34:32.400
You can recognize them from the list.

00:34:32.400 --> 00:34:33.520
You can narrow it down.

00:34:33.520 --> 00:34:34.360
[Philip]: The behavior is supposed to actually be

00:34:34.360 --> 00:34:38.880
similar to Bash.

00:34:38.880 --> 00:34:39.720
Yeah.

NOTE Manuals

00:34:39.720 --> 00:34:41.000
[Sacha]: It's probably still... we're going to need

00:34:41.000 --> 00:34:45.320
them to read the tutorial and we're going to need

00:34:45.320 --> 00:34:46.920
them to

00:34:46.920 --> 00:34:53.160
use a lot of patience as they get used to Emacs.

00:34:53.160 --> 00:34:55.520
I am not quite sure yet if we can get them all

00:34:55.520 --> 00:34:58.240
the way to, all right, here's how you open your

00:34:58.240 --> 00:35:01.560
config file and define your own keyboard

00:35:01.560 --> 00:35:04.480
shortcuts, for example.

00:35:04.480 --> 00:35:08.619
Bit of a journey.

NOTE More examples?

00:35:08.620 --> 00:35:11.133
[Prot]: I think that one way to do that is to

00:35:11.134 --> 00:35:12.880
have more examples in the manual.

00:35:12.880 --> 00:35:16.520
Like, here is how you do this, here is how you

00:35:16.520 --> 00:35:17.000
do that.

00:35:17.034 --> 00:35:21.100
[Philip]: Or there's this other manual, the Emacs FAQ.

00:35:21.080 --> 00:35:25.720
[Prot]: I don't mind where it would be, like FAQ

00:35:25.720 --> 00:35:26.680
is totally fine.

00:35:26.978 --> 00:35:28.019
I don't mind exactly where it would be, but

00:35:28.459 --> 00:35:30.941
somewhere in the documentation, like common

00:35:31.021 --> 00:35:33.523
patterns of Emacs configuration kind of thing.

00:35:34.044 --> 00:35:36.306
Maybe it already exists, so if it exists, then of

00:35:36.346 --> 00:35:37.246
course even better.

00:35:38.507 --> 00:35:42.451
[Philip]: Emacs FAQ has some things on finding

00:35:42.471 --> 00:35:43.952
relating packages...

00:35:44.354 --> 00:35:46.957
Where is the FAQ?

00:35:46.997 --> 00:36:06.459
[Sacha]: It's a separate manual. We do not have it from

00:36:06.700 --> 00:36:09.883
here, not from the splash screen, but it is

00:36:09.923 --> 00:36:11.425
available from the Help menu.

00:36:13.193 --> 00:36:21.849
[Philip]: I think it's not been that thoroughly maintained.

NOTE find-user-init-file?

00:36:21.869 --> 00:36:24.153
[Sacha]: I'm going to take advantage of the fact

00:36:24.173 --> 00:36:26.096
that you've actually been reading emacs-devel.

00:36:27.579 --> 00:36:30.965
Has there already been a long discussion about

00:36:31.025 --> 00:36:36.315
whether a M-x visit-user-init-file makes sense?

00:36:38.793 --> 00:36:42.499
An interactive command that you can use to

00:36:42.599 --> 00:36:45.763
open... I was trying to find it, but even with

00:36:45.783 --> 00:36:48.147
Yhetil's search, I was like, okay, there are

00:36:48.167 --> 00:36:48.728
four threads.

00:36:49.209 --> 00:36:51.392
One of them was a long time ago, and the other

00:36:51.472 --> 00:36:53.315
one was from even longer than that, so I didn't

00:36:53.355 --> 00:36:58.342
know whether it was some other discussion.

00:36:58.903 --> 00:37:00.726
[Philip]: I don't recall any such discussion

00:37:00.946 --> 00:37:03.450
recently, but I also don't think that anybody

00:37:04.358 --> 00:37:05.299
Objection to it.

00:37:05.319 --> 00:37:07.943
So it's really just a matter of someone writing

00:37:08.003 --> 00:37:10.065
it down and adding the documentation.

00:37:10.566 --> 00:37:11.587
[Sacha]: I would like to do that.

00:37:11.607 --> 00:37:15.332
[Philip]: It would be quite likely 24 hours.

00:37:15.352 --> 00:37:15.593
[Sacha]: Okay.

00:37:16.173 --> 00:37:22.041
[Philip]: On the master branch and not Emacs 31

00:37:22.061 --> 00:37:24.164
branch, which would be slightly.

00:37:24.284 --> 00:37:24.844
It's fine.

00:37:24.864 --> 00:37:25.966
Yeah, but even having a button.

00:37:26.787 --> 00:37:28.790
[Sacha]: If it makes it in someday, it doesn't

00:37:28.810 --> 00:37:30.011
have to be in the splash screen.

00:37:30.031 --> 00:37:33.015
It just has to start off being available through...

00:37:33.130 --> 00:37:40.478
And then we don't have to keep telling people, oh

00:37:40.498 --> 00:37:42.640
yeah, do a describe-variable on the init file

00:37:42.680 --> 00:37:45.584
just in case your init file is actually .emacs

00:37:45.644 --> 00:37:48.867
instead of the .emacs.d/init.el that other

00:37:48.907 --> 00:37:50.309
people are telling you to use instead.

00:37:51.069 --> 00:37:52.031
It's a bit of a mess, right?

00:37:52.051 --> 00:37:53.172
[Philip]: I think some people have been

00:37:53.232 --> 00:37:56.756
recommending doing M-: and then calling

00:37:56.776 --> 00:37:58.918
the [find-file] function with the user init...

00:37:59.455 --> 00:38:01.178
What's the name of the variable again?

00:38:01.278 --> 00:38:03.061
[Sacha]: user-init-file.

00:38:03.081 --> 00:38:05.245
[Prot]: User Emacs file.

00:38:05.285 --> 00:38:05.706
[Sacha]: Here we go.

00:38:05.806 --> 00:38:06.667
user-init-file.

00:38:07.188 --> 00:38:07.629
Here we go.

00:38:07.849 --> 00:38:08.751
That's the thing.

00:38:09.292 --> 00:38:10.013
Yeah, exactly.

00:38:10.434 --> 00:38:10.975
[Philip]: And if you do

00:38:11.055 --> 00:38:15.042
M-: (find-file user-init-file),

00:38:15.062 --> 00:38:16.644
then it would basically do the

00:38:16.684 --> 00:38:16.965
same thing.

00:38:16.985 --> 00:38:20.491
That's why I'm saying it's such a minor function

00:38:20.511 --> 00:38:23.556
that I don't expect any objections.

00:38:23.688 --> 00:38:24.489
[Sacha]: Okay, okay.

00:38:24.669 --> 00:38:27.031
So I'm going to suggest that to Emacs Devel at

00:38:27.071 --> 00:38:27.872
some point.

00:38:27.892 --> 00:38:29.813
[Philip]: I've had the same idea many times

00:38:29.893 --> 00:38:34.497
myself, but the transience of memory has thrown

00:38:34.538 --> 00:38:37.220
its way before I actually ended up doing it.

NOTE Getting over the reverence for Emacs's history

00:38:38.401 --> 00:38:40.182
[Sacha]: Sometimes I am reluctant to suggest

00:38:40.243 --> 00:38:42.304
things because I figure Emacs is such a

00:38:42.384 --> 00:38:44.046
long history.

00:38:44.306 --> 00:38:46.448
Probably someone has thought of this already, and

00:38:46.508 --> 00:38:48.310
it's probably been discussed and bike-shedded.

00:38:49.350 --> 00:38:52.173
But I think there are little things that we

00:38:52.193 --> 00:38:52.633
can do.

00:38:52.653 --> 00:38:53.374
[Philip]: Yeah, but then in that case,

00:38:53.557 --> 00:38:58.948
Yeah, but I think that's actually related to

00:38:58.988 --> 00:39:00.531
another thing I wanted to talk about.

00:39:00.571 --> 00:39:03.015
There's a certain sort of reverence that people

00:39:03.056 --> 00:39:05.059
have for Emacs, because it's such a

00:39:05.100 --> 00:39:05.961
historical project.

00:39:05.981 --> 00:39:07.965
But I mean, the preset theme was something that

00:39:08.025 --> 00:39:10.410
was discussed for many times, and there were

00:39:10.450 --> 00:39:11.612
basically no objections.

00:39:11.672 --> 00:39:13.336
No one said, no, we shouldn't do this, this is a

00:39:13.396 --> 00:39:14.097
bad idea.

00:39:15.207 --> 00:39:17.891
I hope it's not only because I proposed it or

00:39:17.911 --> 00:39:20.014
something, or like the package also suggests that.

00:39:20.475 --> 00:39:23.279
Most of the things I've been working on for Emacs

00:39:23.299 --> 00:39:26.344
31, no one objected to.

00:39:26.364 --> 00:39:29.389
And there's two sides to this.

00:39:29.409 --> 00:39:33.375
There's some people who actually go overboard

00:39:33.415 --> 00:39:34.837
with this and try and reinvent.

00:39:34.877 --> 00:39:37.281
Like when reviewing packages, you see this a lot

00:39:37.301 --> 00:39:39.644
of people try and reinvent functionality, which

00:39:39.965 --> 00:39:43.510
is basically just giving a new name

00:39:44.198 --> 00:39:46.201
Combining two things and giving it a new name

00:39:46.241 --> 00:39:50.868
which isn't always necessary but might be useful

00:39:50.948 --> 00:39:52.751
and then it's some discussion like can we

00:39:52.771 --> 00:39:54.874
actually make more out of this and that's a

00:39:54.914 --> 00:39:58.719
different thing but then there's the people who I

00:39:58.760 --> 00:40:01.263
probably lean more towards that side when I think

00:40:01.303 --> 00:40:04.348
to myself the way I'm doing this is stupid or

00:40:04.388 --> 00:40:06.711
this is not as efficient people have been using

00:40:06.791 --> 00:40:08.995
Emacs for 40 years of course there probably has

00:40:09.015 --> 00:40:10.577
to be a better way to do this

NOTE Changes are more likely to happen when someone puts in the work to make a patch

00:40:11.030 --> 00:40:13.213
And sometimes it turns out it simply hasn't been

00:40:13.253 --> 00:40:17.098
implemented and no one has simply done this

00:40:18.299 --> 00:40:20.682
actually small effort of preparing a patch and

00:40:21.263 --> 00:40:23.646
ironing out the details just some people don't

00:40:23.686 --> 00:40:25.048
like discussions of course and it's

00:40:25.108 --> 00:40:28.673
understandable but you can I mean there's really

00:40:28.753 --> 00:40:31.296
no harm in sending a patch and then saying I'm

00:40:31.336 --> 00:40:32.177
sorry I don't have

00:40:33.035 --> 00:40:34.597
It's annoying, of course, from a

00:40:34.617 --> 00:40:35.699
maintainer's perspective.

00:40:35.799 --> 00:40:37.362
I don't recommend doing it, because if you

00:40:37.782 --> 00:40:39.845
prepare a patch but don't have the time to finish

00:40:39.906 --> 00:40:42.409
it up, then if it's a useful thing and you

00:40:42.449 --> 00:40:44.553
actually get someone to be interested in

00:40:44.613 --> 00:40:49.060
maintaining it, then bringing the patch to

00:40:49.100 --> 00:40:53.767
completion, then it's well worth just sending

00:40:53.787 --> 00:40:54.328
a feature.

00:40:54.348 --> 00:40:55.850
Even sending a feature request, you don't even

00:40:55.910 --> 00:40:56.511
have to...

00:40:56.896 --> 00:41:16.145
I mentioned the idea of this preset theme

00:41:16.926 --> 00:41:17.807
many times.

00:41:19.087 --> 00:41:32.487
I wish people would be more conscious of this

00:41:32.527 --> 00:41:36.193
mentality, but I totally understand people who

00:41:36.533 --> 00:41:39.518
think otherwise, because when the first time I

00:41:39.598 --> 00:41:42.963
sent a patch to a mailing list, I was, I don't

00:41:42.983 --> 00:41:44.325
want to say I was sweaty, but I was really

00:41:44.385 --> 00:41:47.052
nervous because I don't know what if they...

00:41:47.072 --> 00:41:48.014
Goodwill, good faith, attention to how people

00:41:48.034 --> 00:41:52.501
should behave on mailing lists, how they should

00:41:53.202 --> 00:41:54.564
treat each other.

00:42:27.800 --> 00:42:32.450
Lots of these preconceptions turn out to be false

00:42:32.451 --> 00:42:33.399
in there.

00:42:33.400 --> 00:42:37.688
That's why I also wanted to participate in this,

00:42:37.689 --> 00:42:41.832
so that people see, oh, the people maintaining

00:42:41.833 --> 00:42:46.031
Emacs aren't wizards locked up in a tower, but

00:42:46.032 --> 00:42:48.679
just, I hope, normal people.

00:42:48.680 --> 00:42:52.919
Yeah, that's a very good point.

00:42:52.920 --> 00:42:57.217
[Prot]: And I think, Philip, just to add to this,

00:42:57.218 --> 00:43:01.534
your example of leading with a patch, I think, is

00:43:01.535 --> 00:43:05.786
also key here for someone who can write a patch,

00:43:05.787 --> 00:43:09.714
of course, because it cuts out a lot of that

00:43:09.715 --> 00:43:13.867
noise, that initial discussion of, well, maybe

00:43:13.868 --> 00:43:17.479
yes, maybe no, because it frames minds.

00:43:17.480 --> 00:43:19.639
It focuses the attention on something concrete.

00:43:19.640 --> 00:43:21.999
And that can also... Yeah.

00:43:22.000 --> 00:43:24.479
[Philip]: Yeah.

00:43:24.480 --> 00:43:26.079
And...

00:43:27.387 --> 00:43:30.250
I mean, having a patch is useful, but getting

00:43:30.310 --> 00:43:32.893
someone interested is also helpful.

00:43:32.913 --> 00:43:36.156
Like the discussion when we merged which-key, I

00:43:36.216 --> 00:43:38.218
helped with that process.

00:43:38.319 --> 00:43:41.422
And I'm not, I think it was, I don't remember his

00:43:41.462 --> 00:43:47.488
last name, Jeremy, who actually did most of

00:43:47.508 --> 00:43:47.809
the work.

00:43:47.829 --> 00:43:48.970
And I was reviewing his patches.

00:43:49.010 --> 00:43:50.371
I was helping along, but I wasn't actually

00:43:50.411 --> 00:43:51.352
writing most of the code.

00:43:51.392 --> 00:43:54.195
I was just going over the proposals and helping

00:43:54.256 --> 00:43:56.618
along and basically pushing the...

00:43:57.087 --> 00:43:59.611
Stunning the process whenever it got stuck so

00:43:59.651 --> 00:44:02.535
that we actually made the necessary changes for

00:44:02.575 --> 00:44:03.516
it to get merged.

NOTE Preserving Git history of packages absorbed into the core

00:44:03.536 --> 00:44:06.200
And then I did the last finishing touches of

00:44:06.360 --> 00:44:09.785
merging, because that was also something... Every

00:44:09.825 --> 00:44:12.509
time... We'd like to preserve the Git history of

00:44:12.549 --> 00:44:15.033
packages we merge upstream, which is probably

00:44:15.073 --> 00:44:17.356
something we won't be doing in that way when we

00:44:17.396 --> 00:44:19.539
do the Fat Emacs releases.

00:44:20.040 --> 00:44:23.004
But the entire history of Eglot and the entire

00:44:23.044 --> 00:44:25.508
history of which-key is actually preserved in the

00:44:25.741 --> 00:44:54.448
[Prot]: So they are wizards after all.

00:44:56.335 --> 00:44:59.158
[Philip]: Wizards just reading pre-written down spells.

00:45:02.803 --> 00:45:06.166
[Sacha]: It'll be interesting to see if some of

00:45:06.206 --> 00:45:09.150
the starter kits move to using that kind of fat

00:45:08.597 --> 00:45:12.679
Emacs infrastructure once that's in place.

00:45:12.680 --> 00:45:15.311
Because a lot of times the starter kits are there

00:45:15.312 --> 00:45:16.439
to package together.

00:45:16.440 --> 00:45:19.559
Okay, here's a list of the packages that it uses.

00:45:19.560 --> 00:45:23.129
Here's the configuration that makes them play

00:45:23.130 --> 00:45:24.319
nice together.

00:45:24.320 --> 00:45:25.559
And then here's some kind of

00:45:25.560 --> 00:45:28.420
Documentation or videos or a demonstration on how

00:45:28.421 --> 00:45:30.639
to use it to help people get started.

00:45:30.640 --> 00:45:33.856
[Philip]: So I'm curious to see, I mean, I went

00:45:33.857 --> 00:45:37.279
reviewing the options to add to the preset theme.

00:45:37.280 --> 00:45:39.856
I actually went through a number of these starter

00:45:39.857 --> 00:45:41.959
kits to see the options they suggested.

00:45:41.960 --> 00:45:47.879
Selected those out which seemed reasonable to me.

00:45:47.880 --> 00:45:51.144
And of course, this was discussed and people

00:45:51.145 --> 00:45:53.519
objected or added other things.

00:45:53.520 --> 00:45:56.279
But I am curious to see how the starter kits will

00:45:56.280 --> 00:45:58.622
evolve in the future, because that's also

00:45:58.623 --> 00:46:00.279
something we should mention.

NOTE Dealing with multiple types of Emacs

00:46:00.280 --> 00:46:02.125
I mean, there is a big problem with the fat Emacs

00:46:02.126 --> 00:46:03.775
approach and suddenly you have two versions

00:46:03.776 --> 00:46:04.159
of Emacs.

00:46:04.160 --> 00:46:06.820
You can write a package which appears to work

00:46:06.821 --> 00:46:09.579
fine in fat Emacs, but it depends on a package

00:46:09.580 --> 00:46:10.959
which is not in the

00:46:10.960 --> 00:46:14.897
core Emacs release, and then that's

00:46:14.898 --> 00:46:18.903
something we will have to deal with in the future

00:46:18.904 --> 00:46:19.639
as well.

00:46:19.640 --> 00:46:22.839
Yeah, that's a tricky part indeed.

00:46:22.840 --> 00:46:26.859
Yeah, but another thing relating... Yeah, the

00:46:26.860 --> 00:46:30.879
sort of fragmentation of what core Emacs is.

00:46:30.880 --> 00:46:33.451
It might be a showstopper, so maybe everything

00:46:33.452 --> 00:46:35.519
I'm telling here is just a wishlist.

00:46:35.520 --> 00:46:38.319
It doesn't end up actualizing.

00:46:38.320 --> 00:46:43.359
And that fragmentation of the setup is one of the

00:46:43.360 --> 00:46:47.749
things... Because it's not actually really

00:46:47.750 --> 00:46:49.839
difficult to solve.

00:46:49.840 --> 00:46:52.047
I mean, if you have a package that depends on

00:46:52.048 --> 00:46:54.177
something from Fat Emacs who just added to the

00:46:54.178 --> 00:46:56.393
package requires lines, you explicitly state

00:46:56.394 --> 00:46:57.199
the dependency.

00:46:57.200 --> 00:46:59.925
But if people are sloppy, then they might not

00:46:59.926 --> 00:47:01.439
notice this immediately.

00:47:01.440 --> 00:47:04.559
And you have runtime issues when people are slow.

00:47:04.560 --> 00:47:07.279
[Sacha]: It's a little bit more than that, right?

00:47:07.280 --> 00:47:09.549
So for example, if you have a newbie asking a

00:47:09.550 --> 00:47:11.982
question, because they're using a starter kit or

00:47:11.983 --> 00:47:14.382
in the future, a fat Emacs thing with different

00:47:14.383 --> 00:47:16.756
packages installed and different configuration

00:47:16.757 --> 00:47:19.079
things that they have not personally set up.

00:47:19.080 --> 00:47:21.643
And they don't have the experience to know, oh

00:47:21.644 --> 00:47:24.039
yeah, this is going to be related to that.

00:47:24.040 --> 00:47:26.519
So I should mention it in the help message.

00:47:26.520 --> 00:47:29.816
I mean, large starter communities like, like Doom

00:47:29.817 --> 00:47:33.010
Emacs and Spacemacs will have their own Discord

00:47:33.011 --> 00:47:35.986
or mailing list where people can go and ask

00:47:35.987 --> 00:47:36.679
for help.

00:47:36.680 --> 00:47:38.706
And so people will say, okay, I think I kind of

00:47:38.707 --> 00:47:40.632
know which starting point you're coming from

00:47:40.633 --> 00:47:41.639
because it's the base.

00:47:41.640 --> 00:47:45.139
But if we're, you know, with the smaller starter

00:47:45.140 --> 00:47:48.639
kits, they don't even know how to ask for help.

00:47:48.640 --> 00:47:51.381
And everyone is like, on the regular Emacs

00:47:51.382 --> 00:47:54.479
communities, there's a lot of back and forth if

00:47:54.480 --> 00:47:57.098
you want to dig into, okay, what do you

00:47:57.099 --> 00:47:58.039
have enabled?

00:47:58.040 --> 00:48:00.279
What is affecting your setup?

00:48:00.280 --> 00:48:09.379
Fat Emacs is going to run into that problem.

NOTE Fat Emacs is just about bundling more packages from ELPA, not changing the configuration for them

00:48:09.380 --> 00:48:11.500
[Philip]: To be fair, my understanding currently

00:48:11.501 --> 00:48:13.679
is that it wouldn't enable any other options.

00:48:13.680 --> 00:48:15.359
It would just bundle more packages.

00:48:15.360 --> 00:48:16.359
[Sacha]: I see.

00:48:16.360 --> 00:48:19.697
[Philip]: So it would be more of an issue for

00:48:19.698 --> 00:48:20.959
package authors.

00:48:20.960 --> 00:48:23.439
Yeah, for package options.

00:48:23.440 --> 00:48:26.194
The idea is, I mean, I've used Emacs in offline

00:48:26.195 --> 00:48:27.719
settings where it's like,

00:48:27.720 --> 00:48:30.949
really inconvenient or impossible to install

00:48:30.950 --> 00:48:33.904
additional packages and just having more

00:48:33.905 --> 00:48:37.481
functionality out of the box which ELPA provides

00:48:37.482 --> 00:48:40.886
and you don't have to install additionally, is

00:48:40.887 --> 00:48:42.399
basically the idea.

00:48:42.400 --> 00:48:44.324
Because this has been a project which has been

00:48:44.325 --> 00:48:45.119
ongoing for years.

00:48:45.120 --> 00:48:47.373
I think this is ever since the conception of

00:48:47.374 --> 00:48:48.039
ELPA itself.

00:48:48.040 --> 00:48:50.887
Which is precisely the reason why GNU ELPA

00:48:50.888 --> 00:48:53.830
requires all packages to be signed or to be

00:48:53.831 --> 00:48:57.236
covered by the copyright assignments while NonGNU

00:48:57.237 --> 00:48:58.279
ELPA does not.

00:48:58.280 --> 00:49:01.159
So that this is possible.

00:49:01.160 --> 00:49:04.519
It's just that finally it looks like we're

00:49:04.520 --> 00:49:08.199
starting to move somewhere in that direction.

00:49:08.200 --> 00:49:11.308
It would be interesting if a decision were to be

00:49:11.309 --> 00:49:13.639
made that we're going to give up on

00:49:13.640 --> 00:49:17.075
This sort of bundling, what decisions that were

00:49:17.076 --> 00:49:20.318
made for the legal status of GNU ELPA, if we

00:49:20.319 --> 00:49:23.753
would merge GNU ELPA and NonGNU ELPA together,

00:49:23.754 --> 00:49:25.919
which is unlikely currently.

00:49:25.920 --> 00:49:29.264
This is just pure speculation at this point, but

00:49:29.265 --> 00:49:32.653
it's something that might be a discussion, which

00:49:32.654 --> 00:49:34.559
will be had in the future.

00:49:34.560 --> 00:49:37.828
[Sacha]: Okay, so it dispenses with a package

00:49:37.829 --> 00:49:41.285
install part, and so people don't have to worry

00:49:41.286 --> 00:49:43.639
about, okay, how do I make sure

00:49:43.640 --> 00:49:46.164
The package archives are set up, and how do I

00:49:46.165 --> 00:49:47.399
install the packages?

00:49:47.400 --> 00:49:48.639
All that stuff will be pre-installed.

00:49:48.640 --> 00:49:50.718
The automated English will be- No, the package

00:49:50.719 --> 00:49:52.119
archives- Oh, sorry, go ahead.

00:49:52.120 --> 00:49:54.530
[Philip]: The package archives wouldn't matter

00:49:54.531 --> 00:49:56.966
that much, since we are just talking about the

00:49:56.967 --> 00:49:59.071
new alpha packages, which are installed

00:49:59.072 --> 00:49:59.719
by default.

00:49:59.720 --> 00:50:03.202
It's really just that you don't have to install

00:50:03.203 --> 00:50:04.759
additional packages.

00:50:04.760 --> 00:50:05.879
You don't need a network connection.

00:50:05.880 --> 00:50:08.088
You don't need to know about the

00:50:08.089 --> 00:50:09.399
package existence.

00:50:09.400 --> 00:50:11.312
It would be registered in the auto mode

00:50:11.313 --> 00:50:11.999
alist anyway.

00:50:12.000 --> 00:50:15.147
So if you open a, I don't know, what's the

00:50:15.148 --> 00:50:18.489
package, some major mode that's not going to

00:50:18.490 --> 00:50:20.919
open, which is not in the core.

00:50:20.920 --> 00:50:25.159
[Prot]: I think you might want to talk earlier.

00:50:25.160 --> 00:50:26.799
I think that would qualify.

00:50:26.800 --> 00:50:29.941
I think you mentioned org-tex earlier, which is

00:50:29.942 --> 00:50:31.679
on ELPA, but not in Core.

00:50:31.680 --> 00:50:34.847
[Philip]: The tricky thing there is that Emacs

00:50:34.848 --> 00:50:37.982
already has a LaTeX mode by default, and that

00:50:37.983 --> 00:50:40.839
already applies, but org-tex extends it.

00:50:40.840 --> 00:50:45.799
That's why I was looking for another example.

00:50:45.800 --> 00:50:50.359
Okay, that's the idea, but it wouldn't only be

00:50:50.360 --> 00:50:52.639
major modes, I assume.

00:50:52.640 --> 00:50:55.956
There's going to be some discussion as to what

00:50:55.957 --> 00:50:57.759
packages we want to add.

00:50:57.760 --> 00:51:01.799
currently it's not certain.

00:51:01.800 --> 00:51:04.719
Because we're working on finishing up Emacs 31.

00:51:04.720 --> 00:51:08.083
That's where most of the bug fixing efforts are

00:51:08.084 --> 00:51:11.280
going in right now before we progress to any

00:51:11.281 --> 00:51:12.879
further developments.

00:51:12.880 --> 00:51:16.039
But that also includes proposals.

00:51:16.040 --> 00:51:18.827
That includes proposals as to the preset theme,

00:51:18.828 --> 00:51:23.039
which I am still interested in reading.

NOTE Customize

00:51:23.040 --> 00:51:24.233
[Sacha]: I want to come back to something Prot

00:51:24.234 --> 00:51:27.089
mentioned in my conversation with him about

00:51:27.090 --> 00:51:30.243
newcomers, and that is the Customize interface

00:51:30.244 --> 00:51:33.599
versus getting people to the Emacs Lisp directly.

00:51:33.600 --> 00:51:35.805
And I think, Prot, you were not very keen

00:51:35.806 --> 00:51:36.559
on Customize.

00:51:36.560 --> 00:51:39.511
[Prot]: Yeah, basically if I say it in one

00:51:39.512 --> 00:51:42.697
sentence is I think the earlier they get into

00:51:42.698 --> 00:51:46.063
Emacs Lisp, like seeing it and interacting with

00:51:46.064 --> 00:51:48.999
it, the better it is for them long term.

00:51:49.000 --> 00:51:51.879
Granted, I am making the assumption that this is

00:51:51.880 --> 00:51:54.519
a user that will be there long term, right?

00:51:54.520 --> 00:51:55.439
[Philip]: Of course.

00:51:55.440 --> 00:51:59.778
And this is specifically about the customized

00:51:59.779 --> 00:52:00.839
UI, right?

00:52:00.840 --> 00:52:03.926
[Prot]: Yeah, yeah, not the underlying

00:52:03.927 --> 00:52:06.119
functionality, like, yeah.

00:52:06.120 --> 00:52:10.335
[Sacha]: It's great for simple options like yes

00:52:10.336 --> 00:52:14.568
we can check the checkbox or we can select from

00:52:14.569 --> 00:52:19.003
the drop-down list or whatever but browsing it is

00:52:19.004 --> 00:52:23.285
as you mentioned overwhelming the general sense

00:52:23.286 --> 00:52:27.516
of Emacs being overwhelming and when you start

00:52:27.517 --> 00:52:30.980
wanting to do something slightly more

00:52:30.981 --> 00:52:32.759
sophisticated like

00:52:32.760 --> 00:52:36.279
You know, let's add some more capture templates.

00:52:36.280 --> 00:52:38.719
Then it's challenging for people to do.

00:52:38.720 --> 00:52:41.970
So I'm wondering whether, in general, we should

00:52:41.971 --> 00:52:44.963
be, you know, is our general strategy to be

00:52:44.964 --> 00:52:48.264
guiding people to, yes, Customize is there, but

00:52:48.265 --> 00:52:51.261
really you want to be doing Emacs Lisp as

00:52:51.262 --> 00:52:52.759
quickly as possible.

00:52:52.760 --> 00:52:54.892
Let's make it easier for you to get your

00:52:54.893 --> 00:52:55.479
init file.

00:52:55.480 --> 00:52:59.159
Let's make it easier for you to test your init

00:52:59.160 --> 00:53:02.320
file and not fall apart when you miss a

00:53:02.321 --> 00:53:05.399
parenthesis and all things like that.

00:53:05.400 --> 00:53:08.759
Do we want to guide people that way?

00:53:08.760 --> 00:53:12.037
[Philip]: One question I think we should

00:53:12.038 --> 00:53:16.077
distinguish is the idea of a UI the problem or is

00:53:16.078 --> 00:53:20.153
it really... Because I personally I have a new Emacs

00:53:20.154 --> 00:53:24.123
configuration at my day job, and I do everything

00:53:24.124 --> 00:53:25.559
using Customize.

00:53:25.560 --> 00:53:28.839
I don't even care about using use-package

00:53:28.840 --> 00:53:29.879
or whatever.

00:53:29.880 --> 00:53:33.159
Just customize the stuff using...

00:53:33.160 --> 00:53:35.653
There's a big blob of user options which I've

00:53:35.654 --> 00:53:38.272
modified, and that goes through, and I don't care

00:53:38.273 --> 00:53:40.965
about it, but I claim to have some understanding

00:53:40.966 --> 00:53:43.630
of what's going on, and the rest of the function

00:53:43.631 --> 00:53:46.239
is just some defuns which I find convenient.

00:53:46.240 --> 00:53:49.951
But for me, it's okay, because I have some sort of

00:53:49.952 --> 00:53:53.199
intuition of how the Customize UI works.

00:53:53.200 --> 00:53:56.765
If there were a better UI for Customize, would

00:53:56.766 --> 00:54:00.075
you still say that if it were written in an

00:54:00.076 --> 00:54:01.999
intuitive way, say using

00:54:02.000 --> 00:54:04.279
Fido modes.

00:54:04.280 --> 00:54:07.944
So that's, it would use interactive narrowing and

00:54:07.945 --> 00:54:11.247
it would somehow work in a build on existing

00:54:11.248 --> 00:54:14.714
intuitions because the current customized, the

00:54:14.715 --> 00:54:18.426
Customize UI, the easy customization interface I

00:54:18.427 --> 00:54:22.086
think is a technical term to use is based around

00:54:22.087 --> 00:54:25.630
this widget library interface and sort of make

00:54:25.631 --> 00:54:29.559
replicating a TUI menu but not... And then you have to...

00:54:29.560 --> 00:54:32.072
And yeah, of course, the intuition... Like, if you

00:54:32.073 --> 00:54:34.889
click on things, it doesn't always behave the same

00:54:34.890 --> 00:54:37.558
thing you would expect from a regular settings

00:54:37.559 --> 00:54:40.154
menu, which is by the way also something that

00:54:40.155 --> 00:54:41.039
CUA specifies.

NOTE CUA - Common User Access

00:54:41.040 --> 00:54:44.343
I recently looked into what CUA lists. Like, if

00:54:44.344 --> 00:54:47.731
you look at the Wikipedia page, CUA specifies that

00:54:47.732 --> 00:54:51.137
every application has to have these settings menu

00:54:51.138 --> 00:54:54.568
with tabs on the bottom on the top where it lists

00:54:54.569 --> 00:54:58.039
all the options you can specify and interestingly

00:54:58.040 --> 00:55:00.519
C-c and C-v is not listed as...

NOTE ini file format? https://sdf.org/~pkal//blog/emacs/ini-init.html

00:55:00.520 --> 00:55:04.835
Apparently not CUA, but Shift Insert and

00:55:04.836 --> 00:55:06.519
Control Insert...

00:55:06.520 --> 00:55:09.632
I might be misunderstanding this, but this seems

00:55:09.633 --> 00:55:10.799
to be a misnomer.

NOTE
Emacs configuration generator
#+SCREENSHOT: ye29-prot-and-pkal-emacs-newcomer-experience-00-55-45-367.jpg
#+SCREENSHOT_TIME: 00:55:45.367
#+SCREENSHOT_CROP: 61 158 730 817

00:55:10.800 --> 00:55:13.779
But if we had some sort of a UI like this CUA

00:55:13.780 --> 00:55:16.851
configuration UI, would that be something where

00:55:16.852 --> 00:55:19.709
you'd say as an intermediate stage for just

00:55:19.710 --> 00:55:20.839
setting options?

00:55:20.840 --> 00:55:25.452
Because that was part of my thought process with

00:55:25.453 --> 00:55:28.239
Emacs Configuration Generator.

00:55:28.240 --> 00:55:32.786
Just configuring Emacs is such a subset of Lisp

00:55:32.787 --> 00:55:36.559
as it's actually not programming Lisp.

00:55:36.560 --> 00:55:41.004
You can easily get by by just using add-hook, set

00:55:41.005 --> 00:55:45.359
up or setq, and add to list or stuff like that.

00:55:45.360 --> 00:55:47.919
But you don't really have to understand.

00:55:47.920 --> 00:55:50.959
It's just a peculiar syntax for how to

00:55:50.960 --> 00:55:54.479
program Lisp.

NOTE INI-style configuration

00:55:54.480 --> 00:55:56.431
I'm not sure if either of you have seen, I wrote

00:55:56.432 --> 00:55:57.519
a blog post

00:55:57.520 --> 00:56:02.083
last March, no, not March, what's the name of

00:56:02.084 --> 00:56:03.199
the month?

00:56:03.200 --> 00:56:08.185
November, October or something, where I gave a

00:56:08.186 --> 00:56:13.279
prototype for a INI-like configuration syntax.

00:56:13.280 --> 00:56:17.445
[Prot]: I must have read it, but I don't

00:56:17.446 --> 00:56:18.799
remember it.

00:56:18.800 --> 00:56:21.039
You must have read it.

00:56:21.040 --> 00:56:23.991
Yeah, yeah, yeah, because I always read my feeds,

00:56:23.992 --> 00:56:25.919
but now it doesn't ring a bell.

00:56:25.920 --> 00:56:28.079
[Philip]: Exactly.

00:56:28.080 --> 00:56:31.167
You see there's this basically a simplified

00:56:31.168 --> 00:56:34.418
syntax, which should be... The idea was it should

00:56:34.419 --> 00:56:37.840
follow a conventional configuration-like format,

00:56:37.841 --> 00:56:41.380
and each of these lines gets translated directly

00:56:41.381 --> 00:56:43.519
to an Emacs Lisp expression.

00:56:43.520 --> 00:56:47.222
And due to this, I don't want to call it an

00:56:47.223 --> 00:56:51.132
isomorphism, but the easy translation in both

00:56:51.133 --> 00:56:54.923
directions, I think that the expectation of

00:56:54.924 --> 00:56:57.039
saying write Emacs Lisp...

00:56:57.040 --> 00:57:00.930
There has to be some defun or something if you're

00:57:00.931 --> 00:57:02.519
writing Emacs Lisp.

00:57:02.520 --> 00:57:05.519
That's to exaggerate.

00:57:05.520 --> 00:57:08.190
If you're just writing setq, set, add-hook,

00:57:08.191 --> 00:57:11.248
add-to-list, these common configuration patterns,

00:57:11.249 --> 00:57:14.325
which are well worth documenting in the manual, to

00:57:14.326 --> 00:57:17.430
understand what are the patterns that you have to

00:57:17.431 --> 00:57:20.393
use to configure a package, even understanding

00:57:20.394 --> 00:57:21.359
the signature...

00:57:21.360 --> 00:57:24.084
The distinction between add-to-list and add-hook

00:57:24.085 --> 00:57:26.893
is that hooks are lists which can have mode-local

00:57:26.894 --> 00:57:29.759
extensions but also inherit from global settings.

00:57:29.760 --> 00:57:33.319
Not obvious from the beginning to everyone.

00:57:33.320 --> 00:57:39.739
This is not list programming.

00:57:39.740 --> 00:57:41.119
[Prot]: Yeah, fair enough.

00:57:41.120 --> 00:57:44.447
Though even then, they start to see the

00:57:44.448 --> 00:57:47.519
parentheses, get used to the syntax.

00:57:47.520 --> 00:57:50.399
They have to remember to quote stuff.

00:57:50.400 --> 00:57:55.055
Even though it's not really programming, I see

00:57:55.056 --> 00:57:57.079
what you're saying.

00:57:57.080 --> 00:58:00.799
They put themselves in the situation.

00:58:00.800 --> 00:58:04.089
[Philip]: One of the ideas precisely in the

00:58:04.090 --> 00:58:07.796
config syntax is that if you have an option like

00:58:07.797 --> 00:58:11.098
set, you see the first line, set mode line

00:58:11.099 --> 00:58:12.199
compact long.

00:58:12.200 --> 00:58:13.359
Long is a symbol.

00:58:13.360 --> 00:58:17.039
I just use regular read to read this, and it's

00:58:17.040 --> 00:58:18.239
not evaluated.

00:58:18.240 --> 00:58:21.368
There's an option down there somewhere, I think,

00:58:21.369 --> 00:58:24.335
eval set, where the format expression is an S

00:58:24.336 --> 00:58:27.039
expression that's evaluated to a string.

00:58:27.040 --> 00:58:31.039
So you have to opt into evaluation.

00:58:31.040 --> 00:58:34.133
which seems more intuitive to me for a regular

00:58:34.134 --> 00:58:38.267
configuration when you're writing it, because all

00:58:38.268 --> 00:58:39.500
these things... Like, I have to think about quoting.

00:58:39.480 --> 00:58:41.920
Then there's the issue like with

00:58:41.920 --> 00:58:46.760
with-eval-after-load... Can I customize this

00:58:46.760 --> 00:58:48.720
variable before the package is loaded, after the

00:58:48.720 --> 00:58:50.880
package is loaded? If it has, like... If you're adding

00:58:50.880 --> 00:58:52.633
something to a list and the list has a default

00:58:52.634 --> 00:58:54.760
value that you don't want to set the value of the

00:58:54.760 --> 00:58:57.040
default, don't want to add it to the list because

00:58:57.076 --> 00:58:59.479
then it's not loaded, and it

00:58:59.480 --> 00:59:02.719
could trigger a undefined variable signal.

00:59:02.720 --> 00:59:06.052
So these are other inconveniences that I don't, I

00:59:06.053 --> 00:59:08.997
personally do not see any value in teaching

00:59:08.998 --> 00:59:12.316
people or having people to deal with these sorts

00:59:12.317 --> 00:59:14.781
of issues before they have any

00:59:14.782 --> 00:59:16.119
broader intuition.

00:59:16.120 --> 00:59:22.959
Which is a very idiosyncratic take perhaps, but...

00:59:22.960 --> 00:59:26.059
[Prot]: No, no, it's fair.

00:59:26.060 --> 00:59:30.221
[Philip]: What I'm trying to get at is this sort

00:59:30.222 --> 00:59:33.091
of any configuration syntax would be something

00:59:33.092 --> 00:59:35.976
that a UI could generate a lot easier and in a

00:59:35.977 --> 00:59:38.754
way that wouldn't have this artificial split

00:59:38.755 --> 00:59:41.115
between your own personal handcrafted

00:59:41.116 --> 00:59:43.646
configuration and the generated part of

00:59:43.647 --> 00:59:48.299
the configuration.

00:59:48.300 --> 00:59:50.567
Mechanically changing this, finding the section

00:59:50.568 --> 00:59:52.700
package avy, because it has all of these

00:59:52.701 --> 00:59:54.648
primitives which didn't exist early on in Emacs,

00:59:54.649 --> 00:59:57.839
like packages and features exist and so on.

00:59:57.840 --> 01:00:01.363
The sort of structure which use-package

01:00:01.364 --> 01:00:02.839
usually provides.

01:00:02.840 --> 01:00:05.086
[Sacha]: I have about one minute before the

01:00:05.087 --> 01:00:07.516
kiddo starts on lunch break, so I'm going to

01:00:07.517 --> 01:00:09.999
interrupt a little bit and do a quick summary.

01:00:10.000 --> 01:00:11.839
But the two of you are welcome to keep hanging

01:00:11.840 --> 01:00:12.559
out and chatting.

01:00:12.560 --> 01:00:14.959
I'll leave the Big Blue Button room open.

01:00:14.960 --> 01:00:18.044
And if you want, I can set it up so people can

01:00:18.045 --> 01:00:21.048
join you, depending on your time, et cetera,

01:00:21.049 --> 01:00:21.799
et cetera.

NOTE Quick summary

01:00:21.800 --> 01:00:25.158
But basically, what I'm getting for a quick

01:00:25.159 --> 01:00:28.491
summary of the conversation: Emacs 31: the

01:00:28.492 --> 01:00:30.079
newcomer presets is

01:00:30.080 --> 01:00:31.519
work in progress.

01:00:31.520 --> 01:00:34.334
People are definitely open to improvements,

01:00:34.335 --> 01:00:35.800
ideas, other suggestions for other features.

01:00:35.801 --> 01:00:37.067
The kiddo is just running out now.

01:00:37.068 --> 01:00:43.399
I will put the chat in the thing.

01:00:43.400 --> 01:00:50.699
[Prot]: Yeah, of course, of course.

01:00:50.700 --> 01:00:52.079
That's fun.

01:00:52.840 --> 01:00:54.679
So, what's happened?

01:00:54.680 --> 01:01:03.567
[Sacha]: Do you want me to open up the chat

01:01:03.568 --> 01:01:04.200
to everybody?

01:01:04.201 --> 01:01:07.100
Or do you have other things?

01:01:07.080 --> 01:01:09.920
[Prot]: Me, I can stay for another 20 minutes.

01:01:09.920 --> 01:01:11.680
Just to say I can stay for another 20 minutes

01:01:11.680 --> 01:01:14.040
because then I have to take the dog.

01:01:14.040 --> 01:01:14.880
[Sacha]: Yeah, and Phil?

01:01:14.880 --> 01:01:17.460
Oh, you have to leave.

01:01:17.461 --> 01:01:19.280
[Philip]: 20 minutes is fine.

01:01:19.280 --> 01:01:20.880
[Philip]: 20 minutes is fine for me as well.

01:01:20.880 --> 01:01:22.240
[Sacha]: Okay, okay.

01:01:22.280 --> 01:01:24.885
I will put the thing in the chat and people can

01:01:24.886 --> 01:01:27.159
continue because the kiddo was like, ah!

01:01:27.160 --> 01:01:28.039
Okay, yes.

01:01:28.040 --> 01:01:29.959
[Prot]: Okay, okay, okay.

01:01:29.960 --> 01:01:30.159
Good.

01:01:30.160 --> 01:01:32.359
So, yeah, of course, there is a chat going.

01:01:32.360 --> 01:01:34.079
Yeah, let's see.

01:01:34.080 --> 01:01:36.599
So, Sacha, you will link it there.

01:01:36.600 --> 01:01:38.079
Ah, nice.

01:01:38.080 --> 01:01:43.264
[Philip]: So, I presume there has been an

01:01:43.265 --> 01:01:46.439
idea of people watching this.

01:01:47.960 --> 01:01:50.433
[Prot]: So this is live.

01:01:50.434 --> 01:01:53.861
[Sacha]: And I can copy the chat thus far since

01:01:53.862 --> 01:01:56.919
we didn't even get to any other questions.

01:01:56.920 --> 01:01:57.879
Hang on a second.

01:01:57.880 --> 01:01:58.999
Where am I even?

01:01:59.000 --> 01:02:01.879
[Prot]: We're trying to deal with those, right?

01:02:01.880 --> 01:02:05.599
Yeah, yeah, yeah.

01:02:05.600 --> 01:02:08.000
Well, eventually to have a discussion and also

01:02:08.001 --> 01:02:10.600
take questions, eventually you need to have more

01:02:10.601 --> 01:02:11.433
time, I guess.

01:02:11.434 --> 01:02:12.119
[Sacha]: Yeah, yeah.

01:02:12.120 --> 01:02:13.599
[Prot]: But thank you all so much.

01:02:13.600 --> 01:02:16.599
Yeah, yeah, yeah.

01:02:16.600 --> 01:02:16.959
That's good.

01:02:16.960 --> 01:02:17.759
Yeah, yeah.

01:02:17.760 --> 01:02:20.479
Thank you, Sacha.

01:02:20.480 --> 01:02:21.239
Thank you very much.

01:02:21.240 --> 01:02:27.539
And of course, the kiddo overrides all.

NOTE Continuing with INI

01:02:27.540 --> 01:02:29.100
That thing with the INI, I think it's

01:02:29.101 --> 01:02:29.679
very promising.

01:02:29.680 --> 01:02:31.779
I mean, if you flesh that out.

01:02:31.780 --> 01:02:35.367
Because the other thing is, yeah, yeah, with the

01:02:35.368 --> 01:02:39.133
INI configuration, because what would be, though,

01:02:39.134 --> 01:02:41.633
the fate of what is now added, you know, when you

01:02:41.634 --> 01:02:44.400
modify something and it adds this, you know, this

01:02:44.401 --> 01:02:46.157
has been set by custom, do not touch it kind

01:02:46.158 --> 01:02:46.799
of thing.

01:02:46.800 --> 01:02:49.299
You know what I'm talking about, right?

01:02:49.300 --> 01:02:51.967
[Philip]: Yeah, you mean the generated user glob.

01:02:51.968 --> 01:02:54.788
Well, my idea, or if I were, if I had

01:02:54.789 --> 01:03:00.454
the time /motivation/whatever to flesh this out,

01:03:00.455 --> 01:03:01.439
because currently it works...

01:03:01.440 --> 01:03:03.879
Currently it's an actually existing Elisp file

01:03:03.880 --> 01:03:06.507
which you could use, but I think it would be most

01:03:06.508 --> 01:03:08.599
interesting if it would be upstreamed.

01:03:08.600 --> 01:03:11.410
It would sort of be like, if you don't have

01:03:11.411 --> 01:03:14.310
a .el file, Emacs would look for it

01:03:14.311 --> 01:03:16.733
.ini file,

01:03:16.734 --> 01:03:19.067
or emacs.ini file or something like that.

01:03:19.068 --> 01:03:22.733
Then, of course, you can check, like, does the

01:03:22.734 --> 01:03:24.799
INI file exist or does the .el file exist?

01:03:24.800 --> 01:03:27.733
Probably there would be a user option to select

01:03:27.734 --> 01:03:30.479
into which it would inject the new options.

01:03:30.480 --> 01:03:34.034
And by default, it would select, for example, if

01:03:34.035 --> 01:03:37.204
the INI file exists, then it would use the

01:03:37.205 --> 01:03:37.959
INI file.

01:03:37.960 --> 01:03:42.113
But there is some controversy to this, because I

01:03:42.114 --> 01:03:44.067
totally understand the sentiment we're coming

01:03:44.068 --> 01:03:45.867
from with...

01:03:45.868 --> 01:03:51.279
You're using Emacs, so you have to learn Lisp.

01:03:51.280 --> 01:03:54.775
But for me, the bar is a bit higher than just the

01:03:54.776 --> 01:03:58.199
inconvenience of writing out this more or less.

01:03:58.200 --> 01:04:04.519
It's, as Joel Sussman referred to it, this

01:04:04.520 --> 01:04:06.359
ritualistic Lisp.

01:04:06.360 --> 01:04:09.210
You always have to repeat the same stuff all over

01:04:09.211 --> 01:04:11.479
again, like with eval, afterload, set.

01:04:11.480 --> 01:04:14.037
add-to-list, then you have to quote the option in

01:04:14.038 --> 01:04:14.559
one case.

01:04:14.560 --> 01:04:16.859
And if you change something in a map, then you

01:04:16.860 --> 01:04:17.959
don't have to add it.

01:04:17.960 --> 01:04:20.067
And of course, if you know Lisp, then you know

01:04:20.068 --> 01:04:25.467
that in one case, a keymap is a cons cell, so

01:04:25.468 --> 01:04:27.200
you're actually modifying the rest of the cons cell.

01:04:27.201 --> 01:04:28.333
That's why you don't need to quote it.

01:04:28.334 --> 01:04:29.933
But in the other case, you're accessing it via

01:04:29.934 --> 01:04:31.133
symbols, so you need to quote it.

01:04:31.134 --> 01:04:35.959
But this is all technical details.

01:04:35.960 --> 01:04:37.479
There's no necessity in it.

01:04:37.480 --> 01:04:39.599
It doesn't have to be that way.

01:04:39.600 --> 01:04:41.956
[Prot]: Yeah, yeah, yeah, that's fair, that's fair,

01:04:41.957 --> 01:04:42.559
of course.

NOTE Motivation

01:04:42.560 --> 01:04:45.576
[Philip]: One thing I wanted to bring up in the discussion

01:04:45.577 --> 01:04:48.480
when we were talking about reverence was there

01:04:48.481 --> 01:04:51.399
is, I mean, one part of the thing that gave me

01:04:51.400 --> 01:04:54.530
the motivation to go through with learning Emacs,

01:04:54.531 --> 01:04:57.629
even though I didn't use the tutorial initially,

01:04:57.630 --> 01:05:00.599
was sort of a reputation I heard about Emacs.

01:05:00.600 --> 01:05:02.595
And the videos I saw, wow, you can do these

01:05:02.596 --> 01:05:03.199
cool things.

01:05:03.200 --> 01:05:07.519
And this motivation, this image I had of Emacs

01:05:07.520 --> 01:05:12.088
help me go through, but if you overshoot this

01:05:12.080 --> 01:05:14.680
approach, then people expect too much in the

01:05:14.680 --> 01:05:16.560
beginning and are disappointed in the end and

01:05:16.560 --> 01:05:20.880
don't pull through.

01:05:20.901 --> 01:05:27.769
There's this question of having, how's it called,

01:05:27.770 --> 01:05:29.119
the ??...

01:05:29.120 --> 01:05:32.732
How to motivate people enough to be interested in

01:05:32.733 --> 01:05:35.662
Emacs, to actually learn it, but not to

01:05:35.663 --> 01:05:36.639
oversell it.

01:05:36.640 --> 01:05:39.595
If you give some sort of a demo of using Emacs,

01:05:39.596 --> 01:05:42.389
which is simply not representative of how it

01:05:42.390 --> 01:05:45.166
actually works, then that's something which

01:05:45.167 --> 01:05:46.199
would backfire.

01:05:46.200 --> 01:05:48.459
But I guess we can take a look at the

01:05:48.460 --> 01:05:49.559
questions, right?

01:05:49.560 --> 01:05:50.959
Yeah, let's see.

01:05:50.960 --> 01:05:51.399
Let's see.

01:05:51.400 --> 01:05:53.839
[Prot]: Yeah, yeah, yeah.

01:05:53.840 --> 01:05:54.999
So yeah, I didn't read them.

01:05:55.000 --> 01:05:57.541
[Philip]: I had the chat open, but I didn't have

01:05:57.542 --> 01:05:58.759
the time to read them.

01:05:58.760 --> 01:06:00.159
Sorry?

01:06:00.160 --> 01:06:02.719
I'm not sure how to parse these.

01:06:02.720 --> 01:06:04.639
Is this from top to bottom?

01:06:04.640 --> 01:06:08.676
[Prot]: I guess from top to bottom is how they

01:06:08.677 --> 01:06:10.519
arrived in the chat.

01:06:10.520 --> 01:06:12.919
The top is the earliest.

01:06:12.920 --> 01:06:16.319
[Philip]: The usernames are mentioned below.

01:06:16.320 --> 01:06:18.559
[Prot]: I guess that's a copy-paste thing.

01:06:18.560 --> 01:06:20.239
Yeah, yeah, yeah.

01:06:20.240 --> 01:06:26.079
So there are some...

01:06:26.080 --> 01:06:29.919
[Sacha]: I gave the kiddo some packed lunch, so I'm back.

01:06:29.920 --> 01:06:31.999
[Prot]: Oh, hello there!

01:06:32.000 --> 01:06:34.471
[Philip]: We were just wondering about how to

01:06:34.472 --> 01:06:36.119
read the comments you posted.

01:06:36.120 --> 01:06:38.559
Maybe you have a better UI.

01:06:38.560 --> 01:06:41.599
[Sacha]: I pasted them into the chat.

01:06:41.600 --> 01:06:43.393
So in the Big Blue Button...

01:06:43.394 --> 01:06:45.559
[Philip]: But that's the order of occurrence?

01:06:45.560 --> 01:06:47.719
[Sacha]: That's order of occurrence.

01:06:47.720 --> 01:06:50.210
It's totally not very... It's just like a

01:06:50.211 --> 01:06:50.879
big paste.

NOTE Politics and philosophy

01:06:50.880 --> 01:06:54.559
[Prot]: While you read it, let me...

01:06:54.560 --> 01:06:59.878
Yeah, there is a comment there from LC2000 about

01:06:59.879 --> 01:07:05.371
the splash screen having a lot of emphasis on the

01:07:05.372 --> 01:07:09.519
legal side, which is a fair comment.

01:07:09.520 --> 01:07:12.068
I think the legal side is important though,

01:07:12.069 --> 01:07:14.990
because of course, free software and all that, but

01:07:14.991 --> 01:07:17.738
of course, it could be rearranged. So maybe you

01:07:17.739 --> 01:07:20.743
don't want to have it at the top front and center,

01:07:20.744 --> 01:07:23.579
you want to have it further down. Maybe. I don't

01:07:23.580 --> 01:07:26.434
know. I don't have a strong opinion, but I think

01:07:26.435 --> 01:07:29.380
the legal side is it should be there at some

01:07:29.381 --> 01:07:31.553
point. I feel like it's a political

01:07:31.554 --> 01:07:32.639
minefield though.

01:07:32.640 --> 01:07:35.279
[Sacha]: Just leave that alone.

01:07:35.280 --> 01:07:38.679
200 comments on emacs-devel.

01:07:38.680 --> 01:07:42.799
One of those really long threads.

01:07:42.800 --> 01:07:46.756
[Philip]: I cannot under-emphasize how surprised

01:07:46.757 --> 01:07:50.845
I was when my suggestion to add a checkbox on the

01:07:50.846 --> 01:07:53.599
splash screen just went through.

01:07:53.600 --> 01:07:57.929
Because I expected people to object, no, we can't

01:07:57.930 --> 01:08:01.199
add it there because of some system.

01:08:01.200 --> 01:08:03.551
It wouldn't look the way it should look and that

01:08:03.552 --> 01:08:05.119
would be confusing or whatever.

01:08:05.120 --> 01:08:09.119
But apparently change is possible.

01:08:09.120 --> 01:08:12.479
You have to be careful and be patient.

01:08:12.480 --> 01:08:15.437
[Prot]: And I guess here there is an

01:08:15.438 --> 01:08:16.999
assumption, right?

01:08:17.000 --> 01:08:19.979
There is also an assumption that people will

01:08:19.980 --> 01:08:22.079
attack you or be unreasonable.

01:08:22.080 --> 01:08:24.959
And I think this is not true.

01:08:24.960 --> 01:08:26.599
You mentioned it earlier as well.

01:08:26.600 --> 01:08:29.377
Eventually you have to get on the mailing list

01:08:29.378 --> 01:08:32.242
because people, if they don't hear the opinion,

01:08:32.243 --> 01:08:35.281
the counterpoint, they will never know what to do

01:08:35.282 --> 01:08:35.839
with it.

01:08:35.840 --> 01:08:38.538
[Philip]: but it's not entirely unreasonable

01:08:38.539 --> 01:08:41.429
because there are discussions that can be... There

01:08:41.430 --> 01:08:43.839
are people on emacs-devel, it's sad to admit it, but

01:08:43.840 --> 01:08:47.306
there are people who voice strong opinions, like

01:08:47.307 --> 01:08:50.235
strong opinions, with no power behind them, which

01:08:50.236 --> 01:08:53.122
can scare people away because there's no... There

01:08:53.123 --> 01:08:55.914
are no tags. There's no index of

01:08:55.915 --> 01:08:58.959
people on emacs-devel, so you don't know if some

01:08:58.960 --> 01:09:02.647
John Doe responding to your message, if he's

01:09:02.648 --> 01:09:06.615
actually responsible for this and makes ae

01:09:06.616 --> 01:09:10.873
decision, or if it's if Eli is sending a message

01:09:10.874 --> 01:09:14.656
and his decision on the discussion actually

01:09:14.657 --> 01:09:23.479
weighs a lot more than other matters.

NOTE Experimenting with things outside core

01:09:23.480 --> 01:09:26.233
[Sacha]: I feel like sometimes experimenting with

01:09:26.234 --> 01:09:28.933
newbie-focused resources, like the unofficial

01:09:28.934 --> 01:09:32.233
ones that are around... At least we can try the

01:09:32.234 --> 01:09:35.600
ideas out and then say, hey, here's the patch and

01:09:35.601 --> 01:09:38.704
also here's what people have been using

01:09:38.705 --> 01:09:42.839
it for, so you can see it a bit more concretely,

01:09:42.840 --> 01:09:45.961
than dropping an idea into the discussion and

01:09:45.962 --> 01:09:49.130
then having the whole bike-shedding happening

01:09:49.131 --> 01:09:50.679
without as much data.

01:09:50.680 --> 01:09:53.759
[Philip]: That's seriously my main recommendation.

01:09:53.760 --> 01:09:56.287
If you want to propose something, add a

01:09:56.288 --> 01:09:59.378
prototype, add a patch, add something to narrow

01:09:59.379 --> 01:10:00.759
down the discussion.

01:10:00.760 --> 01:10:03.808
That's something people would take away from this

01:10:03.809 --> 01:10:05.799
discussion, from my experience.

01:10:05.800 --> 01:10:07.839
[Prot]: I 100% agree.

01:10:07.840 --> 01:10:09.919
I think that's the way to go.

01:10:09.920 --> 01:10:12.706
Just implement something so that it focuses

01:10:12.707 --> 01:10:13.679
the attention.

01:10:13.680 --> 01:10:16.012
Otherwise, you will get those endless discussions

01:10:16.013 --> 01:10:16.679
very quickly.

01:10:16.680 --> 01:10:20.857
[Sacha]: Or try it as a package first, and then

01:10:20.858 --> 01:10:22.279
it can be core.

01:10:22.280 --> 01:10:23.719
[Philip]: Excuse me?

01:10:23.720 --> 01:10:26.519
[Sacha]: Oh, I was thinking if it's possible to prototype

01:10:26.520 --> 01:10:28.848
something as a package,

01:10:28.849 --> 01:10:30.833
now that Emacs has made it a lot easier for

01:10:30.800 --> 01:10:35.640
people to install packages, then at least it can be tested

01:10:35.640 --> 01:10:38.720
before having all the conversations about whether it should

01:10:38.720 --> 01:10:40.367
be as part of core

01:10:40.368 --> 01:10:42.200
or part of the splash screen or everything else.

NOTE Extending the core

01:10:42.960 --> 01:10:45.500
[Philip]: The counter tendency I feel obliged to

01:10:45.501 --> 01:10:48.833
mention is that many times proposing something as

01:10:48.834 --> 01:10:52.333
a package or as an extension to the core can

01:10:52.334 --> 01:10:54.239
actually simplify the implementation vastly.

01:10:54.240 --> 01:10:57.994
Especially if you need to make one or two twists

01:10:57.995 --> 01:11:01.080
upstream and you need something like an

01:11:01.081 --> 01:11:04.879
additional hook or something to exist upstream.

01:11:04.880 --> 01:11:07.076
If it's a package in the core, then it's a lot

01:11:07.077 --> 01:11:08.926
easier to explain why you have to make

01:11:08.927 --> 01:11:09.559
this change than

01:11:09.560 --> 01:11:11.802
having to deal with some sort of advice and

01:11:11.803 --> 01:11:13.159
changing a lot of things.

01:11:13.160 --> 01:11:16.507
There was a certain tendency during the

01:11:16.508 --> 01:11:20.799
mid-2010s, which I only know from history, was to

01:11:20.800 --> 01:11:24.537
re-implement a lot of stuff in logs, in packages,

01:11:24.538 --> 01:11:27.359
instead of working on them upstream.

01:11:27.360 --> 01:11:29.412
That created a lot of divergence

01:11:29.413 --> 01:11:30.439
between packages,

01:11:30.440 --> 01:11:33.088
and in my opinion, complicated

01:11:33.089 --> 01:11:35.596
things because it introduces this entire

01:11:35.597 --> 01:11:36.599
choice fatigue.

01:11:36.600 --> 01:11:37.719
Should I use Flymake?

01:11:37.720 --> 01:11:38.639
Should I use Flycheck?

01:11:38.640 --> 01:11:40.279
Should I use LSP mode?

01:11:40.280 --> 01:11:41.039
Should I use Eglot?

01:11:41.040 --> 01:11:43.099
Which is not a historically accurate example in

01:11:43.100 --> 01:11:44.239
the stats that I'm given,

01:11:44.240 --> 01:11:49.599
But I'm certainly in favor of at least considering

01:11:49.600 --> 01:11:52.039
upstream contributions.

NOTE
Guide to contributing to ELPA
#+SCREENSHOT: ye29-prot-and-pkal-emacs-newcomer-experience-01-12-27-567.jpg
#+SCREENSHOT_TIME: 01:12:27.567
#+SCREENSHOT_CROP: 19 69 400 886

01:11:52.040 --> 01:11:55.375
Even like packages, of course, it's the way we

01:11:55.376 --> 01:11:58.506
recently published these guidelines, or not

01:11:58.507 --> 01:12:02.090
guidelines, this contribution guide to publishing

01:12:02.091 --> 01:12:05.402
packages on ELPA, which is on, if you want to

01:12:05.403 --> 01:12:08.371
open it in the browser, it's on the ELPA

01:12:08.372 --> 01:12:12.054
homepage, which lists sort of these hard criteria

01:12:12.055 --> 01:12:15.019
which we require from ELPA.

01:12:15.020 --> 01:12:17.359
Just elpa.gnu.org, yeah, it's...

01:12:17.360 --> 01:12:20.839
That's going to be a link to the page.

01:12:20.840 --> 01:12:23.799
[Sacha]: Yeah, this is pretty recent.

01:12:23.800 --> 01:12:26.633
[Philip]: This is recent, and then there's a list

01:12:26.634 --> 01:12:27.559
of suggestions.

01:12:27.560 --> 01:12:30.759
But this is getting off the actual point.

01:12:30.760 --> 01:12:34.600
I'm just saying that relating to the general

01:12:34.601 --> 01:12:40.100
point, my experience is that proposing something

01:12:40.101 --> 01:12:43.208
concrete but also be open to hearing the opinions

01:12:43.209 --> 01:12:44.639
of other people

01:12:44.640 --> 01:12:48.137
These are the two necessary but maybe not always

01:12:48.138 --> 01:12:50.811
sufficient ingredients to making the

01:12:50.812 --> 01:12:53.179
changing stuff.

01:12:53.180 --> 01:12:56.167
Because if you just say, I want this to be

01:12:56.168 --> 01:12:57.057
different but don't put in the work, then

01:12:57.058 --> 01:12:58.959
everyone's going to forget it.

01:12:58.960 --> 01:13:01.256
But if you propose something and then insist that

01:13:01.257 --> 01:13:03.490
it has to be exactly this way, then you're just

01:13:03.491 --> 01:13:04.679
creating social tension.

01:13:04.680 --> 01:13:11.419
Maybe missing out on interesting things.

NOTE Making the newcomer experience better

01:13:11.420 --> 01:13:13.500
[Sacha]: And especially since people are using

01:13:13.501 --> 01:13:15.967
Emacs for so many different reasons and coming

01:13:15.968 --> 01:13:18.500
from so many different backgrounds, what you are

01:13:18.501 --> 01:13:20.459
very firmly committed to might very well work for

01:13:20.460 --> 01:13:23.348
one set of people, but will run into these issues

01:13:23.349 --> 01:13:24.999
for all these other people.

01:13:25.000 --> 01:13:27.490
So if we want to bring it back to this, you know,

01:13:27.491 --> 01:13:29.879
how do we make the newcomer experience better?

01:13:29.880 --> 01:13:32.813
It's great that in core, there's starting to be a

01:13:32.814 --> 01:13:35.534
little bit more infrastructure for supporting

01:13:35.535 --> 01:13:37.939
things like sets of reasonable defaults

01:13:37.940 --> 01:13:38.679
for people.

01:13:38.680 --> 01:13:41.888
And maybe we as a community need to figure out,

01:13:41.889 --> 01:13:44.673
all right, how do we write documentation

01:13:44.674 --> 01:13:45.439
around it?

01:13:45.440 --> 01:13:46.959
How do we make tutorial videos?

01:13:46.960 --> 01:13:50.211
How do we encapsulate, okay, this is what this

01:13:50.212 --> 01:13:53.628
typical newcomer experience is like for this set

01:13:53.629 --> 01:13:57.081
of people and maybe these options or packages or

01:13:57.082 --> 01:14:00.319
a glue code might be helpful for this group?

01:14:00.320 --> 01:14:02.079
Maybe.

01:14:02.080 --> 01:14:05.399
[Prot]: Maybe.

01:14:05.400 --> 01:14:08.182
Yeah like in theory you can imagine of something

01:14:08.183 --> 01:14:10.920
like if you are a Python developer, here is your

01:14:10.921 --> 01:14:13.616
Python presets theme. If you are doing

01:14:13.617 --> 01:14:16.336
Org or whatever, here is your LaTeX and friends,

01:14:16.337 --> 01:14:19.038
right, and you could also have extensions like

01:14:19.039 --> 01:14:20.239
that in the future.

01:14:20.240 --> 01:14:24.419
[Philip]: I mean nothing about the idea is... It

01:14:24.420 --> 01:14:28.599
could have been used as a package people can

01:14:28.600 --> 01:14:30.319
load otherwise.

NOTE "user option themes" versus "appearance themes"

01:14:30.320 --> 01:14:33.212
[Philip]: And hopefully, as I said, there is

01:14:33.213 --> 01:14:36.399
certainly additional work which can be put in to

01:14:36.400 --> 01:14:39.719
support making user option themes better supported.

01:14:39.720 --> 01:14:42.377
I think one of the things that will be useful is

01:14:42.378 --> 01:14:45.004
actually referring to them just in nomenclature

01:14:45.005 --> 01:14:47.452
points as user option themes to distinguish

01:14:47.453 --> 01:14:48.079
them from.

01:14:48.080 --> 01:14:49.359
[Sacha]: From themes.

01:14:49.360 --> 01:14:51.239
[Philip]: From color themes, yeah.

01:14:51.240 --> 01:14:53.279
Color themes, yeah.

01:14:53.280 --> 01:14:56.278
We even introduced the distinction themes have

01:14:56.279 --> 01:14:58.039
kinds since like Emacs 20.

01:14:58.040 --> 01:15:00.199
[Philip]: 29, I think.

01:15:00.200 --> 01:15:02.039
29.

01:15:02.040 --> 01:15:02.599
Yeah, yeah, yeah.

01:15:02.600 --> 01:15:06.639
[Prot]: I think you did that, right?

01:15:06.640 --> 01:15:09.639
[Philip]: I think I worked on a patch.

01:15:09.640 --> 01:15:11.918
But that was exactly, I mean, that was already

01:15:11.919 --> 01:15:14.015
where the seeds for the current theme were

01:15:14.016 --> 01:15:16.491
started, because we wanted to distinguish between

01:15:16.492 --> 01:15:18.159
these different kinds of things.

01:15:18.160 --> 01:15:21.359
Were there any other questions?

01:15:21.360 --> 01:15:24.199
[Prot]: I don't think so.

01:15:24.200 --> 01:15:27.399
But yeah, as we saw now with the find-library

01:15:27.400 --> 01:15:30.916
that Sacha did in the beginning, it would be nice

01:15:30.917 --> 01:15:34.129
to also eventually be able to find the theme

01:15:34.130 --> 01:15:35.079
or whatever.

01:15:35.080 --> 01:15:37.319
Maybe it's a different find-theme,

01:15:37.320 --> 01:15:40.079
if for whatever reason it cannot be find-library.

01:15:40.080 --> 01:15:43.910
[Philip]: That's actually no reason why that

01:15:43.911 --> 01:15:45.959
shouldn't be the case.

01:15:45.960 --> 01:15:48.729
I mean, you could just extend the logic to not

01:15:48.730 --> 01:15:51.439
only consider the load-list, but also the...

01:15:51.440 --> 01:15:53.561
Whatever the variable is for the list, then it

01:15:53.562 --> 01:15:55.800
should be able to find that as well, even though

01:15:55.801 --> 01:15:57.759
it's strictly speaking, that's a library.

01:15:57.760 --> 01:16:01.098
But that's a decision that someone has to make at

01:16:01.099 --> 01:16:03.279
some point or convince someone.

01:16:03.280 --> 01:16:05.679
[Sacha]: I think find-library does work for it.

01:16:05.680 --> 01:16:08.123
Like, find-library will find it only if

01:16:08.124 --> 01:16:08.959
it's loaded.

01:16:08.960 --> 01:16:10.159
And then since I can't, like, undo it...

01:16:10.160 --> 01:16:11.479
[Prot]: If it's a package.

01:16:11.480 --> 01:16:12.279
[Sacha]: Yeah, yeah.

01:16:12.280 --> 01:16:14.719
[Prot]: If you install it as a package, yes.

01:16:14.720 --> 01:16:17.145
[Philip]: Because then the theme is in a

01:16:17.146 --> 01:16:19.679
directory which package.el has added to a

01:16:19.680 --> 01:16:20.359
load list.

01:16:20.360 --> 01:16:24.585
[Philip]: I think the preset, if my memory serves

01:16:24.586 --> 01:16:28.794
me correct, then find library only looks through

01:16:28.795 --> 01:16:29.759
load-path.

01:16:29.760 --> 01:16:31.399
[Sacha]: I see, I see.

01:16:31.400 --> 01:16:34.639
And etc/themes is not in the load-path.

01:16:34.640 --> 01:16:35.767
[Philip]: Exactly.

01:16:35.768 --> 01:16:38.933
Because these aren't, this is, I don't know why.

01:16:38.934 --> 01:16:39.933
It's not...

01:16:39.934 --> 01:16:41.267
[Sacha]: Okay, all right.

01:16:41.268 --> 01:16:49.379
That's another message to emacs-devel.

NOTE configuration generator in Emacs? maybe more wizards?

01:16:49.380 --> 01:16:54.436
[Philip]: It's the sort of annoyance which from my

01:16:54.437 --> 01:16:56.233
perspective is so inconvenient that I forget it

01:16:56.234 --> 01:16:59.859
every time and then you don't change it.

NOTE Starter kits

01:16:59.860 --> 01:17:04.255
[Sacha]: @brongulus says the Doom Emacs module

01:17:04.256 --> 01:17:07.151
approach is very nice for beginners and entices

01:17:07.152 --> 01:17:08.999
them to get into things more.

01:17:09.000 --> 01:17:11.066
People interested in a certain common set of

01:17:11.067 --> 01:17:13.201
functionality can get an opinionated starting

01:17:13.202 --> 01:17:15.420
point in Emacs, rather than worrying about what

01:17:15.421 --> 01:17:15.999
to install.

01:17:16.000 --> 01:17:19.039
And someone else in the previous

01:17:19.040 --> 01:17:22.439
That's sort of like the theme approach, isn't it?

01:17:22.440 --> 01:17:24.399
Sort of, yeah.

01:17:24.400 --> 01:17:27.331
It's not just, hey, these are the packages and

01:17:27.332 --> 01:17:30.470
you can comment and uncomment lines that load the

01:17:30.471 --> 01:17:34.533
different modules, but also here's the glue to

01:17:34.534 --> 01:17:36.435
sort of start to make some of them work better

01:17:36.436 --> 01:17:39.759
together or to change them to reasonable defaults.

NOTE Configuration generator in Emacs Lisp?

01:17:39.760 --> 01:17:42.772
I was wondering, actually, along those lines, any

01:17:42.773 --> 01:17:45.266
thoughts about making your configuration

01:17:45.267 --> 01:17:51.299
generator type thing in Emacs?

01:17:51.300 --> 01:17:53.767
[Philip]: The reason I, in the configuration

01:17:53.768 --> 01:17:56.000
generator, did not implement it in Emacs was

01:17:56.001 --> 01:17:59.000
precisely due to if it were in Emacs and would

01:17:59.001 --> 01:17:59.493
use, for example, something like the widget

01:17:59.494 --> 01:18:02.304
library and there would be these fine UI

01:18:02.305 --> 01:18:05.489
discrepancies which people wouldn't expect to

01:18:05.490 --> 01:18:08.780
behave the way they do, then scrolling doesn't

01:18:08.781 --> 01:18:11.999
behave exactly the way they expect it to do.

01:18:12.000 --> 01:18:14.854
But there has been an idea, I think, when I

01:18:14.855 --> 01:18:17.627
mentioned the configuration generator the

01:18:17.628 --> 01:18:18.439
first time.

01:18:18.440 --> 01:18:21.236
It was the notion of having actually a shared

01:18:21.237 --> 01:18:24.105
file format behind it, just some S expression,

01:18:24.106 --> 01:18:27.049
which could be loaded by both the configuration

01:18:27.050 --> 01:18:29.882
generator and a generic configuration wizard,

01:18:29.883 --> 01:18:32.988
which could also be used like every package could

01:18:32.989 --> 01:18:36.061
define their own configuration wizard for asking

01:18:36.062 --> 01:18:40.499
the user selected options and configuring these.

NOTE extending the archive format

01:18:40.500 --> 01:18:42.758
That's also another thing in Emacs 32

01:18:42.759 --> 01:18:46.299
which I plan to work on, to extend the package

01:18:46.300 --> 01:18:47.479
archive format.

01:18:47.480 --> 01:18:50.264
Among other things, allowing for multiple

01:18:50.265 --> 01:18:53.408
packages to be listed in it, because

01:18:53.409 --> 01:18:56.235
GNU ELPA and NonGNU ELPA both store multiple

01:18:56.236 --> 01:18:59.171
versions of all packages, but you can only

01:18:59.172 --> 01:19:01.199
install the most recent one.

01:19:01.200 --> 01:19:02.239
That's why pinning doesn't work.

01:19:02.240 --> 01:19:05.214
Absolutely no technical reason why this shouldn't

01:19:05.215 --> 01:19:07.279
also list other versions as well.

01:19:07.280 --> 01:19:10.252
And then you could have pinning without having to

01:19:10.253 --> 01:19:10.799
use Git.

01:19:10.800 --> 01:19:12.559
Packages as well.

01:19:12.560 --> 01:19:13.839
And there are a few others.

01:19:13.840 --> 01:19:16.969
There was a thread I think earlier this year

01:19:16.970 --> 01:19:20.276
where I collected a number of these extensions

01:19:20.277 --> 01:19:23.799
for the archive formats which could be extended.

01:19:23.800 --> 01:19:28.199
And now I forgot my thread.

01:19:28.200 --> 01:19:29.559
Now I lost my thread of those.

01:19:29.560 --> 01:19:34.003
[Prot]: But basically extending package.el and

01:19:34.004 --> 01:19:35.839
the archive, yeah.

01:19:35.840 --> 01:19:40.559
[Philip]: Specifically the archive, so that

01:19:40.560 --> 01:19:43.167
[Prot]: Showing the previous versions which are

01:19:43.168 --> 01:19:44.867
already listed, like you said.

01:19:44.868 --> 01:19:46.369
[Philip]: Yeah, so that you could pin the version

01:19:46.370 --> 01:19:48.679
so you could install the version.

01:19:48.680 --> 01:19:51.867
I honestly do not remember what I was saying just

01:19:51.868 --> 01:19:54.599
a few seconds ago, which is embarrassing.

01:19:54.600 --> 01:19:56.759
Okay, that's another problem.

01:19:56.760 --> 01:19:59.179
[Prot]: Things happen, no worries.

01:19:59.180 --> 01:20:02.199
[Philip]: You were talking about Doom Emacs?

01:20:02.200 --> 01:20:05.067
[Prot]: There was a comment about the Doom Emacs

01:20:05.068 --> 01:20:06.429
and specifically the fact that there are these

01:20:06.430 --> 01:20:09.044
modules and you can load the module without

01:20:09.045 --> 01:20:11.599
thinking specifically about the packages.

01:20:11.600 --> 01:20:14.052
But then Sacha told you about your package

01:20:14.053 --> 01:20:15.279
configurator wizard.

01:20:15.280 --> 01:20:18.720
[Philip]: Package configurator wizard and then

01:20:18.721 --> 01:20:22.206
extending the metadata could also include this

01:20:22.207 --> 01:20:24.479
sort of configuration option.

01:20:24.480 --> 01:20:26.980
So that packages, in some sense, could specify

01:20:26.981 --> 01:20:29.178
what options the user would primarily be

01:20:29.179 --> 01:20:31.416
interested in and what order they should

01:20:31.417 --> 01:20:32.199
be traversed.

01:20:32.200 --> 01:20:34.046
And you could have some sort of dependency,

01:20:34.047 --> 01:20:34.519
of course.

01:20:34.520 --> 01:20:37.679
This is some effort which has to be put in, but

01:20:37.680 --> 01:20:40.805
it's not something that's unreasonable, from a

01:20:40.806 --> 01:20:43.999
technical perspective, from implementing this.

01:20:44.000 --> 01:20:46.746
And it would make, I think, it could make, if you

01:20:46.747 --> 01:20:49.522
have the infrastructure for that, that would make

01:20:49.523 --> 01:20:51.959
installing and using packages a lot nicer.

01:20:51.960 --> 01:20:56.959
It sounds very promising, for sure.

NOTE User interfaces

01:20:56.960 --> 01:20:58.679
The UI question remains the thing.

01:20:58.680 --> 01:21:03.510
Do you want to reuse the Customize UI, which has

01:21:03.511 --> 01:21:05.679
its historical warts?

01:21:05.680 --> 01:21:07.159
Of course, can they be ironed out?

01:21:07.160 --> 01:21:08.879
That's a different question.

01:21:08.880 --> 01:21:12.199
Or do you reinvent something from scratch?

01:21:12.200 --> 01:21:14.759
And I'm usually not that big of a fan of

01:21:14.760 --> 01:21:16.039
reinventing the UI.

01:21:16.040 --> 01:21:19.913
I'm more in the reuse existing interfaces, just

01:21:19.914 --> 01:21:21.479
into the back end.

01:21:21.480 --> 01:21:24.452
[Prot]: Plus, if you were to invent a new UI, you

01:21:24.453 --> 01:21:27.271
wouldn't have this new feature already because

01:21:27.272 --> 01:21:29.644
you have too many things that you need

01:21:29.645 --> 01:21:30.519
to implement.

01:21:30.520 --> 01:21:33.200
Whereas just using custom UI allows you to just

01:21:33.201 --> 01:21:35.787
implement the feature and then the interface,

01:21:35.788 --> 01:21:38.638
maybe it's something that somebody else will work

01:21:38.639 --> 01:21:40.559
on or you work on at the latest.

01:21:40.560 --> 01:21:44.039
[Philip]: Yeah, but then, of course, that's...

01:21:44.040 --> 01:21:46.859
Even if that is the case, then you have to make

01:21:46.860 --> 01:21:49.772
sure that you don't make assumptions that depend

01:21:49.773 --> 01:21:52.079
on your own customizer in the future.

01:21:52.605 --> 01:21:58.111
It's a whole list of dependencies which is

01:21:58.131 --> 01:21:59.332
just complicated.

01:21:59.352 --> 01:22:01.354
[Sacha]: That sounds like a newcomers presets to

01:22:01.495 --> 01:22:05.459
un-wartify Customize, a reset theme to put the

01:22:05.479 --> 01:22:09.423
warts back on as needed, and then we can use the

01:22:09.463 --> 01:22:12.126
slightly more modern interface for the things

01:22:12.207 --> 01:22:12.647
that we had...

01:22:12.880 --> 01:22:27.734
[Prot]: I think just to say this, but of course

01:22:27.774 --> 01:22:30.917
everything we have covered thus far, always we

01:22:30.957 --> 01:22:31.558
have to state it.

01:22:32.459 --> 01:22:35.962
Newcomers with an asterisk, right?

01:22:36.082 --> 01:22:39.005
With the caveat that you still have to put in the

01:22:39.065 --> 01:22:41.507
work, read the manual, be patient, all

01:22:41.567 --> 01:22:42.128
that, right?

01:22:44.437 --> 01:22:54.149
[Philip]: Ideally, it would be nice if you could

01:22:54.229 --> 01:22:55.390
even start without it.

01:22:55.430 --> 01:22:57.052
I mean, I started without it, but it took me

01:22:57.072 --> 01:23:01.377
three or four years to actually write this one.

01:23:01.738 --> 01:23:03.640
I didn't want to write defun.

01:23:03.660 --> 01:23:04.140
I thought, what?

01:23:04.160 --> 01:23:05.362
I don't write my own functions.

01:23:05.382 --> 01:23:07.885
I just want to set options, which was wrong and

01:23:07.925 --> 01:23:08.526
appealing to this.

01:23:08.566 --> 01:23:10.107
That was the point from the beginning.

01:23:10.128 --> 01:23:12.250
But I think, Sacha, you wanted to close there.

01:23:12.685 --> 01:23:14.608
[Sacha]: Oh, I just wanted to acknowledge that we

01:23:14.648 --> 01:23:17.011
are coming up in the 20 minutes that you said you

01:23:17.052 --> 01:23:17.893
were available for.

01:23:18.994 --> 01:23:19.836
Yeah, yeah, yeah, I need to go.

01:23:20.056 --> 01:23:21.819
Yeah, yeah, the dogs and everything.

01:23:22.560 --> 01:23:24.002
[Prot]: Yeah, yeah, I have to take them for a

01:23:24.042 --> 01:23:25.644
walk because I have a meeting afterwards.

01:23:25.825 --> 01:23:26.506
[Sacha]: Right.

01:23:26.526 --> 01:23:27.587
I wanted to thank both of you.

01:23:27.888 --> 01:23:30.091
I really like this conversation and the heads up

01:23:30.151 --> 01:23:32.314
and the interesting things coming down

01:23:32.354 --> 01:23:33.476
the pipeline.

01:23:33.656 --> 01:23:34.638
So thank you for that.

01:23:34.520 --> 01:23:38.213
We're going to continue, I think, working on the

01:23:38.214 --> 01:23:40.599
user experience for newcomers.

01:23:40.600 --> 01:23:44.032
which will probably be a mix of documentation and

01:23:44.033 --> 01:23:47.209
packages and other experiments and occasional

01:23:47.210 --> 01:23:50.569
email to emacs-devel suggesting things like the

01:23:50.570 --> 01:23:52.999
find-user-init-file and whatever.

01:23:53.000 --> 01:23:55.316
But thank you so much to you and to everyone

01:23:55.317 --> 01:23:56.159
who's tuned in.

01:23:56.160 --> 01:23:58.999
[Philip]: You're welcome.

01:23:59.000 --> 01:23:59.839
[Prot]: Thank you.

01:23:59.840 --> 01:24:00.879
Thank you.

01:24:00.880 --> 01:24:01.759
Thank you.

01:24:01.760 --> 01:24:03.359
[Philip]: Take care.

01:24:03.360 --> 01:24:04.839
[Prot]: Take care.

01:24:04.840 --> 01:24:06.599
Bye-bye.

01:24:06.600 --> 01:24:08.439
Goodbye, goodbye.

01:24:08.440 --> 01:24:10.519
Where do we close from here?

01:24:10.520 --> 01:24:13.919
[Philip]: I'm just going to close the tab.

01:24:13.920 --> 01:24:15.000
Bye.
