WEBVTT

00:00:00.000 --> 00:00:03.459
I look at every issue, I look at every comment

00:00:03.459 --> 00:00:06.780
as a learning opportunity. Okay, well, you're

00:00:06.780 --> 00:00:10.220
going to be doing gigabytes of learning, because

00:00:10.220 --> 00:00:15.960
you don't have any pushback mechanism. I mean,

00:00:16.019 --> 00:00:18.820
okay, you're going to be drinking from the fire

00:00:18.820 --> 00:00:22.420
hose. Your learning opportunities will be endless.

00:00:22.820 --> 00:00:25.500
We have Sybil and Franklin in chat. Have you

00:00:25.500 --> 00:00:29.140
seen this guy? Yeah, I like his channel a lot.

00:00:29.629 --> 00:00:32.670
Oh, yeah? You've seen him? He's also a philosophical

00:00:32.670 --> 00:00:37.210
guy. Yeah. He's into Adderall. He's not into

00:00:37.210 --> 00:00:40.270
Adderall. Apparently, he's not in the last few

00:00:40.270 --> 00:00:42.670
videos, Sylvan. Are you still into it or not?

00:00:43.329 --> 00:00:46.250
Or you haven't decided yet? We had a live stream.

00:00:46.450 --> 00:00:48.530
Let me tell you about this. We had a live stream

00:00:48.530 --> 00:00:51.829
planned. We joined, all of us, and he never joined.

00:00:51.969 --> 00:00:55.049
And I was like, Sylvan, are you joining? He never

00:00:55.049 --> 00:00:57.869
joined. That was the day he stopped the Adderall.

00:00:58.009 --> 00:01:02.649
Yeah, man. crazy no more adderall he says um

00:01:02.649 --> 00:01:06.250
and he got put on a psych ward that day so that's

00:01:06.250 --> 00:01:09.969
why he didn't join the live stream i double click

00:01:09.969 --> 00:01:14.409
on this see it it opens in kitty in any of them

00:01:14.409 --> 00:01:18.290
instance that's what i want ghosty because he's

00:01:18.290 --> 00:01:22.209
not giving me this i see they they pretend that

00:01:22.209 --> 00:01:26.329
it is possible and i think they're wrong okay

00:01:26.329 --> 00:01:30.810
now Now that you mentioned Kitty as well, I had

00:01:30.810 --> 00:01:33.790
an interview with COVID. He's the creator of

00:01:33.790 --> 00:01:36.849
Kitty. I watched it. Oh, you watched it? What

00:01:36.849 --> 00:01:39.390
are your thoughts? Because I had a bad image

00:01:39.390 --> 00:01:41.930
on COVID, to be honest, because I don't know

00:01:41.930 --> 00:01:44.569
why, you know, just videos that you watch on

00:01:44.569 --> 00:01:48.439
the internet and you just follow along. And after

00:01:48.439 --> 00:01:51.239
the interview... Oh, because of his comments

00:01:51.239 --> 00:01:55.299
on the issue track. Yeah, exactly, because of

00:01:55.299 --> 00:02:00.780
that. He's not shy about... He won't just say,

00:02:00.879 --> 00:02:03.420
you're wrong, but he'll say, you should feel

00:02:03.420 --> 00:02:06.959
bad. I don't know if that's true. I'm spreading

00:02:06.959 --> 00:02:10.199
misinformation, but he's not shy about adding

00:02:10.199 --> 00:02:14.039
a little spice to... i'm not like trying to bling

00:02:14.039 --> 00:02:17.240
out my shell so that it has like all these colors

00:02:17.240 --> 00:02:26.639
i i'm not i i have not that's not i haven't well

00:02:26.639 --> 00:02:28.319
kickstart has gone off the rails i don't know

00:02:28.319 --> 00:02:31.340
what kickstart is doing now these days it was

00:02:31.340 --> 00:02:33.800
supposed to be like a minimal thing that like

00:02:33.800 --> 00:02:36.979
is commented and shows you how to do things and

00:02:36.979 --> 00:02:41.050
now it's like a distro installing The universe

00:02:41.050 --> 00:02:44.189
and just doing all this stuff. How do you get

00:02:44.189 --> 00:02:48.409
to normal mode? I use control left bracket. Oh,

00:02:48.430 --> 00:02:52.830
really? That's the goaded way. Why? Why, Justin?

00:02:52.949 --> 00:02:55.389
Can you explain why? Once you get used to it,

00:02:55.490 --> 00:03:00.110
you won't go back. I tried JK. JK is terrible.

00:03:00.710 --> 00:03:03.250
No, KJ. The other way around. Because this finger

00:03:03.250 --> 00:03:05.610
is faster. You do both. You do both. Damn. Just

00:03:05.610 --> 00:03:08.430
like this. You can map them both. Are there alligators

00:03:08.430 --> 00:03:11.389
in Florida? Oh, yeah. Yeah. Are you used to that?

00:03:11.430 --> 00:03:13.629
Go golfing. If you go golfing, you'll see alligators.

00:03:13.930 --> 00:03:16.069
Yeah. Are you scared of them? People's like,

00:03:16.229 --> 00:03:18.409
what is this conversation about? Are we talking

00:03:18.409 --> 00:03:20.530
about any of them or what? What's going on here?

00:03:20.990 --> 00:03:23.069
Are you afraid? We're getting into the spicy

00:03:23.069 --> 00:03:26.590
segment of the show. Yeah. What are the plans

00:03:26.590 --> 00:03:29.590
when you're no longer around? Let's say that

00:03:29.590 --> 00:03:32.849
one day you decide, no, you know what? Emax is

00:03:32.849 --> 00:03:35.389
for me. So I'm going to jump off. and I'm going

00:03:35.389 --> 00:03:37.590
to go to Emacs. What's going to happen to new

00:03:37.590 --> 00:03:39.949
of them? The people that want to extend stuff,

00:03:40.129 --> 00:03:44.009
or the people that have particular tastes. Higher

00:03:44.009 --> 00:03:48.650
tastes, right? No, you're not going to bait me

00:03:48.650 --> 00:03:51.330
into this kind of thing. The whole distro thing

00:03:51.330 --> 00:03:55.169
is kind of an accident. I think probably Linus

00:03:55.169 --> 00:03:58.229
himself is kind of puzzled by this whole situation,

00:03:58.490 --> 00:04:01.270
because he's working on a kernel. He just wants...

00:04:01.639 --> 00:04:03.840
To get his kernel on his computer and then like

00:04:03.840 --> 00:04:06.139
all these different flavors of the user space

00:04:06.139 --> 00:04:08.479
stuff is like. If you're listening to this as

00:04:08.479 --> 00:04:10.659
a podcast, remember that it was originally recorded

00:04:10.659 --> 00:04:12.740
as a video. If you're not following along, you

00:04:12.740 --> 00:04:14.520
can go to my YouTube channel. My username is

00:04:14.520 --> 00:04:16.339
Link Karzu. And if you want to support me to

00:04:16.339 --> 00:04:18.639
keep this podcast going, you can donate in Ko

00:04:18.639 --> 00:04:20.259
-fi. I'm going to leave a link in the description.

00:04:20.579 --> 00:04:22.420
All right. So let's get started with this chapter

00:04:22.420 --> 00:04:27.279
then. Hey, Justin. What's up? What's up? How's

00:04:27.279 --> 00:04:30.779
it going? Hello. Hello, Link. We're just hanging

00:04:30.779 --> 00:04:33.800
out. Yeah, I see a little bit pixelated there,

00:04:33.920 --> 00:04:36.660
but that's going to fix in a little while. It's

00:04:36.660 --> 00:04:38.699
going to be on and off, I guess, but it's good.

00:04:38.819 --> 00:04:41.740
We're going to survive. I mean, that's what New

00:04:41.740 --> 00:04:44.639
York City internet gets you, I guess. Oh, yeah?

00:04:44.860 --> 00:04:48.279
So you're based out of New York then? I'm here

00:04:48.279 --> 00:04:52.899
for now. Oh, yeah? Exploring. I'm an explorer

00:04:52.899 --> 00:04:56.560
in a dangerous part of the world. Oh, really?

00:04:57.439 --> 00:05:00.959
I'm a pioneer. Yeah. Where do you usually hang

00:05:00.959 --> 00:05:03.439
out? You like being in New York a lot or you

00:05:03.439 --> 00:05:06.100
like staying in another state most of the time?

00:05:06.199 --> 00:05:10.620
I like Florida. I like Berlin. Where are you

00:05:10.620 --> 00:05:13.579
originally from? Are you from the U .S. or from

00:05:13.579 --> 00:05:16.879
where? I'm originally from Florida, I guess,

00:05:17.040 --> 00:05:21.459
mostly. Technically, I was born elsewhere, but

00:05:21.459 --> 00:05:27.339
in the U .S. Okay, okay. So, Justin. Really appreciate

00:05:27.339 --> 00:05:31.079
you being here, man. It's Sunday and really appreciate

00:05:31.079 --> 00:05:35.100
your time. The goal of this conversation is just

00:05:35.100 --> 00:05:38.180
get to know you a little bit more. I think there's

00:05:38.180 --> 00:05:41.300
a lot of videos of you out there, but I want

00:05:41.300 --> 00:05:43.839
to ask some questions and probably chat, have

00:05:43.839 --> 00:05:48.319
some questions as well. So really thanks. Really

00:05:48.319 --> 00:05:50.819
appreciate your time. Well, yeah, that's a nice

00:05:50.819 --> 00:05:54.180
relaxing format. Takes the pressure off because

00:05:54.180 --> 00:06:00.000
I'm kind of unprepared. oh yeah okay now there's

00:06:00.000 --> 00:06:01.860
a question that i have and that i would like

00:06:01.860 --> 00:06:05.540
to start with is why do you do all this like

00:06:05.540 --> 00:06:10.480
why do you put so much effort into an open source

00:06:10.480 --> 00:06:14.639
tool like any of them what's what's the purpose

00:06:14.639 --> 00:06:19.300
is it ego is it you love the tool too much or

00:06:19.300 --> 00:06:23.939
that's a good question um One that I have asked

00:06:23.939 --> 00:06:26.439
myself, probably anyone who's working on anything

00:06:26.439 --> 00:06:30.480
probably asks that, and should. You should be

00:06:30.480 --> 00:06:32.040
sure that you're working on the right things.

00:06:32.199 --> 00:06:35.660
It's somewhat of an obsession, somewhat of ego,

00:06:35.839 --> 00:06:40.220
probably, like, I like to be right, and if Niovin

00:06:40.220 --> 00:06:43.600
wins, then that means I was right, and all the

00:06:43.600 --> 00:06:47.509
people that really kind of... dumped on it in

00:06:47.509 --> 00:06:50.410
the first few years were wrong. A lot of them

00:06:50.410 --> 00:06:53.230
have just kind of faded away, but there was some

00:06:53.230 --> 00:06:58.870
famous or infamous or just a bunch of nags on

00:06:58.870 --> 00:07:03.149
Reddit in the first half, probably, of Neovim's

00:07:03.149 --> 00:07:07.149
life that just were relentlessly kind of irritating

00:07:07.149 --> 00:07:12.610
me with their drive -by opinions. And yeah, I

00:07:12.610 --> 00:07:14.550
don't know. That's probably not a good reason

00:07:14.550 --> 00:07:18.959
to to put lots of time into something. There's

00:07:18.959 --> 00:07:21.699
probably other reasons, but I'm like branching

00:07:21.699 --> 00:07:25.019
off into this one tangent just because it feels

00:07:25.019 --> 00:07:28.259
cathartic, but that might also be unhealthy.

00:07:28.660 --> 00:07:33.220
Yeah, so they were wrong. Niovin won, and it

00:07:33.220 --> 00:07:37.839
turned out to be useful. But ironically, you

00:07:37.839 --> 00:07:40.360
know, there's always the larger picture to think

00:07:40.360 --> 00:07:43.180
about, which is like our text editors, you know,

00:07:43.180 --> 00:07:45.939
even... even still relevant? Will they be relevant

00:07:45.939 --> 00:07:48.720
in five years or ten years? That's always something

00:07:48.720 --> 00:07:51.699
I revisit that at least once a year, although

00:07:51.699 --> 00:07:54.540
I think probably I've beat it to death by now

00:07:54.540 --> 00:07:58.339
in my talks, so I'm not going to talk about that

00:07:58.339 --> 00:08:01.620
in my talks anymore because I think I've beat

00:08:01.620 --> 00:08:05.519
it to death. It's good to just ask questions

00:08:05.519 --> 00:08:09.279
and make sure you're on the right path for whatever

00:08:09.279 --> 00:08:12.259
you're doing. Obviously, that's kind of a trivial

00:08:12.259 --> 00:08:15.480
thing to say, but but it's something that projects

00:08:15.480 --> 00:08:18.839
probably don't do like if you don't have that

00:08:18.839 --> 00:08:21.579
kind of like this is partly beaten into me from

00:08:21.579 --> 00:08:24.019
amazon i've been working at amazon for a while

00:08:24.019 --> 00:08:30.980
and so you still work at amazon yes um and but

00:08:30.980 --> 00:08:34.600
like so one of the uncomfortable but but productive

00:08:34.600 --> 00:08:39.000
habits that that you get from there if you're

00:08:39.000 --> 00:08:41.779
going to stick around then you you eventually

00:08:41.779 --> 00:08:44.120
will have to accept this habit and it is a good

00:08:44.120 --> 00:08:46.600
habit which is you know at least once or twice

00:08:46.600 --> 00:08:49.820
a year they have something called op1 where they

00:08:49.820 --> 00:08:53.259
kind of write down some goals and and lay out

00:08:53.259 --> 00:08:57.299
you know a path the takeaway there is just you

00:08:57.299 --> 00:09:00.940
know writing down like one page of whatever and

00:09:00.940 --> 00:09:05.779
then analyzing it and lift useful information

00:09:05.779 --> 00:09:10.210
that even though like in the back of your mind

00:09:10.210 --> 00:09:12.529
you might think it's it's obvious but but if

00:09:12.529 --> 00:09:15.210
you if you don't really ever like pause and focus

00:09:15.210 --> 00:09:18.850
on any particular thought then it will eventually

00:09:18.850 --> 00:09:22.049
like the the cached conclusion that you have

00:09:22.049 --> 00:09:25.090
for that thought or assumption will get stale

00:09:25.090 --> 00:09:27.809
um and so you actually do have to bring it to

00:09:27.809 --> 00:09:31.789
like the foreground of your mind and maybe of

00:09:31.789 --> 00:09:34.509
your team's mind because teams are an organism

00:09:34.509 --> 00:09:38.509
just like your brain is like a organic That can

00:09:38.509 --> 00:09:44.149
actually cover useful answers to stuff that you

00:09:44.149 --> 00:09:48.029
haven't revisited in a long time. So once a year

00:09:48.029 --> 00:09:51.230
is a good frequency to do that, probably. At

00:09:51.230 --> 00:09:54.110
a certain point in what you were saying right

00:09:54.110 --> 00:09:57.129
now, you mentioned that you got hate in Reddit

00:09:57.129 --> 00:10:00.169
at the beginning. Why was that? What was the

00:10:00.169 --> 00:10:03.570
complaint like? Do you remember? Yeah. I mean,

00:10:03.690 --> 00:10:07.649
one guy liked to... complain that we didn't support

00:10:07.649 --> 00:10:12.129
sigwin yeah one of the earliest complaints on

00:10:12.129 --> 00:10:14.950
hacker news of course was like that we dropped

00:10:14.950 --> 00:10:18.269
port for old operating systems but that's one

00:10:18.269 --> 00:10:20.950
of my favorite examples to trot out because like

00:10:20.950 --> 00:10:23.750
it turned out that vim didn't even work on those

00:10:23.750 --> 00:10:27.230
operating systems like the code was there but

00:10:27.230 --> 00:10:31.570
it was just mostly dead code because vim at that

00:10:31.570 --> 00:10:33.730
time barely vim at that time didn't even have

00:10:33.730 --> 00:10:38.919
a ci when Neovim was first founded. So that was

00:10:38.919 --> 00:10:42.539
like a Neovim innovation was to have CI that

00:10:42.539 --> 00:10:46.639
runs on every commit. And I think maybe a more

00:10:46.639 --> 00:10:50.299
general complaint was just that we were diverting

00:10:50.299 --> 00:10:55.059
energy from one project because forks are assumed

00:10:55.059 --> 00:10:59.840
to do that, which can be a valid complaint. But

00:10:59.840 --> 00:11:04.129
yeah, that's probably... Not worth rehashing,

00:11:04.289 --> 00:11:09.490
but for the two years before Vim was founded,

00:11:09.610 --> 00:11:11.809
Vim was basically in maintenance mode at the

00:11:11.809 --> 00:11:17.250
time. And this was explicitly said by Bram on

00:11:17.250 --> 00:11:19.789
the mailing list. So it was founded in a different

00:11:19.789 --> 00:11:22.309
time. And then you could say, well, okay, a year

00:11:22.309 --> 00:11:26.809
or two later when Bram changed course, then maybe

00:11:26.809 --> 00:11:30.330
we should have folded back into Vim, which...

00:11:30.750 --> 00:11:34.090
We would have been happy to do, and I still to

00:11:34.090 --> 00:11:36.970
this day think of Neovim as basically a branch

00:11:36.970 --> 00:11:41.549
that hasn't been merged back into Vim. They could

00:11:41.549 --> 00:11:44.929
do that at any time. There's no real reason that

00:11:44.929 --> 00:11:49.610
Clipboard needs to be implemented with 5 ,000

00:11:49.610 --> 00:11:52.169
lines of code instead of just five lines of code

00:11:52.169 --> 00:11:55.870
in the way that it's done in Neovim. I don't

00:11:55.870 --> 00:11:59.950
know. They will continue to do. what they want

00:11:59.950 --> 00:12:03.610
to do and i also don't think that like i think

00:12:03.610 --> 00:12:05.629
it's pretty it's kind of it's definitely obvious

00:12:05.629 --> 00:12:08.529
in hindsight but but the fork in this case probably

00:12:08.529 --> 00:12:11.809
brought more energy into the space than than

00:12:11.809 --> 00:12:14.470
uh just subtracting from it like it probably

00:12:14.470 --> 00:12:18.169
multiplied the energy and so both projects have

00:12:18.169 --> 00:12:22.230
uh thrived since then relative to uh where vim

00:12:22.230 --> 00:12:26.110
was uh in the previous decade you can look at

00:12:26.110 --> 00:12:29.179
like any kind of metric any kind of metric I

00:12:29.179 --> 00:12:31.559
mean, it's not just like population increased

00:12:31.559 --> 00:12:33.559
that Vim kept getting more users. It was like

00:12:33.559 --> 00:12:38.539
both Vim and NeoVim have gotten somewhat, the

00:12:38.539 --> 00:12:42.379
rate of new users increased. And at the time,

00:12:42.399 --> 00:12:46.620
like Vim was actually maybe flattening. And also

00:12:46.620 --> 00:12:49.379
you can look at like donations. That's another

00:12:49.379 --> 00:12:55.240
metric. Reddit. subscribers to the subreddits

00:12:55.240 --> 00:12:57.440
for Vim and NeoVim. There's all these different

00:12:57.440 --> 00:13:00.179
kinds of signals you can look at that just make

00:13:00.179 --> 00:13:03.120
it hard to argue that a fork in this case was

00:13:03.120 --> 00:13:07.080
a cost instead of a benefit. I do agree with

00:13:07.080 --> 00:13:09.940
and I understand the sentiment about dividing

00:13:09.940 --> 00:13:15.899
energy. That's a valid thing and it is certainly

00:13:15.899 --> 00:13:20.820
like in most cases forks fail and so the initial

00:13:21.740 --> 00:13:25.639
will be derision because a lot of times they're

00:13:25.639 --> 00:13:27.940
forked without really knowing what you're going

00:13:27.940 --> 00:13:31.379
to get into. And the people forking stuff just

00:13:31.379 --> 00:13:36.120
aren't going to stick around for too long. Do

00:13:36.120 --> 00:13:40.340
you think that NeoVim moves faster than Vim?

00:13:40.639 --> 00:13:43.759
I don't know how it is on Vim now that Bram is

00:13:43.759 --> 00:13:46.940
gone, but do you think that's different between

00:13:46.940 --> 00:13:51.120
the two projects? Oh, there's no question. There's

00:13:51.120 --> 00:13:54.360
no question. NeoVim moves probably 10 times as

00:13:54.360 --> 00:13:57.159
fast as Vim, though. And one of the reasons is

00:13:57.159 --> 00:13:59.919
that you can contribute core features as Lua.

00:14:00.279 --> 00:14:02.179
And that was one of the original goals. And one

00:14:02.179 --> 00:14:04.519
of the reasons why we didn't just fold back into

00:14:04.519 --> 00:14:07.139
Vim in the first place is because there's all

00:14:07.139 --> 00:14:12.799
these kinds of architectural and project layout

00:14:12.799 --> 00:14:20.669
approaches that were clearly... at least to us,

00:14:20.889 --> 00:14:24.450
things that needed to be adopted in VIM. And

00:14:24.450 --> 00:14:27.669
just like also giving more people the right access

00:14:27.669 --> 00:14:32.070
to the main branch, which is something that didn't

00:14:32.070 --> 00:14:37.629
happen really until very late in VIM's lifetime.

00:14:37.909 --> 00:14:42.610
Like I think Christian Brabant technically had

00:14:42.610 --> 00:14:46.169
right access, but he never wrote to the master

00:14:46.169 --> 00:14:49.789
branch directly. And it was also just more of

00:14:49.789 --> 00:14:52.009
like a cultural thing where it's like no one

00:14:52.009 --> 00:14:54.929
felt that they had ownership over any particular

00:14:54.929 --> 00:14:58.490
subsystem except for Bram. Bram owned all of

00:14:58.490 --> 00:15:00.529
the subsystems except for maybe like a couple

00:15:00.529 --> 00:15:02.809
like the Python interface or something like that.

00:15:03.549 --> 00:15:08.009
And how is it with Neobim? Are you the dictator,

00:15:08.309 --> 00:15:10.870
the Neobim dictator? Do you take all the calls

00:15:10.870 --> 00:15:15.350
or how does that happen? I don't know. I'm not

00:15:15.350 --> 00:15:19.169
an expert in every subsystem at all. I try to,

00:15:19.190 --> 00:15:24.549
I try to have a mental model of every subsystem

00:15:24.549 --> 00:15:28.009
so that like at least one person, hopefully more

00:15:28.009 --> 00:15:31.009
than one person, but at least one person can

00:15:31.009 --> 00:15:33.769
tie things together and think about the system

00:15:33.769 --> 00:15:38.470
holistically, like as a, you know, an integrated

00:15:38.470 --> 00:15:41.909
whole so that we aren't, because if you don't

00:15:41.909 --> 00:15:44.809
have that, then you, it kind of turns into just

00:15:44.809 --> 00:15:49.700
like a, a bunch of inner platforms that are like

00:15:49.700 --> 00:15:54.059
not really working well together and and that

00:15:54.059 --> 00:15:57.639
you know that accretes over time and it it won't

00:15:57.639 --> 00:16:00.879
be obvious at first but like you know five ten

00:16:00.879 --> 00:16:03.279
years later it will be obvious and it'll be hard

00:16:03.279 --> 00:16:08.100
to untangle later okay You mentioned also about

00:16:08.100 --> 00:16:11.259
NeoBeam's popularity. I got to know NeoBeam because

00:16:11.259 --> 00:16:13.919
of Prime, because I watch a lot of YouTube. And

00:16:13.919 --> 00:16:15.860
I saw this guy, you know, I used them in the

00:16:15.860 --> 00:16:19.019
past in servers. And I hated it. You know, the

00:16:19.019 --> 00:16:21.299
first few times I used Vim, I was like, why do

00:16:21.299 --> 00:16:24.179
people use this? It's awful. You know, H -J -K

00:16:24.179 --> 00:16:27.139
-L, you know, insert normal mode. I was like,

00:16:27.240 --> 00:16:29.860
no, no, this is not for me. But I searched on

00:16:29.860 --> 00:16:32.840
YouTube and I found Prime. And I found specifically

00:16:32.840 --> 00:16:35.580
when he moved from Vim to NeoVim. And I was like,

00:16:35.740 --> 00:16:40.019
OK, so should I go from Vim or should I go to

00:16:40.019 --> 00:16:42.659
NeoVim? prime said new of him i went to new of

00:16:42.659 --> 00:16:45.580
him you know straight ahead into new of him do

00:16:45.580 --> 00:16:48.360
you think prime has to do a lot with the popularity

00:16:48.360 --> 00:16:51.100
that new of him has in this you know past few

00:16:51.100 --> 00:16:55.679
years yeah without a doubt and tj too tj of course

00:16:55.679 --> 00:16:59.399
and and you and all the other podcasters that

00:16:59.399 --> 00:17:03.279
are kind of talking about it and exploring it

00:17:03.279 --> 00:17:08.599
and thinking about it that all helps um so in

00:17:08.599 --> 00:17:13.799
a way youtube itself is is is responsible for

00:17:13.799 --> 00:17:17.660
some of that but uh i i assume it's also there's

00:17:17.660 --> 00:17:22.079
some of that for emacs but i mean yeah there

00:17:22.079 --> 00:17:25.259
was an inflection point there and certainly prime

00:17:25.259 --> 00:17:28.480
at the time that all happens kind of without

00:17:28.480 --> 00:17:33.099
me even noticing because i'm not a big consumer

00:17:33.099 --> 00:17:38.099
of uh like live streaming coding which i think

00:17:38.589 --> 00:17:41.109
is where Prime came from probably, right? Like

00:17:41.109 --> 00:17:43.470
on Twitch and stuff like that. Like I've thought

00:17:43.470 --> 00:17:46.630
about being a producer of that, but not a consumer.

00:17:47.049 --> 00:17:49.849
And why haven't you done it? When is that happening?

00:17:50.130 --> 00:17:54.349
People would be highly interested, I think. It's

00:17:54.349 --> 00:17:57.529
just one of those things on the to -do list.

00:17:57.630 --> 00:18:01.890
I think I will try to get around to doing it

00:18:01.890 --> 00:18:07.519
maybe next year. Part of it is the discomfort

00:18:07.519 --> 00:18:11.039
of accidentally revealing a password or something

00:18:11.039 --> 00:18:14.180
like that. Yeah, leaking your IP like Prime has

00:18:14.180 --> 00:18:17.079
done multiple times. Well, not his IP, but the

00:18:17.079 --> 00:18:22.019
VM IP. Yeah, yeah, yeah. Yeah, and so the solution

00:18:22.019 --> 00:18:25.400
to that is maybe to have an isolated environment.

00:18:26.960 --> 00:18:30.440
Right? Is that what you do? I have two monitors.

00:18:30.740 --> 00:18:35.029
This monitor and my laptop. And I have some rules

00:18:35.029 --> 00:18:37.410
on the window manager and Mac OS so that when

00:18:37.410 --> 00:18:40.609
I'm using two monitors, all of the sensitive

00:18:40.609 --> 00:18:45.349
stuff goes to my MacBook. You know, Yabai moves

00:18:45.349 --> 00:18:48.529
it automatically to that. So even if I open one

00:18:48.529 --> 00:18:52.009
password or sensitive stuff, email or something,

00:18:52.170 --> 00:18:55.190
it always open there if I'm using two screens.

00:18:55.410 --> 00:18:58.529
Right. So that happens when I'm streaming. So

00:18:58.529 --> 00:19:04.099
not. completely safe but you know helps because

00:19:04.099 --> 00:19:06.480
i don't want to open my calendar and show it

00:19:06.480 --> 00:19:08.819
on stream i don't want to open my mail my password

00:19:08.819 --> 00:19:11.940
manager and all that stuff so yeah two screens

00:19:11.940 --> 00:19:14.960
um when i'm when i'm streaming and that has helped

00:19:14.960 --> 00:19:18.880
a little bit i think i i think uh i mean there's

00:19:18.880 --> 00:19:21.240
more than one reason that i think probably it

00:19:21.240 --> 00:19:24.599
makes sense to isolate one's development environment

00:19:24.599 --> 00:19:31.099
fully like plug -in supply chain attacks um npm

00:19:31.099 --> 00:19:34.980
supply chain attacks i've seen those videos lately

00:19:34.980 --> 00:19:38.079
yep i i just uh i need to get around to like

00:19:38.079 --> 00:19:42.319
finding a a good setup for that okay what are

00:19:42.319 --> 00:19:44.400
your thoughts on that specifically now that you

00:19:44.400 --> 00:19:48.859
touched on it um plugins and security the trust

00:19:48.859 --> 00:19:51.960
uh that we should have with with plugins and

00:19:51.960 --> 00:19:55.079
how careful we should be would you like to talk

00:19:55.079 --> 00:19:57.500
about any of that because people just find the

00:19:57.500 --> 00:20:00.859
repo on github they own It's a plugin, new plugin.

00:20:00.960 --> 00:20:03.519
I'm going to install it. How can you trust? Because

00:20:03.519 --> 00:20:05.440
once you install a plugin, it can do basically

00:20:05.440 --> 00:20:08.980
get your private keys, SSH private keys, send

00:20:08.980 --> 00:20:11.180
them somewhere you're not even noticed, right?

00:20:11.259 --> 00:20:13.460
So is there something you want to share about

00:20:13.460 --> 00:20:18.220
that? It's been on my mind a lot, especially

00:20:18.220 --> 00:20:20.700
in the last year, because for more than one reason

00:20:20.700 --> 00:20:27.259
at work, we had a pretty close call that was

00:20:27.259 --> 00:20:31.039
in the news. Then before that, there was the

00:20:31.039 --> 00:20:36.319
Geotan thing with the XZ tool. But it's always

00:20:36.319 --> 00:20:40.779
been in the back of my mind since forever. It's

00:20:40.779 --> 00:20:43.740
kind of hilarious that NPM still to this day

00:20:43.740 --> 00:20:46.839
doesn't really check signatures in a meaningful

00:20:46.839 --> 00:20:49.779
way. It doesn't check package signatures. The

00:20:49.779 --> 00:20:52.079
signatures that are in the package lock JSON

00:20:52.079 --> 00:20:59.160
are just kind of optional. There's some... It

00:20:59.160 --> 00:21:03.339
doesn't enforce them somehow fully. I don't remember

00:21:03.339 --> 00:21:06.880
the details, but it's all kind of like the whole

00:21:06.880 --> 00:21:11.319
computing stack of the world is YOLO. This is

00:21:11.319 --> 00:21:15.799
just amazing. It's amazing. I mean, in a way,

00:21:15.880 --> 00:21:20.000
it's a reason for optimism because you can see

00:21:20.000 --> 00:21:22.799
how much humanity can build, and it's mostly

00:21:22.799 --> 00:21:26.880
just based on decency. Most people aren't. trying

00:21:26.880 --> 00:21:29.700
to do supply chain attacks like but it but it

00:21:29.700 --> 00:21:34.259
is also just crazy how how much of the world

00:21:34.259 --> 00:21:39.799
rests on decency and not not being that guy exactly

00:21:39.799 --> 00:21:45.220
but um yeah with respect to neo them like so

00:21:45.220 --> 00:21:49.480
there's more steps i want to take but i i did

00:21:49.480 --> 00:21:54.109
uh do some work to clean up some old uh contributors

00:21:54.109 --> 00:21:59.170
and remove the right access for them but uh going

00:21:59.170 --> 00:22:04.970
forward we need to think hard about more structure

00:22:04.970 --> 00:22:08.829
around that um because there's some creative

00:22:08.829 --> 00:22:13.390
things you can do with github actions ci and

00:22:13.390 --> 00:22:18.509
uh whatever uh maybe like um even like the even

00:22:18.509 --> 00:22:22.940
things that neovim doesn't own but are used commonly

00:22:22.940 --> 00:22:27.720
to fetch NeoVim, those can be compromised. So

00:22:27.720 --> 00:22:33.079
we need operational security that kind of limits

00:22:33.079 --> 00:22:35.640
the number of people that can do things in our

00:22:35.640 --> 00:22:39.680
repo without at least some visibility. GitHub

00:22:39.680 --> 00:22:44.779
has some mechanisms for that, but some of it

00:22:44.779 --> 00:22:47.000
will probably require scripting. Some of it will

00:22:47.000 --> 00:22:51.920
require teaching developers new, workflows for

00:22:51.920 --> 00:22:53.859
committing stuff but we also don't want to be

00:22:53.859 --> 00:22:57.019
like cumbersome because the current model where

00:22:57.019 --> 00:22:59.880
people have ownership and they don't get blocked

00:22:59.880 --> 00:23:01.920
waiting for someone to commit their stuff that's

00:23:01.920 --> 00:23:07.859
very effective um it's uncomfortable yeah i remember

00:23:07.859 --> 00:23:13.440
at the beginning well I installed NeoVim on my

00:23:13.440 --> 00:23:15.980
servers, but they're mine in my home lab, right?

00:23:16.079 --> 00:23:17.859
With all the plugins and all that stuff. And

00:23:17.859 --> 00:23:19.880
I shared it on Reddit and there was a guy that

00:23:19.880 --> 00:23:21.880
said, hey, no, don't do that, you know, because

00:23:21.880 --> 00:23:24.500
of security reasons, right? If you work at a

00:23:24.500 --> 00:23:28.000
company, what would you say someone, let's say

00:23:28.000 --> 00:23:31.400
you're working in, I don't know, AWS, VM, would

00:23:31.400 --> 00:23:34.119
you install NeoVim like in a machine that is

00:23:34.119 --> 00:23:37.769
ran, you know, at the... core of the operations

00:23:37.769 --> 00:23:40.250
of the company, would you install NeoVim there

00:23:40.250 --> 00:23:43.809
with all its plugins? Or would you use like a

00:23:43.809 --> 00:23:46.750
vanilla NeoVim installation? I'm talking about

00:23:46.750 --> 00:23:48.970
security reasons. What would you recommend? Or

00:23:48.970 --> 00:23:52.349
do you keep NeoVim locally and you access the

00:23:52.349 --> 00:23:56.690
NeoVim, the machine, you know, VSSH from NeoVim?

00:23:56.809 --> 00:23:59.869
Or how would you handle that? Or do you have

00:23:59.869 --> 00:24:02.349
any recommendations there? Well, there's a few

00:24:02.349 --> 00:24:07.740
answers to that. This is one reason why having

00:24:07.740 --> 00:24:13.559
a nice good lib, standard library, i .e. defaults

00:24:13.559 --> 00:24:16.980
and other batteries included stuff in NeoVim

00:24:16.980 --> 00:24:19.839
itself is useful, is because then you only have

00:24:19.839 --> 00:24:24.279
one entity that you have to trust. And I personally,

00:24:24.460 --> 00:24:29.539
I trust NeoVim because I'm watching it like a

00:24:29.539 --> 00:24:32.519
hawk. But this touches on a couple other things.

00:24:33.690 --> 00:24:37.250
We helped package maintainers with the ability

00:24:37.250 --> 00:24:41.049
to create reproducible builds. The Debian project

00:24:41.049 --> 00:24:43.930
had a campaign to make sure that all their builds

00:24:43.930 --> 00:24:49.109
were fully reproducible so that when you do a

00:24:49.109 --> 00:24:51.529
rebuild, it doesn't have a different signature

00:24:51.529 --> 00:24:54.769
on the binary, which is something that I think

00:24:54.769 --> 00:24:57.369
Vim still doesn't have because Vim always inserts

00:24:57.369 --> 00:25:02.069
a date into its binary. Every build is different.

00:25:03.670 --> 00:25:07.289
Although I think probably in WM they patched

00:25:07.289 --> 00:25:11.369
that to work around it, maybe. For plugins, there's

00:25:11.369 --> 00:25:15.529
a couple of mechanisms. One is a lock file. And

00:25:15.529 --> 00:25:19.369
so you can pin stuff to known good versions.

00:25:19.849 --> 00:25:24.230
But this is part of the reason why minimal plugins

00:25:24.230 --> 00:25:31.589
are a good thing, or at least desirable. Yeah,

00:25:31.630 --> 00:25:35.930
I do look at the source code for plugins to see

00:25:35.930 --> 00:25:39.390
what they're doing. And if they have 20 ,000

00:25:39.390 --> 00:25:43.849
lines of code and maybe even external dependencies,

00:25:44.029 --> 00:25:47.150
then I feel less comfortable using those kinds

00:25:47.150 --> 00:25:49.430
of plugins, especially in the scenario that you

00:25:49.430 --> 00:25:52.509
described. But another longer -term answer for

00:25:52.509 --> 00:25:57.589
this is that once we get around to integrating

00:25:57.589 --> 00:26:02.210
WebAssembly, in like a more meaningful way we've

00:26:02.210 --> 00:26:05.650
started we've started down that path we've done

00:26:05.650 --> 00:26:08.009
some initial work down that path but like we

00:26:08.009 --> 00:26:09.910
can go a lot deeper one of the things that will

00:26:09.910 --> 00:26:14.289
come out of that is web assembly has the concept

00:26:14.289 --> 00:26:20.069
of capabilities based security so you can it'll

00:26:20.069 --> 00:26:23.569
be like an android app where if you install an

00:26:23.569 --> 00:26:27.059
android app it asks you if you want to you have

00:26:27.059 --> 00:26:30.299
to give it explicit permission to read files

00:26:30.299 --> 00:26:34.420
off the file system or make network calls. So

00:26:34.420 --> 00:26:38.599
it would be super nice if when you're installing

00:26:38.599 --> 00:26:42.140
a NeoVim plugin, if you could just say, this

00:26:42.140 --> 00:26:44.740
thing cannot make network calls. That's pretty

00:26:44.740 --> 00:26:48.980
nice. Oh yeah, that makes sense. It's fine. If

00:26:48.980 --> 00:26:52.640
it reads your file system, it should be mostly

00:26:52.640 --> 00:26:56.039
harmless. if it can't make network calls and

00:26:56.039 --> 00:26:59.660
it can't invoke CLI commands, shell commands.

00:27:00.279 --> 00:27:04.160
Oh, pretty good idea. Yeah, yep. But doing that

00:27:04.160 --> 00:27:06.940
probably means we would be routing those things

00:27:06.940 --> 00:27:10.279
through our WebAssembly integration. We don't

00:27:10.279 --> 00:27:13.660
want to reinvent all that. Once we have that

00:27:13.660 --> 00:27:16.859
WebAssembly integration in place, then we can

00:27:16.859 --> 00:27:22.240
reuse that for maybe Lua plugins. Or maybe we

00:27:22.240 --> 00:27:26.759
just say, you need to ship your plugin wrapped

00:27:26.759 --> 00:27:30.940
in WebAssembly somehow. And we could help make

00:27:30.940 --> 00:27:33.720
that easier. You don't want NeoVim to show up

00:27:33.720 --> 00:27:36.359
in the news, in the hacker news. NeoVim hacked.

00:27:36.819 --> 00:27:40.420
NeoVim caused an AWS outage. How would you feel?

00:27:42.240 --> 00:27:45.900
Yeah, I don't know. NeoVim is full of security

00:27:45.900 --> 00:27:49.619
bugs. I can tell you that right now. This is

00:27:49.619 --> 00:27:54.289
not our focus. If you're running NeoVim, then

00:27:54.289 --> 00:27:57.829
you can run any shell command on that system.

00:27:57.950 --> 00:28:01.529
So I don't know how we would lock that down without

00:28:01.529 --> 00:28:06.670
this different plugin model. Yeah, you have to

00:28:06.670 --> 00:28:09.250
do it at your own risk and know what you're doing

00:28:09.250 --> 00:28:13.650
and basically trust the plugin creators, the

00:28:13.650 --> 00:28:17.230
plugins that you're going to install. And that's

00:28:17.230 --> 00:28:19.769
one of my other questions or other topics that

00:28:19.769 --> 00:28:22.029
I want to touch on as well. What are your thoughts

00:28:22.029 --> 00:28:24.250
on distributions? Like, just let me give you

00:28:24.250 --> 00:28:27.490
an example. LazyVim, right? I don't know about

00:28:27.490 --> 00:28:30.450
plugins, but I trust Folky. I don't know if he

00:28:30.450 --> 00:28:33.269
goes to each one of the repos and reads all of

00:28:33.269 --> 00:28:35.109
the source code for each one of the plugins,

00:28:35.250 --> 00:28:38.009
but he's experienced. He knows what he's doing

00:28:38.009 --> 00:28:41.849
way more than I know, right? So I have that CEO,

00:28:41.990 --> 00:28:44.710
that backup there that it's approved by him.

00:28:45.009 --> 00:28:47.769
Hopefully nothing bad's going to happen to me

00:28:47.769 --> 00:28:50.759
because, you know, he's behind that. What are

00:28:50.759 --> 00:28:54.400
your thoughts on distributions? Are you in favor?

00:28:54.579 --> 00:28:59.619
That's a good segue to that topic. Because that

00:28:59.619 --> 00:29:04.240
is actually an important role for distribution.

00:29:04.920 --> 00:29:09.400
Hopefully they are accepting that role. Probably

00:29:09.400 --> 00:29:11.339
don't want to assume it. They probably should

00:29:11.339 --> 00:29:14.319
say explicitly, we take a close look at these

00:29:14.319 --> 00:29:18.799
plugins before we upstream them into our tree.

00:29:19.450 --> 00:29:21.890
And if they do do that, then that's actually

00:29:21.890 --> 00:29:26.569
a great use case for those distributions. Because

00:29:26.569 --> 00:29:28.829
in a sense, they're kind of acting like a package

00:29:28.829 --> 00:29:34.150
lock file. They're acting like a maintained lock

00:29:34.150 --> 00:29:43.490
file. But regarding distros, other aspects of

00:29:43.490 --> 00:29:47.730
distros... Be honest. No one's watching. You

00:29:47.730 --> 00:29:50.759
can say whatever you want. You hate them, right?

00:29:51.660 --> 00:29:56.359
No, I'm fine with them. I think something that

00:29:56.359 --> 00:30:00.240
I've tried to express every now and then is that

00:30:00.240 --> 00:30:04.880
every human is at a different stage of their

00:30:04.880 --> 00:30:11.299
journey. It's not the greatest word, but they're

00:30:11.299 --> 00:30:15.099
at a different stage of whatever the context

00:30:15.099 --> 00:30:20.240
is that they're currently focusing on. There's

00:30:20.240 --> 00:30:24.220
tons of people where their context is not focused

00:30:24.220 --> 00:30:27.259
on their text editor. They just need a tool.

00:30:27.920 --> 00:30:32.319
And we've done a lot of work and are going to

00:30:32.319 --> 00:30:35.380
do a lot more work next year to make NeoVim a

00:30:35.380 --> 00:30:39.240
really useful and cozy -feeling tool out of the

00:30:39.240 --> 00:30:44.529
box so that you don't have to make a... choice

00:30:44.529 --> 00:30:46.789
about whether you want to invest in it right

00:30:46.789 --> 00:30:50.670
now or whether you'll visit it next year. And

00:30:50.670 --> 00:30:55.250
if you don't kind of refine it so that it gets

00:30:55.250 --> 00:30:58.569
out of your way by default, then people are stuck

00:30:58.569 --> 00:31:03.509
with that choice. And it means you're just less

00:31:03.509 --> 00:31:09.819
useful. It's an aspect of being useful. If you

00:31:09.819 --> 00:31:12.420
want to be more useful, then you should also

00:31:12.420 --> 00:31:15.779
think about this use case where people are not

00:31:15.779 --> 00:31:18.440
investing a huge amount of their intention right

00:31:18.440 --> 00:31:26.460
now into you. And distros are a way of launching

00:31:26.460 --> 00:31:32.779
something that gets them to a useful state so

00:31:32.779 --> 00:31:36.980
that they can then go do something else. circle

00:31:36.980 --> 00:31:45.640
back, corporate jargon, if they have an epicycle

00:31:45.640 --> 00:31:50.259
where they're able to revisit, now they want

00:31:50.259 --> 00:31:52.819
to put their attention on the text editor, then

00:31:52.819 --> 00:31:56.839
they can make a choice to cut out the parts that

00:31:56.839 --> 00:32:01.339
they don't need of the distro or start tweaking

00:32:01.339 --> 00:32:08.160
stuff or fiddling with stuff and uh trying to

00:32:08.160 --> 00:32:10.859
learn more about it and like refine it because

00:32:10.859 --> 00:32:15.200
maybe they they maxed out on like whatever the

00:32:15.200 --> 00:32:17.740
default experience is for the distro that they're

00:32:17.740 --> 00:32:21.400
using um and this happens like in so many contexts

00:32:21.400 --> 00:32:25.740
like there's people using oh my z shell that's

00:32:25.740 --> 00:32:27.420
probably not popular anymore whatever the replacement

00:32:27.420 --> 00:32:31.359
is for oh my z shell those people are really

00:32:31.359 --> 00:32:34.880
into shells i am not I don't care about my shell

00:32:34.880 --> 00:32:37.440
at all. I just use the default bash. I have a

00:32:37.440 --> 00:32:41.700
couple tweaks in my bash rc, and I want it out

00:32:41.700 --> 00:32:44.799
of my way. I don't give a damn about shells at

00:32:44.799 --> 00:32:49.180
all. Shells are... I actually want to use neovim

00:32:49.180 --> 00:32:53.640
as my shell. You just use your shell to cd into

00:32:53.640 --> 00:32:55.900
the directory and open neovim and work inside

00:32:55.900 --> 00:32:59.960
there, right? Well, I mean, I use shell a lot,

00:33:00.079 --> 00:33:03.680
but... I'm not trying to bling out my shell so

00:33:03.680 --> 00:33:10.680
that it has all these colors. Exactly. I'm not...

00:33:10.680 --> 00:33:17.480
I have not... I haven't focused on shells. I

00:33:17.480 --> 00:33:20.319
just don't want to spend time on that. Something

00:33:20.319 --> 00:33:24.859
that works well and gets out of my way is what

00:33:24.859 --> 00:33:30.849
I'm looking for there. Yeah, and so if you're

00:33:30.849 --> 00:33:35.069
starting out with NeoVim, there should be a way

00:33:35.069 --> 00:33:38.630
that you can just see what it can do with one

00:33:38.630 --> 00:33:41.829
click or one command, and distros are serving

00:33:41.829 --> 00:33:45.009
that purpose. It doesn't mean that you need to

00:33:45.009 --> 00:33:49.069
stick with it forever, but it's giving a whole

00:33:49.069 --> 00:33:53.109
subset, probably a big subset of people, just

00:33:53.109 --> 00:33:57.329
a picture of what's possible. It's a live demo.

00:33:57.819 --> 00:34:01.160
basically like distros are live demos of what

00:34:01.160 --> 00:34:03.920
this thing can do would you recommend a distro

00:34:03.920 --> 00:34:05.819
to start with or would you recommend something

00:34:05.819 --> 00:34:10.260
like kickstart or you build it from scratch you

00:34:10.260 --> 00:34:12.920
know yourself i guess it depends on the context

00:34:12.920 --> 00:34:15.400
of that specific person like you just said but

00:34:15.400 --> 00:34:18.300
if someone comes to you and says hey i want to

00:34:18.300 --> 00:34:20.300
try any of them what would be your first answer

00:34:20.800 --> 00:34:22.619
kickstart has gone off the rails i don't know

00:34:22.619 --> 00:34:25.659
what kickstart is doing now these days it was

00:34:25.659 --> 00:34:28.079
supposed to be like a minimal thing that like

00:34:28.079 --> 00:34:31.260
is commented and shows you how to do things and

00:34:31.260 --> 00:34:35.340
now it's like a distro installing the universe

00:34:35.340 --> 00:34:41.039
and just doing all this stuff that oh is i don't

00:34:41.039 --> 00:34:44.519
know what it's doing but like so so in neovim

00:34:44.519 --> 00:34:47.989
we are starting to build out some minimal form

00:34:47.989 --> 00:34:50.809
of that where it's kind of like what i thought

00:34:50.809 --> 00:34:53.690
kickstart was supposed to be where it's just

00:34:53.690 --> 00:34:56.510
like it's a starter something to get started

00:34:56.510 --> 00:35:00.010
yeah yeah and using just core utilities or at

00:35:00.010 --> 00:35:01.829
least if you're gonna integrate some plugins

00:35:01.829 --> 00:35:04.949
stuff that you trust or you're gonna bring those

00:35:04.949 --> 00:35:08.269
to core yeah yeah like it'll install all of my

00:35:08.269 --> 00:35:13.949
plugins no yeah it'll install plugins because

00:35:13.949 --> 00:35:17.969
we have a plugin manager now That is a huge unlock

00:35:17.969 --> 00:35:21.929
because it takes so much pressure off of us to

00:35:21.929 --> 00:35:25.809
make hard decisions about what we want to ship

00:35:25.809 --> 00:35:29.849
in the build versus what we should outsource

00:35:29.849 --> 00:35:35.210
to, you know, either Nioven -owned repos or third

00:35:35.210 --> 00:35:39.730
-party repos. Like, that's a big, it's very high,

00:35:39.889 --> 00:35:43.829
very, very useful to have. And so now we have

00:35:43.829 --> 00:35:47.710
that. And yeah, we will have some section in

00:35:47.710 --> 00:35:50.269
there that shows. Because the two most common

00:35:50.269 --> 00:35:54.269
things that people need are a fuzzy picker. Yep.

00:35:54.469 --> 00:35:57.650
Like someday maybe we'll have some built -in

00:35:57.650 --> 00:36:00.429
version of that. But until then, just saying

00:36:00.429 --> 00:36:02.869
to get a fuzzy picker, you just have this one

00:36:02.869 --> 00:36:05.889
line. That is very powerful and comfortable for

00:36:05.889 --> 00:36:09.869
everybody. And it takes pressure off of us to

00:36:09.869 --> 00:36:14.110
rush something into core meanwhile. Because now

00:36:14.110 --> 00:36:17.389
the core answer is just one line. Just do this

00:36:17.389 --> 00:36:20.230
one line. So this will help you guys to keep

00:36:20.230 --> 00:36:23.409
core really minimal and modularize everything

00:36:23.409 --> 00:36:26.690
else, right? If you want to add it, you add it

00:36:26.690 --> 00:36:29.590
through the plugin manager that NeoVim now has.

00:36:29.789 --> 00:36:33.329
Is that correct? It gives us that option. We

00:36:33.329 --> 00:36:38.269
won't always choose that option because we want

00:36:38.269 --> 00:36:46.099
the core to be... Not minimal, but it should

00:36:46.099 --> 00:36:50.119
be absorbing known things. Once something becomes

00:36:50.119 --> 00:36:53.079
a solved problem, like the interface and the

00:36:53.079 --> 00:36:56.659
experience and the API has kind of been figured

00:36:56.659 --> 00:37:02.900
out, that is either because we spent time sussing

00:37:02.900 --> 00:37:06.739
all of that out in core or else because the community

00:37:06.739 --> 00:37:09.920
figured it out and made it really obvious. or

00:37:09.920 --> 00:37:12.320
a combination of those things, once that happens

00:37:12.320 --> 00:37:16.679
and we're ready to spend time on it, then it

00:37:16.679 --> 00:37:21.320
makes sense for things to go into the core standard

00:37:21.320 --> 00:37:26.659
library. But for some things, maybe it never

00:37:26.659 --> 00:37:30.440
makes sense to do that because they're not essential

00:37:30.440 --> 00:37:35.900
or they're not composable. That's a key axis

00:37:35.900 --> 00:37:40.840
to think about. You want things that you add

00:37:40.840 --> 00:37:44.840
to core, you want them to be shaped in a way

00:37:44.840 --> 00:37:47.440
that can be combined with other things. Because

00:37:47.440 --> 00:37:50.300
otherwise, if you don't do it that way, then

00:37:50.300 --> 00:37:54.639
all you've done is bloat. I would say that if

00:37:54.639 --> 00:37:57.099
you're just adding stuff that can't be extended,

00:37:57.159 --> 00:37:59.179
then yeah, it's bloat. That's probably a good

00:37:59.179 --> 00:38:00.840
definition of bloat, actually. A lot of times

00:38:00.840 --> 00:38:04.420
people think bloat is just like... anything that's

00:38:04.420 --> 00:38:07.800
a non -zero like diff but actually i would say

00:38:07.800 --> 00:38:11.300
it's bloat if it's like a dead end right if if

00:38:11.300 --> 00:38:13.960
you add it but then it can't be extended or it

00:38:13.960 --> 00:38:17.119
can't be reused by third parties then yeah that's

00:38:17.119 --> 00:38:20.699
bloat bloat yeah yeah there's something that

00:38:20.699 --> 00:38:23.539
i want to ask about bloat as well i just got

00:38:23.539 --> 00:38:25.920
a super chat thank you very much for whoever

00:38:25.920 --> 00:38:28.480
sent that i'm gonna read it in a little while

00:38:28.480 --> 00:38:30.599
just and i think there's a question there but

00:38:30.599 --> 00:38:32.820
there's something that i want to mention now

00:38:32.820 --> 00:38:36.480
that you said bloat like i like extending neovim

00:38:36.480 --> 00:38:39.659
a lot you know so i like viewing images in neovim

00:38:39.659 --> 00:38:42.980
like pasting images when i paste them it pastes

00:38:42.980 --> 00:38:46.079
it converts them automatically to avif format

00:38:46.079 --> 00:38:49.039
you know because it's useful for me in my blog

00:38:49.039 --> 00:38:51.860
post and i don't take notes with images but in

00:38:51.860 --> 00:38:54.480
the blog post sometimes an image is easier to

00:38:54.480 --> 00:38:57.880
describe thousand words right so i get a lot

00:38:57.880 --> 00:39:01.860
that my config is bloat is bloated because i'm

00:39:01.860 --> 00:39:04.579
extending neo vim too much that it's just becoming

00:39:04.579 --> 00:39:08.840
like emacs and neo vim should be neo vim or closer

00:39:08.840 --> 00:39:12.099
to vim you know there's you know these two opposite

00:39:12.099 --> 00:39:15.099
sides you know extending it a lot or keeping

00:39:15.099 --> 00:39:17.719
it minimal what are your thoughts on that on

00:39:17.719 --> 00:39:20.420
extending neo vim i think this is a very easy

00:39:20.420 --> 00:39:24.510
question to answer um a lot of people Martin

00:39:24.510 --> 00:39:28.710
Fowler has a bunch of categories for types of

00:39:28.710 --> 00:39:32.610
tests, like integration tests, unit tests, functional

00:39:32.610 --> 00:39:36.670
tests, behavioral tests. Something crazy is happening

00:39:36.670 --> 00:39:40.849
in New York. Anyways, but the only actually useful

00:39:40.849 --> 00:39:45.070
delineation for tests, if you really stop and

00:39:45.070 --> 00:39:47.030
think about it, is whether they're fast or slow.

00:39:47.309 --> 00:39:52.230
Nothing else matters. If an integration test

00:39:52.230 --> 00:39:56.489
takes one... Yeah, like the Metallica song, Nothing

00:39:56.489 --> 00:40:03.449
Else Matters. Oh, yeah. Yes. If an integration

00:40:03.449 --> 00:40:08.429
test takes one millisecond, then that's a test

00:40:08.429 --> 00:40:11.849
you should always be running. If it's slow, then

00:40:11.849 --> 00:40:14.769
you've got a decision that you need to make.

00:40:17.380 --> 00:40:19.699
It's kind of the same thing with your config.

00:40:19.980 --> 00:40:22.639
If stuff is super fast, then it doesn't really

00:40:22.639 --> 00:40:24.559
matter how much stuff is in there. If it starts

00:40:24.559 --> 00:40:26.860
to get slow, then that's a signal that it might

00:40:26.860 --> 00:40:31.639
be bloated. This is also why I say the definition

00:40:31.639 --> 00:40:36.340
of a text editor is anything that can... The

00:40:36.340 --> 00:40:39.780
definition of a text editor... You might have

00:40:39.780 --> 00:40:43.539
a text editor if it can be built from source

00:40:43.539 --> 00:40:50.010
in less than five minutes. From nothing to everything

00:40:50.010 --> 00:40:53.090
in five minutes. If it takes more than five minutes,

00:40:53.170 --> 00:40:54.789
you don't have a text editor. You might have

00:40:54.789 --> 00:40:58.630
an IDE. If it takes longer than five minutes

00:40:58.630 --> 00:41:01.630
to build, you might have an IDE. And you personally,

00:41:01.889 --> 00:41:04.150
what are you in favor? Are you in favor of minimal

00:41:04.150 --> 00:41:06.909
NeoVim or extending it to your needs? Like if

00:41:06.909 --> 00:41:09.269
you want to view images in NeoVim, you do it?

00:41:09.309 --> 00:41:11.449
Or you're like, no, no, no. My NeoVim is not

00:41:11.449 --> 00:41:13.650
for that. I'm going to use another tool for my

00:41:13.650 --> 00:41:15.670
images. I'm going to keep my NeoVim minimal.

00:41:16.059 --> 00:41:18.539
What are your thoughts personally? Well, showing

00:41:18.539 --> 00:41:22.440
an image, I mean, this is similar to embedded

00:41:22.440 --> 00:41:24.980
terminals. When we added an embedded terminal

00:41:24.980 --> 00:41:27.739
that was called bloat, but now I think it's pretty

00:41:27.739 --> 00:41:31.139
obvious that this is a basic feature that any

00:41:31.139 --> 00:41:34.719
text editor or IDE should have because terminals

00:41:34.719 --> 00:41:37.840
are pretty tiny relative to everything else that's

00:41:37.840 --> 00:41:42.599
going on in software these days. I mean, if you

00:41:42.599 --> 00:41:46.219
knew how much bloat was just in a single, cloud

00:41:46.219 --> 00:41:49.900
requests, how many hops it's taking, how many

00:41:49.900 --> 00:41:53.480
protocol wrappers there are around a request

00:41:53.480 --> 00:41:58.139
going into the cloud, you probably wouldn't be

00:41:58.139 --> 00:42:02.019
concerned about showing images or embedding a

00:42:02.019 --> 00:42:06.159
terminal. Showing images is also kind of like

00:42:06.159 --> 00:42:08.239
a solved problem, and this is something that

00:42:08.239 --> 00:42:13.500
should be possible to do. Now, if we start taking

00:42:13.500 --> 00:42:15.900
dependencies, like build time dependencies on

00:42:15.900 --> 00:42:22.079
a bunch of image libraries, and that constricts

00:42:22.079 --> 00:42:26.980
the number of platform targets that we can ship

00:42:26.980 --> 00:42:31.159
to and run in, then that's questionable. But

00:42:31.159 --> 00:42:34.500
if we can do it in a way where it's pretty lightweight,

00:42:34.639 --> 00:42:36.699
we're mostly just providing an interface and

00:42:36.699 --> 00:42:40.659
using either operating system features or terminal,

00:42:41.239 --> 00:42:43.539
host terminal features, then there's no reason

00:42:43.539 --> 00:42:45.679
we shouldn't do that because this is actually

00:42:45.679 --> 00:42:48.019
kind of painful not to be able to see images

00:42:48.019 --> 00:42:50.440
in a Markdown file. Markdown files would be much

00:42:50.440 --> 00:42:54.579
more useful if you could inline images in there.

00:42:54.860 --> 00:42:57.860
And we're going to do that for help files too,

00:42:57.920 --> 00:43:03.139
where you can just somehow show an image. Although,

00:43:03.199 --> 00:43:05.159
I don't know, people might not be excited about

00:43:05.159 --> 00:43:08.519
that. Half of the core team wants to move to

00:43:08.519 --> 00:43:14.659
Markdown instead of the help files. I think we

00:43:14.659 --> 00:43:17.260
can support both. I mean, they're both basically

00:43:17.260 --> 00:43:19.940
just like variants of each other. Like help files

00:43:19.940 --> 00:43:23.119
are, it's kind of just Markdown, really. It's

00:43:23.119 --> 00:43:25.360
just a different flavor of Markdown. That looks

00:43:25.360 --> 00:43:29.019
horrible, right? No, I'm used to Markdown. So

00:43:29.019 --> 00:43:32.039
yeah, navigating. It looks good now. Help files

00:43:32.039 --> 00:43:35.599
should look good. Yeah, it looks decent. I have

00:43:35.599 --> 00:43:37.690
a... Question here. I'm just going to switch

00:43:37.690 --> 00:43:39.909
to my screen real quick and I'm just going to

00:43:39.909 --> 00:43:43.769
read this. Hold on. Patricio Serrano. Can the

00:43:43.769 --> 00:43:46.530
NeoVim built -in terminal slow down the editor?

00:43:46.750 --> 00:43:50.210
For example, if I run a heavy task, will it affect

00:43:50.210 --> 00:43:53.610
my editing experience? Any thoughts on how to

00:43:53.610 --> 00:43:56.690
prevent this? Maybe using NeoVim's server client

00:43:56.690 --> 00:44:01.329
feature? Well, the embedded terminal is slower

00:44:01.329 --> 00:44:03.969
than it should be. So that's the short answer.

00:44:04.960 --> 00:44:08.619
It's not synchronous. There's parts of it that

00:44:08.619 --> 00:44:14.460
are asynchronous. One of the things that I think

00:44:14.460 --> 00:44:17.619
probably does slow it down is if it exceeds the

00:44:17.619 --> 00:44:21.980
scroll back and it has to start deleting lines.

00:44:22.320 --> 00:44:25.460
I think the logic for that is kind of stupid

00:44:25.460 --> 00:44:28.500
right now. I think the way that it shifts the

00:44:28.500 --> 00:44:31.039
scroll back array is probably super inefficient.

00:44:31.929 --> 00:44:35.530
But if it's slow and you're not hitting that

00:44:35.530 --> 00:44:39.750
scroll back limit, then that's the other slow

00:44:39.750 --> 00:44:44.809
parts that I don't really remember the details,

00:44:45.070 --> 00:44:49.530
but it probably has to do with highlights, the

00:44:49.530 --> 00:44:52.610
way we're doing highlights, and maybe some of

00:44:52.610 --> 00:44:55.829
the buffer options. So we have to think about,

00:44:56.130 --> 00:44:59.369
we want terminals to be real buffers, but there's

00:44:59.369 --> 00:45:02.070
some things in real buffers that, make things

00:45:02.070 --> 00:45:05.650
really stupidly slow. And I don't think we support

00:45:05.650 --> 00:45:08.550
folds yet, but we could. But then when we do,

00:45:08.710 --> 00:45:10.510
that's going to make them even slower if you

00:45:10.510 --> 00:45:13.590
have folds enabled in terminals. And the wrap

00:45:13.590 --> 00:45:17.949
logic, wrap is always a pain in the ass. And

00:45:17.949 --> 00:45:23.050
we have some half -working wrap logic, and once

00:45:23.050 --> 00:45:27.329
we get that fully working, that'll be after we

00:45:27.329 --> 00:45:31.889
integrate lib ghosty. from the ghosty terminal

00:45:31.889 --> 00:45:35.349
they are exposing their their terminal logic

00:45:35.349 --> 00:45:40.329
as a library and so we can we can replace our

00:45:40.329 --> 00:45:42.489
current thing with that and hopefully that's

00:45:42.489 --> 00:45:48.130
faster but we'll see um but try setting scroll

00:45:48.130 --> 00:45:50.909
back to like the maximum number and see if that

00:45:50.909 --> 00:45:52.590
makes it faster what was the other part of the

00:45:52.590 --> 00:45:55.210
question let's see if i switch here to my screen

00:45:55.210 --> 00:45:59.019
it says uh by run a heavy task will it affect

00:45:59.019 --> 00:46:01.460
my alien experience any thoughts on how to prevent

00:46:01.460 --> 00:46:05.659
this maybe using new vim server client feature

00:46:05.659 --> 00:46:11.380
okay okay this is interesting um because the

00:46:11.380 --> 00:46:17.199
answer the the perpetual answer to like any client

00:46:17.199 --> 00:46:23.059
server situation is that neovim should have p2p

00:46:23.059 --> 00:46:25.019
functionality like peer -to -peer functionality

00:46:25.019 --> 00:46:28.309
this should be Like, NeoVim should be able to

00:46:28.309 --> 00:46:32.190
create swarms of itself on your machine whenever

00:46:32.190 --> 00:46:35.489
it needs to so that it can do expensive tasks

00:46:35.489 --> 00:46:40.570
in a child process of NeoVim and then throw away

00:46:40.570 --> 00:46:43.570
that child NeoVim and then get the result and

00:46:43.570 --> 00:46:46.349
then use that in the parent. Right now, this

00:46:46.349 --> 00:46:48.269
is just too cumbersome. Like, of course, it's

00:46:48.269 --> 00:46:51.550
possible to do, but, like, getting results from

00:46:51.550 --> 00:46:56.199
various features in the... child NeoVim is just

00:46:56.199 --> 00:46:59.960
not as good as it should be. So if you wanted

00:46:59.960 --> 00:47:03.699
to do this in a bespoke way today, if you had

00:47:03.699 --> 00:47:06.340
some expensive terminal thing, you could spin

00:47:06.340 --> 00:47:09.079
up the terminal in the child NeoVim, and then

00:47:09.079 --> 00:47:12.260
you would get the output and put it into your

00:47:12.260 --> 00:47:15.340
parent NeoVim. You could show it as a regular

00:47:15.340 --> 00:47:19.380
buffer, but then now you have to create some

00:47:19.380 --> 00:47:22.809
plugin that kind of makes that buffer behave

00:47:22.809 --> 00:47:25.530
in useful ways i guess like if you're like because

00:47:25.530 --> 00:47:27.610
you're not going to get the full terminal buffer

00:47:27.610 --> 00:47:32.050
experience in that bespoke buffer but that's

00:47:32.050 --> 00:47:36.889
the kind of thing you could do um yeah okay okay

00:47:36.889 --> 00:47:40.829
appreciate that and um i also wanted to ask you

00:47:40.829 --> 00:47:44.489
about um defaults in eofm you know moving on

00:47:44.489 --> 00:47:46.989
to a different topic defaults in eofm right because

00:47:46.989 --> 00:47:51.059
um when you go into a server you usually have

00:47:51.059 --> 00:47:53.460
Vim installed. You don't have any plugins. You

00:47:53.460 --> 00:47:57.360
don't have your KJ to go to normal mode. You

00:47:57.360 --> 00:47:59.719
know, you have to use escape or control open

00:47:59.719 --> 00:48:01.260
square bracket. I don't remember which one it

00:48:01.260 --> 00:48:04.659
is, right? So you just have to use vanilla Vim

00:48:04.659 --> 00:48:07.679
there. How often do you do that? You know, I

00:48:07.679 --> 00:48:09.539
don't do it often. It depends on each person,

00:48:09.619 --> 00:48:11.579
right? But what are your thoughts on moving away

00:48:11.579 --> 00:48:15.539
from... defaults, right? Like, for example, let

00:48:15.539 --> 00:48:17.920
me give an example. Flash .envim is a plugin

00:48:17.920 --> 00:48:21.619
that I use sometimes to jump to a specific section

00:48:21.619 --> 00:48:24.480
of the file, find it useful at times, right?

00:48:24.619 --> 00:48:27.699
Or custom key maps that I use that are not going

00:48:27.699 --> 00:48:30.460
to be available in a server. Are you in favor

00:48:30.460 --> 00:48:33.280
of navigating or moving away from defaults or

00:48:33.280 --> 00:48:37.880
use stock configs only? Well, I wrote sneak,

00:48:38.059 --> 00:48:43.099
so I definitely use some non -default features

00:48:43.099 --> 00:48:47.679
for navigating but unlike flash it does not move

00:48:47.679 --> 00:48:51.880
across windows um is it similar to flash then

00:48:51.880 --> 00:48:55.539
that sneak yeah i think i think flash probably

00:48:55.539 --> 00:49:00.059
credits sneak as an inspiration i think oh okay

00:49:00.059 --> 00:49:03.900
me okay okay yeah although you know i didn't

00:49:03.900 --> 00:49:05.960
invent the idea there was something called easy

00:49:05.960 --> 00:49:09.809
motion a long time ago that Neek was just a better

00:49:09.809 --> 00:49:13.829
version of Easy Motion. So, I mean, I guess the

00:49:13.829 --> 00:49:16.309
question is, like, you're asking about personal

00:49:16.309 --> 00:49:21.710
choice. For me, there's, like, a few things that

00:49:21.710 --> 00:49:25.429
I do non -default, and I have no problem, like,

00:49:25.489 --> 00:49:29.429
when I'm roughing it, you know, on a bare -bones

00:49:29.429 --> 00:49:33.269
server, and I only have Vim or NeoVim, then without

00:49:33.269 --> 00:49:37.820
my config, then it's still... It's usually pretty

00:49:37.820 --> 00:49:42.739
fine to get around. There's some things that

00:49:42.739 --> 00:49:45.619
we should be adding to the defaults to make that

00:49:45.619 --> 00:49:48.699
less of a problem. But of course, that only applies

00:49:48.699 --> 00:49:53.800
if you agree with the defaults. But I think that

00:49:53.800 --> 00:49:57.320
the answer to your question is maybe contradictory

00:49:57.320 --> 00:50:02.780
because I try not to change the defaults unless

00:50:02.780 --> 00:50:05.239
they're terrible. And if they're terrible, then

00:50:05.239 --> 00:50:08.300
I will change them in the oven. But then this

00:50:08.300 --> 00:50:12.739
is kind of like, you know, not everyone can do

00:50:12.739 --> 00:50:16.500
that. But I think the default that we're driving

00:50:16.500 --> 00:50:18.519
towards, everyone should be using because they're

00:50:18.519 --> 00:50:23.679
great. How do you get to normal mode? I use control

00:50:23.679 --> 00:50:28.340
left bracket. Oh, really? That's the goaded way.

00:50:28.699 --> 00:50:31.969
Why? Why, Justin? Can you explain why? Once you

00:50:31.969 --> 00:50:36.550
get used to it, you won't go back. I tried JK.

00:50:36.730 --> 00:50:39.809
JK is terrible. No, KJ. The other way around.

00:50:39.889 --> 00:50:42.110
Because this finger is faster. You do both. You

00:50:42.110 --> 00:50:44.230
do both. Bam. Just like this. You can map them

00:50:44.230 --> 00:50:47.789
both. Yeah, but I don't know. You smash them

00:50:47.789 --> 00:50:50.989
both. But once you get used to the control bracket,

00:50:51.170 --> 00:50:53.960
it's actually way better. I tried it. I tried

00:50:53.960 --> 00:50:57.219
escape at the beginning, but because it was too

00:50:57.219 --> 00:50:59.739
way up here, I didn't modify the keyboard, my

00:50:59.739 --> 00:51:01.739
keyboard at that time, right? I used the default

00:51:01.739 --> 00:51:04.179
keyboard, but escape was all the way there, all

00:51:04.179 --> 00:51:06.760
the way up there. So I said, no, no, no. Let

00:51:06.760 --> 00:51:09.900
me try the control, close square bracket. That's

00:51:09.900 --> 00:51:12.099
the one, right? So, and I tried it for, no, I

00:51:12.099 --> 00:51:14.159
didn't get used to it. It was like, no, no, no,

00:51:14.219 --> 00:51:17.019
no, no, no, no. I just moved to KJ. I didn't

00:51:17.019 --> 00:51:21.320
look back ever since. Okay. I don't know. Maybe

00:51:21.320 --> 00:51:23.039
that should be a default. That would be hilarious.

00:51:23.400 --> 00:51:28.179
We could do that on April Fool's. No one is ever

00:51:28.179 --> 00:51:31.360
amused by our April Fool's stuff. Where do you

00:51:31.360 --> 00:51:35.199
post those? Do you post them in Reddit or a video

00:51:35.199 --> 00:51:37.420
or something? No, I think maybe that's why. It's

00:51:37.420 --> 00:51:38.840
because it's only people looking at the issue

00:51:38.840 --> 00:51:43.239
tracker. Those are serious people. That's why

00:51:43.239 --> 00:51:46.219
they're not amused. Yeah, you should create a

00:51:46.219 --> 00:51:48.380
video or something about it. It would be hilarious.

00:51:49.159 --> 00:51:52.300
Imagine, oh man, Reddit would go crazy. How's

00:51:52.300 --> 00:51:55.619
your relationship with Reddit, by the way? Because

00:51:55.619 --> 00:51:58.320
sometimes I post in Reddit and there's a lot

00:51:58.320 --> 00:52:02.159
of people there that's like angry. And I don't

00:52:02.159 --> 00:52:04.860
know, they just like to attack you for no reason.

00:52:05.360 --> 00:52:07.679
How's your relationship with Reddit? Is it healthy?

00:52:07.739 --> 00:52:09.760
Well, of course, you're the new event maintainer.

00:52:09.780 --> 00:52:12.500
You're there, right? So what? problems are you

00:52:12.500 --> 00:52:14.619
going to have there with Reddit? But overall,

00:52:14.800 --> 00:52:18.639
any thoughts on the NeoVim subreddit community?

00:52:19.239 --> 00:52:22.280
It could be way worse. I think it's fine. I don't

00:52:22.280 --> 00:52:25.519
see too many angry people there. I've gotten

00:52:25.519 --> 00:52:29.559
pretty used to... If someone's complaining about

00:52:29.559 --> 00:52:33.400
a technical decision, I'm totally fine with that.

00:52:33.780 --> 00:52:37.820
And I usually just... I mean, I get it. I understand.

00:52:38.039 --> 00:52:40.860
I don't have any problem with people complaining

00:52:40.860 --> 00:52:46.329
about technical decisions or yeah because nothing

00:52:46.329 --> 00:52:49.849
is ever perfect and and i complain a lot myself

00:52:49.849 --> 00:52:54.630
so yeah yeah it's usually it's more like the

00:52:54.630 --> 00:52:56.989
the things that bother me are the in the early

00:52:56.989 --> 00:53:00.210
days were more like just personal attacks and

00:53:00.210 --> 00:53:03.110
stuff like that but if it's not personal i i

00:53:03.110 --> 00:53:07.829
don't mind it at all okay Okay. Now, would you

00:53:07.829 --> 00:53:10.110
mind sharing a little bit about the Neovim's

00:53:10.110 --> 00:53:12.489
history? We're going back in time right now.

00:53:12.610 --> 00:53:15.730
Were you the one that started Neovim? I heard,

00:53:15.889 --> 00:53:18.289
I don't know, Greg, I don't remember. Oh no,

00:53:18.429 --> 00:53:20.550
the Rio Terminal creator is the one that told

00:53:20.550 --> 00:53:23.329
me that it was some Brazil guys. Are they still

00:53:23.329 --> 00:53:26.230
around? Were they the ones that started it? Did

00:53:26.230 --> 00:53:28.489
you take over? Do you mind sharing a little bit

00:53:28.489 --> 00:53:32.070
about that? Well, Thiago de Arruda was the guy

00:53:32.070 --> 00:53:37.329
who... did the initial fork and did a kickstarter

00:53:37.329 --> 00:53:42.449
and uh did like six months of uh work to get

00:53:42.449 --> 00:53:45.650
all the kind of like flagship features like um

00:53:45.650 --> 00:53:50.730
async jobs and the embedded terminal were the

00:53:50.730 --> 00:53:53.650
main things and he also did remote plugins which

00:53:53.650 --> 00:53:57.840
has had less success but uh I consider myself,

00:53:57.980 --> 00:53:59.820
I think it's fair to call me the co -founder

00:53:59.820 --> 00:54:03.659
of NeoVim, even though I didn't have a big technical

00:54:03.659 --> 00:54:07.239
role in the first couple months of the project.

00:54:08.360 --> 00:54:14.780
I was kind of like an angel on his shoulder before

00:54:14.780 --> 00:54:17.880
he forked it, and I was talking to him on Reddit.

00:54:18.119 --> 00:54:22.610
Speaking of Reddit... We had discussions on Reddit,

00:54:22.809 --> 00:54:26.530
and so it kind of led to that. And I was excited

00:54:26.530 --> 00:54:30.889
about the project and was involved from the beginning.

00:54:31.150 --> 00:54:37.750
And he asked me to take over within not too long,

00:54:37.809 --> 00:54:42.510
seeing all the work of the project management

00:54:42.510 --> 00:54:45.929
and stuff. And yeah, he's from Brazil. I'm from

00:54:45.929 --> 00:54:50.849
Florida. I think tropical... climate seem to

00:54:50.849 --> 00:54:55.429
be where the innovation is coming from these

00:54:55.429 --> 00:54:59.530
days. What are your thoughts on cold weather?

00:54:59.630 --> 00:55:03.969
Do you like it? I don't mind it. I deal with

00:55:03.969 --> 00:55:08.510
it. I try not to be limited by... I adapt. I'm

00:55:08.510 --> 00:55:12.250
in New York City, one of the most unpleasant

00:55:12.250 --> 00:55:14.590
cities in the world, but I'm dealing with it.

00:55:16.510 --> 00:55:21.639
I adapt. Okay, okay, okay. There's a reason they

00:55:21.639 --> 00:55:23.940
call New York City the city that never sleeps.

00:55:24.239 --> 00:55:27.000
I just figured this out this week. It's because

00:55:27.000 --> 00:55:30.159
it prevents you from sleeping. What, too much

00:55:30.159 --> 00:55:33.940
noise? Too much noise, too much people screaming

00:55:33.940 --> 00:55:38.519
and just doing weird things in the hallway and

00:55:38.519 --> 00:55:43.000
running their TV and sirens. Do you hear the

00:55:43.000 --> 00:55:45.440
train? Do you hear the train as well from where

00:55:45.440 --> 00:55:48.789
you're at? No, no, I don't hear the train. No,

00:55:48.869 --> 00:55:52.650
fortunately you don't. Just sirens and screaming.

00:55:53.010 --> 00:55:56.769
Okay, I can imagine. Any gunshots there? No.

00:55:57.150 --> 00:56:01.070
No, fortunately no. No gunshots. Just in Florida?

00:56:01.409 --> 00:56:06.989
Yeah, maybe. Are there alligators in Florida?

00:56:07.429 --> 00:56:10.030
Oh, yeah. Yeah? Are you used to them? Go golfing.

00:56:10.070 --> 00:56:12.420
If you go golfing, you'll see alligators. Are

00:56:12.420 --> 00:56:14.840
you scared of them? People are like, what is

00:56:14.840 --> 00:56:16.739
this conversation about? Are we talking about

00:56:16.739 --> 00:56:19.539
Niobe or what? What's going on here? Are you

00:56:19.539 --> 00:56:22.079
afraid? We're getting into the spicy segment

00:56:22.079 --> 00:56:25.239
of the show. Yeah, I don't know. We're just rolling.

00:56:25.539 --> 00:56:28.780
I have a healthy respect for gators. I don't

00:56:28.780 --> 00:56:33.340
try to pet them or give them marshmallows. Okay,

00:56:33.579 --> 00:56:37.960
okay. Now, going back to Niobe, how's the burden?

00:56:38.099 --> 00:56:42.559
Because you have a... work at amazon i guess

00:56:42.559 --> 00:56:46.920
aws related stuff is that right okay now i guess

00:56:46.920 --> 00:56:49.480
that that must be pretty busy pretty involved

00:56:49.480 --> 00:56:53.239
right must not be easy at all now the album is

00:56:53.239 --> 00:56:55.960
not easy at all a lot of issues discussions stuff

00:56:55.960 --> 00:56:59.820
going on like yeah how was the burden how do

00:56:59.820 --> 00:57:02.920
you feel i mean it's certainly it could it's

00:57:02.920 --> 00:57:06.460
it's a full -time job if you let it be uh and

00:57:06.460 --> 00:57:09.800
it's hard to do deep work if you're doing multiple

00:57:09.800 --> 00:57:12.460
jobs so you gotta choose which job you're gonna

00:57:12.460 --> 00:57:16.239
do deep work on i'm keeping up with i think the

00:57:16.239 --> 00:57:18.400
project management at least and occasionally

00:57:18.400 --> 00:57:22.400
doing some patches and guiding prs and things

00:57:22.400 --> 00:57:25.960
like that but i want to do more deep work uh

00:57:25.960 --> 00:57:32.239
pretty soon next year okay and what are the plans

00:57:32.239 --> 00:57:35.400
when you're no longer around let's say that one

00:57:35.400 --> 00:57:38.760
day you decide no you know what emacs is for

00:57:38.760 --> 00:57:41.460
me so i'm gonna jump off and i'm gonna go to

00:57:41.460 --> 00:57:44.360
emacs what's gonna happen to new of them is there

00:57:44.360 --> 00:57:48.719
a plan is there a successor or a group of successors

00:57:48.719 --> 00:57:53.300
or have you thought about that well i mean tiago

00:57:53.300 --> 00:57:56.800
hasn't been around and the album revived and

00:57:56.800 --> 00:58:00.420
thrived i think and uh there was about a year

00:58:00.420 --> 00:58:05.619
around 2020 when i was not very active at all

00:58:06.000 --> 00:58:11.360
And the project continued and did okay. There

00:58:11.360 --> 00:58:13.719
were some things merged that shouldn't have been,

00:58:13.820 --> 00:58:19.059
I think, during that time, but that's okay. So

00:58:19.059 --> 00:58:24.400
when I'm gone, I think Bjorn will certainly be

00:58:24.400 --> 00:58:28.599
around still, I hope. Maybe Jameson. So three

00:58:28.599 --> 00:58:32.380
people currently are... Oh, I should do this.

00:58:32.579 --> 00:58:36.659
Three people. The German. No, wait. Three people

00:58:36.659 --> 00:58:43.099
have owner role on the Neovim organization in

00:58:43.099 --> 00:58:46.719
Neovim, so as long as one of us is still alive,

00:58:46.980 --> 00:58:50.559
then if someone drops out or gets hit by a bus

00:58:50.559 --> 00:58:58.039
or whatever, then that administrative part is

00:58:58.039 --> 00:59:02.460
not at risk. They have the keys to everything

00:59:02.460 --> 00:59:08.639
and things like that. So, yeah, but in terms

00:59:08.639 --> 00:59:11.900
of, say, I don't know, project direction, I think

00:59:11.900 --> 00:59:16.579
Bjorn and I are very aligned on the project direction,

00:59:16.659 --> 00:59:20.440
so I don't think much would change if I were

00:59:20.440 --> 00:59:26.119
not here. And Jameson is not very active right

00:59:26.119 --> 00:59:28.739
now, but maybe he would become more active in

00:59:28.739 --> 00:59:33.769
that scenario. But we're always gaining... new

00:59:33.769 --> 00:59:39.110
smart people that and uh they're building up

00:59:39.110 --> 00:59:42.670
their trust and so you know um it kind of just

00:59:42.670 --> 00:59:45.170
requires judgment to see like who to trust and

00:59:45.170 --> 00:59:49.690
uh yeah maybe we'll have more options in the

00:59:49.690 --> 00:59:52.530
next couple years about uh that kind of thing

00:59:52.530 --> 00:59:57.010
okay makes sense have you heard about uh dina

00:59:57.010 --> 01:00:02.059
he wasn't even con he had his overrides U of

01:00:02.059 --> 01:00:04.420
M configuration. I don't know if you remember

01:00:04.420 --> 01:00:08.820
or if you recall about Dina. How do you spell

01:00:08.820 --> 01:00:12.679
it? D -H -E -E -N -A. And the last name is complex.

01:00:13.039 --> 01:00:17.019
I haven't heard of this person. Hold on. I'm

01:00:17.019 --> 01:00:20.019
going to mute it here. Oh, yeah. Yeah, this guy.

01:00:20.219 --> 01:00:24.579
Dina. Oh, yeah. He's a creative guy. I like him.

01:00:24.699 --> 01:00:28.219
I like his videos. Very relaxing video to watch.

01:00:28.500 --> 01:00:31.960
Yeah. He's an awesome guy. I had it in my podcast.

01:00:32.300 --> 01:00:35.539
It's one of my favorite podcasts, actually. Pretty

01:00:35.539 --> 01:00:39.219
good episode, right? But did you know what happened

01:00:39.219 --> 01:00:41.679
to Dina? Did you know that he moved over to...

01:00:41.679 --> 01:00:44.119
He switched to Emacs. Yeah, yeah, yeah. What

01:00:44.119 --> 01:00:53.559
are your thoughts? His stuff was so... His use

01:00:53.559 --> 01:00:57.349
case was so involved. I think doesn't surprise

01:00:57.349 --> 01:00:59.530
me. I was actually surprised that he was, he

01:00:59.530 --> 01:01:02.010
went as far as he did with, with NeoVim. And

01:01:02.010 --> 01:01:05.809
I think, I don't know, in a, in a couple of years,

01:01:05.889 --> 01:01:10.030
maybe we'll be closer to having better answers

01:01:10.030 --> 01:01:13.590
for some of the stuff that he found lacking maybe.

01:01:13.710 --> 01:01:17.929
But Emacs has some very unique and powerful properties.

01:01:18.010 --> 01:01:20.849
Like the way that, you know, it's documentation

01:01:20.849 --> 01:01:23.650
system, I think is they don't have like docs

01:01:23.650 --> 01:01:27.639
files. They just have, doc strings on their commands

01:01:27.639 --> 01:01:31.380
and those auto generate docs and then so like

01:01:31.380 --> 01:01:35.099
when you look at a doc you you're also can just

01:01:35.099 --> 01:01:39.619
introspect the the the code that it is documenting

01:01:39.619 --> 01:01:42.880
and vice versa that kind of thing is really cool

01:01:42.880 --> 01:01:47.159
and uh i mean it's not perfect though like they

01:01:47.159 --> 01:01:49.639
still have a c core that's about as big as vim's

01:01:49.639 --> 01:01:52.900
c core not many people know this they have like

01:01:52.900 --> 01:01:57.570
the same amount of C code that Vim has, which

01:01:57.570 --> 01:02:03.730
is more than Neovim. So it's not fully extensible.

01:02:04.010 --> 01:02:08.110
Their redraw layer is all in C. You can't extend

01:02:08.110 --> 01:02:11.829
that. You can extend that in Neovim. Neovim has

01:02:11.829 --> 01:02:14.590
a UI protocol. Emacs does not have a UI protocol.

01:02:15.030 --> 01:02:19.230
And also, I just was reminded that this is kind

01:02:19.230 --> 01:02:23.369
of just silly trivia, but You can't pipe standard

01:02:23.369 --> 01:02:28.750
input into Emacs CLI. You can't? No. Did you

01:02:28.750 --> 01:02:30.969
know this? No, I didn't. People have done these

01:02:30.969 --> 01:02:34.289
elaborate things to try to make it work. Oh,

01:02:34.289 --> 01:02:36.789
really? You can't do it. No, because you're not

01:02:36.789 --> 01:02:39.570
supposed to ever be starting Emacs. It's supposed

01:02:39.570 --> 01:02:43.010
to always be running. It's like heaven. It's

01:02:43.010 --> 01:02:45.630
like the firmament. It's just always like...

01:02:46.039 --> 01:02:48.679
blessing you with its life yeah it's the operating

01:02:48.679 --> 01:02:51.019
system you're not ever supposed to be like starting

01:02:51.019 --> 01:02:53.480
or stopping no yeah yeah you turn the computer

01:02:53.480 --> 01:02:56.539
on and it starts emacs and that's where you live

01:02:56.539 --> 01:02:59.860
in so that comes you know that brings us to that

01:02:59.860 --> 01:03:02.260
topic what are your thoughts on emacs have you

01:03:02.260 --> 01:03:05.579
had experiences with emacs have you used it what

01:03:05.579 --> 01:03:08.280
do you think about it i i was i used it heavily

01:03:08.280 --> 01:03:11.780
for about like 12 months and i think that was

01:03:11.780 --> 01:03:14.480
like maybe the year before neovem or maybe it

01:03:14.480 --> 01:03:18.380
was during that first year of NeoVim. I think

01:03:18.380 --> 01:03:21.800
it was 2013. So my knowledge is somewhat out

01:03:21.800 --> 01:03:25.559
of date, but I gave it. I was excited about it.

01:03:25.639 --> 01:03:30.400
I think it's awesome. I like the architecture,

01:03:30.460 --> 01:03:33.719
but there's some things that were holding it

01:03:33.719 --> 01:03:37.159
back. Some of the stuff probably has been fixed.

01:03:37.559 --> 01:03:40.699
Yeah, I ended up switching back to the Vim or

01:03:40.699 --> 01:03:43.409
NeoVim because... There were things that I was

01:03:43.409 --> 01:03:46.070
trying to do in Emacs that could not be done.

01:03:46.590 --> 01:03:50.869
Oh, you found limitations. Yeah, and stuff like

01:03:50.869 --> 01:03:55.289
the quick fix buffer in Vim still behaves, I

01:03:55.289 --> 01:03:57.809
think, better than whatever the Emacs equivalent

01:03:57.809 --> 01:04:01.349
is. The Emacs equivalent is more like Sublime

01:04:01.349 --> 01:04:05.449
Text or Zed. I think that kind of thing. Lots

01:04:05.449 --> 01:04:08.570
of clicking around and trying to do smart stuff.

01:04:09.719 --> 01:04:11.980
How's your relationship with the Emacs community?

01:04:12.179 --> 01:04:14.900
Do you think it is good to have a healthy relationship

01:04:14.900 --> 01:04:18.039
between Emacs and Neovim? Because a lot of features

01:04:18.039 --> 01:04:21.460
are taken, I guess, from inspiration from Emacs

01:04:21.460 --> 01:04:23.519
that are brought over to Neovim. And I guess

01:04:23.519 --> 01:04:25.420
the same thing happens the other way around,

01:04:25.619 --> 01:04:29.099
right? From Neovim to Emacs. Is there beef with

01:04:29.099 --> 01:04:32.059
you and Emacs or no? How's the relationship?

01:04:32.539 --> 01:04:38.159
I think there's very little communication. The

01:04:38.159 --> 01:04:40.380
one time we did have productive communication

01:04:40.380 --> 01:04:45.800
was I asked them about the completion interface,

01:04:46.179 --> 01:04:50.739
and I got some very thoughtful answers from Emacs

01:04:50.739 --> 01:04:54.940
people on the NeoVim issue tracker. But other

01:04:54.940 --> 01:04:58.320
than that, I think they probably ignore us, and

01:04:58.320 --> 01:05:01.019
we kind of ignore them. I don't know that we

01:05:01.019 --> 01:05:05.159
necessarily... When I see a good idea in Emacs

01:05:05.159 --> 01:05:10.039
or VS Code, That gets the wheels turning and

01:05:10.039 --> 01:05:13.980
I start thinking about if it makes sense in the

01:05:13.980 --> 01:05:19.860
open. This is the only way to be maximally useful.

01:05:20.760 --> 01:05:23.119
And that's all I want. I just want a maximally

01:05:23.119 --> 01:05:26.780
useful tool. That's what I want. That's the main

01:05:26.780 --> 01:05:33.139
interest that I have in this. What are your thoughts

01:05:33.139 --> 01:05:36.599
on other editors? There's one out there that

01:05:36.599 --> 01:05:39.420
has Multicursor. Guess which one I'm going to

01:05:39.420 --> 01:05:43.519
ask about. Sublime Text. No, another one. That

01:05:43.519 --> 01:05:46.460
was the one that really popularized that feature

01:05:46.460 --> 01:05:49.059
that no one talks about anymore. Oh, no, but

01:05:49.059 --> 01:05:50.460
another one that looks like Vim. No one talks

01:05:50.460 --> 01:05:54.039
about it anymore. Yeah, actually. Why is that?

01:05:55.019 --> 01:05:58.980
Because of NeoVim? No, I think people just like...

01:05:58.980 --> 01:06:04.389
I think the people that... The vocal people that

01:06:04.389 --> 01:06:08.389
are writing blog posts and making who knows what

01:06:08.389 --> 01:06:11.769
Reddit posts about how great a text editor is

01:06:11.769 --> 01:06:15.050
based on whether it has multi -cursor, those

01:06:15.050 --> 01:06:18.909
are the people that just kind of migrate to the

01:06:18.909 --> 01:06:22.389
next editor whenever it comes out. They're not

01:06:22.389 --> 01:06:25.960
loyal. There's no stickiness there. Well, I mean,

01:06:26.059 --> 01:06:28.460
obviously, I don't think anyone needs to be loyal

01:06:28.460 --> 01:06:31.119
to a text editor. But I would say it's more like

01:06:31.119 --> 01:06:33.599
there's not any stickiness there. Why isn't there

01:06:33.599 --> 01:06:36.860
any stickiness? It's because the stuff that they

01:06:36.860 --> 01:06:41.480
were enjoying about it was mostly like... It's

01:06:41.480 --> 01:06:44.840
stuff that feels good on the first impression,

01:06:44.940 --> 01:06:47.800
which is important. And it's stuff that feels

01:06:47.800 --> 01:06:50.880
good out of the box. But it's not... It's not

01:06:50.880 --> 01:06:53.380
the other part, which is the extensibility. They're

01:06:53.380 --> 01:06:55.360
not doing anything with the extensibility. They're

01:06:55.360 --> 01:06:58.800
not really making super personalized mappings.

01:06:59.360 --> 01:07:03.039
Are we talking about Helix here? No, but I think

01:07:03.039 --> 01:07:07.179
maybe probably Helix is another example of that

01:07:07.179 --> 01:07:11.300
where they have targeted some niche. I don't

01:07:11.300 --> 01:07:13.139
know how big the niche is or how small it is.

01:07:13.280 --> 01:07:16.039
I think targeting a niche is a good idea. But

01:07:16.039 --> 01:07:18.639
the niche that Neovim is targeting is the people

01:07:18.639 --> 01:07:21.409
that care about the people that want to extend

01:07:21.409 --> 01:07:23.309
stuff or the people that have like particular

01:07:23.309 --> 01:07:27.070
tastes. And if you have particular tastes, right?

01:07:28.289 --> 01:07:31.449
No, you're not going to bait me into this kind

01:07:31.449 --> 01:07:35.530
of thing. I'm genuinely like text editor agnostic.

01:07:35.650 --> 01:07:38.590
I don't care what people use and I will switch

01:07:38.590 --> 01:07:41.730
to something better if I find it. Like I have,

01:07:41.730 --> 01:07:47.969
I have no real, like I'm promiscuous. I, I, I'm

01:07:47.969 --> 01:07:51.610
a, I have a commitment. I don't want to commit

01:07:51.610 --> 01:07:56.090
to anything. I don't care about the OS that I'm

01:07:56.090 --> 01:07:58.349
using and I don't care about the text editor.

01:07:58.429 --> 01:08:02.789
I just want a maximally useful tool that is flexible

01:08:02.789 --> 01:08:08.590
and lightweight and portable that I can use for

01:08:08.590 --> 01:08:12.710
a bunch of different purposes and is going to

01:08:12.710 --> 01:08:16.229
last a long time. Have you used Helix? Have you

01:08:16.229 --> 01:08:21.669
used it? Do you have any thoughts on it? When

01:08:21.669 --> 01:08:24.789
I first tried it, I think it didn't run because

01:08:24.789 --> 01:08:27.149
I didn't have the right version of macOS. But

01:08:27.149 --> 01:08:31.529
I think I tried it later, more recently. But

01:08:31.529 --> 01:08:35.949
yeah, I haven't used it extensively. But I've

01:08:35.949 --> 01:08:43.430
been paying attention to the key ideas from it.

01:08:43.789 --> 01:08:47.010
Like the key ideas is that better default and

01:08:47.010 --> 01:08:52.090
people rightly criticize the bootstrapping experience

01:08:52.090 --> 01:08:58.130
for LSP in NeoVim was too cumbersome. And we,

01:08:58.250 --> 01:09:04.149
I think, solved 80 % of that in 2025. We still

01:09:04.149 --> 01:09:07.130
have a little bit more to do there. But like

01:09:07.130 --> 01:09:10.109
a big part of 2025 was having a good answer to

01:09:10.109 --> 01:09:11.770
that. And I think we have a pretty good answer

01:09:11.770 --> 01:09:17.039
now. the plugin manager is another aspect of

01:09:17.039 --> 01:09:20.279
that is because well plugin manager is not really

01:09:20.279 --> 01:09:23.159
going to help you install lsp servers and i think

01:09:23.159 --> 01:09:27.720
we we uh we will never attempt to do that i don't

01:09:27.720 --> 01:09:29.840
think helix does that either maybe it does but

01:09:29.840 --> 01:09:33.100
yeah that's good for like demo wear like once

01:09:33.100 --> 01:09:37.270
you start like installing lsp servers from your

01:09:37.270 --> 01:09:40.750
texas that works for the happy path and it's

01:09:40.750 --> 01:09:42.729
great for demos and you'll get a lot of like

01:09:42.729 --> 01:09:46.510
excitement from people just like who are just

01:09:46.510 --> 01:09:50.609
only on the happy path and they're not doing

01:09:50.609 --> 01:09:54.770
i don't know projects that have more complex

01:09:54.770 --> 01:09:57.810
requirements or whatever or if it's like vs code

01:09:57.810 --> 01:10:01.289
vs code like has like a team of people working

01:10:01.289 --> 01:10:04.779
on each lsp plugin like they have a team of people

01:10:04.779 --> 01:10:08.720
working on the python plugin yeah you can make

01:10:08.720 --> 01:10:10.859
things work you can make things work nicely if

01:10:10.859 --> 01:10:12.640
you have a team of people working on the resources

01:10:12.640 --> 01:10:17.239
like funded people like these people are making

01:10:17.239 --> 01:10:20.500
four hundred thousand dollars each per year yeah

01:10:20.500 --> 01:10:24.500
and they're working on a python plugin yeah imagine

01:10:24.500 --> 01:10:28.659
now you also touched on operating system a moment

01:10:28.659 --> 01:10:32.220
ago and i want to ask you which one is your operating

01:10:32.220 --> 01:10:36.460
system of choice and why well i'm using mac os

01:10:36.460 --> 01:10:40.119
because it mostly because i like i just want

01:10:40.119 --> 01:10:44.220
a laptop that that works well and like the sleep

01:10:44.220 --> 01:10:48.979
behavior is is uh i i need to not care about

01:10:48.979 --> 01:10:51.340
dealing with any of that and also like i guess

01:10:51.340 --> 01:10:54.520
the media devices on it probably work better

01:10:54.520 --> 01:10:57.180
than maybe still the current state of the art

01:10:57.180 --> 01:11:00.949
for linux i'm not sure but yeah i'm i'm I try

01:11:00.949 --> 01:11:04.989
to be OS agnostic. I spin up plenty of Linux

01:11:04.989 --> 01:11:09.550
machines at work and use those for development,

01:11:09.890 --> 01:11:12.850
like eight hours a day development purposes.

01:11:13.189 --> 01:11:19.029
But those are headless. My headless OS of choice

01:11:19.029 --> 01:11:23.170
is Linux. Which is true. Well, at work, it's

01:11:23.170 --> 01:11:27.010
just some crappy version of Red Hat. percent

01:11:27.010 --> 01:11:29.689
or whatever like some derivative of that and

01:11:29.689 --> 01:11:33.930
um but i used to be a debian guy oh okay okay

01:11:33.930 --> 01:11:36.989
probably now the amazon linux one the one you're

01:11:36.989 --> 01:11:39.689
talking about yeah okay okay i probably would

01:11:39.689 --> 01:11:43.449
if i would i mean at a previous job uh i was

01:11:43.449 --> 01:11:47.409
using a lot of ubuntu even on i think embedded

01:11:47.409 --> 01:11:50.350
systems so -called embedded systems i think we

01:11:50.350 --> 01:11:54.560
were using ubuntu like What happened to Debian,

01:11:54.659 --> 01:11:56.899
your relationship and Debian on the server? It's

01:11:56.899 --> 01:11:59.479
like, does someone else choose? Because it happened

01:11:59.479 --> 01:12:01.539
to me at my previous company, right? Someone

01:12:01.539 --> 01:12:04.720
else deployed the VMs and he decided to use Amazon

01:12:04.720 --> 01:12:07.680
Linux. And I was like, man, why? Why don't we

01:12:07.680 --> 01:12:10.000
use Debian? And it was too late at that point

01:12:10.000 --> 01:12:12.500
and whatever. We just used that, right? But what

01:12:12.500 --> 01:12:14.899
happened with you and Debian? Why the move to

01:12:14.899 --> 01:12:16.979
Amazon Linux? Of course, because you work at

01:12:16.979 --> 01:12:20.760
Amazon, right? Yeah, yeah, exactly. that that's

01:12:20.760 --> 01:12:24.340
you you you pretty much have to use that if you

01:12:24.340 --> 01:12:29.939
uh want to avoid headaches um and also like i

01:12:29.939 --> 01:12:34.520
think it's what they it's i think uh you know

01:12:34.520 --> 01:12:37.779
that's the best supported thing for cloud related

01:12:37.779 --> 01:12:40.880
like vms and things like that is you want to

01:12:40.880 --> 01:12:44.319
use whatever your cloud provider is using usually

01:12:44.319 --> 01:12:47.819
yeah makes sense so avoid headaches okay just

01:12:47.819 --> 01:12:50.520
like you mentioned and Have you ever thought

01:12:50.520 --> 01:12:55.359
about daily driving Linux or you're just going

01:12:55.359 --> 01:13:00.760
to stick to macOS? Sure. Yeah, I'm always keeping

01:13:00.760 --> 01:13:06.119
my options open. As soon as I hear that Sleep

01:13:06.119 --> 01:13:10.220
works well, I might start thinking about it.

01:13:10.600 --> 01:13:13.279
I know people are talking about the Framework

01:13:13.279 --> 01:13:18.479
laptop, but I haven't heard that Sleep is flawless

01:13:18.479 --> 01:13:22.439
on it yet. And by sleep, you mean that you just

01:13:22.439 --> 01:13:25.659
close the Mac. Two days later, you open it up

01:13:25.659 --> 01:13:28.359
and it's still 80 % charged. Is that what you're

01:13:28.359 --> 01:13:31.979
talking about? Yeah. Or a week after you open

01:13:31.979 --> 01:13:35.039
it up, it still has charge. Yeah. I'm on macOS

01:13:35.039 --> 01:13:38.600
as well. And most of my audience is Linux. I

01:13:38.600 --> 01:13:41.039
ran a poll the other day in a YouTube post and

01:13:41.039 --> 01:13:45.319
I was expecting most of them to be macOS users,

01:13:45.420 --> 01:13:49.369
but no. They're Linux users and they're constantly

01:13:49.369 --> 01:13:52.430
telling me that I should switch to Linux. And

01:13:52.430 --> 01:13:57.310
I thought about it and I was like, but what am

01:13:57.310 --> 01:13:59.829
I going to gain from this? I'm going to invest

01:13:59.829 --> 01:14:01.890
a lot of time. I know that I'm going to invest

01:14:01.890 --> 01:14:04.529
a lot of time. I'm not going to run some distro

01:14:04.529 --> 01:14:07.510
out there. I will probably run something on my

01:14:07.510 --> 01:14:10.859
own. spend weeks but what are the gains gonna

01:14:10.859 --> 01:14:13.220
be yeah of course i'm not gonna be tied to apple

01:14:13.220 --> 01:14:15.899
proprietary stuff i don't care about proprietary

01:14:15.899 --> 01:14:19.399
stuff to be honest as long as it works but um

01:14:19.399 --> 01:14:23.760
do you have any thoughts there um i'm glad to

01:14:23.760 --> 01:14:27.039
see linux gaining popularity i was i started

01:14:27.039 --> 01:14:30.420
using linux in 2000 my first distro was suza

01:14:30.420 --> 01:14:39.130
um but i also like i'm a staunch agnostic i intentionally

01:14:39.130 --> 01:14:43.250
don't care because i don't want to be hurt but

01:14:43.250 --> 01:14:47.529
also i just don't think advocacy works at all

01:14:47.529 --> 01:14:52.090
ever but also i i think like there's there's

01:14:52.090 --> 01:14:54.770
an economic argument economics will save us which

01:14:54.770 --> 01:14:58.770
is like like everyone will use what's best eventually

01:14:58.770 --> 01:15:03.449
it's good enough so um and and also like linux

01:15:03.449 --> 01:15:06.449
doesn't really need any help like it's on every

01:15:06.449 --> 01:15:11.760
phone yep Or Unix. Unix is on the iPhones, some

01:15:11.760 --> 01:15:16.359
form of Unix. So Linux already won. It's not

01:15:16.359 --> 01:15:20.079
ready on the desktop because Mark Shuttleworth

01:15:20.079 --> 01:15:25.659
tried, but they just don't have kind of... Framework

01:15:25.659 --> 01:15:30.199
Computer maybe is also... Maybe they will kind

01:15:30.199 --> 01:15:32.239
of solve this problem where you just have that

01:15:32.239 --> 01:15:37.140
really well -functioning, integrated... sort

01:15:37.140 --> 01:15:40.180
of unit that you aren't screwing around with

01:15:40.180 --> 01:15:45.899
and is not getting in your way. Like I kind of

01:15:45.899 --> 01:15:51.819
alluded to earlier, everyone is in a different

01:15:51.819 --> 01:15:55.340
journey about what they want to focus their attention

01:15:55.340 --> 01:16:01.069
on for a given moment or day or week. I don't

01:16:01.069 --> 01:16:03.390
even really want to care about a distro. The

01:16:03.390 --> 01:16:05.970
whole distro thing is kind of an accident. I

01:16:05.970 --> 01:16:10.250
think probably Linus himself is kind of puzzled

01:16:10.250 --> 01:16:12.890
by this whole situation because he's working

01:16:12.890 --> 01:16:15.829
on a kernel. He just wants to get his kernel

01:16:15.829 --> 01:16:17.829
on his computer and then all these different

01:16:17.829 --> 01:16:27.369
flavors of user space stuff. You can focus only

01:16:27.369 --> 01:16:30.880
on one thing at a time. trying to digest the

01:16:30.880 --> 01:16:34.399
universe or the ocean at the same time, it just

01:16:34.399 --> 01:16:38.439
becomes overwhelming. But I did, I did all this

01:16:38.439 --> 01:16:41.239
stuff. I fought X org. I fought X org before

01:16:41.239 --> 01:16:46.319
it was X org. Okay. Do you get, do you get pushback

01:16:46.319 --> 01:16:49.079
from your friends and the new open core team?

01:16:49.119 --> 01:16:52.020
I know Gregory Anders is a Mac OS lover, just

01:16:52.020 --> 01:16:54.880
like me. I'm not a Mac OS lover. Don't tell anyone,

01:16:55.060 --> 01:16:58.239
but I am, but. I know Gregory does love macOS

01:16:58.239 --> 01:17:01.899
because I had him the other day in an interview

01:17:01.899 --> 01:17:04.520
and he talked about the Apple Watch, the Apple

01:17:04.520 --> 01:17:08.300
TV, all that stuff. So do you get pushback from

01:17:08.300 --> 01:17:11.500
other people besides Greg? Like, why are you

01:17:11.500 --> 01:17:13.800
on macOS? You should switch to Linux, like a

01:17:13.800 --> 01:17:18.699
real chat. My Apple usage is confined to a laptop.

01:17:18.800 --> 01:17:22.640
I don't use any other Apple products, although

01:17:22.640 --> 01:17:26.039
I'm sure they work well together. And I don't,

01:17:26.039 --> 01:17:30.699
no, I don't get any, I don't think, no, yeah,

01:17:30.779 --> 01:17:34.079
people are pretty OS agnostic. We need more Windows

01:17:34.079 --> 01:17:37.159
developers. We've started to see some activity

01:17:37.159 --> 01:17:42.739
there on the pull requests. But yeah, I would

01:17:42.739 --> 01:17:45.300
love to have some Windows developers that are

01:17:45.300 --> 01:17:48.539
paying attention to. Yeah, if you want to touch

01:17:48.539 --> 01:17:50.420
on that, because Gregory mentioned it too, and

01:17:50.420 --> 01:17:52.420
I created a video about that, you know, like

01:17:52.420 --> 01:17:55.500
NeoVim needs your help. And Gregory was like

01:17:55.500 --> 01:17:58.479
this pointing, like with Uncle Sam, how is it

01:17:58.479 --> 01:18:00.800
called? I don't remember. But what do you need

01:18:00.800 --> 01:18:03.859
help with on the Windows side? And what's the

01:18:03.859 --> 01:18:06.779
best way for someone to, you know, contribute

01:18:06.779 --> 01:18:09.699
to NeoVim on the Windows side to become a core

01:18:09.699 --> 01:18:12.619
maintainer? What, yeah, just share about that

01:18:12.619 --> 01:18:17.970
with us. There's a Windows label on the issue

01:18:17.970 --> 01:18:20.829
tracker. There's about less than 100 Windows

01:18:20.829 --> 01:18:25.170
issues. The ones that really would be helpful

01:18:25.170 --> 01:18:29.949
is having someone sit down and solve path handling

01:18:29.949 --> 01:18:33.649
in a coherent way. We kind of just need to rework

01:18:33.649 --> 01:18:38.189
the way that flashes are handled in the path.

01:18:38.449 --> 01:18:41.649
That would be a good start. There's a few other

01:18:41.649 --> 01:18:44.850
issues. I don't know. But the file system stuff

01:18:44.850 --> 01:18:48.489
is really the main thing to start with. Okay.

01:18:48.810 --> 01:18:52.970
And this is for the native Windows application.

01:18:53.289 --> 01:18:56.449
Is that correct? Yep. That's right. I'm going

01:18:56.449 --> 01:18:58.270
to switch back to our screen. Is there anything

01:18:58.270 --> 01:19:01.689
else you want to show here? No. No. Okay. So

01:19:01.689 --> 01:19:04.130
that's native Windows application that you need

01:19:04.130 --> 01:19:08.090
help with. Okay. So people just go there, install

01:19:08.090 --> 01:19:12.949
plot code and vibe code. uh solutions and send

01:19:12.949 --> 01:19:18.010
you a what are your thoughts on 2000 line ers

01:19:18.010 --> 01:19:21.470
that you're like this was ai generated does that

01:19:21.470 --> 01:19:24.770
impose a lot of a burden on your side and it's

01:19:24.770 --> 01:19:26.710
like because you have to review it understand

01:19:26.710 --> 01:19:30.430
and all that stuff um yeah what's the best way

01:19:30.430 --> 01:19:34.729
to contribute to new of him well ai is it's fine

01:19:34.729 --> 01:19:39.850
to use ai but um definitely the human that's

01:19:40.199 --> 01:19:44.380
Authoring the PR should review it before asking

01:19:44.380 --> 01:19:47.640
us to review it. It's easy to tell which ones

01:19:47.640 --> 01:19:51.659
are AI -generated. They just have a certain voice

01:19:51.659 --> 01:19:54.600
and they do certain things that are obvious.

01:19:55.579 --> 01:20:00.060
The human should take some time to double -check

01:20:00.060 --> 01:20:05.779
what it's doing and compare it to existing code

01:20:05.779 --> 01:20:11.699
in our codebase. The way that the AI writes tests

01:20:11.699 --> 01:20:15.000
is kind of just, it's not following the patterns

01:20:15.000 --> 01:20:19.119
of our other tests. Okay. The human should check

01:20:19.119 --> 01:20:22.000
that before they ask for a review. Yeah, because

01:20:22.000 --> 01:20:26.000
that's just a lot of work for you, right? Yeah,

01:20:26.159 --> 01:20:29.779
I guess it would be extremely annoying to get

01:20:29.779 --> 01:20:34.319
that type of PRs. And let me just read this because

01:20:34.319 --> 01:20:38.159
I just got a super chat here. I don't think you'll

01:20:38.159 --> 01:20:40.659
be able to see it, but it says here, Miguel Rodriguez,

01:20:41.159 --> 01:20:44.039
Justin, thanks for your amazing work on NeoVim.

01:20:44.159 --> 01:20:47.840
The project is amazing. The Lua APIs are a joy

01:20:47.840 --> 01:20:51.180
to work with. So easy to make the editor truly

01:20:51.180 --> 01:20:56.960
personal. Nice words from Miguel there. Appreciate

01:20:56.960 --> 01:21:00.539
the donation. And is there something that you

01:21:00.539 --> 01:21:03.279
want to demo on your side? So we can talk about

01:21:03.279 --> 01:21:10.859
the roadmap. We implemented restart and attach,

01:21:11.359 --> 01:21:15.359
but no one even noticed. What do you mean by

01:21:15.359 --> 01:21:19.579
restart? Like I can reapply my config without

01:21:19.579 --> 01:21:22.920
quitting NeoVim and reopen it again? Is that?

01:21:23.319 --> 01:21:27.220
what that is that's right oh really i have been

01:21:27.220 --> 01:21:30.100
quitting neo vim every time i can make a change

01:21:30.100 --> 01:21:36.000
so but that's 0 .12 or yeah yeah that hasn't

01:21:36.000 --> 01:21:41.640
been in 0 .11 so i can demo that now but the

01:21:41.640 --> 01:21:46.539
trade -off or the uh the caveat is that uh it

01:21:46.539 --> 01:21:49.699
currently doesn't restore your session okay so

01:21:49.699 --> 01:21:52.420
like we can just try that i'm gonna do restart

01:21:53.210 --> 01:21:55.529
should i should i make this bigger just do this

01:21:55.529 --> 01:21:59.069
yeah yeah that's awesome yep okay so if i type

01:21:59.069 --> 01:22:04.670
restart it just it restarted the entire process

01:22:04.670 --> 01:22:07.909
and so it didn't restore the session so i have

01:22:07.909 --> 01:22:12.970
to manually go back to that file but help restart

01:22:12.970 --> 01:22:17.789
it gives some tips about how you can kind of

01:22:17.789 --> 01:22:23.220
do it manually so um you can just use make session

01:22:23.220 --> 01:22:27.960
and then and then restart takes a command line

01:22:27.960 --> 01:22:31.579
and it will do that that's when it when the process

01:22:31.579 --> 01:22:36.260
restarts so now we can uh try this let me make

01:22:36.260 --> 01:22:38.880
sure i don't have a session in here no i do okay

01:22:38.880 --> 01:22:42.300
so i remove that now we're gonna do this save

01:22:42.300 --> 01:22:46.539
the session restart and it should it's it worked

01:22:46.539 --> 01:22:49.840
all right great so we just did a full restart

01:22:49.840 --> 01:22:53.930
of the process and it And it restored the session.

01:22:54.109 --> 01:22:57.670
But yeah, it's kind of a small thing, but it's

01:22:57.670 --> 01:23:01.750
also a huge quality of life improvement. And

01:23:01.750 --> 01:23:04.590
the funny thing is that people are using it a

01:23:04.590 --> 01:23:09.250
ton. I'm seeing it pop up in demo videos and

01:23:09.250 --> 01:23:14.130
blog posts and instructions on people's plugins

01:23:14.130 --> 01:23:17.229
or whatever. So people know about it, and they're

01:23:17.229 --> 01:23:20.130
using the heck out of it. Oh, yeah. I didn't

01:23:20.130 --> 01:23:22.270
know about it. It's like this humble little feature

01:23:22.270 --> 01:23:26.850
that is like... The reason that it's tying together,

01:23:26.930 --> 01:23:30.050
it's dependent on the client -server architecture

01:23:30.050 --> 01:23:37.670
of NeoVim. We implemented the UI as a client

01:23:37.670 --> 01:23:40.970
to another NeoVim process, which is the server.

01:23:41.510 --> 01:23:45.010
And that was another thing that people kind of

01:23:45.010 --> 01:23:47.229
were skeptical. Some people. I shouldn't say

01:23:47.229 --> 01:23:50.500
people. I should say... Some small portion of

01:23:50.500 --> 01:23:55.180
people were skeptical about it. But it's just

01:23:55.180 --> 01:23:57.460
like one of those things that it's the right

01:23:57.460 --> 01:24:01.539
architecture. It makes it easier to reason about

01:24:01.539 --> 01:24:07.640
the system. It drives technical decisions in

01:24:07.640 --> 01:24:10.380
the right direction because it forces us to avoid

01:24:10.380 --> 01:24:15.739
shortcuts. So one of the things it forces us

01:24:15.739 --> 01:24:20.739
to avoid is... Because the terminal UI is a UI

01:24:20.739 --> 01:24:24.319
just like a GUI, just like a graphical UI, it

01:24:24.319 --> 01:24:27.720
means that we can't take shortcuts. So we have

01:24:27.720 --> 01:24:31.359
to use the full UI protocol just like a graphical

01:24:31.359 --> 01:24:34.600
UI would, which means it's driving us to do things

01:24:34.600 --> 01:24:37.720
the right way. And then on top of that, when

01:24:37.720 --> 01:24:40.640
you do things in a nice architecture, then you

01:24:40.640 --> 01:24:42.739
get these little serendipitous possibilities

01:24:42.739 --> 01:24:47.029
like restart. implementing restart was i don't

01:24:47.029 --> 01:24:52.449
know 100 lines of code total maybe and it but

01:24:52.449 --> 01:24:56.310
but it it sits on top of this architectural decision

01:24:56.310 --> 01:25:00.149
that we made years ago okay and and so it would

01:25:00.149 --> 01:25:02.729
not be possible without this this architecture

01:25:02.729 --> 01:25:05.770
not you could do it in a hacky way where like

01:25:05.770 --> 01:25:09.250
the way that like you could hack it but you can't

01:25:09.250 --> 01:25:11.869
you couldn't do it like in a terminal thing The

01:25:11.869 --> 01:25:14.970
way that a lot of programs like VS Code implement

01:25:14.970 --> 01:25:18.529
this is they'll have a watch or a service or

01:25:18.529 --> 01:25:22.329
something, and then it will sort of trampoline

01:25:22.329 --> 01:25:27.010
the restart. But you couldn't do that in a terminal

01:25:27.010 --> 01:25:31.329
because the terminal involves a shell. So that

01:25:31.329 --> 01:25:34.170
trampoline would have to do something really

01:25:34.170 --> 01:25:36.930
cheesy like, I don't know, send keys to your

01:25:36.930 --> 01:25:42.989
shell and do it that way. It cannot access the

01:25:42.989 --> 01:25:47.029
interior session of your shell. So there's no

01:25:47.029 --> 01:25:48.949
way that a service can do that. You can only

01:25:48.949 --> 01:25:51.510
do this with this architecture. Awesome. And

01:25:51.510 --> 01:25:57.750
I don't know if Emacs has this. It might have

01:25:57.750 --> 01:26:01.510
it. Actually, I think it does. So that's pretty

01:26:01.510 --> 01:26:04.909
cool. And then also Detach works too. So let

01:26:04.909 --> 01:26:11.199
me... I do listen on a local... It's a socket,

01:26:11.380 --> 01:26:14.479
right? Okay. Yeah, it's just a naming convention.

01:26:14.920 --> 01:26:18.819
And so now you can see my server is that file.

01:26:19.159 --> 01:26:22.439
That's the server address. Server address. Now,

01:26:22.500 --> 01:26:28.579
if I do detach, then the server is still running.

01:26:28.979 --> 01:26:35.460
Okay. Server's still running. And I can reattach

01:26:35.460 --> 01:26:39.159
to the server. Actually, I should have... I should

01:26:39.159 --> 01:26:41.920
have done this. Now you can see I detached again.

01:26:42.060 --> 01:26:43.920
Now when I reattach, it will still have that.

01:26:44.199 --> 01:26:46.619
Why didn't that work? Oh, because I quit instead

01:26:46.619 --> 01:26:50.819
of detaching. Okay, so we're thinking about something

01:26:50.819 --> 01:26:55.000
like tmux here, right? So that you detach and

01:26:55.000 --> 01:27:00.140
reattach. And I guess this would work remotely

01:27:00.140 --> 01:27:03.960
as well. If you leave it running on a server,

01:27:04.159 --> 01:27:07.199
can you reattach to it from another location

01:27:07.199 --> 01:27:12.920
then? yeah exactly oh man that's awesome what

01:27:12.920 --> 01:27:16.180
what drove this was it tmux i mean that's the

01:27:16.180 --> 01:27:20.279
idea yeah it's the same sort of model so this

01:27:20.279 --> 01:27:24.239
and if i detach and then i do remote ui that

01:27:24.239 --> 01:27:28.260
has the ui i was doing it wrong because um i

01:27:28.260 --> 01:27:31.239
forgot to put a remote ui in there this is something

01:27:31.239 --> 01:27:34.380
that i actually want to drop i want it to just

01:27:34.380 --> 01:27:38.899
work without doing remote ui but oh okay there's

01:27:38.899 --> 01:27:42.140
something else cool i wanna so we added also

01:27:42.140 --> 01:27:45.420
connect this is kind of experimental right now

01:27:45.420 --> 01:27:50.539
but connect would allow you to connect at at

01:27:50.539 --> 01:27:54.979
runtime from a different neo vim process so we're

01:27:54.979 --> 01:27:57.279
gonna do actually we'll just do this and then

01:27:57.279 --> 01:28:00.899
i'll start a new one now if i do connect hold

01:28:00.899 --> 01:28:03.159
on it doesn't we lost your connection there for

01:28:03.159 --> 01:28:06.399
a little while so You detached from the instance

01:28:06.399 --> 01:28:09.739
that you were on before or what did you do? You

01:28:09.739 --> 01:28:13.020
just opened a new window below? Yeah, this is

01:28:13.020 --> 01:28:18.020
a new window. Okay. Oh, that's experimental and

01:28:18.020 --> 01:28:21.600
that did not work. Imagine doing all of this

01:28:21.600 --> 01:28:25.140
in a live stream. People would tune in, man.

01:28:25.279 --> 01:28:28.100
So hopefully next year, right? I don't watch

01:28:28.100 --> 01:28:30.619
live streams either. You know, I don't like watching

01:28:30.619 --> 01:28:33.630
live streams. I like watching clips, so if you

01:28:33.630 --> 01:28:36.090
can make clips out of your live streams, it would

01:28:36.090 --> 01:28:40.270
be awesome as well. Yeah, I think the connect

01:28:40.270 --> 01:28:43.890
command... Yeah, okay, so that worked. The connect

01:28:43.890 --> 01:28:47.270
command has a bug in it because the tilde was

01:28:47.270 --> 01:28:50.069
there and it didn't expand it. And then it just

01:28:50.069 --> 01:28:54.029
crashed. But yeah, those three things are all

01:28:54.029 --> 01:28:56.550
kind of tied together. Can you explain connect?

01:28:56.630 --> 01:28:58.970
I didn't understand how that works. What's the

01:28:58.970 --> 01:29:02.869
purpose of connect? So instead of, whoops, I

01:29:02.869 --> 01:29:07.550
quit from the server, so it closed everything.

01:29:07.810 --> 01:29:12.449
All right, so the top one is a server and a UI

01:29:12.449 --> 01:29:17.210
running. And then, so instead of doing, instead

01:29:17.210 --> 01:29:19.770
of connecting, instead of specifying the server

01:29:19.770 --> 01:29:22.529
at the command line here, I can just start a

01:29:22.529 --> 01:29:27.489
new InVim instance and do, like, I don't know.

01:29:28.079 --> 01:29:30.159
So I'm doing stuff in here, blah, blah, blah.

01:29:30.460 --> 01:29:34.500
But now I want to throw away this instance and

01:29:34.500 --> 01:29:40.800
connect to a different server from this instance,

01:29:40.899 --> 01:29:43.739
which means there's some choices that we have

01:29:43.739 --> 01:29:46.699
to make about what we do with the current server

01:29:46.699 --> 01:29:51.319
when we do this. But it's a way of just changing

01:29:51.319 --> 01:29:54.640
the server that you are connected to from this

01:29:54.640 --> 01:29:58.359
UI. so now it will connect see it connected to

01:29:58.359 --> 01:30:02.340
the the same server the same server even when

01:30:02.340 --> 01:30:05.100
i when i move them both the movement is happening

01:30:05.100 --> 01:30:08.800
on the server both uis are showing the the same

01:30:08.800 --> 01:30:13.079
ui oh so you did connect you do it with that

01:30:13.079 --> 01:30:18.460
within an ubm instance and um to attach to an

01:30:18.460 --> 01:30:22.680
instance you do it from outside right uh through

01:30:22.680 --> 01:30:26.760
the socket I did it from within this... Well,

01:30:26.859 --> 01:30:28.739
it doesn't have a different history now because

01:30:28.739 --> 01:30:32.220
it's connected to a different server. Okay. But

01:30:32.220 --> 01:30:36.579
I did it from... This is another usability thing

01:30:36.579 --> 01:30:40.220
that I need to think about. Because if you quit,

01:30:40.399 --> 01:30:44.600
then it quits the server. You have to... Oh,

01:30:44.659 --> 01:30:46.699
you want to keep the server running, right? Yeah,

01:30:46.720 --> 01:30:48.199
if you want to keep the server running, you have

01:30:48.199 --> 01:30:56.699
to detach. Oh, okay. Makes sense. And this connect

01:30:56.699 --> 01:31:00.680
thing is not getting added to history. That's

01:31:00.680 --> 01:31:04.560
probably another bug. It should be updating the

01:31:04.560 --> 01:31:11.460
history before it does its thing. And it's not

01:31:11.460 --> 01:31:15.130
doing that right now, I think. And how do you

01:31:15.130 --> 01:31:18.149
think people could benefit out of this? Do you

01:31:18.149 --> 01:31:20.489
mind sharing some scenarios? Like a remote server

01:31:20.489 --> 01:31:22.489
could be one of them. What do you have in mind?

01:31:23.130 --> 01:31:26.750
This is a Summer of Code project that kind of

01:31:26.750 --> 01:31:33.170
only got 70 % completed. A use case for this

01:31:33.170 --> 01:31:42.449
is to avoid people having to craft a command.

01:31:43.310 --> 01:31:46.489
in the command line which is not just a usability

01:31:46.489 --> 01:31:51.010
thing but also it it opens up new applications

01:31:51.010 --> 01:31:53.710
and so so one of the applications of this is

01:31:53.710 --> 01:31:56.350
like if you want to connect like say you have

01:31:56.350 --> 01:32:00.489
a bunch of ssh servers all the connect commands

01:32:00.489 --> 01:32:04.449
can present a menu of all the all the ssh servers

01:32:04.449 --> 01:32:07.250
that it knows about and then connect to them

01:32:07.250 --> 01:32:12.020
it can connect to uh and it can also presents

01:32:12.020 --> 01:32:15.460
a menu of all the local NeoVim servers that you

01:32:15.460 --> 01:32:18.819
have running. There's one use case that I think

01:32:18.819 --> 01:32:21.420
is interesting for this. This is kind of just

01:32:21.420 --> 01:32:25.619
a minor thing, but a lot of times when you open

01:32:25.619 --> 01:32:29.520
something, when you open a file from your file

01:32:29.520 --> 01:32:34.819
manager, you want it to open in an existing instance

01:32:34.819 --> 01:32:39.579
of NeoVim. That usually feels better because

01:32:40.969 --> 01:32:43.850
If you just start fresh every time, then you

01:32:43.850 --> 01:32:46.029
don't have access to the other buffers or whatever

01:32:46.029 --> 01:32:48.250
that are open in your current instance. And so

01:32:48.250 --> 01:32:54.250
this enables that because it can just connect

01:32:54.250 --> 01:32:57.350
to the, I don't know, a first server or maybe

01:32:57.350 --> 01:33:00.130
some server with a special name. Whatever you

01:33:00.130 --> 01:33:03.069
mark as your default server, it could open the

01:33:03.069 --> 01:33:07.520
file in that server. And that will work in a

01:33:07.520 --> 01:33:10.359
terminal because it can just start a new terminal

01:33:10.359 --> 01:33:15.439
and, you know, do this kind of thing and open

01:33:15.439 --> 01:33:20.020
the file in an existing NeoVim server. Oh, that's

01:33:20.020 --> 01:33:23.380
awesome. I have a question for you. So let's

01:33:23.380 --> 01:33:26.720
say that I run NeoVim on a server, remote server,

01:33:26.960 --> 01:33:30.640
right? I run a NeoVim instance on it and I start

01:33:30.640 --> 01:33:38.020
the socket there, right? to that socket, right?

01:33:38.100 --> 01:33:41.000
I can attach to that from my, from a different

01:33:41.000 --> 01:33:45.140
location. Is that right? Yes. Okay. Now what

01:33:45.140 --> 01:33:47.340
configuration would I use? Let's say that on

01:33:47.340 --> 01:33:50.079
the server, I just installed minimal new of them

01:33:50.079 --> 01:33:52.220
because I don't have plugins there. I cannot

01:33:52.220 --> 01:33:54.340
install that. I don't want to install plugins

01:33:54.340 --> 01:33:58.199
there. And if I run it or if I attach from my

01:33:58.199 --> 01:34:01.119
local session, do I use my plugins, the ones

01:34:01.119 --> 01:34:04.199
that are, or I use whatever is installed on the

01:34:04.199 --> 01:34:08.220
remote server. um everything currently the the

01:34:08.220 --> 01:34:12.479
model is that the server everything is running

01:34:12.479 --> 01:34:15.020
in the context of the server the ui is just a

01:34:15.020 --> 01:34:19.640
thin um it's just it's only showing a view porch

01:34:19.640 --> 01:34:23.279
it's only a way of like viewing the what's happening

01:34:23.279 --> 01:34:25.600
on the server and that means all file system

01:34:25.600 --> 01:34:29.260
commands everything all all plugins and scripts

01:34:29.260 --> 01:34:33.840
all logic all mappings all input happening on

01:34:33.840 --> 01:34:42.479
the server. It could make sense to explore bifurcating

01:34:42.479 --> 01:34:46.060
that so that some things can happen in the UI,

01:34:46.439 --> 01:34:51.060
but it's something that we're deferring for now

01:34:51.060 --> 01:34:55.180
because it just introduces a lot of opportunity

01:34:55.180 --> 01:35:00.399
for new kinds of things to reason about. Because

01:35:00.399 --> 01:35:03.609
right now, The UI is not running like a full

01:35:03.609 --> 01:35:07.470
instance of NeoVim. It's only running the bare

01:35:07.470 --> 01:35:12.449
minimum parts that need to show a UI. Oh, okay.

01:35:12.649 --> 01:35:15.770
Okay. Awesome. Appreciate it. Is there something

01:35:15.770 --> 01:35:18.010
else that you want to demo? I see a lot of cool

01:35:18.010 --> 01:35:21.590
stuff there on your list. I'll demo the new progress

01:35:21.590 --> 01:35:29.829
feature. So we added... We added an extra flag

01:35:29.829 --> 01:35:36.909
to the Envim Echo API so that you can emit special

01:35:36.909 --> 01:35:39.750
messages called progress messages. And then there's

01:35:39.750 --> 01:35:43.069
more info about that here. And the interesting

01:35:43.069 --> 01:35:47.949
thing about this is that it formalizes the concept

01:35:47.949 --> 01:35:53.569
of having an ongoing task or something. And there's

01:35:53.569 --> 01:35:56.680
some message like holding the current. status

01:35:56.680 --> 01:36:02.199
of that task and the most obvious use case for

01:36:02.199 --> 01:36:04.979
this is just like showing the current percent

01:36:04.979 --> 01:36:08.100
of something that's done or showing like a busy

01:36:08.100 --> 01:36:13.539
indicator somewhere um but you know it's potentially

01:36:13.539 --> 01:36:18.979
useful as uh kind of like i don't know if semaphore

01:36:18.979 --> 01:36:22.640
is the right word but like just uh a piece of

01:36:22.640 --> 01:36:27.359
state that signals to multiple consumers about

01:36:27.359 --> 01:36:34.920
the status of a task. So that was kind of too

01:36:34.920 --> 01:36:42.220
abstract. But in terms of UI, this is obviously

01:36:42.220 --> 01:36:47.060
used a lot in LSP. LSP has the concept of a progress

01:36:47.060 --> 01:36:49.520
event. And right now, we don't really surface

01:36:49.520 --> 01:36:53.979
that. very well, but we should be showing it

01:36:53.979 --> 01:36:57.760
in the default status line, but we don't. But

01:36:57.760 --> 01:37:02.699
this opens the door for also emitting this to

01:37:02.699 --> 01:37:09.539
graphical GUIs or TUIs. And so Ghosty, which

01:37:09.539 --> 01:37:11.800
is the terminal that I'm using, it has support

01:37:11.800 --> 01:37:16.180
for this event. So now if I do this demo, which

01:37:16.180 --> 01:37:22.300
is just running my normal config, My normal config

01:37:22.300 --> 01:37:29.619
has a packed out add call, which is the built

01:37:29.619 --> 01:37:33.420
-in plugin manager. It's installing all of these

01:37:33.420 --> 01:37:39.579
plugins. And our built -in package manager emits

01:37:39.579 --> 01:37:42.579
this progress event. So now if I do the demo

01:37:42.579 --> 01:37:46.619
and I say... Yes, you can see at the top, look

01:37:46.619 --> 01:37:49.460
at the top, there's a blue bar. Oh, okay, okay.

01:37:49.680 --> 01:37:52.300
It's showing the progress. That's built into

01:37:52.300 --> 01:37:56.000
Ghosty because it supports that terminal sequence,

01:37:56.340 --> 01:38:01.340
which we automatically emit. Whenever you use

01:38:01.340 --> 01:38:06.640
this nvim echo progress feature, it automatically

01:38:06.640 --> 01:38:10.899
emits that event, and if your terminal supports

01:38:10.899 --> 01:38:15.340
this, it will show whatever. However, it decides

01:38:15.340 --> 01:38:18.300
to present progress. And by default, you can

01:38:18.300 --> 01:38:21.699
see at the bottom here, we also have our own

01:38:21.699 --> 01:38:26.039
built -in message thing that shows the progress

01:38:26.039 --> 01:38:28.119
in the way that you see at the bottom there with

01:38:28.119 --> 01:38:31.699
the 100%. So even if you don't have a supported

01:38:31.699 --> 01:38:33.539
terminal, you could see it there at the bottom,

01:38:33.640 --> 01:38:37.699
right? Yeah, and we'll probably do some more

01:38:37.699 --> 01:38:41.779
work around there, maybe in the status line or

01:38:41.779 --> 01:38:44.880
something like that. The status line is tricky

01:38:44.880 --> 01:38:47.960
because that's only a solution for anyone using

01:38:47.960 --> 01:38:50.020
the default status line, which seems to be...

01:38:50.020 --> 01:38:52.539
I might be the only person using the default

01:38:52.539 --> 01:38:55.979
status line. I don't know. There's something

01:38:55.979 --> 01:38:57.899
else cool I really want to point out, which is

01:38:57.899 --> 01:39:03.340
that Ghosty has a built -in inspector. This is

01:39:03.340 --> 01:39:06.439
a game changer. This is like Chrome DevTools

01:39:06.439 --> 01:39:09.750
for your terminal. This is going to... single

01:39:09.750 --> 01:39:12.890
-handedly like this single feature of ghosty

01:39:12.890 --> 01:39:16.069
is is going to change it's probably going to

01:39:16.069 --> 01:39:20.770
like double the amount of like it's gonna probably

01:39:20.770 --> 01:39:25.109
gonna quadruple the quality of of terminal applications

01:39:25.109 --> 01:39:28.609
and it might be maybe it'll like also increase

01:39:28.609 --> 01:39:31.689
the number of things that people are making because

01:39:31.689 --> 01:39:35.590
we just didn't have anything like this before

01:39:35.590 --> 01:39:38.750
in any terminal emulator so you can see here

01:39:39.349 --> 01:39:43.310
I can use this picker, and I can click on anything

01:39:43.310 --> 01:39:46.310
in the terminal, and then it gives me information

01:39:46.310 --> 01:39:50.470
about that cell in the terminal. And you can

01:39:50.470 --> 01:39:53.069
also see on the bottom right, it's tracking my

01:39:53.069 --> 01:39:58.590
mouse movement, which is a hint that terminals

01:39:58.590 --> 01:40:03.130
themselves have access to other info, which you

01:40:03.130 --> 01:40:05.029
already knew, because when you do a right -click

01:40:05.029 --> 01:40:07.569
on any of them, you can see that it's tracking

01:40:07.569 --> 01:40:11.399
your... your mouse movement i didn't even know

01:40:11.399 --> 01:40:15.159
that i could right click any of them yeah and

01:40:15.159 --> 01:40:18.359
this is probably because uh i mean this is the

01:40:18.359 --> 01:40:21.539
downside of distress is that they they can obfuscate

01:40:21.539 --> 01:40:24.720
like built -in features oh and how could that

01:40:24.720 --> 01:40:29.340
benefit any of them that uh ghosty what is it

01:40:29.340 --> 01:40:34.659
inspector um because it makes it lowers the cost

01:40:34.659 --> 01:40:37.409
of terminal development Terminal development

01:40:37.409 --> 01:40:41.989
up to now was kind of just imagining how things

01:40:41.989 --> 01:40:46.789
should be, reading the spec, and doing printf

01:40:46.789 --> 01:40:52.090
debugging. So now you have this kind of interactive

01:40:52.090 --> 01:40:59.130
thing. That's a big deal. I guess that's enough

01:40:59.130 --> 01:41:03.210
about Coasty. Let me see, is there anything else?

01:41:04.359 --> 01:41:08.479
That's pretty much it. Probably been quite a

01:41:08.479 --> 01:41:12.880
long time for our viewers. But I do want to mention

01:41:12.880 --> 01:41:16.840
that one of the killer features of Vim is the

01:41:16.840 --> 01:41:20.659
window management. You can do a lot of... It's

01:41:20.659 --> 01:41:23.699
more powerful than probably a lot of window managers.

01:41:24.300 --> 01:41:28.500
Linux, even. Okay, elaborate on that, please.

01:41:28.819 --> 01:41:32.140
I want to know about this. Well, I just created

01:41:32.140 --> 01:41:39.199
six windows here. I have the concept of an alternate

01:41:39.199 --> 01:41:42.899
buffer that I can easily switch to in a given

01:41:42.899 --> 01:41:47.380
window. Actually, do any window managers even

01:41:47.380 --> 01:41:51.800
have that? I wonder. Do they have a stack? Can

01:41:51.800 --> 01:41:59.039
you have a stack of views in a single window?

01:42:01.050 --> 01:42:04.489
You can break out Windows into a new tab. That's

01:42:04.489 --> 01:42:07.409
it. I think people underuse Windows. That's all

01:42:07.409 --> 01:42:11.270
I wanted to mention. Okay. Okay. Awesome. Now,

01:42:11.409 --> 01:42:14.289
what window manager do you use? Do you use any?

01:42:14.369 --> 01:42:17.810
I switched back to our screen. So thank you very

01:42:17.810 --> 01:42:20.369
much for the demo. Pretty interesting. No? I

01:42:20.369 --> 01:42:22.569
don't use window managers. I use the built -in.

01:42:23.770 --> 01:42:27.590
You can make Windows halfway like this. That's

01:42:27.590 --> 01:42:30.840
all I need, if I ever need it. Oh. At the OS

01:42:30.840 --> 01:42:34.699
level? Yeah. Oh, okay, okay. But you don't use

01:42:34.699 --> 01:42:38.760
nothing fancy on macOS, right? Just mainly in

01:42:38.760 --> 01:42:40.800
NeoVim. Do you do all your window management

01:42:40.800 --> 01:42:45.699
in NeoVim then? That's the goal. Oh, okay. If

01:42:45.699 --> 01:42:50.399
you have other GUI apps that you need to see

01:42:50.399 --> 01:42:53.239
side by side, then I would do something like

01:42:53.239 --> 01:42:55.779
this. This is the most I ever do, is just have

01:42:55.779 --> 01:42:59.979
like a half and half like this. Okay. oh i see

01:42:59.979 --> 01:43:03.659
okay yeah yeah i do that sometimes and not too

01:43:03.659 --> 01:43:07.640
much you know because because of real uh estates

01:43:07.640 --> 01:43:10.539
on the screen but sometimes it's useful yeah

01:43:10.539 --> 01:43:14.439
makes sense what is your terminal of choice i

01:43:14.439 --> 01:43:17.119
switch back to our screen i see ghosty there

01:43:17.119 --> 01:43:21.520
but i also posted in the neovim subreddit a few

01:43:21.520 --> 01:43:23.680
months ago maybe i don't remember when about

01:43:23.680 --> 01:43:27.359
the scroll back in kitty right because i can

01:43:27.359 --> 01:43:29.699
access the scroll back open it in neovim you

01:43:29.699 --> 01:43:33.020
recommended me a feature that is only available

01:43:33.020 --> 01:43:37.979
in neovim 0 .12 i'm not yet on neovim 0 .12 but

01:43:37.979 --> 01:43:40.739
how do you know about kitty did you use kitty

01:43:40.739 --> 01:43:43.699
before did you switch to ghost yeah yeah i would

01:43:43.699 --> 01:43:47.090
be using kitty if ghosty didn't exist but the

01:43:47.090 --> 01:43:50.170
terminal inspector is a killer feature i think

01:43:50.170 --> 01:43:53.449
um you know i still have kitty installed which

01:43:53.449 --> 01:43:56.890
is saying something because normally i would

01:43:56.890 --> 01:43:59.630
uninstall something that i don't like and so

01:43:59.630 --> 01:44:03.050
here's the scroll back you can see it's a it's

01:44:03.050 --> 01:44:07.289
a buffer in the oven and how are you doing that

01:44:07.289 --> 01:44:10.449
is gregory i think told me that scroll back is

01:44:10.449 --> 01:44:13.449
not something that's implemented in ghosty yet

01:44:13.449 --> 01:44:16.760
right this isn't kitty oh kitty okay okay okay

01:44:16.760 --> 01:44:21.300
now can you show me the scroll back again are

01:44:21.300 --> 01:44:24.420
you looking at it with colors yeah yeah yeah

01:44:24.420 --> 01:44:28.899
it's uh it works it works and there's a way to

01:44:28.899 --> 01:44:33.300
make it work in uh 0 .11 you just have to um

01:44:33.300 --> 01:44:38.319
if you define this command this just do what

01:44:38.729 --> 01:44:41.750
Yeah, I try to define it, but I think that nvim

01:44:41.750 --> 01:44:44.369
-open -term is not available. I don't remember

01:44:44.369 --> 01:44:47.750
what happens exactly. It is, but it might not

01:44:47.750 --> 01:44:52.149
have this feature where it works on the current

01:44:52.149 --> 01:44:56.109
buffer. I think that might be... I thought that

01:44:56.109 --> 01:44:59.550
was in 0 .11, but maybe I'm wrong. Yeah, because

01:44:59.550 --> 01:45:01.789
I tried it and it didn't work. But if you open

01:45:01.789 --> 01:45:03.989
your scroll back in Kitty, it shows it to you

01:45:03.989 --> 01:45:07.659
in colors. I missed that part. uh yeah yeah watch

01:45:07.659 --> 01:45:11.199
this so i'm going to hit my key map now to open

01:45:11.199 --> 01:45:16.560
this screen itself as scroll back and it looks

01:45:16.560 --> 01:45:20.039
like the same screen but it's not it's actually

01:45:20.039 --> 01:45:23.960
just it's scroll back and you have him awesome

01:45:23.960 --> 01:45:27.939
yeah like even this line here if i said if i

01:45:27.939 --> 01:45:30.060
set it as modifiable i can delete that line see

01:45:30.060 --> 01:45:34.380
and it it's using this is kind of interesting

01:45:34.380 --> 01:45:39.239
um Yeah, it seems like that background highlight

01:45:39.239 --> 01:45:41.500
was stuck there. That might just be a bug, I'm

01:45:41.500 --> 01:45:47.920
not sure. Okay, so you moved over to Ghosty because

01:45:47.920 --> 01:45:50.399
of the inspector and you're staying in Ghosty,

01:45:50.439 --> 01:45:57.720
correct? Yeah, just because it seems to be converging

01:45:57.720 --> 01:46:01.840
more on that idea of a maximally useful unit

01:46:01.840 --> 01:46:06.920
that gets out of my way. Giddy is pretty close

01:46:06.920 --> 01:46:15.000
to that as well, but Ghosty has some slightly

01:46:15.000 --> 01:46:18.819
better integration with Mac OS. I mean, obviously,

01:46:18.960 --> 01:46:21.479
the tabs are one thing, although I don't actually

01:46:21.479 --> 01:46:26.439
care about that, really. But they seem to be

01:46:26.439 --> 01:46:30.100
going in the direction where I expect that they

01:46:30.100 --> 01:46:34.640
will soon have the features that I want. And

01:46:34.640 --> 01:46:38.420
then it'll keep just getting better. But currently

01:46:38.420 --> 01:46:41.119
like it is missing two major things, which is

01:46:41.119 --> 01:46:46.960
one is the scroll back handling and to, um, opening

01:46:46.960 --> 01:46:51.960
files from your file manager, like your, your

01:46:51.960 --> 01:46:55.439
OS file manager. Yeah. Okay. Yep. Like you can't

01:46:55.439 --> 01:46:58.420
easily, I don't think it's even possible. I mean,

01:46:58.460 --> 01:47:02.479
I think Hashimoto claims that it is, but I asked

01:47:02.479 --> 01:47:07.149
him on, Twitter and he didn't reply. So I don't

01:47:07.149 --> 01:47:10.210
know. I could not make it work. I just want to

01:47:10.210 --> 01:47:13.329
double click on a file in a file manager and

01:47:13.329 --> 01:47:17.750
have it open in NeoVim in a new terminal tab.

01:47:18.369 --> 01:47:20.869
That's all I want. Yeah. I don't ever want to

01:47:20.869 --> 01:47:25.170
see VS Code open for a JSON file or whatever.

01:47:25.850 --> 01:47:29.409
What about Neovide? Because you can do it with

01:47:29.409 --> 01:47:32.770
Neovide at the moment. Yeah, that's true. I have

01:47:32.770 --> 01:47:38.569
Neovide, but there were some sharp edges that

01:47:38.569 --> 01:47:42.050
I kept running into with it. But I really want

01:47:42.050 --> 01:47:48.329
Neovide to work well. I'm trying to do what I

01:47:48.329 --> 01:47:52.640
can to drive the right... UI features and RPC

01:47:52.640 --> 01:47:57.319
features in Neovib to support Neovib. I want

01:47:57.319 --> 01:48:01.899
it to work well, but... Okay. But this problem

01:48:01.899 --> 01:48:04.380
will be solved with the feature that you mentioned

01:48:04.380 --> 01:48:08.100
right now, that you can open files from your

01:48:08.100 --> 01:48:12.359
editor into Neovib, right into a session or something

01:48:12.359 --> 01:48:17.430
like that. Well, that's an extra goal that requires

01:48:17.430 --> 01:48:25.909
NeoVim to solve that. But the session thing,

01:48:26.029 --> 01:48:28.649
the existing session, that's just a matter of

01:48:28.649 --> 01:48:32.229
passing the right arguments to NeoVim. But if

01:48:32.229 --> 01:48:36.050
I double -click on Zig, if I double -click on

01:48:36.050 --> 01:48:40.909
this, see, it opens in Kitty in a NeoVim instance.

01:48:40.989 --> 01:48:44.810
That's what I want. because he's not giving me

01:48:44.810 --> 01:48:49.350
this i see they they pretend that it is possible

01:48:49.350 --> 01:48:54.149
and i think they're wrong okay now now that you

01:48:54.149 --> 01:48:57.510
mentioned kitty as well i had an interview with

01:48:57.510 --> 01:49:00.750
kovid uh he's the creator of kitty i watched

01:49:00.750 --> 01:49:03.970
it oh you watched it what are your thoughts because

01:49:03.970 --> 01:49:07.010
i had a bad image and cope it to be honest uh

01:49:07.010 --> 01:49:09.659
because i don't know why you know just videos

01:49:09.659 --> 01:49:11.939
that you watch on the internet and you just follow

01:49:11.939 --> 01:49:15.520
along and and after the interview because of

01:49:15.520 --> 01:49:19.380
his uh his comments on the issue yeah yeah yeah

01:49:19.380 --> 01:49:22.939
yeah exactly because of that but he's not shy

01:49:22.939 --> 01:49:26.399
about um yeah he won't say he won't say he won't

01:49:26.399 --> 01:49:29.039
just say you're wrong but he'll say you should

01:49:29.039 --> 01:49:32.840
feel bad i don't know if that's true i i'm spreading

01:49:32.840 --> 01:49:35.859
this information but like he he's not shy about

01:49:35.859 --> 01:49:41.229
adding a little spice to uh yeah comments but

01:49:41.229 --> 01:49:44.369
if you come think about it right imagine managing

01:49:44.369 --> 01:49:47.029
caliber because that's his main job he lives

01:49:47.029 --> 01:49:50.010
off of open source caliber and it's a huge tool

01:49:50.010 --> 01:49:52.369
it's an amazing tool i haven't used it until

01:49:52.369 --> 01:49:54.989
after that interview my wife used it and she's

01:49:54.989 --> 01:49:58.050
like god damn this tool is wonderful right so

01:49:58.050 --> 01:50:00.890
imagine you maintain caliber your wife was like

01:50:00.890 --> 01:50:04.670
god damn no i'm just uh spreading misinformation

01:50:04.670 --> 01:50:07.229
like you said she didn't do it that way but imagine

01:50:07.229 --> 01:50:09.909
maintaining caliber maintaining kitty yourself

01:50:09.909 --> 01:50:13.630
right man that's a lot of work so i guess imagine

01:50:13.630 --> 01:50:17.390
a lot of issues being opened on on kitty for

01:50:17.390 --> 01:50:19.430
just i'm not the most patient person in the world

01:50:19.430 --> 01:50:26.390
i i i'm amazed that i i'm yeah no i i i have

01:50:26.390 --> 01:50:31.090
no problem with uh abrupt or blunt maintainers

01:50:31.090 --> 01:50:35.989
as long as the parameters are well understood.

01:50:36.649 --> 01:50:41.590
I don't mind being like, okay, I'm just a customer

01:50:41.590 --> 01:50:43.810
at the Soup Nazi. That's a Seinfeld reference.

01:50:44.689 --> 01:50:50.890
It's a very dated Seinfeld reference. As long

01:50:50.890 --> 01:50:53.149
as we all understand the parameters, I don't

01:50:53.149 --> 01:50:56.800
mind dealing with some abruptness. Or even some

01:50:56.800 --> 01:51:00.800
abuse, maybe. As long as my bug is getting fixed.

01:51:02.720 --> 01:51:05.300
You're willing to endure it. I don't think COVID

01:51:05.300 --> 01:51:11.260
is abusive, probably. People have some very high

01:51:11.260 --> 01:51:15.479
expectations. One of the things that a Reddit

01:51:15.479 --> 01:51:19.899
user told me was this very weird interaction

01:51:19.899 --> 01:51:27.920
years ago. There was a Reddit thread and somebody,

01:51:27.939 --> 01:51:31.380
I don't know who, posted something on Reddit.

01:51:31.779 --> 01:51:35.819
And I was enthusiastic about it. I wrote some

01:51:35.819 --> 01:51:37.899
enthusiastic comments. And then someone else

01:51:37.899 --> 01:51:42.340
popped in and said, this whole thread seems fake

01:51:42.340 --> 01:51:47.760
and astroturfed. And what are you doing this

01:51:47.760 --> 01:51:50.420
kind of marketing for? And I'm like, you're wrong.

01:51:51.289 --> 01:51:54.949
that's not what happened here i just am enthusiastic

01:51:54.949 --> 01:51:58.649
about this new feature this guy posted about

01:51:58.649 --> 01:52:01.569
it i'm explaining it i'm not making any money

01:52:01.569 --> 01:52:04.829
off of this like what are you talking about and

01:52:04.829 --> 01:52:08.210
he's like and his response was you should just

01:52:08.210 --> 01:52:10.670
be you should take this as feedback to adjust

01:52:10.670 --> 01:52:13.670
your behavior in the future because this is what

01:52:13.670 --> 01:52:18.310
i perceive as a user so my point is like people

01:52:18.310 --> 01:52:22.960
will do all kinds of backflips And they never

01:52:22.960 --> 01:52:26.420
stop asking for more. They never stop. Their

01:52:26.420 --> 01:52:30.199
expectations are through the roof there, into

01:52:30.199 --> 01:52:33.439
outer space. They think that you should put up

01:52:33.439 --> 01:52:37.079
with anything and then take it as feedback to

01:52:37.079 --> 01:52:40.600
adjust your behavior no matter what the context

01:52:40.600 --> 01:52:48.159
is. So I don't expect that. I mean, obviously,

01:52:48.439 --> 01:52:53.109
if the vibe is off, then I might stop interacting

01:52:53.109 --> 01:52:57.970
on an issue tracker or something. But I think

01:52:57.970 --> 01:53:06.210
I understand COVID. He's a technical guy. If

01:53:06.210 --> 01:53:08.489
it's all technical, then it's no problem. But

01:53:08.489 --> 01:53:11.649
I guess the point of that allegory was people

01:53:11.649 --> 01:53:17.590
don't like his bluntness. They want him to be

01:53:17.590 --> 01:53:20.899
like... constantly just gracious yeah and uh

01:53:20.899 --> 01:53:24.079
infinite patience and all that stuff yeah and

01:53:24.079 --> 01:53:26.460
and we'll get more of that like as we have like

01:53:26.460 --> 01:53:29.399
more of our ai kind of like you know once i have

01:53:29.399 --> 01:53:31.579
like an ai bot that's like representing me it's

01:53:31.579 --> 01:53:34.220
like it will be infinitely patient and then i

01:53:34.220 --> 01:53:37.359
will just have much less i'll have much less

01:53:37.359 --> 01:53:39.680
of that kind of stuff where i have to like bite

01:53:39.680 --> 01:53:42.750
my tongue and just That's a good idea. Pretend

01:53:42.750 --> 01:53:48.090
to be nice and patient with people that don't

01:53:48.090 --> 01:53:51.770
deserve it. Which is not too many people, to

01:53:51.770 --> 01:53:58.119
be honest. I mostly... for the users and their

01:53:58.119 --> 01:54:00.239
patients. There's a few folks out there that

01:54:00.239 --> 01:54:03.140
are confused on how open source works. I come

01:54:03.140 --> 01:54:05.539
to open source and I go to a project and I'm

01:54:05.539 --> 01:54:08.199
thankful mainly, you know, because of the project,

01:54:08.239 --> 01:54:10.479
because people putting their work, you know,

01:54:10.479 --> 01:54:14.500
putting their asses off on a project. for nothing

01:54:14.500 --> 01:54:17.180
in return basically no guarantees no nothing

01:54:17.180 --> 01:54:20.399
just work that they're they're doing so i don't

01:54:20.399 --> 01:54:23.479
expect them to solve my bugs you know i just

01:54:23.479 --> 01:54:27.720
go and ask kindly if someone has the time to

01:54:27.720 --> 01:54:30.739
assist or something you know but you know there's

01:54:30.739 --> 01:54:33.560
people confused out there that demand stuff from

01:54:33.560 --> 01:54:36.140
open source and you shouldn't you just take what

01:54:36.140 --> 01:54:40.000
is out there and just kindly you know ask and

01:54:40.000 --> 01:54:42.960
that's a misconception that's not something right

01:54:42.960 --> 01:54:45.520
with the community not all of the people do that

01:54:45.520 --> 01:54:48.659
but there's a lot that are confused i think is

01:54:48.659 --> 01:54:52.640
the right word i'm not sure yeah you know it's

01:54:52.640 --> 01:54:56.859
uh it's uh these things come in waves and um

01:54:56.859 --> 01:55:01.840
it varies and uh i don't think that users need

01:55:01.840 --> 01:55:04.739
to feel like you know they're not like crying

01:55:04.739 --> 01:55:08.350
at an altar you don't need to like It's fine

01:55:08.350 --> 01:55:11.590
to complain. You don't need to worry about irritating

01:55:11.590 --> 01:55:17.989
the ogres that are maintaining the project. I

01:55:17.989 --> 01:55:22.569
think the expectations can get too high where

01:55:22.569 --> 01:55:25.689
they're just expecting infinite graciousness

01:55:25.689 --> 01:55:29.930
all the time. Because, I don't know, some people

01:55:29.930 --> 01:55:32.470
actually advocate that kind of thing, especially

01:55:32.470 --> 01:55:35.449
on old Twitter. But then, you know, those people

01:55:35.449 --> 01:55:39.770
also... tend to not be around for a long time

01:55:39.770 --> 01:55:42.510
they'll have a project for like a year and they'll

01:55:42.510 --> 01:55:46.510
be like oh i i look at every issue i look at

01:55:46.510 --> 01:55:49.649
every comment as a learning opportunity okay

01:55:49.649 --> 01:55:52.609
well you're going to be doing gigabytes of learning

01:55:52.609 --> 01:55:56.449
because you don't have any you don't have any

01:55:56.449 --> 01:55:59.189
like feed you don't have any like pushback mechanism

01:55:59.189 --> 01:56:02.229
i mean okay you're gonna be drinking from the

01:56:02.229 --> 01:56:05.409
fire hose like your learning opportunities will

01:56:05.409 --> 01:56:09.369
be endless uh -huh good luck but what what they

01:56:09.369 --> 01:56:11.510
actually do is they just quietly like fade away

01:56:11.510 --> 01:56:15.069
and like the project goes dark and they but they're

01:56:15.069 --> 01:56:16.649
missing out on all these learning opportunities

01:56:16.649 --> 01:56:19.550
that they aren't answering on the issue tracker

01:56:19.550 --> 01:56:23.850
yeah yeah and strange the project goes into maintenance

01:56:23.850 --> 01:56:27.550
mode after and yeah that was it a year right

01:56:27.550 --> 01:56:30.529
but it quietly dies i miss out on learning opportunities

01:56:30.529 --> 01:56:33.649
yeah imagine maintaining huge projects for years

01:56:33.649 --> 01:56:36.909
by yourself i would be pissed too right because

01:56:36.909 --> 01:56:40.869
he does the kitty development for his own work

01:56:40.869 --> 01:56:44.100
that's his tool that he uses to work and to develop

01:56:44.100 --> 01:56:47.399
his other stuff, I guess. But I don't know. I

01:56:47.399 --> 01:56:50.380
have a lot of admiration for COVID, you know.

01:56:50.399 --> 01:56:52.520
He has created a lot of different protocols for

01:56:52.520 --> 01:56:55.800
terminals, right? The Qt Graphics protocol. He

01:56:55.800 --> 01:56:58.199
also mentioned other ones that have been adopted

01:56:58.199 --> 01:57:00.859
by NeoVim. Do you have any idea? I don't remember.

01:57:01.140 --> 01:57:03.100
The keyboard protocol. Yeah, we're using his

01:57:03.100 --> 01:57:07.260
keyboard protocol and we will be using the Qt

01:57:07.260 --> 01:57:12.340
image extension, probably. Oh, for images, okay.

01:57:12.560 --> 01:57:16.840
He's also working on the variable font size protocol.

01:57:17.180 --> 01:57:20.560
Have you seen that? Yeah, we'll probably be doing

01:57:20.560 --> 01:57:23.979
that too, yeah. So turning NeoVim into Emacs

01:57:23.979 --> 01:57:27.359
then, pretty much. Well, it needs to stay fast.

01:57:27.880 --> 01:57:31.399
Emacs has struggled with performance. One of

01:57:31.399 --> 01:57:34.300
the reasons was because it has variable font

01:57:34.300 --> 01:57:39.520
height and width, which means there's no grid.

01:57:40.079 --> 01:57:44.079
There's no grid. The grid is more like, I don't

01:57:44.079 --> 01:57:52.739
know, bubbles. Bubble wrap. But that makes the

01:57:52.739 --> 01:57:57.000
line wrap calculations very slow because every

01:57:57.000 --> 01:58:00.420
character can have a different width and height.

01:58:01.079 --> 01:58:06.020
But we probably will only support variable height.

01:58:07.300 --> 01:58:09.779
Supporting variable height shouldn't be... That

01:58:09.779 --> 01:58:12.520
shouldn't hurt performance. Okay, okay, makes

01:58:12.520 --> 01:58:15.020
sense. We've been here for a long time, Justin.

01:58:15.079 --> 01:58:18.039
How much time do you have left? I've been standing

01:58:18.039 --> 01:58:22.640
for two hours and a half of your Sunday. Yeah,

01:58:22.720 --> 01:58:28.640
I don't know. It's more like I have maybe 10

01:58:28.640 --> 01:58:32.050
more minutes, 15 minutes. Okay, okay. Let me

01:58:32.050 --> 01:58:35.609
see what other topics I have here. No, we don't

01:58:35.609 --> 01:58:38.550
have any other super chats at the moment. Let

01:58:38.550 --> 01:58:41.689
me see what other questions I want to ask you.

01:58:42.250 --> 01:58:47.010
Linux, we touched on that. Terminals. Okay, now,

01:58:47.149 --> 01:58:51.350
when NeoVim 0 .12 comes out, when is that happening?

01:58:51.630 --> 01:58:56.930
Do you have any idea? We're aiming for... Well,

01:58:56.970 --> 01:59:01.359
the tentative date was a month. uh december but

01:59:01.359 --> 01:59:04.119
um yeah i don't know if we're gonna hit that

01:59:04.119 --> 01:59:08.859
but this is one of the things that i'm going

01:59:08.859 --> 01:59:12.199
to spend time on next year early next year is

01:59:12.199 --> 01:59:17.239
uh putting into place a few missing kind of like

01:59:17.239 --> 01:59:22.760
project mechanisms for allowing us to to release

01:59:22.760 --> 01:59:25.939
more often the problem is that we don't have

01:59:26.720 --> 01:59:31.899
For some of our interfaces, like say the UI protocol,

01:59:32.279 --> 01:59:36.020
we don't really have clear mechanisms for marking

01:59:36.020 --> 01:59:39.600
those as experimental. People use them, they

01:59:39.600 --> 01:59:43.100
get dependent on them, they get sad if they break,

01:59:43.260 --> 01:59:46.880
and that just kind of adds to the impression

01:59:46.880 --> 01:59:52.979
of chaos. So we need to kind of have a more coherent

01:59:52.979 --> 01:59:56.510
story around avoiding that impression of chaos

01:59:56.510 --> 02:00:00.609
while also being able to release like much more

02:00:00.609 --> 02:00:03.529
often because like this sort of twice a year

02:00:03.529 --> 02:00:06.449
or once a year release thing it actually slows

02:00:06.449 --> 02:00:10.750
everyone down like we have some amazing features

02:00:10.750 --> 02:00:14.390
that probably should be released by now but they

02:00:14.390 --> 02:00:18.670
aren't because there's high risk stuff that still

02:00:18.670 --> 02:00:23.409
hasn't been uh finalized um in other parts uh

02:00:23.409 --> 02:00:30.899
of the system yeah okay okay and um when that

02:00:30.899 --> 02:00:32.840
comes around i don't know if you would like to

02:00:32.840 --> 02:00:35.600
have like a call with maria solano and gregory

02:00:35.600 --> 02:00:39.039
anders and you just show off neovim 0 .12 features

02:00:39.039 --> 02:00:42.899
each one of you sharing with the community and

02:00:42.899 --> 02:00:44.939
all that stuff would be awesome if you if you

02:00:44.939 --> 02:00:47.619
guys want to do that i talked to maria she said

02:00:47.619 --> 02:00:50.380
she's all right i'll talk to greg and see what

02:00:50.380 --> 02:00:53.229
he says if you're good you know Awesome idea.

02:00:53.550 --> 02:00:57.869
Okay. Now, moving on to other topics, the final

02:00:57.869 --> 02:00:59.649
topics, just to get to know you a little bit

02:00:59.649 --> 02:01:02.989
better. Do you have any thoughts on, this might

02:01:02.989 --> 02:01:04.489
be a little bit controversial. You don't have

02:01:04.489 --> 02:01:05.970
to answer if you don't want to, but do you have

02:01:05.970 --> 02:01:10.369
any thoughts on substance, not abuse? Could we

02:01:10.369 --> 02:01:13.130
say abuse? I did a lot of substance abuse in

02:01:13.130 --> 02:01:16.689
the past, you know, a long time ago. But do you

02:01:16.689 --> 02:01:19.670
have any thoughts on drugs, substance consumption,

02:01:19.869 --> 02:01:22.420
we could say? Do you recommend it? Are you in

02:01:22.420 --> 02:01:25.060
favor? Are you against? You don't want to answer?

02:01:25.520 --> 02:01:30.659
I don't really have any... I have some high -minded

02:01:30.659 --> 02:01:37.720
philosophical thoughts on it. I think when I

02:01:37.720 --> 02:01:41.359
see people on fentanyl on the street, I think

02:01:41.359 --> 02:01:44.640
they're probably trying to exit the matrix. I

02:01:44.640 --> 02:01:52.329
think a lot of us... Life is very weird. Probably

02:01:52.329 --> 02:01:55.590
one of those things that rarely ever gets revisited.

02:01:55.590 --> 02:02:01.130
Speaking of yearly OP1s and revisiting the path

02:02:01.130 --> 02:02:05.810
that you're on, very few people learn pretty

02:02:05.810 --> 02:02:08.970
early on in their life to stop asking where the

02:02:08.970 --> 02:02:11.949
universe came from. Because that's just an overwhelming

02:02:11.949 --> 02:02:15.529
thought. And so you have scientists saying, well,

02:02:15.550 --> 02:02:18.569
it came from the Big Bang. yeah that's fine but

02:02:18.569 --> 02:02:23.510
like that still doesn't explain anything really

02:02:23.510 --> 02:02:28.989
like yeah meanwhile life can get very overwhelming

02:02:28.989 --> 02:02:35.210
and probably especially maybe in these times

02:02:35.210 --> 02:02:39.529
i don't know that that that might i think i think

02:02:39.529 --> 02:02:42.310
everyone thinks the time there's probably more

02:02:42.310 --> 02:02:47.920
periods of history than not where you know it's

02:02:47.920 --> 02:02:53.079
the notion that that's a particularly um difficult

02:02:53.079 --> 02:02:58.619
period to live in and before it's probably that's

02:02:58.619 --> 02:03:01.500
probably a pretty common thing to say like in

02:03:01.500 --> 02:03:04.060
every almost every period like i think there's

02:03:04.060 --> 02:03:06.140
been some tranquil periods where maybe people

02:03:06.140 --> 02:03:09.140
realized it was a pretty nice period of time

02:03:09.140 --> 02:03:12.359
to be living in but then like so i don't know

02:03:12.359 --> 02:03:17.260
it's hard to say if this is any more challenging

02:03:17.260 --> 02:03:21.359
of a century than the previous centuries. But

02:03:21.359 --> 02:03:26.460
I think for sure, humanity, humans in general,

02:03:26.539 --> 02:03:29.680
are more ironic than they ever have been, for

02:03:29.680 --> 02:03:32.020
sure. You can tell this just by the types of

02:03:32.020 --> 02:03:36.340
humor that are in sitcoms or television shows.

02:03:36.779 --> 02:03:42.439
It's very subtle now. Or a movie like Inception

02:03:42.439 --> 02:03:47.420
or Severance. this tv show like people in 1900

02:03:47.420 --> 02:03:51.399
would not have even like understood that because

02:03:51.399 --> 02:03:54.600
they hadn't they hadn't ramped up on they hadn't

02:03:54.600 --> 02:03:58.720
been like sort of like acclimated like like gradually

02:03:58.720 --> 02:04:01.619
throughout life to like all these kind of like

02:04:01.619 --> 02:04:06.180
ironic concepts um so that it that that makes

02:04:06.180 --> 02:04:09.699
the case for like this being a different period

02:04:09.699 --> 02:04:13.130
of time where maybe uh Substance abuse seems

02:04:13.130 --> 02:04:16.949
more attractive than normal. Because I get the

02:04:16.949 --> 02:04:21.430
impression that Oscar Wilde was just like, I

02:04:21.430 --> 02:04:23.170
don't think he was doing opium because he was

02:04:23.170 --> 02:04:26.590
depressed. I think it was just a nice, a fun

02:04:26.590 --> 02:04:30.329
thing to do, like drinking or something. I mean,

02:04:30.369 --> 02:04:33.789
I think he probably went overboard and probably

02:04:33.789 --> 02:04:37.350
started to have some issues there and noticed

02:04:37.350 --> 02:04:40.760
that his finances were running low. But, yeah,

02:04:40.920 --> 02:04:43.939
I think I have a feeling that people were doing,

02:04:44.079 --> 02:04:47.640
although you do hear about alcoholics like ages

02:04:47.640 --> 02:04:51.000
ago, but were they doing it because they were

02:04:51.000 --> 02:04:55.279
upset about like the state of the world or like

02:04:55.279 --> 02:04:57.300
they had failed in life or something? Or were

02:04:57.300 --> 02:05:00.560
they just they just accidentally have too much

02:05:00.560 --> 02:05:04.439
fun and it became a habit? That happened to me

02:05:04.439 --> 02:05:07.460
the latter, you know, was having too much fun

02:05:07.460 --> 02:05:11.430
became a habit. destroyed me and i was able to

02:05:11.430 --> 02:05:14.810
get out of it but uh not everyone does but uh

02:05:14.810 --> 02:05:18.369
yeah go on sorry yeah i had a thought about um

02:05:18.369 --> 02:05:23.390
this recently too about like um if you go to

02:05:23.390 --> 02:05:26.369
rehab and then you come back i wonder if it's

02:05:26.369 --> 02:05:28.369
i wonder if this happens also if like you go

02:05:28.369 --> 02:05:30.909
to prison you come back assuming you don't have

02:05:30.909 --> 02:05:34.789
like crushing debt or something or legal problems

02:05:34.789 --> 02:05:38.720
putting those aside the world expects nothing

02:05:38.720 --> 02:05:42.380
of you assuming that is it a state where the

02:05:42.380 --> 02:05:44.060
world expects nothing of you and that actually

02:05:44.060 --> 02:05:47.380
is kind of like a freeing freeing in it like

02:05:47.380 --> 02:05:51.039
a lightness of being allows you to start over

02:05:51.039 --> 02:05:54.760
i'm wondering if that's the case for that kind

02:05:54.760 --> 02:05:58.960
of situation because i i feel like i i would

02:05:58.960 --> 02:06:00.699
love it if the world had like no expectations

02:06:00.699 --> 02:06:05.640
of me you know and maybe that's one way to get

02:06:05.640 --> 02:06:09.140
there is to just like go Down to the depth, but

02:06:09.140 --> 02:06:13.819
also to reset. The footnote is that you got to

02:06:13.819 --> 02:06:17.399
make it up to the bottom. To reset the expectations,

02:06:17.539 --> 02:06:19.800
right? So you go down to the bottom. Is that

02:06:19.800 --> 02:06:22.140
the only way to get people off your back? Like

02:06:22.140 --> 02:06:27.359
stop with all the expectations. That's a good

02:06:27.359 --> 02:06:29.880
point. That's a really good point. We have Sybil

02:06:29.880 --> 02:06:32.520
and Franklin in chat. Have you seen this guy?

02:06:32.899 --> 02:06:36.960
Yeah, I like his channel a lot. Oh yeah? You've

02:06:36.960 --> 02:06:40.439
seen him? He's also a philosophical guy. Yeah.

02:06:41.039 --> 02:06:44.479
He's into Adderall. He's not into Adderall. Apparently,

02:06:44.659 --> 02:06:47.800
he's not in the last few videos, Sylvan. Are

02:06:47.800 --> 02:06:51.000
you still into it or not? Or you haven't decided

02:06:51.000 --> 02:06:53.819
yet? We had a live stream. Let me tell you about

02:06:53.819 --> 02:06:56.579
this. We had a live stream planned. We joined,

02:06:56.600 --> 02:06:58.920
all of us, and he never joined. And I was like,

02:06:59.039 --> 02:07:02.600
Sylvan, are you joining? He never joined. That

02:07:02.600 --> 02:07:05.300
was the day he stopped the Adderall. Yeah, man.

02:07:06.010 --> 02:07:09.630
Crazy, crazy. So we have two super chats. Emma,

02:07:09.750 --> 02:07:12.550
I'm a user. Hello, thanks for all the amazing

02:07:12.550 --> 02:07:15.550
work. I just joined in. So excuse if this was

02:07:15.550 --> 02:07:19.390
already asked. What are the plans for Multicursor,

02:07:19.470 --> 02:07:24.250
Dustin? The plan for Multicursor is I made a

02:07:24.250 --> 02:07:29.250
solemn blood oath to deliver it before the end

02:07:29.250 --> 02:07:33.750
of this year. So I'm going to merge something

02:07:33.750 --> 02:07:37.300
before the end of this year. it'll be we have

02:07:37.300 --> 02:07:40.039
big old experimental label on it so they get

02:07:40.039 --> 02:07:42.659
off your back pretty much basically right well

02:07:42.659 --> 02:07:47.619
also i made a i made a a blood of i can't oh

02:07:47.619 --> 02:07:54.180
you cannot okay i see okay and sylvan saying

02:07:54.180 --> 02:07:56.300
here i love to see this guy getting to express

02:07:56.300 --> 02:07:59.159
his ideas in front of more people doing doing

02:07:59.159 --> 02:08:01.800
good work both of you appreciate the donations

02:08:01.800 --> 02:08:06.710
uh guys no more adderall he says And he got put

02:08:06.710 --> 02:08:09.829
on a psych ward that day. So that's why he didn't

02:08:09.829 --> 02:08:13.210
join the live stream because he was put on a

02:08:13.210 --> 02:08:17.090
psych ward to Arkham City. I joke with him. That's

02:08:17.090 --> 02:08:19.930
an acceptable excuse. Yeah, it is. So I forgave

02:08:19.930 --> 02:08:24.109
him because of that. And I also wanted to ask

02:08:24.109 --> 02:08:26.489
you as well, Justin, last question, because I

02:08:26.489 --> 02:08:28.449
know you've got to run. Do you have any thoughts

02:08:28.449 --> 02:08:32.090
on a supreme being? What are your thoughts on,

02:08:32.090 --> 02:08:34.609
you know? on that. Do you think there's something

02:08:34.609 --> 02:08:38.189
out there with a different shape? I don't know.

02:08:39.189 --> 02:08:42.770
Or there's just Niovim out there. Niovim is the

02:08:42.770 --> 02:08:46.109
god, or the terminal is the god. Niovim is the

02:08:46.109 --> 02:08:55.050
firmament, I think. I mostly have a cop -out

02:08:55.050 --> 02:08:58.619
answer to this because It's too political. It's

02:08:58.619 --> 02:09:02.159
an unsolvable problem. It's just an unsolvable

02:09:02.159 --> 02:09:06.079
problem. And also the answers are mostly unsatisfying.

02:09:06.119 --> 02:09:12.619
I do think the last 20 years have done a good

02:09:12.619 --> 02:09:15.359
job of demonstrating that people need rituals

02:09:15.359 --> 02:09:19.600
of some kind. People need rituals and like scriptures

02:09:19.600 --> 02:09:25.699
or hymns or I don't know, shared something or

02:09:25.699 --> 02:09:29.899
other. um they need uh they need some sort of

02:09:29.899 --> 02:09:34.680
religion um but like regarding god specifically

02:09:34.680 --> 02:09:37.699
like everyone always ends up like choosing some

02:09:37.699 --> 02:09:39.859
sort of religion it's just that it's either like

02:09:39.859 --> 02:09:42.600
an ad hoc like cobbled together sort of like

02:09:42.600 --> 02:09:46.659
you know uh grab bag of ideas which is probably

02:09:46.659 --> 02:09:51.859
where i currently am at or it's uh something

02:09:51.859 --> 02:09:57.819
that has uh that that benefits of the lindy effect

02:09:57.819 --> 02:10:02.399
it's survived over time and um it mostly works

02:10:02.399 --> 02:10:05.800
good enough and it and it has shaken out most

02:10:05.800 --> 02:10:09.439
of its bugs and and there might be you know it

02:10:09.439 --> 02:10:11.979
might have a lot of bugs but they're not like

02:10:11.979 --> 02:10:17.560
fatal bugs um and whereas the you know any kind

02:10:17.560 --> 02:10:19.840
of ad hoc religion that you come up with is probably

02:10:19.840 --> 02:10:22.300
going to have uh it has it who knows how many

02:10:22.300 --> 02:10:25.409
different fatal bugs and it's you don't really

02:10:25.409 --> 02:10:28.770
know because it hasn't uh hasn't been uh washed

02:10:28.770 --> 02:10:32.550
through the the pebbles of time but regarding

02:10:32.550 --> 02:10:35.409
god specifically it's partly a definitional question

02:10:35.409 --> 02:10:37.430
like because when people talk about the big bang

02:10:37.430 --> 02:10:39.850
well they're still talking about something that

02:10:39.850 --> 02:10:43.710
is essentially paranormal or supernatural like

02:10:43.710 --> 02:10:46.850
it's not something you can reason about not something

02:10:46.850 --> 02:10:51.449
you can imagine um And then when people talk

02:10:51.449 --> 02:10:54.050
about, oh, we live in a simulation, it's like

02:10:54.050 --> 02:10:58.050
the most NPC opinion you can have, because you're

02:10:58.050 --> 02:11:02.550
essentially saying that there is also a god above

02:11:02.550 --> 02:11:07.529
the simulation that created the simulation. Such

02:11:07.529 --> 02:11:10.109
an NPC opinion. I want to make it very clear.

02:11:10.250 --> 02:11:14.210
If you say that, you're an NPC. You're literally

02:11:14.210 --> 02:11:17.689
like a shopkeeper saying, welcome to my shop.

02:11:19.500 --> 02:11:23.699
like a video game that uh like you're in like

02:11:23.699 --> 02:11:26.859
the fourth sequel of a video game uh you need

02:11:26.859 --> 02:11:32.140
to hit rock bottom to believe there's a god uh

02:11:32.140 --> 02:11:34.960
there's people that don't hit hit rock bottom

02:11:34.960 --> 02:11:37.000
right they just believe in god because they were

02:11:37.000 --> 02:11:42.500
told that way but uh you think that's a big factor

02:11:42.500 --> 02:11:46.680
into making people think there's something out

02:11:46.680 --> 02:11:48.890
there I think having near -death experiences

02:11:48.890 --> 02:11:54.430
is helpful for getting some relationship with

02:11:54.430 --> 02:12:00.470
God. Yeah, but Christopher Hitchens was pretty

02:12:00.470 --> 02:12:06.409
famously stalwart. Even on his deathbed, he was

02:12:06.409 --> 02:12:11.970
an unwaveringly atheist. A pretty smart and thoughtful

02:12:11.970 --> 02:12:14.869
guy. I bet if he had stuck around another 10

02:12:14.869 --> 02:12:18.729
years, then... I wonder if his opinion would

02:12:18.729 --> 02:12:22.630
have changed. There's a lot of good discussion

02:12:22.630 --> 02:12:26.210
going on in the world. Some new ideas. Every

02:12:26.210 --> 02:12:28.869
now and then I used to think that there weren't

02:12:28.869 --> 02:12:31.590
any new ideas, but I'm seeing some pretty interesting

02:12:31.590 --> 02:12:36.029
ideas still. And I don't think they'll stop.

02:12:36.449 --> 02:12:39.909
Yeah, okay. Now, final. No, this is the final,

02:12:39.949 --> 02:12:42.180
final one. Are there two movies that you want

02:12:42.180 --> 02:12:44.039
to recommend? What are your two favorite movies?

02:12:44.239 --> 02:12:47.279
Which ones would you say? Do you have any in

02:12:47.279 --> 02:12:50.319
mind? I like Blade Runner. I don't know if that's

02:12:50.319 --> 02:12:56.819
an NPC answer, but that movie speaks to me. Blade

02:12:56.819 --> 02:13:01.880
Runner. Yeah, Blade Runner. Let's see, this one?

02:13:02.039 --> 02:13:05.989
The original, the sequel is horrible. And the

02:13:05.989 --> 02:13:09.090
sequel was very, we got good reviews from the

02:13:09.090 --> 02:13:11.369
audience. Oh, this one. Those people are wrong.

02:13:12.090 --> 02:13:15.850
1982? Yeah, yeah. I haven't watched it. Okay,

02:13:16.010 --> 02:13:19.390
but good to know. Keep it in mind. Yeah. That

02:13:19.390 --> 02:13:22.710
one actually kind of touches on a lot of the

02:13:22.710 --> 02:13:25.829
current sort of epistemological questions of

02:13:25.829 --> 02:13:30.470
AI and the nature of consciousness and humanity

02:13:30.470 --> 02:13:34.720
and all that stuff. Yeah, I don't watch many

02:13:34.720 --> 02:13:38.340
movies these days, but that's the first one that

02:13:38.340 --> 02:13:41.199
popped into my mind. Okay. Know any other one

02:13:41.199 --> 02:13:46.340
that comes to mind then? Apocalypse Now. Apocalypse

02:13:46.340 --> 02:13:50.500
Now. I've heard about that one. Hold on. Let

02:13:50.500 --> 02:13:54.880
me see. Oh, okay. The guy, Dina, recommended

02:13:54.880 --> 02:13:57.909
this. I actually... Because this is the father

02:13:57.909 --> 02:14:01.050
of Charlie Sheen, right? This guy, the one that

02:14:01.050 --> 02:14:04.529
produced it. And he acts on that movie, right?

02:14:04.630 --> 02:14:07.109
Did you watch Benny Chance, the Charlie Sheen's

02:14:07.109 --> 02:14:12.989
documentary on Netflix? No? No. He talked about

02:14:12.989 --> 02:14:16.590
this movie and that he was there when his father

02:14:16.590 --> 02:14:19.590
was doing it and all that stuff. Yeah, but Dina,

02:14:19.829 --> 02:14:23.590
the Ovi Wright guy, also recommended this movie.

02:14:23.930 --> 02:14:27.199
I think I'll have to watch it. Yeah. I'm also

02:14:27.199 --> 02:14:31.819
a big fan of the book. I have a draft of a screenplay

02:14:31.819 --> 02:14:38.460
that's kind of like an adaptation of the book

02:14:38.460 --> 02:14:44.180
to Afghanistan, the Afghanistan war. I'm amazed

02:14:44.180 --> 02:14:47.039
that no one has made this yet. It's such an obvious

02:14:47.039 --> 02:14:51.260
this needs to be made. The Afghanistan war is

02:14:51.260 --> 02:14:54.069
like... It's like the Vietnam War on steroids.

02:14:54.689 --> 02:15:03.229
On steroids. In all the wrong ways. We need Chuck

02:15:03.229 --> 02:15:09.869
Norris there, right? It's not really a humorous

02:15:09.869 --> 02:15:18.810
movie. Any final thoughts? Oh, just, man, I keep

02:15:18.810 --> 02:15:21.369
saying final, final, final. No, but. what is

02:15:21.369 --> 02:15:24.609
the best way to support new vim is it through

02:15:24.609 --> 02:15:27.729
hold on my microphone is acting up is it through

02:15:27.729 --> 02:15:32.090
donations or what is the best way to monetarily

02:15:32.090 --> 02:15:37.250
support new vim yeah the the donations go 100

02:15:37.250 --> 02:15:42.850
to development work we don't use it for made

02:15:42.850 --> 02:15:46.149
up administrative costs or anything like that

02:15:46.149 --> 02:15:51.090
i mean When someone can work on it full -time,

02:15:51.250 --> 02:15:55.569
we pay them from the donations to work on Neovent

02:15:55.569 --> 02:15:59.710
full -time, and one of the outcomes of that is

02:15:59.710 --> 02:16:06.409
what I call UI2, or it's also called the re -implementation

02:16:06.409 --> 02:16:09.229
of the messaging interface, which I forgot to

02:16:09.229 --> 02:16:14.770
demo in Neovent 0 .12. A contributor named Luke,

02:16:14.930 --> 02:16:18.560
L -U -U -K, worked on that. and so that was one

02:16:18.560 --> 02:16:21.840
use of the donations but uh it's gone to many

02:16:21.840 --> 02:16:25.760
other purposes and uh yeah but being able to

02:16:25.760 --> 02:16:29.100
do deep work gets good results and you can't

02:16:29.100 --> 02:16:30.659
you can't always do these things on nights and

02:16:30.659 --> 02:16:33.020
weekends especially the the really deep things

02:16:33.020 --> 02:16:36.379
and that was a deep change and where should people

02:16:36.379 --> 02:16:39.860
go to donate like to the github page or what's

02:16:39.860 --> 02:16:43.059
the best where's the best place they all redirect

02:16:43.059 --> 02:16:46.299
the same thing so if you go to neoflim .io then

02:16:47.069 --> 02:16:51.149
You can click on, I think... Let me go here.

02:16:51.610 --> 02:16:55.409
Well, the footer on the front page has a link

02:16:55.409 --> 02:16:58.870
to our sponsors, but actually we need to do a

02:16:58.870 --> 02:17:04.469
better job of, I think, linking to it. So here

02:17:04.469 --> 02:17:07.329
in sponsors, right? Yeah, if you click on that

02:17:07.329 --> 02:17:12.549
campaign link, it goes to that. So this is one

02:17:12.549 --> 02:17:15.989
way. This goes to our Open Collective account.

02:17:16.729 --> 02:17:19.850
okay you can also just go directly to open collective

02:17:19.850 --> 02:17:23.510
but a while ago github was matching donations

02:17:23.510 --> 02:17:25.389
i don't know if they do that anymore they probably

02:17:25.389 --> 02:17:32.930
don't okay okay any thoughts on corporate sponsorship

02:17:32.930 --> 02:17:36.190
like would it benefit new of them let's say that

02:17:36.190 --> 02:17:40.850
a big company would say hey um There's this amount

02:17:40.850 --> 02:17:43.549
of money that we would like you to have just

02:17:43.549 --> 02:17:45.989
for supporting Neovim so you can create new features.

02:17:46.250 --> 02:17:50.170
What are your thoughts on corporate sponsorships?

02:17:50.170 --> 02:17:53.989
Are they eyes that you don't want to get into?

02:17:54.069 --> 02:17:55.709
You don't care? Do you have any thoughts on that?

02:17:55.870 --> 02:17:57.870
Would it be nice? Yeah, I mean, it depends on

02:17:57.870 --> 02:18:01.389
the arrangement, but we do have corporate sponsors.

02:18:01.530 --> 02:18:06.049
Meta gave us $10 ,000 two years in a row. That's

02:18:06.049 --> 02:18:10.159
very appreciated. And also our sponsors. on our

02:18:10.159 --> 02:18:14.079
homepage. Um, I guess they count as corporate

02:18:14.079 --> 02:18:15.680
sponsors, although I think they're more like

02:18:15.680 --> 02:18:20.579
startups, but, uh, I think we would be eager

02:18:20.579 --> 02:18:23.620
to consider something like that unless, you know,

02:18:23.620 --> 02:18:26.420
there were some weird terms and conditions, but

02:18:26.420 --> 02:18:29.799
I don't know. Everyone has a price. And ultimately

02:18:29.799 --> 02:18:33.540
the only thing like, as long as what comes out

02:18:33.540 --> 02:18:38.350
of it is like open source code that makes neovim

02:18:38.350 --> 02:18:41.729
more useful i i don't think it would be bad like

02:18:41.729 --> 02:18:45.670
unless they asked us to add telemetry or or something

02:18:45.670 --> 02:18:50.850
like inside of neovim like we we for example

02:18:50.850 --> 02:18:54.110
have the work terminal the work terminal that

02:18:54.110 --> 02:18:58.110
require you to sign in yeah we have rejected

02:18:58.110 --> 02:19:03.209
offers to add logos to our readme just because

02:19:03.209 --> 02:19:06.819
it makes the readme look cringe We don't want

02:19:06.819 --> 02:19:11.520
our readme to look cringe. So we do that on our

02:19:11.520 --> 02:19:14.680
website where it doesn't look cringe. It looks

02:19:14.680 --> 02:19:19.500
sweet. So we do it there. But we don't put it

02:19:19.500 --> 02:19:22.399
on our readme that's pretty just tacky when people

02:19:22.399 --> 02:19:26.540
do that. We don't do that. So we also would not

02:19:26.540 --> 02:19:31.520
do ads inside of NeoVim unless it's like... a

02:19:31.520 --> 02:19:34.979
lot of money then maybe but like i don't think

02:19:34.979 --> 02:19:38.180
i don't think the ad space in neovim is worth

02:19:38.180 --> 02:19:42.239
10 million or 100 million dollars to anybody

02:19:42.239 --> 02:19:45.700
so i don't think there's a risk of that but like

02:19:45.700 --> 02:19:48.860
but consider like imagine that that did happen

02:19:48.860 --> 02:19:53.200
as a user hold on a second that means we can

02:19:53.200 --> 02:19:56.440
now fund like 10 full -time developers like we

02:19:56.440 --> 02:19:58.420
could just take the whole core team and say guys

02:19:58.420 --> 02:20:01.649
we're gonna work on neovim for like A few years,

02:20:01.770 --> 02:20:03.649
just like full -time. Doesn't that sound good?

02:20:03.770 --> 02:20:06.389
It sounds pretty good. I don't have a good result.

02:20:06.549 --> 02:20:09.430
And yes, we have to show a little ad on the intro

02:20:09.430 --> 02:20:11.430
page. That sounds like a good trade -off to me.

02:20:11.610 --> 02:20:13.909
As long as it's not like a pop -up that pops

02:20:13.909 --> 02:20:18.809
up when you're editing your config or something.

02:20:19.290 --> 02:20:22.090
Now, let me ask you a question. Would you like

02:20:22.090 --> 02:20:24.629
to have the ability to stop working at Amazon?

02:20:24.729 --> 02:20:27.309
I hope your employer doesn't watch this and that

02:20:27.309 --> 02:20:29.680
they don't care. Would you like to have the ability

02:20:29.680 --> 02:20:32.379
to stop working there and dedicate full -time

02:20:32.379 --> 02:20:34.000
to Neovim? Yes, I hope they are watching this.

02:20:34.219 --> 02:20:39.719
Give me a layoff. Give me a severance offer and

02:20:39.719 --> 02:20:43.340
I will take it. I'm tired of it. So would you

02:20:43.340 --> 02:20:46.200
like to dedicate full -time to Neovim if open

02:20:46.200 --> 02:20:49.059
source was different? If people actually supported

02:20:49.059 --> 02:20:52.540
open source projects, would you like to live

02:20:52.540 --> 02:20:57.719
off of open source if possible? There's like,

02:20:58.040 --> 02:21:02.540
there are like certain things I want to accomplish

02:21:02.540 --> 02:21:06.739
with it. And I would take, you know, some part

02:21:06.739 --> 02:21:10.780
of a year out of my life to try to get these

02:21:10.780 --> 02:21:14.899
things over the fence and then see where it goes

02:21:14.899 --> 02:21:17.559
from there. Something that I have not done a

02:21:17.559 --> 02:21:22.879
good enough job on is like finding kind of more

02:21:22.879 --> 02:21:26.100
ways to fund the project, like maybe through,

02:21:26.699 --> 02:21:29.979
I don't know, having like an official taxable

02:21:29.979 --> 02:21:32.420
entity or something like that. That requires

02:21:32.420 --> 02:21:35.440
lawyers and it requires paperwork. And it's just

02:21:35.440 --> 02:21:38.680
something I haven't done. That's a miss from

02:21:38.680 --> 02:21:42.860
me. Okay. As they would say at Amazon. Okay.

02:21:43.059 --> 02:21:45.579
Hey, Justin, really appreciate all your time.

02:21:45.639 --> 02:21:48.040
And we've been here for three hours. Just the

02:21:48.040 --> 02:21:49.899
last thing that I want to say, just want to thank

02:21:49.899 --> 02:21:52.719
the CEO because I have. People that support me

02:21:52.719 --> 02:21:56.100
as well that subscribe to my memberships. There's

02:21:56.100 --> 02:21:59.299
a guy that pays $50 a month. I'm ripping him

02:21:59.299 --> 02:22:01.819
off. I feel like I'm like, I don't deserve it,

02:22:01.879 --> 02:22:05.100
but he still does it. It's web23 .com. Appreciate

02:22:05.100 --> 02:22:08.239
it. All of the other members. Thanks to you,

02:22:08.299 --> 02:22:12.180
Justin, for your time, man. Really, really appreciate

02:22:12.180 --> 02:22:15.000
it. I'm going to edit this video. And I'm going

02:22:15.000 --> 02:22:18.479
to post it. This is going to go unlisted now,

02:22:18.559 --> 02:22:20.840
so people won't be able to watch it. There are

02:22:20.840 --> 02:22:23.379
some folks going to come and say, oh, and it's

02:22:23.379 --> 02:22:26.579
now behind the paywall. And no, man, I'm just

02:22:26.579 --> 02:22:29.639
going to unlist it and I'm going to edit it.

02:22:29.680 --> 02:22:32.500
And then I'm going to post it probably this coming

02:22:32.500 --> 02:22:36.000
Friday, today, Sunday. Yeah, Friday is live.

02:22:36.569 --> 02:22:39.170
work and all that stuff gets in the way so by

02:22:39.170 --> 02:22:42.010
friday i'll have it posted it's gonna be available

02:22:42.010 --> 02:22:45.049
as a podcast as well in spotify and all those

02:22:45.049 --> 02:22:48.250
things so really appreciate it any final words

02:22:48.250 --> 02:22:51.709
no thank you for having me and uh thank you to

02:22:51.709 --> 02:22:55.989
everyone who watched and sponsored this video

02:22:55.989 --> 02:22:59.329
appreciate it thanks chat thanks justin see you

02:22:59.329 --> 02:23:00.629
bye -bye bye
