WEBVTT

00:00:00.000 --> 00:00:02.100
If you're listening to this as a podcast, remember

00:00:02.100 --> 00:00:04.679
that it was originally recorded as a video. If

00:00:04.679 --> 00:00:06.120
you're not following along, you can go to my

00:00:06.120 --> 00:00:08.720
YouTube channel. My username is Linkarsu. And

00:00:08.720 --> 00:00:10.460
if you want to support me to keep this podcast

00:00:10.460 --> 00:00:13.240
going, you can donate in Ko -Fi. I'm going to

00:00:13.240 --> 00:00:15.400
leave a link in the description. All right, so

00:00:15.400 --> 00:00:17.420
let's get started with this chapter then. Hey

00:00:17.420 --> 00:00:21.440
everyone, I have a guest today. Hi Fish, he's

00:00:21.440 --> 00:00:24.940
a Neobim plugin maintainer. Hey Hi Fish, how's

00:00:24.940 --> 00:00:28.600
it going? Oh, it's going well. Hello Linkaru.

00:00:29.469 --> 00:00:32.710
Yeah, I don't even know. What should I call you?

00:00:33.229 --> 00:00:37.829
I don't know how to pronounce it. That's in theory

00:00:37.829 --> 00:00:40.030
how you should pronounce it. My name is Christian,

00:00:40.170 --> 00:00:43.229
by the way. So you can call me however you want.

00:00:43.490 --> 00:00:46.369
Yeah, that's fine. Okay, Christian's fine. Yeah.

00:00:46.490 --> 00:00:49.289
So for the people that don't know what's happening,

00:00:49.429 --> 00:00:53.310
I created a post a few days ago in Reddit. This

00:00:53.310 --> 00:00:57.850
post. I just want to know more about... people

00:00:57.850 --> 00:01:00.369
that create plugins in the NeoVim community,

00:01:00.609 --> 00:01:05.890
right? So a few people have reached out. HiFish

00:01:05.890 --> 00:01:08.489
is the first one. So we're going to go over the

00:01:08.489 --> 00:01:11.870
plugin that he created. The plugin is the one

00:01:11.870 --> 00:01:14.310
that I'm showing on the screen right now. Would

00:01:14.310 --> 00:01:17.150
you mind just letting us know a little bit more

00:01:17.150 --> 00:01:21.799
about what this plugin is about, HiFish? Yeah,

00:01:21.819 --> 00:01:23.819
so it's basically a rainbow delimiter. The name

00:01:23.819 --> 00:01:26.219
says it all. When you have source code, you've

00:01:26.219 --> 00:01:28.739
got delimiters, which are usually parentheses.

00:01:29.739 --> 00:01:32.500
And I want to color them in different colors

00:01:32.500 --> 00:01:36.079
so that those that belong together have the same

00:01:36.079 --> 00:01:38.900
color. The outer ones are, let's say, red, and

00:01:38.900 --> 00:01:40.900
then the next level is yellow, and the next level

00:01:40.900 --> 00:01:43.739
is blue. And then you can see all at a glance

00:01:43.739 --> 00:01:47.540
which delimiters belong together. Parentheses

00:01:47.540 --> 00:01:49.900
are the most common ones, but it also works for

00:01:49.900 --> 00:01:54.040
curly braces or even things like HTML tags. Oh,

00:01:54.180 --> 00:01:57.459
you mind showing us on your screen how it looks

00:01:57.459 --> 00:02:01.079
so I can have a better idea? Of course. Let me

00:02:01.079 --> 00:02:06.109
switch to my terminal. Yep. So can you see my

00:02:06.109 --> 00:02:09.449
terminal now? Yep, I can see it. Okay, I've prepared

00:02:09.449 --> 00:02:12.409
some sample files which I also use in my testing.

00:02:12.710 --> 00:02:17.210
So if we go to end -to -end. No, sorry. Highlight.

00:02:18.030 --> 00:02:22.030
Samples. So we'll start using some Lua code.

00:02:25.629 --> 00:02:28.509
Yeah, so we can see the symbols there. Okay.

00:02:29.289 --> 00:02:31.430
So if I scroll down, for example, here you can

00:02:31.430 --> 00:02:33.780
see these parentheses. And then you can see these

00:02:33.780 --> 00:02:37.580
matching pairs all have the same color. And it

00:02:37.580 --> 00:02:40.500
also works for these curly braces if you have

00:02:40.500 --> 00:02:45.699
Lua tables, function arguments. And we can go

00:02:45.699 --> 00:02:50.840
further. So if I go to HTML, for example, you

00:02:50.840 --> 00:02:55.740
can see that matching HTML tags also have the

00:02:55.740 --> 00:02:58.199
same color. So the other ones are red. Then we

00:02:58.199 --> 00:03:01.319
get yellow. and blue and so on. And what's pretty

00:03:01.319 --> 00:03:06.060
cool is you can see the angle brackets and the

00:03:06.060 --> 00:03:08.939
name of the tag are colored. But for example,

00:03:09.020 --> 00:03:12.800
these attributes retain their original color.

00:03:13.099 --> 00:03:15.939
So it doesn't look like a unicorn just puked

00:03:15.939 --> 00:03:19.800
over your screen. Or maybe it looks, but it's

00:03:19.800 --> 00:03:25.199
not all unicorn puke. So the name of the tag

00:03:25.199 --> 00:03:27.960
that made that, is that colored by your plugin

00:03:27.960 --> 00:03:32.099
as well? Exactly. So you see all the text which

00:03:32.099 --> 00:03:34.639
are on this level, meta, title, style, and so

00:03:34.639 --> 00:03:37.840
on, are colored by rainbow diameters. And if

00:03:37.840 --> 00:03:41.599
we go to body, body is yellow because it's one

00:03:41.599 --> 00:03:44.520
level above. But then if you go one level down

00:03:44.520 --> 00:03:48.379
to P, HR, P, and so on, these are blue again.

00:03:48.719 --> 00:03:52.939
And below blue, we have orange. So the link is

00:03:52.939 --> 00:03:59.879
orange. Yeah. It also works for XML, for example.

00:04:00.000 --> 00:04:05.939
XML. Same thing. So I think I just copied over

00:04:05.939 --> 00:04:11.960
the text. So the idea is just to find stuff faster,

00:04:12.099 --> 00:04:15.659
right? Visually. Exactly. Okay, I get it. Now,

00:04:15.759 --> 00:04:18.980
where does it get... Because I don't have a color

00:04:18.980 --> 00:04:21.079
scheme. I don't use a color scheme. I use my

00:04:21.079 --> 00:04:26.709
own colors. Do you... Does it get the colors,

00:04:26.850 --> 00:04:28.670
like the highlights from the color scheme that

00:04:28.670 --> 00:04:31.370
you have applied? Or are they static colors that

00:04:31.370 --> 00:04:35.089
you configure on the plugin? Actually, no. You

00:04:35.089 --> 00:04:37.430
would need to define highlight groups. I have

00:04:37.430 --> 00:04:40.689
provided some defaults, which I consider reasonable

00:04:40.689 --> 00:04:44.250
for most color schemes. But obviously, if you

00:04:44.250 --> 00:04:47.709
are using Solarize like I am, you are going to

00:04:47.709 --> 00:04:52.300
need a Solarize color scheme. You need color

00:04:52.300 --> 00:04:54.199
definitions for your color scheme, which are

00:04:54.199 --> 00:04:58.379
matching. So it's all in the configuration. You

00:04:58.379 --> 00:05:00.600
can look it up. There's also a manual. So all

00:05:00.600 --> 00:05:04.019
you need to do is define regular NeoWim highlight

00:05:04.019 --> 00:05:07.379
groups. And if your plugin already supports rainbow

00:05:07.379 --> 00:05:09.920
delimiters, it will just work out of the box.

00:05:10.240 --> 00:05:13.259
Okay. We'll see what happens. I'm going to...

00:05:13.259 --> 00:05:16.740
We will try to go over this at the end of the...

00:05:17.709 --> 00:05:20.370
of the call. I will install the plugin by the

00:05:20.370 --> 00:05:23.230
end. I will try to set it up and see if I have

00:05:23.230 --> 00:05:25.769
any questions I'll be asking you and all that

00:05:25.769 --> 00:05:27.750
stuff. Is there something else you want to show

00:05:27.750 --> 00:05:29.829
before we get to know you a little bit better?

00:05:31.750 --> 00:05:35.490
Yeah, I wanted to talk about how the configuration

00:05:35.490 --> 00:05:38.149
is done because this is not an original plugin

00:05:38.149 --> 00:05:40.829
by myself. I actually forked an existing plugin.

00:05:41.569 --> 00:05:50.269
So if we go to readme. I think I... And what

00:05:50.269 --> 00:05:52.089
happened with the original plugin, by the way?

00:05:52.189 --> 00:05:55.110
Yeah, here it is. So Enwin TreeSitter. No, this

00:05:55.110 --> 00:05:59.430
one is... Okay, I can't find it right now. But

00:05:59.430 --> 00:06:02.490
anyway, the short story is the previous maintainer

00:06:02.490 --> 00:06:07.529
wrote the Rainbow Delimiters plugin, and it did

00:06:07.529 --> 00:06:10.430
most of what I did, mine does, but it did it

00:06:10.430 --> 00:06:12.290
differently. So he was trying to make it very

00:06:12.290 --> 00:06:14.750
general, so it would work with any language.

00:06:15.629 --> 00:06:18.069
And the problem is that's simply not how TreeSitter

00:06:18.069 --> 00:06:21.449
works. So you had a lot of edge cases where it

00:06:21.449 --> 00:06:24.810
didn't quite work for certain languages. You

00:06:24.810 --> 00:06:26.649
would have weird delimiters, like parentheses,

00:06:26.810 --> 00:06:29.670
for example, would not be delimiters, but in

00:06:29.670 --> 00:06:31.810
other languages they would be. And so you got

00:06:31.810 --> 00:06:34.589
highlighting, which you didn't want, or you didn't

00:06:34.589 --> 00:06:38.069
get highlighting, which you did want. And so

00:06:38.069 --> 00:06:42.529
eventually he just wrote in his readme that he

00:06:42.529 --> 00:06:46.480
had given up. And I was like, okay. I was trying

00:06:46.480 --> 00:06:49.339
hanging around on it anyway. So I figured, you

00:06:49.339 --> 00:06:52.819
know, I might as well try making my own. And

00:06:52.819 --> 00:06:55.240
the original version, I think, yeah, here it

00:06:55.240 --> 00:07:01.800
is. So, yeah, it was called nvntsrainbow2 because

00:07:01.800 --> 00:07:04.660
his was nvntsrainbow. So this was the original

00:07:04.660 --> 00:07:09.839
name. And then I had a major rewrite to make

00:07:09.839 --> 00:07:13.350
certain changes. And then... I renamed it to

00:07:13.350 --> 00:07:17.370
Rainbow Delimiters because, you know. You didn't

00:07:17.370 --> 00:07:19.750
want to have, like, a number at the end there,

00:07:19.850 --> 00:07:22.629
right? Yeah, a number is part of it, but also

00:07:22.629 --> 00:07:25.329
I don't like plugins which start with nvim because

00:07:25.329 --> 00:07:29.170
when I'm trying to use tab completion, if I've

00:07:29.170 --> 00:07:31.029
got 10 different plugins which all start with

00:07:31.029 --> 00:07:33.970
nvim, I have to first tab through those to get

00:07:33.970 --> 00:07:36.110
to the actual completion. Whereas if it's called

00:07:36.110 --> 00:07:40.699
Rainbow, I mean... How many plugins do I have

00:07:40.699 --> 00:07:44.939
to start with Rainbow? Yeah, true. It's a personal

00:07:44.939 --> 00:07:49.980
thing. Yeah. And one of my changes was you could

00:07:49.980 --> 00:07:52.639
configure the strategy which is used. So if we

00:07:52.639 --> 00:07:56.860
go back to the Lua file, or Lua. Oh no, let me

00:07:56.860 --> 00:08:00.879
switch to Common Lisp, which looks more impressive.

00:08:04.720 --> 00:08:07.600
So you see all these delimiters are highlighted

00:08:07.600 --> 00:08:10.199
right now. And for some people, this might be

00:08:10.199 --> 00:08:14.720
too colorful. So you can change in your configuration.

00:08:15.000 --> 00:08:17.600
So this is right now my NeoWim config. You can

00:08:17.600 --> 00:08:20.740
change which strategy is used. So if I say common

00:08:20.740 --> 00:08:28.519
lisp equals rainbow delimiters dot strategy dot

00:08:28.519 --> 00:08:33.669
local, what's going to happen is if I... Exit,

00:08:33.669 --> 00:08:38.009
and then invent test, highlight sample, common

00:08:38.009 --> 00:08:42.629
list, regular list. You see only the context

00:08:42.629 --> 00:08:45.909
where my cursor currently is highlighted. So

00:08:45.909 --> 00:08:50.169
all these delimiters are left as they are. And

00:08:50.169 --> 00:08:53.450
if I move down here, now this context is highlighted.

00:08:53.830 --> 00:08:58.230
Just the function where your cursor is in? Exactly.

00:08:58.470 --> 00:09:03.500
So you see this block? This context is currently

00:09:03.500 --> 00:09:06.740
containing my cursor. And then only this context,

00:09:06.960 --> 00:09:10.220
its children and its ancestors are highlighted.

00:09:11.200 --> 00:09:14.220
So, for example, you can see here 0p. This part

00:09:14.220 --> 00:09:16.159
is not highlighted. This part is not highlighted

00:09:16.159 --> 00:09:19.299
because right now I'm in this context. Okay.

00:09:19.360 --> 00:09:23.759
And all of this is using TreeSitter? Exactly.

00:09:24.120 --> 00:09:28.360
So I was using a Rainbow Delimiter plugin still

00:09:28.360 --> 00:09:31.529
when I was using Vim. But the problem is it was

00:09:31.529 --> 00:09:34.330
using regular expressions and regular expressions

00:09:34.330 --> 00:09:38.129
can get quite janky. And in order to make regular

00:09:38.129 --> 00:09:39.850
expressions work properly, you would have to

00:09:39.850 --> 00:09:43.269
effectively write an entire parser for each language

00:09:43.269 --> 00:09:46.450
which you support. So you might as well just

00:09:46.450 --> 00:09:48.210
use TreeSitter because that's what TreeSitter

00:09:48.210 --> 00:09:51.450
actually is. It's a parser. Interesting. Okay.

00:09:51.590 --> 00:09:53.429
So that's the way that it works. The downside

00:09:53.429 --> 00:09:57.909
of this is I need to add support for each language

00:09:57.909 --> 00:10:01.730
individually. If we look at the configuration,

00:10:02.129 --> 00:10:06.450
the queries, so these are all the languages which

00:10:06.450 --> 00:10:09.370
we support. So if there's a new language and

00:10:09.370 --> 00:10:11.269
you want rainbow delimiters for it, you have

00:10:11.269 --> 00:10:14.169
to open a pull request and then we can work for

00:10:14.169 --> 00:10:18.049
it together. Oh, I see. That's the downside of

00:10:18.049 --> 00:10:22.149
TreeSitter. The original author tried to make

00:10:22.149 --> 00:10:24.250
it generic so it would work for every language,

00:10:24.389 --> 00:10:26.730
but it was causing more problems than it was

00:10:26.730 --> 00:10:31.389
solving. I decided, you know, it kind of sucks,

00:10:31.549 --> 00:10:35.129
but it's like, this is all you have to write

00:10:35.129 --> 00:10:37.570
to support a language. So it's not hard. Oh,

00:10:37.649 --> 00:10:40.929
it's not a lot. Okay. Yeah. So it's really easy.

00:10:41.029 --> 00:10:43.710
So basically you just define the pattern and

00:10:43.710 --> 00:10:47.350
then you define what's the delimiter. And yeah,

00:10:47.409 --> 00:10:49.669
that's it. It's just for some languages, like

00:10:49.669 --> 00:10:54.389
let's say, for example, Python, there's a lot

00:10:54.389 --> 00:10:57.759
of delimiters. You see, there's a lot of redundancy.

00:10:57.799 --> 00:10:59.779
For example, you have generator expression and

00:10:59.779 --> 00:11:04.200
parameters. They look exactly the same, but they

00:11:04.200 --> 00:11:07.879
have different names in the syntax tree. So syntax

00:11:07.879 --> 00:11:11.620
tree, for those who don't know, is if you do

00:11:11.620 --> 00:11:14.120
the expect tree, you can get the structure of

00:11:14.120 --> 00:11:18.960
your source code as this tree of nodes. And even

00:11:18.960 --> 00:11:22.580
though to our human eyes, these look exactly

00:11:22.580 --> 00:11:24.919
the same because it's us. regular parentheses

00:11:24.919 --> 00:11:27.639
and some content to trees that are completely

00:11:27.639 --> 00:11:30.940
different things. So you need to write every

00:11:30.940 --> 00:11:32.759
single thing which can be considered a delimiter.

00:11:34.159 --> 00:11:37.600
Interesting. Okay. I have been playing around

00:11:37.600 --> 00:11:40.899
with this tree. What did you type tree inspect?

00:11:41.159 --> 00:11:43.519
What was the command? Yeah, inspect tree. Inspect

00:11:43.519 --> 00:11:46.399
tree. And then you get the structure of your

00:11:46.399 --> 00:11:50.379
code as a tree structure. So top most program

00:11:50.379 --> 00:11:52.399
and then you see there's a comment on the left

00:11:52.399 --> 00:11:55.240
hand side. You can see. highlighted part and

00:11:55.240 --> 00:11:58.580
then you can inspect your source code interesting

00:11:58.580 --> 00:12:02.179
yeah um i'm not an even expert at all you know

00:12:02.179 --> 00:12:05.399
i barely know a few things about neovim but i

00:12:05.399 --> 00:12:08.399
like managing my markdown headings in a certain

00:12:08.399 --> 00:12:16.539
way so um i was um capturing no not capturing

00:12:16.539 --> 00:12:19.240
capturing is not the word like just identifying

00:12:19.240 --> 00:12:21.740
my markdown headings using regular expressions

00:12:21.740 --> 00:12:24.759
in the past but i switched recently to using

00:12:24.759 --> 00:12:28.539
tree sitter it's not complicated but i kind of

00:12:28.539 --> 00:12:31.059
get the idea of what you're trying to say just

00:12:31.059 --> 00:12:33.019
because i did that with tree sitter otherwise

00:12:33.019 --> 00:12:36.600
i would be completely lost but it's good to know

00:12:36.600 --> 00:12:39.720
that that's the way how you manage this and how

00:12:39.720 --> 00:12:43.519
difficult is it to to maintain to do you get

00:12:43.519 --> 00:12:47.360
a lot of requests for new languages yeah i do

00:12:47.360 --> 00:12:49.620
get free uh from time to time requests for new

00:12:49.620 --> 00:12:52.960
languages or sometimes parser has changed then

00:12:52.960 --> 00:12:55.799
these names are different and then i have to

00:12:55.799 --> 00:12:59.659
go and update these oftentimes people will actually

00:12:59.659 --> 00:13:03.019
submit pull requests so i don't have to do all

00:13:03.019 --> 00:13:05.759
the work myself because there's so many languages

00:13:05.759 --> 00:13:09.259
and many of them i don't know myself so okay

00:13:09.259 --> 00:13:12.240
if someone comes and tells me oh i want support

00:13:12.240 --> 00:13:16.200
for gleam i'm like okay pr welcome i don't know

00:13:16.200 --> 00:13:18.600
gleam i've never used it i have no intention

00:13:18.600 --> 00:13:22.779
of learning it so I have nothing against Gleam.

00:13:22.899 --> 00:13:25.620
If you want to support it, you'll have to help

00:13:25.620 --> 00:13:29.179
me out on this one. Help me help you. Yeah, it's

00:13:29.179 --> 00:13:31.200
a lot of work. That's one of the questions that

00:13:31.200 --> 00:13:37.059
I have on the list of questions that I ask. How

00:13:37.059 --> 00:13:41.379
does it feel to be an open source maintainer,

00:13:41.379 --> 00:13:43.960
especially for Neobim? Do you have any thoughts

00:13:43.960 --> 00:13:46.539
around that? Is it a lot of work? Is it a lot

00:13:46.539 --> 00:13:50.549
of burden? Do you get a lot of... i mean it depends

00:13:50.549 --> 00:13:54.909
on one hand it's pretty cool to be able to make

00:13:54.909 --> 00:13:57.350
something which people actually like and which

00:13:57.350 --> 00:14:02.509
people want to use and i tell myself i'm an egoist

00:14:02.509 --> 00:14:05.149
i just did it for myself because i want to use

00:14:05.149 --> 00:14:10.210
it but you know when it's 11 p .m and i'm still

00:14:10.210 --> 00:14:12.269
pouring over source code because some language

00:14:12.269 --> 00:14:15.090
because some language i'm never going to use

00:14:15.090 --> 00:14:19.799
yeah it's not really Just for me, but I'm also

00:14:19.799 --> 00:14:22.200
using it as a learning opportunity. For example,

00:14:22.240 --> 00:14:27.019
testing is a topic which testing in NeoWim is

00:14:27.019 --> 00:14:30.000
a bit more complicated than testing in, for example,

00:14:30.000 --> 00:14:33.159
Python, because you're testing an application

00:14:33.159 --> 00:14:36.460
which is running. So you're testing a separate

00:14:36.460 --> 00:14:40.580
NeoWim. You're not just testing code. And I've

00:14:40.580 --> 00:14:42.320
actually written a couple of blog posts about

00:14:42.320 --> 00:14:45.840
testing. specifically for rainbow delimiters

00:14:45.840 --> 00:14:48.600
because i make a change and then i just eyeball

00:14:48.600 --> 00:14:52.120
it looks fine i publish and then a couple of

00:14:52.120 --> 00:14:54.820
hours later i get an issue because i broke something

00:14:54.820 --> 00:14:57.919
and that part is really annoying and it's just

00:14:57.919 --> 00:15:01.500
a waste of everyone's time so testing is a topic

00:15:01.500 --> 00:15:03.860
i'm kind of big on when it comes to near wind

00:15:03.860 --> 00:15:08.500
plugins at least okay have you had bad experiences

00:15:08.500 --> 00:15:13.149
with users how is uh the support aspect of it

00:15:13.149 --> 00:15:17.429
in github like i haven't had bad experiences

00:15:17.429 --> 00:15:22.289
i mean when it comes to open source there's the

00:15:22.289 --> 00:15:24.629
saying if you didn't pay for it you're the product

00:15:24.629 --> 00:15:27.110
but in open source it would be more accurate

00:15:27.110 --> 00:15:29.269
to say if i didn't play for it you're the qa

00:15:29.269 --> 00:15:33.570
team so i mean you get what you paid for and

00:15:33.570 --> 00:15:36.889
sometimes i just have to say i don't know can't

00:15:36.889 --> 00:15:42.590
help you works on my end I'm sorry. It's not

00:15:42.590 --> 00:15:44.490
even about time. I mean, there are a couple of

00:15:44.490 --> 00:15:46.830
issues which are open because I haven't had time

00:15:46.830 --> 00:15:49.710
to look into them, but sometimes it's just I

00:15:49.710 --> 00:15:53.730
can't reproduce it. And, you know, if you can

00:15:53.730 --> 00:15:56.450
help me out, that would be cool, but it's not

00:15:56.450 --> 00:16:02.970
exactly priority. So, yeah. I mean, there's also

00:16:02.970 --> 00:16:05.950
GitHub Sponsor, but the problem with GitHub Sponsor

00:16:05.950 --> 00:16:09.549
is you would have to sponsor a lot of money to

00:16:09.549 --> 00:16:13.049
make it possible where I could take, let's say,

00:16:13.169 --> 00:16:19.210
turn my day job into a part -time and be a maintainer

00:16:19.210 --> 00:16:23.289
for a day per week. And it's just not feasible.

00:16:23.450 --> 00:16:26.529
So I try to use automated testing to catch as

00:16:26.529 --> 00:16:30.370
many errors and I try my best. you know maybe

00:16:30.370 --> 00:16:32.649
it's good maybe it's not you'll be the judge

00:16:32.649 --> 00:16:35.409
but all in all i think it's pretty rewarding

00:16:35.409 --> 00:16:40.470
and quite fun so i don't hate it yeah it's cool

00:16:40.470 --> 00:16:43.169
do you feel that you're gonna continue maintaining

00:16:43.169 --> 00:16:48.190
this for quite a lot a lot more time or you're

00:16:48.190 --> 00:16:51.110
like i'm getting to the point in which i just

00:16:51.110 --> 00:16:53.929
don't care about this tool anymore i'm not into

00:16:53.929 --> 00:16:57.519
neobim anymore i'm just yeah I mean, it could

00:16:57.519 --> 00:17:00.480
happen anytime. I could just say, you know, Emacs

00:17:00.480 --> 00:17:02.600
is pretty cool. I'm switching to Emacs and then

00:17:02.600 --> 00:17:04.759
all my plugins would become abandoned because

00:17:04.759 --> 00:17:07.500
I have no motivation to maintain them myself.

00:17:07.759 --> 00:17:10.819
But I don't see myself quitting any of them anytime

00:17:10.819 --> 00:17:15.559
soon because as far as editors go, this one is

00:17:15.559 --> 00:17:18.980
perfect for me, at least. For the time being.

00:17:19.599 --> 00:17:23.880
Yeah. I thought about Obsidian that way. Obsidian

00:17:23.880 --> 00:17:27.099
is the tool that I use for note -taking. I used

00:17:27.099 --> 00:17:30.599
to talk to my wife about Obsidian, man. I don't

00:17:30.599 --> 00:17:33.480
know, multiple times a day. If I found a new

00:17:33.480 --> 00:17:37.259
plugin or something that I found amazing, I used

00:17:37.259 --> 00:17:39.859
to tell her she doesn't give a crap about it.

00:17:39.900 --> 00:17:42.940
She doesn't even remember. But I don't know.

00:17:42.960 --> 00:17:45.299
It was like therapy for me, I think. And now

00:17:45.299 --> 00:17:48.279
I don't even use Obsidian anymore. I haven't

00:17:48.279 --> 00:17:51.160
used Obsidian in months. So I hope that that

00:17:51.160 --> 00:17:54.720
doesn't happen with Niobe and me personally,

00:17:54.920 --> 00:17:57.460
you know, because. I love NeoVim. I haven't been

00:17:57.460 --> 00:17:59.519
using it for too long, for like a year maybe.

00:17:59.819 --> 00:18:04.380
But we'll see. Who knows, right? How long have

00:18:04.380 --> 00:18:08.220
you been using NeoVim? It might be around seven

00:18:08.220 --> 00:18:12.200
years, give or take. I don't know. I was first

00:18:12.200 --> 00:18:16.900
using Vim before switching to NeoVim. One problem

00:18:16.900 --> 00:18:20.740
with Vim at the time was you couldn't do anything

00:18:20.740 --> 00:18:23.900
asynchronously. So if you had a linter... You

00:18:23.900 --> 00:18:26.640
couldn't do live linting because otherwise on

00:18:26.640 --> 00:18:28.880
every key press, your editor would freeze for

00:18:28.880 --> 00:18:31.920
a second or two to run the linter. So you had

00:18:31.920 --> 00:18:34.779
to do something like only run the linter on save.

00:18:35.160 --> 00:18:38.799
Oh, I see. Which wasn't ideal, but it was more

00:18:38.799 --> 00:18:41.859
usable than having it freeze your editor on every

00:18:41.859 --> 00:18:45.640
keystroke. And then I was actually pretty close

00:18:45.640 --> 00:18:48.920
to switching to Emacs because of this. And then

00:18:48.920 --> 00:18:51.039
I discovered NeoVim and I was like, oh, NeoVim,

00:18:51.079 --> 00:18:53.480
that looks cool. They're trying to do async stuff,

00:18:53.640 --> 00:18:57.039
adding it to Vim. And then I switched. It was

00:18:57.039 --> 00:19:01.220
before Lua or any of the other fancy stuff. Async

00:19:01.220 --> 00:19:05.759
support was the big one and remote plugins. And

00:19:05.759 --> 00:19:10.680
yeah, it was basically just Vim, different. You

00:19:10.680 --> 00:19:13.000
could do stuff which you couldn't do in Vim.

00:19:13.039 --> 00:19:17.559
And so it was a very easy switch to make. I thought

00:19:17.559 --> 00:19:20.400
Lua had started with NeoVim, so it didn't? No,

00:19:20.440 --> 00:19:23.700
no. Lua came in version 0 .4, if I remember correctly.

00:19:24.359 --> 00:19:26.539
When I switched to NeoVim, they were still at

00:19:26.539 --> 00:19:29.819
version 0 .1. They had just recently had their

00:19:29.819 --> 00:19:34.019
first release. Oh, interesting. I think Lua was

00:19:34.019 --> 00:19:36.160
on the roadmap, if I recall correctly, from the

00:19:36.160 --> 00:19:40.240
start, but it was not yet implemented. But don't

00:19:40.240 --> 00:19:43.500
quote me on this one. Yeah, but it keeps me...

00:19:43.500 --> 00:19:45.250
I don't quite remember the time. Gives me a general

00:19:45.250 --> 00:19:48.490
idea. Yeah, it's kind of weird to think that

00:19:48.490 --> 00:19:50.890
Lua was... There was a time when Lua was not

00:19:50.890 --> 00:19:55.789
a first -class language of NeoWim. Yeah. So for

00:19:55.789 --> 00:19:58.150
how long have you been using NeoWim then? Seven

00:19:58.150 --> 00:20:02.809
years Wim and NeoWim? No, I meant seven years

00:20:02.809 --> 00:20:05.990
Wim and NeoWim together. So Wim maybe for a year

00:20:05.990 --> 00:20:09.650
and then since then NeoWim. Why did you decide

00:20:09.650 --> 00:20:12.589
to get started with Vim in the first place? Well,

00:20:12.650 --> 00:20:14.930
the reason I got started with Vim was because

00:20:14.930 --> 00:20:18.250
of servers, right? You usually SSH into a server.

00:20:18.490 --> 00:20:21.690
You needed to edit a file. Vim was there, right?

00:20:21.789 --> 00:20:24.569
So I didn't like it. I tried it for like three,

00:20:24.650 --> 00:20:28.490
four times and I said, no. F this. I'll just

00:20:28.490 --> 00:20:33.130
use Nano when I SSH into a device. And I always

00:20:33.130 --> 00:20:36.950
use Nano. I didn't like Vim. But one day I just

00:20:36.950 --> 00:20:39.650
decided. this thing is not gonna defeat me and

00:20:39.650 --> 00:20:43.210
i gave it a try another try another try and it

00:20:43.210 --> 00:20:46.450
finally stuck how did it happen in your case

00:20:46.450 --> 00:20:50.309
so my first experience with him was uh i needed

00:20:50.309 --> 00:20:54.470
to edit some file and i read some guide on the

00:20:54.470 --> 00:20:58.329
internet and was like oh yeah just type vi vim

00:20:58.329 --> 00:21:00.750
in your terminal and then the file name and then

00:21:00.750 --> 00:21:03.109
you can edit it and i was not much of a terminal

00:21:03.109 --> 00:21:08.589
person back then terminal was like you know if

00:21:08.589 --> 00:21:14.009
you have to do use it but i knew cd and pwd and

00:21:14.009 --> 00:21:16.869
cat maybe just a couple of commands and anyway

00:21:16.869 --> 00:21:20.589
i typed in vim and my reaction was pretty much

00:21:20.589 --> 00:21:22.869
everyone's first reaction to vim which was oh

00:21:22.869 --> 00:21:24.869
god how do i get out of this none of the keys

00:21:24.869 --> 00:21:28.470
make any sense yeah uh what am i doing why would

00:21:28.470 --> 00:21:32.170
anyone in his right mind use such an awful editor

00:21:32.170 --> 00:21:38.339
it's completely backwards So and then, yes, some

00:21:38.339 --> 00:21:42.579
time passed. I was an IDE user back then. And

00:21:42.579 --> 00:21:45.000
I was actually doing some, I was playing around

00:21:45.000 --> 00:21:48.720
with Unity game engine. And Unity came with its

00:21:48.720 --> 00:21:51.680
own IDE called Xamarin Studio, which is this

00:21:51.680 --> 00:21:56.960
like C sharp IDE. And the user interface is written

00:21:56.960 --> 00:21:59.660
in C sharp as well. So it's not native. And back

00:21:59.660 --> 00:22:04.160
then I was on Mac OS or OS 10 as they were calling

00:22:04.160 --> 00:22:07.579
it. And if you know one thing about Mac users,

00:22:07.859 --> 00:22:11.599
they are very, very picky when it comes to GUI

00:22:11.599 --> 00:22:16.180
toolkits. So if it's not Cocoa, it's trash. And

00:22:16.180 --> 00:22:19.380
so this was also my attitude back then, and it

00:22:19.380 --> 00:22:21.660
would probably still be my attitude now if I

00:22:21.660 --> 00:22:24.799
was still on a Mac. And I just didn't like their

00:22:24.799 --> 00:22:27.319
IDE. So I was looking around, is there some different,

00:22:27.460 --> 00:22:29.779
better IDE? And there was something like from

00:22:29.779 --> 00:22:34.119
JetBrains, which I now know is Rider. But it

00:22:34.119 --> 00:22:37.059
wasn't Cocoa either. So I was like, okay, if

00:22:37.059 --> 00:22:39.099
there's nothing better, is there something worse?

00:22:39.579 --> 00:22:41.859
Obviously, people are doing software development

00:22:41.859 --> 00:22:46.220
without IDEs as well. So maybe there's some sort

00:22:46.220 --> 00:22:48.740
of terminal stuff. Like if I cannot go to the

00:22:48.740 --> 00:22:50.759
high end, I'm going to go all the way to the

00:22:50.759 --> 00:22:54.599
deep end. So it came down to Emacs or Vim. And

00:22:54.599 --> 00:22:57.200
Emacs had this weird stuff like Lisp, which is

00:22:57.200 --> 00:23:00.000
like... an awful language has all these parentheses

00:23:00.000 --> 00:23:03.140
and like why would anyone use a language like

00:23:03.140 --> 00:23:06.019
this and i was like okay i will give vim a try

00:23:06.019 --> 00:23:10.220
and i did remember my first experience but i

00:23:10.220 --> 00:23:12.319
was like okay this time i'm actually going to

00:23:12.319 --> 00:23:15.019
learn it And fortunately, Vim has a built -in

00:23:15.019 --> 00:23:18.180
tutorial. So I just typed in Vim tutorial in

00:23:18.180 --> 00:23:20.740
my terminal. And 30 minutes later, I was like,

00:23:20.859 --> 00:23:23.079
oh, yeah, this is actually, it makes sense. It's

00:23:23.079 --> 00:23:25.759
like you're talking to your editor in a language.

00:23:25.900 --> 00:23:28.359
So it's not just arbitrary keystrokes, which

00:23:28.359 --> 00:23:31.880
you need to remember. There's some sort of logic

00:23:31.880 --> 00:23:35.640
to it. And it's pretty cool because after a while,

00:23:35.720 --> 00:23:38.400
you aren't even thinking about what you're pressing.

00:23:38.500 --> 00:23:41.539
You're just, you're thinking. I want to do this

00:23:41.539 --> 00:23:43.539
thing and your fingers move automatically on

00:23:43.539 --> 00:23:46.119
their own. And it just happens. It's like, it's

00:23:46.119 --> 00:23:48.359
like having your text editor wired to your brain

00:23:48.359 --> 00:23:51.779
directly. Well, that's, I fell in love with Vim

00:23:51.779 --> 00:23:55.400
keys. That's the idea. That's, but when you first

00:23:55.400 --> 00:23:58.579
try, I remember I also did that Vim tutor. I

00:23:58.579 --> 00:24:00.720
think it is right. The one that comes in Vim

00:24:00.720 --> 00:24:03.859
and it was painful because I was really slow,

00:24:03.960 --> 00:24:07.700
man. just switch between normal mode and insert

00:24:07.700 --> 00:24:10.920
mode it was painful and I was like okay I get

00:24:10.920 --> 00:24:14.579
it it's a good idea but it sucks I cannot type

00:24:14.579 --> 00:24:19.519
fast now I hate typing in word or I hate typing

00:24:19.519 --> 00:24:22.039
in the browser or in reddit if I don't have the

00:24:22.039 --> 00:24:24.240
motion so it's I don't know it's really strange

00:24:25.759 --> 00:24:29.299
Yeah, VI motions are great. Now, my problem was

00:24:29.299 --> 00:24:31.859
not the mental model of insert mode and switching

00:24:31.859 --> 00:24:35.480
around. My problem was that I didn't know how

00:24:35.480 --> 00:24:40.359
to touch type back then. I somehow got away without

00:24:40.359 --> 00:24:42.880
touch typing for the most part. I was still a

00:24:42.880 --> 00:24:45.740
university student, so I wasn't a programmer

00:24:45.740 --> 00:24:48.019
at work because that would have been really awkward.

00:24:48.700 --> 00:24:51.839
But yeah, I was like, okay, I guess I should...

00:24:52.089 --> 00:24:55.490
learn how to touch type finally and yeah it took

00:24:55.490 --> 00:25:00.609
a week or so but yeah i mean i got a hang of

00:25:00.609 --> 00:25:03.569
it and now i cannot even imagine writing the

00:25:03.569 --> 00:25:05.809
old way because the old way was i would look

00:25:05.809 --> 00:25:09.890
at my keyboard and just press keys using whatever

00:25:09.890 --> 00:25:12.569
finger was happened to be near the key and then

00:25:12.569 --> 00:25:15.170
i would look up and see all the typos i had made

00:25:15.170 --> 00:25:17.299
and then i would corrected those typos and then

00:25:17.299 --> 00:25:19.279
i would switch back to the keyboard as i had

00:25:19.279 --> 00:25:23.799
this diving motion all the time and yeah it's

00:25:23.799 --> 00:25:26.660
just awful i don't recommend it yeah yeah yeah

00:25:26.660 --> 00:25:29.240
just just learn touch typing to yourself a favor

00:25:29.240 --> 00:25:31.680
for everyone yeah how many words do you type

00:25:31.680 --> 00:25:35.019
per minute now oh i don't know i'm not a fast

00:25:35.019 --> 00:25:38.420
typer because you know when you're programming

00:25:39.119 --> 00:25:41.059
typing your typing speed is not really relevant

00:25:41.059 --> 00:25:43.660
because most of your time will be spent either

00:25:43.660 --> 00:25:47.420
moving stuff around or thinking or reading yeah

00:25:47.420 --> 00:25:51.440
and i also have auto completion and snippets

00:25:51.440 --> 00:25:55.180
so i don't think that typing speed really matters

00:25:55.180 --> 00:25:59.359
much for programmers yeah for writing articles

00:25:59.359 --> 00:26:02.519
and stuff like that i do think it matters you

00:26:02.519 --> 00:26:05.319
know because i oh yeah definitely yeah for writing

00:26:05.319 --> 00:26:08.839
notes because it would slow me down a lot if

00:26:08.839 --> 00:26:11.759
my fingers couldn't follow my my thoughts well

00:26:11.759 --> 00:26:14.119
i'm not a fast typer you know i don't think that

00:26:14.119 --> 00:26:17.839
i'm extremely fast but you know 90 100 that's

00:26:17.839 --> 00:26:20.539
i think my average around there and it's decent

00:26:20.539 --> 00:26:23.900
enough it allows me to type what i need now that

00:26:23.900 --> 00:26:25.680
we're here if i don't know if you're looking

00:26:25.680 --> 00:26:29.099
at my screen or not but i'm on the i'm not sure

00:26:29.099 --> 00:26:32.319
i can switch to your screen okay yeah so you

00:26:32.319 --> 00:26:34.740
mentioned keyboard You mentioned something about

00:26:34.740 --> 00:26:36.359
a keyboard. Which one do you use? We're going

00:26:36.359 --> 00:26:38.819
to go over the topics, not in a specific order.

00:26:39.740 --> 00:26:42.319
I'm just going to be jumping through them. Do

00:26:42.319 --> 00:26:44.660
you use a split keyboard or what do you use?

00:26:45.599 --> 00:26:48.220
I use a mechanical keyboard. It's a Keychron

00:26:48.220 --> 00:26:54.059
K1, which is a low profile keyboard. I used to

00:26:54.059 --> 00:26:58.779
use the Apple aluminum keyboard, the flat one,

00:26:58.900 --> 00:27:01.960
and I really like the slow profile. But the problem

00:27:01.960 --> 00:27:07.140
is because because the keys are very low, it

00:27:07.140 --> 00:27:10.819
started to hurt my fingers. So I had really bad

00:27:10.819 --> 00:27:13.640
pain. I could barely type anything. And I had

00:27:13.640 --> 00:27:16.160
no idea it was because of the keyboard. I went

00:27:16.160 --> 00:27:20.259
to several doctors, had several tests done. All

00:27:20.259 --> 00:27:21.960
tests were negative. Yeah, that's my keyboard.

00:27:22.140 --> 00:27:25.599
This one. Okay. Yeah. And then I had heard about

00:27:25.599 --> 00:27:28.099
these mechanical keyboards, which are supposedly

00:27:28.099 --> 00:27:30.259
really good for people who are doing lots of

00:27:30.259 --> 00:27:34.930
typing. And I just bought a mechanical keyboard,

00:27:35.009 --> 00:27:37.789
not this one, a cheaper one. Tried it, and within

00:27:37.789 --> 00:27:41.549
a couple of days, all my pain was gone. So yeah,

00:27:41.630 --> 00:27:44.829
if you're typing a lot, do yourself a favor and

00:27:44.829 --> 00:27:49.029
invest in a good keyboard. I use blue switches

00:27:49.029 --> 00:27:52.250
because they work for me, but brown switches

00:27:52.250 --> 00:27:59.660
are fine as well. I even take my keyboard to

00:27:59.660 --> 00:28:02.799
the office because I just really like the feel

00:28:02.799 --> 00:28:05.839
of typing on it. And what do your co -workers

00:28:05.839 --> 00:28:08.019
think about the noise that you're making all

00:28:08.019 --> 00:28:11.500
over the place? It's one of those horrible open

00:28:11.500 --> 00:28:13.900
space offices, so my keyboard is probably the

00:28:13.900 --> 00:28:16.960
least noisy thing in there. Oh, okay. So it's

00:28:16.960 --> 00:28:20.140
not that bad then. Yeah, I mean, there's worse

00:28:20.140 --> 00:28:24.940
sounds in that office. Yeah, it's a very interesting

00:28:24.940 --> 00:28:27.289
point that you touched there because... i'm a

00:28:27.289 --> 00:28:30.250
big fan of the apple keyboard the magic keyboard

00:28:30.250 --> 00:28:33.089
as well man i love that keyboard because like

00:28:33.089 --> 00:28:35.829
you said it's flat you know it lays on your desk

00:28:35.829 --> 00:28:39.549
your fingers are basically on the desk but the

00:28:39.549 --> 00:28:42.710
position of the hands they're too tight to close

00:28:42.710 --> 00:28:47.109
together right so i started experiencing forearm

00:28:47.109 --> 00:28:51.369
pain and i couldn't type for too long i was worried

00:28:51.369 --> 00:28:55.650
and i was like what the hell is going on um I

00:28:55.650 --> 00:28:57.349
got scared you know because that's what I do

00:28:57.349 --> 00:29:00.089
the most typing stuff and the computer is basically

00:29:00.089 --> 00:29:04.130
what I do the entire day so I just decided to

00:29:04.130 --> 00:29:07.430
start looking into these mechanical keyboards

00:29:07.430 --> 00:29:11.069
I went with the Glove 80 you know which is a

00:29:11.069 --> 00:29:15.329
split one is this one here I didn't know which

00:29:15.329 --> 00:29:20.650
one to get but um I ended up in this one the

00:29:20.650 --> 00:29:24.150
pain has gone from the forearm definitely I just

00:29:24.150 --> 00:29:26.490
don't like the switches too much. I like the

00:29:26.490 --> 00:29:29.210
switches in the Apple Magic Keyboard because

00:29:29.210 --> 00:29:31.789
they were really soft. These are soft as well,

00:29:31.930 --> 00:29:35.450
but I don't know. I just kind of miss it, but

00:29:35.450 --> 00:29:37.509
I cannot use it anymore because the pain is going

00:29:37.509 --> 00:29:42.089
to come back for sure. Yeah, I know what you

00:29:42.089 --> 00:29:46.980
mean. Yeah, just to be clear, I mentioned Keychron.

00:29:47.099 --> 00:29:49.720
I don't have much experience with mechanical

00:29:49.720 --> 00:29:51.579
keyboards, so it's not like I'm saying this is

00:29:51.579 --> 00:29:54.000
the best one or anything. It's just what I use.

00:29:54.579 --> 00:29:56.480
Yeah, me neither. Maybe there are better ones,

00:29:56.640 --> 00:29:59.539
but maybe they're not, so I don't have any frame

00:29:59.539 --> 00:30:02.500
of reference. But I like it. Yeah, same thing

00:30:02.500 --> 00:30:04.660
here. This is the first mechanical keyboard I

00:30:04.660 --> 00:30:07.619
got. I didn't know which one to get. I just got

00:30:07.619 --> 00:30:11.759
this one, and it's okay. I guess it's decent,

00:30:11.859 --> 00:30:14.759
but I don't know about keyboards. at all i don't

00:30:14.759 --> 00:30:17.220
have a point of comparison like you like you

00:30:17.220 --> 00:30:20.599
mentioned yeah yep and um have you thought about

00:30:20.599 --> 00:30:25.240
split keyboards or no uh i did consider them

00:30:25.240 --> 00:30:28.240
but you know i i picked this one up it works

00:30:28.240 --> 00:30:31.500
i don't have any pain in my wrists for for now

00:30:31.500 --> 00:30:34.819
so i don't really see a reason to switch as long

00:30:34.819 --> 00:30:37.779
as the keyboard is working but i do like like

00:30:37.779 --> 00:30:41.339
the idea so i'm not opposed to it okay interesting

00:30:43.920 --> 00:30:46.819
to try one to try one okay you mentioned that

00:30:46.819 --> 00:30:50.519
you were a heavy mac os user so my guess is of

00:30:50.519 --> 00:30:53.099
course you didn't switch to windows unless you're

00:30:53.099 --> 00:30:56.640
developing games or something so what are you

00:30:56.640 --> 00:30:58.680
on right now what's your operating system at

00:30:58.680 --> 00:31:01.740
the moment my operating system is void linux

00:31:01.740 --> 00:31:04.640
which is a rolling release distro so rolling

00:31:04.640 --> 00:31:06.700
release means you install it once and then you

00:31:06.700 --> 00:31:10.519
keep continually updating it every day or every

00:31:10.519 --> 00:31:12.779
couple of days but there are no like release

00:31:12.779 --> 00:31:17.759
versions so there's no void linux 2025 void linux

00:31:17.759 --> 00:31:22.119
2026 and also so you just keep updating it there's

00:31:22.119 --> 00:31:26.579
just updates then yeah you just update and keep

00:31:26.579 --> 00:31:30.380
it running forever and how does it go with breaking

00:31:30.380 --> 00:31:35.640
changes do you experience any Rarely. So there

00:31:35.640 --> 00:31:38.440
have been a couple of times, a few times, I can

00:31:38.440 --> 00:31:42.279
count them on one hand total, whereas usually

00:31:42.279 --> 00:31:46.920
it was some packaging error or something, but

00:31:46.920 --> 00:31:50.440
those changes are rare. So maybe configuration

00:31:50.440 --> 00:31:53.599
can change, for example, when switching to Pipewire,

00:31:53.839 --> 00:31:56.240
which is obviously not the same as Pulse Audio,

00:31:56.559 --> 00:32:00.079
but you do get notified in advance. There's also

00:32:00.079 --> 00:32:04.740
an RSS feed, so you can stay ahead of time. It's

00:32:04.740 --> 00:32:07.799
not something I would run on a server, but for

00:32:07.799 --> 00:32:10.900
a regular workstation, it's fine. Your desktop,

00:32:11.059 --> 00:32:13.200
okay, for your personal computer. How long have

00:32:13.200 --> 00:32:18.700
you been using Void Linux? It might be, I don't

00:32:18.700 --> 00:32:21.220
know, five years or so. Five years? Quite a while.

00:32:21.500 --> 00:32:24.480
And why didn't you just jump to whatever everyone

00:32:24.480 --> 00:32:27.619
jumps to, which is Arch or something else? Why

00:32:27.619 --> 00:32:30.380
did you choose Void Linux? I did actually choose

00:32:30.380 --> 00:32:33.609
Ubuntu first. when I switched to Linux. Not necessarily

00:32:33.609 --> 00:32:38.509
because Ubuntu is the best one, but my thought

00:32:38.509 --> 00:32:40.890
was, I'm switching to a different operating system,

00:32:41.089 --> 00:32:42.789
so I might as well switch to something everyone

00:32:42.789 --> 00:32:45.269
else or a lot of other people are using. Yeah,

00:32:45.309 --> 00:32:48.390
a lot of documentation. Yeah, lots of documentation

00:32:48.390 --> 00:32:51.869
and lots of help on the internet. And yeah, it

00:32:51.869 --> 00:32:55.670
was fine at first. The problem is packages are

00:32:55.670 --> 00:32:58.980
pretty old on Ubuntu. For a good reason, but

00:32:58.980 --> 00:33:01.579
on the desktop, I wanted something more recent.

00:33:01.720 --> 00:33:05.480
So when my computer broke, I had to reinstall

00:33:05.480 --> 00:33:07.799
the operating system anyway, and I figured I

00:33:07.799 --> 00:33:11.279
might as well try a different one. Then I switched

00:33:11.279 --> 00:33:14.980
to Void. Void Linux. And why did you leave macOS?

00:33:16.960 --> 00:33:20.519
Yeah, I was a Mac user for around 10 years. The

00:33:20.519 --> 00:33:23.759
problem was my Mac was getting outdated. It wouldn't

00:33:23.759 --> 00:33:26.799
receive any software updates anymore for security.

00:33:27.359 --> 00:33:31.900
And obviously, you can't run a computer with

00:33:31.900 --> 00:33:34.799
an outdated operating system and have it connected

00:33:34.799 --> 00:33:38.519
to the internet. So I had to switch to something

00:33:38.519 --> 00:33:42.440
else anyway. And I was looking at the state of

00:33:42.440 --> 00:33:45.660
macOS. And at that time, at least, they weren't

00:33:45.660 --> 00:33:48.359
really innovating much. And the only innovation

00:33:48.359 --> 00:33:53.359
was just more integration with iOS devices, which

00:33:53.359 --> 00:33:57.609
I didn't have any. inching more and more towards

00:33:57.609 --> 00:34:00.349
free software as opposed to proprietary software.

00:34:00.630 --> 00:34:03.789
And my operating system was really the only proprietary

00:34:03.789 --> 00:34:06.549
software I had still running. And that's the

00:34:06.549 --> 00:34:09.949
least one you want to be proprietary because

00:34:09.949 --> 00:34:14.550
everything else is running on top of it. So Linux

00:34:14.550 --> 00:34:19.730
just made the most sense. Okay. So you're not

00:34:19.730 --> 00:34:21.789
going back then to the roots. You're staying

00:34:21.789 --> 00:34:25.349
in Linux, right? Probably for the foreseeable

00:34:25.349 --> 00:34:27.789
future, I might maybe to open BSD or something.

00:34:27.989 --> 00:34:31.630
I'm not much of an operating system or distro

00:34:31.630 --> 00:34:34.309
hopping guy. I find something that works for

00:34:34.309 --> 00:34:38.630
me and I stay on it. So I do have a couple of

00:34:38.630 --> 00:34:41.730
issues with a void, but you're going to have

00:34:41.730 --> 00:34:44.349
issues with everything. So it's nothing I'm losing

00:34:44.349 --> 00:34:46.869
sleep over where I'm saying I really need to

00:34:46.869 --> 00:34:52.710
switch right now or soon. Are you, I don't know,

00:34:53.519 --> 00:34:55.360
Have you been at companies where you're forced

00:34:55.360 --> 00:34:59.199
to use Mac or they allow you to use Linux, whatever

00:34:59.199 --> 00:35:02.739
you want to use? I have been fortunate enough

00:35:02.739 --> 00:35:05.239
to every company has allowed me to use Linux.

00:35:05.599 --> 00:35:10.039
Oh, really? So far. Yeah. I did have to ask at

00:35:10.039 --> 00:35:12.500
first during the job interview, what operating

00:35:12.500 --> 00:35:16.920
system do you allow us to use? Some companies,

00:35:16.960 --> 00:35:19.960
they really don't care. And some companies do,

00:35:20.159 --> 00:35:23.309
for example, a current employer. They let me

00:35:23.309 --> 00:35:26.369
use Ubuntu, but it has to be Ubuntu and it has

00:35:26.369 --> 00:35:28.989
to be managed by IT. So they don't let me just

00:35:28.989 --> 00:35:31.809
bring my USB stick and plug it to my laptop and

00:35:31.809 --> 00:35:36.750
install whatever I want. But it's fine. I have

00:35:36.750 --> 00:35:38.750
root access. I can install all the packages I

00:35:38.750 --> 00:35:41.570
really need to. So there's just compliance reasons

00:35:41.570 --> 00:35:44.130
they need to. You can't do anything you want.

00:35:44.210 --> 00:35:46.869
So you kind of do your driver stuff or network

00:35:46.869 --> 00:35:49.349
stuff, which I wouldn't want to do anyway on

00:35:49.349 --> 00:35:52.239
a work laptop. But you can install NeoVim in

00:35:52.239 --> 00:35:54.539
all the packages? Yeah, for example. Yeah, exactly.

00:35:54.780 --> 00:35:58.340
So Ubuntu's repository NeoVim is pretty outdated,

00:35:58.599 --> 00:36:01.300
but I can compile from source and then install

00:36:01.300 --> 00:36:04.619
it myself. So that part works. Okay, interesting.

00:36:05.000 --> 00:36:11.239
And what are your thoughts on Windows? Windows

00:36:11.239 --> 00:36:13.280
was actually the first operating system I used,

00:36:13.360 --> 00:36:16.730
which was Windows 98. Then later ME, which came

00:36:16.730 --> 00:36:19.909
with my new computer. I absolutely hated it because

00:36:19.909 --> 00:36:23.309
it would blue screen of death all the time. And

00:36:23.309 --> 00:36:27.389
then I had XP, which was okay, but I never really

00:36:27.389 --> 00:36:30.730
liked Windows much. It has always been a slop

00:36:30.730 --> 00:36:34.530
operating system to me. What everyone uses is

00:36:34.530 --> 00:36:38.489
not particularly good. It has pretty bad documentation,

00:36:38.769 --> 00:36:41.269
at least for users. I don't know how it's for

00:36:41.269 --> 00:36:44.730
developers, but yeah, I didn't like it much.

00:36:45.260 --> 00:36:48.699
So when I switched to Apple, it was like day

00:36:48.699 --> 00:36:51.219
and night difference. Documentation was actually

00:36:51.219 --> 00:36:55.460
good. The software was really nice to use. The

00:36:55.460 --> 00:36:59.880
settings were much more intuitive. I just liked

00:36:59.880 --> 00:37:03.139
it all around better. Okay. Yeah, I've been...

00:37:03.139 --> 00:37:05.400
No, I have not been thinking about switching

00:37:05.400 --> 00:37:08.280
to Linux. Everyone keeps telling me that I should

00:37:08.280 --> 00:37:11.309
try Linux. and i guess there's no going back

00:37:11.309 --> 00:37:14.210
once i go to linux i'm not coming back to mac

00:37:14.210 --> 00:37:17.730
os unless i'm forced to do it in a you know at

00:37:17.730 --> 00:37:21.090
a company or something but i know that it takes

00:37:21.090 --> 00:37:24.469
a lot of time it's not just turn the computer

00:37:24.469 --> 00:37:28.369
on and no man no it'll take me a lot of time

00:37:28.369 --> 00:37:30.530
because it's not just neobim my neobim config

00:37:30.530 --> 00:37:33.489
is in my dot files i can easily you know have

00:37:33.489 --> 00:37:35.849
it on any operating system it doesn't matter

00:37:35.849 --> 00:37:39.579
but it's just the rest of the tools but uh Yeah,

00:37:39.679 --> 00:37:42.599
I mean, I can understand if you have a certain

00:37:42.599 --> 00:37:46.599
workflow, which we are used to, things are going

00:37:46.599 --> 00:37:48.860
to be different. I don't think they're going

00:37:48.860 --> 00:37:51.219
to be harder, because for certain stuff like

00:37:51.219 --> 00:37:54.099
software development, I think Linux and even

00:37:54.099 --> 00:37:56.800
macOS are actually easier than Windows, because

00:37:56.800 --> 00:38:01.780
on macOS, there's like, here's what we have decided

00:38:01.780 --> 00:38:04.880
for you, but we have carved out a certain niche.

00:38:05.360 --> 00:38:07.360
where you can play around with just don't mess

00:38:07.360 --> 00:38:10.219
around with the operating system and system packages

00:38:10.219 --> 00:38:14.420
because then you're in trouble but everything

00:38:14.420 --> 00:38:16.860
else is just fine and it's a unix underneath

00:38:16.860 --> 00:38:22.440
and linux yeah even more so so um but when it

00:38:22.440 --> 00:38:25.260
comes to windows i do know some people who are

00:38:25.260 --> 00:38:27.579
doing windows software development on windows

00:38:27.579 --> 00:38:30.900
and yeah it's kind of a pain because you have

00:38:30.900 --> 00:38:33.820
to find your operating system yeah at least And

00:38:33.820 --> 00:38:36.440
maybe it's just because of how IT has set it

00:38:36.440 --> 00:38:39.539
up at work. But for me, it's just like, oh, I'm

00:38:39.539 --> 00:38:42.260
going to sudo apt install this thing and the

00:38:42.260 --> 00:38:45.760
other people have to go through IT. And even

00:38:45.760 --> 00:38:50.320
for free software, which has no license restrictions

00:38:50.320 --> 00:38:56.260
and it's just ridiculous. Yeah. I think I'm the

00:38:56.260 --> 00:38:59.300
only one using Linux in my department and I'm

00:38:59.300 --> 00:39:01.599
not the one who's having the least, the fewest

00:39:01.599 --> 00:39:06.079
computer problems. Oh, and that brings a good

00:39:06.079 --> 00:39:09.800
question that I always want to ask. How do people

00:39:09.800 --> 00:39:13.239
understand your passion for open source, for

00:39:13.239 --> 00:39:15.820
NeoVim? When you talk to your co -workers, do

00:39:15.820 --> 00:39:17.960
they feel the same? Like, oh yeah, man, NeoVim

00:39:17.960 --> 00:39:20.059
is the best. Or you're the only one, basically

00:39:20.059 --> 00:39:22.980
the only person at the entire company that enjoys

00:39:22.980 --> 00:39:27.519
it and that understands this? I am actually currently

00:39:27.519 --> 00:39:30.900
the only one using NeoVim. Other people use VS

00:39:30.900 --> 00:39:35.409
Code or Spyder. I don't really go around talking

00:39:35.409 --> 00:39:38.210
much about text editors because, you know, it's

00:39:38.210 --> 00:39:40.769
the text editor. That is text. It's not that

00:39:40.769 --> 00:39:45.349
exciting. And I think the best way to promote

00:39:45.349 --> 00:39:47.449
NeoVim, if you really want to promote it, is

00:39:47.449 --> 00:39:50.889
not to talk about it. It's just to use it. And

00:39:50.889 --> 00:39:53.590
if people see you use it and you're doing really

00:39:53.590 --> 00:39:56.010
cool stuff, you're really quickly editing text

00:39:56.010 --> 00:39:59.969
and you've got LSP, auto -completion, you can

00:39:59.969 --> 00:40:03.650
debug it. stuff in it you can open any file type

00:40:03.650 --> 00:40:06.429
and it just works i think that's going to be

00:40:06.429 --> 00:40:08.690
to leave a much better impression than if you

00:40:08.690 --> 00:40:11.070
go around telling everyone oh neo is so great

00:40:11.070 --> 00:40:13.309
i can do all this cool stuff look at me pressing

00:40:13.309 --> 00:40:16.889
all these keys and i type in this completely

00:40:16.889 --> 00:40:21.230
random looking sequence of letters and then stuff

00:40:21.230 --> 00:40:24.849
happens you you start sounding like a weirdo

00:40:24.849 --> 00:40:29.449
yeah yeah about open source and that one's a

00:40:29.449 --> 00:40:32.739
bit different because NeoWim is just a tool.

00:40:32.900 --> 00:40:35.280
And if you have a different tool which you prefer,

00:40:35.539 --> 00:40:37.719
that's fine by me. I don't really care. If you

00:40:37.719 --> 00:40:41.340
want to use Emacs, that's cool. But when it comes

00:40:41.340 --> 00:40:43.619
to open source and free software, there's a big

00:40:43.619 --> 00:40:47.400
difference because open source and free software

00:40:47.400 --> 00:40:50.159
to me is about control. Control giving control

00:40:50.159 --> 00:40:52.920
to the user instead of having someone else dictate

00:40:52.920 --> 00:40:57.880
to you what you are allowed to do. So part of

00:40:57.880 --> 00:41:00.719
the reason I switched to from Mac to Linux was

00:41:00.719 --> 00:41:03.039
precisely because Linux is open source. It's

00:41:03.039 --> 00:41:05.860
free software. I don't really trust big tech

00:41:05.860 --> 00:41:08.500
and especially not Microsoft, but I don't think

00:41:08.500 --> 00:41:12.340
Apple is much better. And the only reason Mac

00:41:12.340 --> 00:41:16.800
OS was at least claiming to be more privacy friendly

00:41:16.800 --> 00:41:19.260
and all was because Apple didn't have all the

00:41:19.260 --> 00:41:22.139
leverage. So even if they were to data mine their

00:41:22.139 --> 00:41:25.119
users, they would just get less useful data than

00:41:25.119 --> 00:41:28.610
Microsoft. especially with iDevices, things have

00:41:28.610 --> 00:41:33.170
changed and Apple is much more prominent. Maybe

00:41:33.170 --> 00:41:35.670
not on the Mac side, but definitely on the iOS,

00:41:35.849 --> 00:41:40.250
mobile phone and tablet side. And yeah, I have

00:41:40.250 --> 00:41:44.150
a question for you. What happens when you share

00:41:44.150 --> 00:41:46.289
your screen at work? Do you ever need to share

00:41:46.289 --> 00:41:49.969
your screen and edit files? Do they follow what's

00:41:49.969 --> 00:41:52.710
happening? Do they ask? What is that? What are

00:41:52.710 --> 00:41:54.590
you doing? What's happening? Do they get lost?

00:41:55.880 --> 00:41:59.300
No, I haven't had anyone get lost so far. No

00:41:59.300 --> 00:42:01.900
one has commented. I mean, they know I use NeoVim

00:42:01.900 --> 00:42:04.980
and it's this terminal editor, but I've never

00:42:04.980 --> 00:42:07.960
drawn attention to it. No one has ever asked

00:42:07.960 --> 00:42:12.480
anything. I did have a previous job where I had

00:42:12.480 --> 00:42:15.599
a coworker. I had just started out and he did

00:42:15.599 --> 00:42:19.199
use NeoVim, but he was using it mostly like mostly

00:42:19.199 --> 00:42:21.239
vanilla. So he had never seen language servers

00:42:21.239 --> 00:42:24.699
and debug adapter protocol. And then when I had

00:42:24.699 --> 00:42:26.699
autocompletion, he was blown away. And then when

00:42:26.699 --> 00:42:29.539
he could see diagnostics from the language server,

00:42:29.679 --> 00:42:31.719
it was amazing. And then I started the debug

00:42:31.719 --> 00:42:34.099
and he was like, whoa, I had no idea you can

00:42:34.099 --> 00:42:38.519
do that in NeoVim. So he had his mind blown.

00:42:38.840 --> 00:42:44.380
So you converted him? No, he was using NeoVim,

00:42:44.380 --> 00:42:47.599
but not for professional development, just as

00:42:47.599 --> 00:42:51.219
a basic text editor. Okay. Okay, interesting.

00:42:51.599 --> 00:42:53.860
And he ended up switching to Emacs eventually.

00:42:54.219 --> 00:42:59.780
Emacs. We lost him. I installed Emacs like, I

00:42:59.780 --> 00:43:02.059
don't know, two weeks ago. There's a guy in YouTube,

00:43:02.360 --> 00:43:05.460
Joshua Blaze. I just wanted to try Emacs because

00:43:05.460 --> 00:43:07.739
everyone talks about Emacs. And I was like, I

00:43:07.739 --> 00:43:09.079
don't want to put in the hours. I don't want

00:43:09.079 --> 00:43:10.920
to do the research and all that. So I just need

00:43:10.920 --> 00:43:13.559
someone that teaches me and guides me through

00:43:13.559 --> 00:43:16.159
the process. So I installed Emacs. I have created

00:43:16.159 --> 00:43:18.619
a few videos about it. You know, org mode is

00:43:18.619 --> 00:43:21.199
something that I have. wanting to try for a long

00:43:21.199 --> 00:43:25.260
time i haven't i cannot make a decision yet so

00:43:25.260 --> 00:43:29.320
far neovim is i don't know what works the best

00:43:29.320 --> 00:43:34.119
for me and markdown but um i don't know do you

00:43:34.119 --> 00:43:39.380
have any thoughts on emacs have you you know

00:43:39.380 --> 00:43:41.539
the old saying emacs is a great operating system

00:43:41.539 --> 00:43:45.579
but it lacks a good text editor i saw a comment

00:43:47.980 --> 00:43:50.059
Yeah, I've never actually used Emacs much. I

00:43:50.059 --> 00:43:52.760
have installed it. I tried using it and then

00:43:52.760 --> 00:43:56.320
these weird key combinations and then you have

00:43:56.320 --> 00:44:00.440
to press all these weird key chords. It just

00:44:00.440 --> 00:44:02.940
didn't work for me. I tried evil mode, but then

00:44:02.940 --> 00:44:05.239
it's like, okay, what's the point? I might just

00:44:05.239 --> 00:44:09.400
use the real thing. Yeah. I mean, if it works

00:44:09.400 --> 00:44:13.059
for you, whatever. I don't think it's worth arguing

00:44:13.059 --> 00:44:18.710
about text editors. The only thing I don't want

00:44:18.710 --> 00:44:21.050
to, I don't want someone else to force me to

00:44:21.050 --> 00:44:24.150
use a certain exit. So if I'm at work, that's

00:44:24.150 --> 00:44:27.030
when someone tells me, you have to use the same

00:44:27.030 --> 00:44:30.050
ID as everyone else. I'm like, nope, I'm using

00:44:30.050 --> 00:44:33.489
my own. Yeah, definitely no, for sure. Fortunately,

00:44:34.030 --> 00:44:38.170
it's really bad in Java because you have this

00:44:38.170 --> 00:44:41.050
like, everyone has to use IntelliJ mentality.

00:44:41.289 --> 00:44:43.349
But when it comes to Python, which is my day

00:44:43.349 --> 00:44:46.659
job language, Because there has never been a

00:44:46.659 --> 00:44:50.480
really popular IDE. There's obviously PyCharm,

00:44:50.539 --> 00:44:54.179
but it came later. And so it's pretty common

00:44:54.179 --> 00:44:56.840
for people to use just whatever they want. And

00:44:56.840 --> 00:45:00.000
you keep your editor settings or your linter

00:45:00.000 --> 00:45:02.960
settings and all in plain text files. And then

00:45:02.960 --> 00:45:05.719
your editor can just read those and use them.

00:45:05.980 --> 00:45:08.519
Okay, so you use full lineage of them, even debugging

00:45:08.519 --> 00:45:11.579
and all stuff in Python and works just fine.

00:45:12.659 --> 00:45:16.820
Exactly. Okay, I tried. um what is it uh lsp

00:45:16.820 --> 00:45:19.300
rough i don't know why i was having some sort

00:45:19.300 --> 00:45:22.599
of issues it was like freezing when i exited

00:45:22.599 --> 00:45:27.079
a py file a python file it just froze for a few

00:45:27.079 --> 00:45:29.500
seconds i don't know what was happening so i

00:45:29.500 --> 00:45:31.159
just switched to a different one what do you

00:45:31.159 --> 00:45:33.739
use do you use rough or what's the other one

00:45:33.739 --> 00:45:36.900
i don't remember uh no i use pi lsp if you just

00:45:36.900 --> 00:45:40.000
search the web for python lsp server you're going

00:45:40.000 --> 00:45:45.099
to find it And what's cool about it is that it's

00:45:45.099 --> 00:45:48.719
modular. So it provides the bare minimum. And

00:45:48.719 --> 00:45:50.320
then there's a bunch of plugins which you can

00:45:50.320 --> 00:45:52.639
add. And some of these plugins are included by

00:45:52.639 --> 00:45:55.719
default. But you can also add, for example, if

00:45:55.719 --> 00:46:00.340
you want to use Raph as your linter, I think

00:46:00.340 --> 00:46:02.699
there's a plugin. Yeah, that's the first one.

00:46:03.139 --> 00:46:06.840
This one, okay. So if you scroll down a bit.

00:46:08.300 --> 00:46:10.480
Yeah, for example, let's say you want static

00:46:10.480 --> 00:46:13.039
type checking. So Python is a dynamically typed

00:46:13.039 --> 00:46:15.480
language, but you can also provide type annotations,

00:46:15.579 --> 00:46:18.539
and then a type checker can check those statically.

00:46:19.000 --> 00:46:21.519
So this one is not included by default, but there's

00:46:21.519 --> 00:46:25.800
a plugin, PyLSP MyPy. It might actually be listed

00:46:25.800 --> 00:46:28.940
if you scroll down. Let's see if I search here,

00:46:29.059 --> 00:46:33.500
MyPy. Yeah, there it is. So you can add it as

00:46:33.500 --> 00:46:36.659
a plugin, and then you get also static type checks.

00:46:37.280 --> 00:46:39.219
Right in your editor, so your editor can show

00:46:39.219 --> 00:46:42.000
you when you've made a type error. Okay, interesting.

00:46:42.500 --> 00:46:45.199
I don't do Python professionally, you know, but

00:46:45.199 --> 00:46:47.880
if I ever do, and if I have questions, it's good

00:46:47.880 --> 00:46:51.579
to know. And I will probably reach out and ask

00:46:51.579 --> 00:46:53.960
for help, you know. Yeah, you can see in the

00:46:53.960 --> 00:46:57.440
list, the last point is rough, Python LSP rough.

00:46:58.019 --> 00:47:01.360
So if you want to use rough as your linter, you

00:47:01.360 --> 00:47:03.360
can install that plugin. I haven't tried it myself,

00:47:03.619 --> 00:47:06.980
but it's probably going to work. okay wonderful

00:47:06.980 --> 00:47:10.239
all right all right so let's see what else do

00:47:10.239 --> 00:47:12.920
we have here in the topics do you like any sort

00:47:12.920 --> 00:47:17.079
of um video games or not at all oh yeah sure

00:47:17.079 --> 00:47:19.579
i do like video games i've noticed over time

00:47:19.579 --> 00:47:23.000
my change has switched from long rpgs and so

00:47:23.000 --> 00:47:25.840
to more arcade like games where you can just

00:47:25.840 --> 00:47:28.719
sit down for a couple of minutes play have fun

00:47:28.719 --> 00:47:31.780
see how far you can make it and then move on

00:47:31.780 --> 00:47:34.739
with life What's the game that you have been

00:47:34.739 --> 00:47:39.019
playing lately, or the last one you played? Let

00:47:39.019 --> 00:47:42.780
me see... Streets of Rage 4. Yeah, that's fun.

00:47:43.480 --> 00:47:47.280
So Streets of Rage 1, 2 and 3 were these Sega

00:47:47.280 --> 00:47:50.300
Mega Drive games. Like side -scrolling beta maps,

00:47:50.400 --> 00:47:52.780
you walk from left to right and you beat up people.

00:47:53.599 --> 00:47:56.960
And yeah, it was pretty fun. And then they made

00:47:56.960 --> 00:48:00.880
a new one a couple of years ago. completely modern

00:48:00.880 --> 00:48:03.320
but they still retain the same basic gameplay

00:48:03.320 --> 00:48:07.699
so you don't have any sort of bloat and rpg elements

00:48:07.699 --> 00:48:10.960
and all this stuff is just pure old school walk

00:48:10.960 --> 00:48:13.900
from left to right and then beat enemies up okay

00:48:13.900 --> 00:48:16.719
this one the one shown on the screen yeah that's

00:48:16.719 --> 00:48:21.099
the one okay okay interesting um what else do

00:48:21.099 --> 00:48:26.860
you like um reading any books yeah um i've booked

00:48:26.860 --> 00:48:30.050
um What I find cool is there's a site called

00:48:30.050 --> 00:48:32.949
Project Gutenberg. They have e -books of all

00:48:32.949 --> 00:48:36.030
these old classics which are public domain now.

00:48:36.710 --> 00:48:40.030
And what I do like is Takes and Book, which is

00:48:40.030 --> 00:48:46.610
popular. So there's a lot of, how do I put it,

00:48:46.710 --> 00:48:49.030
movie adaptations and so on of certain works.

00:48:49.190 --> 00:48:52.150
Like, for example, Frankenstein. Everyone knows

00:48:52.150 --> 00:48:55.090
the castle, the lightning, bowls, the younger

00:48:55.090 --> 00:48:59.489
villagers, pitchforks and torches. um the hunchback

00:48:59.489 --> 00:49:01.710
assistant and then he frankenstein goes like

00:49:01.710 --> 00:49:05.750
it's alive it's alive and it's fun to read the

00:49:05.750 --> 00:49:08.050
book because the book is nothing like that there's

00:49:08.050 --> 00:49:10.710
none of that in the book and instead frankenstein

00:49:10.710 --> 00:49:13.949
he constantly faints and has to go on long walks

00:49:13.949 --> 00:49:16.869
to recover and he's such a wimp it's it's funny

00:49:16.869 --> 00:49:19.809
to see the difference between what pop culture

00:49:19.809 --> 00:49:23.429
thinks and what the original is okay so this

00:49:23.429 --> 00:49:25.840
is the one that you were mentioning Yeah, that's

00:49:25.840 --> 00:49:27.519
the one, Project Gutenberg. It's a really cool

00:49:27.519 --> 00:49:32.840
project. You can read it on an e -reader, you

00:49:32.840 --> 00:49:36.260
can get it as a PDF or HTML, and it's great.

00:49:36.659 --> 00:49:39.179
One book I really enjoyed was The Count of Monte

00:49:39.179 --> 00:49:42.320
Cristo, because there are movie adaptations,

00:49:42.539 --> 00:49:45.280
but they all try to fit the entire plot into

00:49:45.280 --> 00:49:51.039
one movie. But you need to write Monte Cristo's

00:49:51.039 --> 00:49:56.679
two words. that's the one by alexandre dimas

00:49:56.679 --> 00:50:01.300
yeah it's a really long book it's actually three

00:50:01.300 --> 00:50:04.139
novels so it was published in three parts and

00:50:04.139 --> 00:50:07.139
it gets really intense amazing so i absolutely

00:50:07.139 --> 00:50:10.320
recommend it to anyone but just you you should

00:50:10.320 --> 00:50:13.219
know what you're getting yourself into okay it's

00:50:13.219 --> 00:50:16.619
quite a read and so you can see the epub is like

00:50:16.619 --> 00:50:22.929
80 megabytes for text i can imagine So you just

00:50:22.929 --> 00:50:26.829
read them in a Kindle or what? Your phone? I

00:50:26.829 --> 00:50:29.289
read them on my phone because I don't have a

00:50:29.289 --> 00:50:31.610
tablet, but obviously a tablet would be better.

00:50:32.750 --> 00:50:36.909
There's a great app called Librera. Let me just

00:50:36.909 --> 00:50:39.789
look up the name. You can show it on your screen

00:50:39.789 --> 00:50:46.690
if you want to. Yeah. Let me see if I can find

00:50:46.690 --> 00:50:50.150
it. Just let me know when you're ready to share

00:50:50.150 --> 00:50:56.469
your screen. Yeah, you can share it. I've got

00:50:56.469 --> 00:50:59.630
it now. So it's on F -Droid and the F -Droid

00:50:59.630 --> 00:51:03.510
repository. It's just an e -book reader. And

00:51:03.510 --> 00:51:06.210
what I like is it has all the options it needs

00:51:06.210 --> 00:51:08.869
to have for an e -book reader and none more and

00:51:08.869 --> 00:51:11.829
none fewer. So yeah, here are some screenshots.

00:51:11.969 --> 00:51:15.090
So you have your library. You can read your book

00:51:15.090 --> 00:51:17.329
in various formats. You can change the color

00:51:17.329 --> 00:51:21.510
and it's just great. So instead of doom scrolling

00:51:21.510 --> 00:51:24.949
in Twitter and all that, stuff you just decide

00:51:24.949 --> 00:51:27.030
to read that's what you decide to invest your

00:51:27.030 --> 00:51:31.250
time on right yeah um i do have to admit i don't

00:51:31.250 --> 00:51:34.750
read yeah when i can find the time so when i'm

00:51:34.750 --> 00:51:38.429
on the train ride or something like that okay

00:51:38.429 --> 00:51:42.750
okay but it definitely does beat doom scrolling

00:51:42.750 --> 00:51:48.489
yeah yeah i wish i could you know just be disciplined

00:51:48.489 --> 00:51:52.400
and do it you know no Twitter beats me and the

00:51:52.400 --> 00:51:54.559
rest of social media and all that stuff. It's

00:51:54.559 --> 00:51:59.900
complicated. I found a great trick. You can set

00:51:59.900 --> 00:52:02.539
your web browser to delete cookies every time

00:52:02.539 --> 00:52:06.440
you close it. So if your cookies are deleted,

00:52:06.579 --> 00:52:10.460
you get logged out. And then if you want to comment

00:52:10.460 --> 00:52:13.500
on Reddit or doom scroll on Twitter, you have

00:52:13.500 --> 00:52:17.320
to log in. And then there's the much bigger hurdle

00:52:17.320 --> 00:52:20.840
you have to get over. And then you're only going

00:52:20.840 --> 00:52:23.099
to log in if you actually have something useful

00:52:23.099 --> 00:52:25.880
to do. And if you just like scrolling because

00:52:25.880 --> 00:52:29.659
I want to rot my brain, you're not going to do

00:52:29.659 --> 00:52:34.139
it. Oh yeah, for sure. Okay. And you have to

00:52:34.139 --> 00:52:37.900
brain rot responsibly. Yeah. Yeah. I'm not too

00:52:37.900 --> 00:52:40.119
responsible. I'm not too disciplined, but I'll,

00:52:40.139 --> 00:52:42.659
I don't know. I have to come up with something

00:52:42.659 --> 00:52:45.539
because I just burn a lot of time, waste a lot

00:52:45.539 --> 00:52:48.940
of time in things that don't, you know, that.

00:52:49.480 --> 00:52:52.340
that i shouldn't and where people can find you

00:52:52.340 --> 00:52:56.639
where in your github repo is that um yeah i don't

00:52:56.639 --> 00:52:59.400
have social media yeah i don't have social media

00:52:59.400 --> 00:53:03.260
but i do have a github i also have a gitlab it's

00:53:03.260 --> 00:53:05.579
the same name just replace github with gitlab

00:53:05.579 --> 00:53:09.860
and if there's anything you want to post any

00:53:09.860 --> 00:53:12.420
issue you want to raise or discussion you want

00:53:12.420 --> 00:53:16.989
to start for one of my plugins you can open so

00:53:16.989 --> 00:53:20.010
it's in the okay so you have more than one plugin

00:53:20.010 --> 00:53:23.210
then uh yeah i do have a couple of plugins but

00:53:23.210 --> 00:53:27.670
rainbow delivery is the most popular one um yeah

00:53:27.670 --> 00:53:32.690
this one okay i see okay okay wonderful right

00:53:32.690 --> 00:53:36.090
and um how do you take notes i'm just jumping

00:53:36.090 --> 00:53:38.650
between topics it's not making too much sense

00:53:38.650 --> 00:53:41.329
but do you take notes which tool do you use neo

00:53:41.329 --> 00:53:44.150
vim or something else yeah any of them i don't

00:53:44.150 --> 00:53:48.039
have any fancy setup i just open a new terminal,

00:53:48.320 --> 00:53:51.920
type in nvim, write down my notes, and that's

00:53:51.920 --> 00:53:56.260
it. Markdown. I prefer restructured text, but

00:53:56.260 --> 00:54:00.179
it's essentially the same. Oh, okay. So what

00:54:00.179 --> 00:54:04.559
is the extension like? Do you create the file

00:54:04.559 --> 00:54:12.340
as file1 .md? I really don't have any fancy systems.

00:54:12.380 --> 00:54:15.849
I just write on whatever name. file name comes

00:54:15.849 --> 00:54:20.190
into my mind it's nothing sophisticated okay

00:54:20.190 --> 00:54:24.570
okay you just want to capture the the notes exactly

00:54:24.570 --> 00:54:28.329
exactly or i use pen and paper as well often

00:54:28.329 --> 00:54:31.409
okay but again just scrap paper nothing fancy

00:54:31.409 --> 00:54:36.969
okay and um i don't know about linux window managers

00:54:36.969 --> 00:54:39.389
but for the audience if there's someone watching

00:54:39.389 --> 00:54:42.789
this what window manager do you use on linux

00:54:43.980 --> 00:54:46.679
Okay, I do have a setup, which in the past I

00:54:46.679 --> 00:54:49.380
would have absolutely recommended it, but I can

00:54:49.380 --> 00:54:51.599
no longer recommend it. So what I'm doing is

00:54:51.599 --> 00:54:54.000
I'm using KDE Plasma as my desktop environment

00:54:54.000 --> 00:55:01.280
and BSPWM as my window manager. So BSP stands

00:55:01.280 --> 00:55:04.559
for Binary Space Partitioning Window Manager.

00:55:04.659 --> 00:55:07.500
But if you search for BSPWM, you're going to

00:55:07.500 --> 00:55:10.619
find it. And the reason is I have a particular

00:55:10.619 --> 00:55:13.219
need. I've got an impinger in my right shoulder.

00:55:13.990 --> 00:55:18.050
which is to say the space between in inside the

00:55:18.050 --> 00:55:21.110
joint is too small and my tendon tends to rub

00:55:21.110 --> 00:55:25.030
against the bone i can do most everyday activities

00:55:25.030 --> 00:55:27.929
or i can do all everyday activities everyone

00:55:27.929 --> 00:55:31.170
else i'm not disabled however if i do something

00:55:31.170 --> 00:55:33.610
which provokes the condition i'm going to have

00:55:33.610 --> 00:55:36.030
a lot of pain and one thing which does provoke

00:55:36.030 --> 00:55:38.949
the condition is switching between keyboard and

00:55:38.949 --> 00:55:42.519
mouse So what I need is an environment which

00:55:42.519 --> 00:55:46.059
can be operated both using a mouse and a keyboard

00:55:46.059 --> 00:55:49.960
equally well. And most desktop environments are

00:55:49.960 --> 00:55:53.599
geared around using the mouse. And most Tadding

00:55:53.599 --> 00:55:56.019
with No Matches setups are geared around using

00:55:56.019 --> 00:56:00.360
the keyboard. And combining these two allows

00:56:00.360 --> 00:56:04.159
me to do most of my work without switching. So

00:56:04.159 --> 00:56:07.380
if I've got my hand on my mouse, I can do a lot

00:56:07.380 --> 00:56:09.889
of stuff. You know what? You can switch to my

00:56:09.889 --> 00:56:12.090
screen and then I can show you what I mean. I've

00:56:12.090 --> 00:56:16.289
got these panels on the side. And for example,

00:56:16.329 --> 00:56:19.929
I can open here my window manager. Right, in

00:56:19.929 --> 00:56:23.949
action. Exactly. So you see the tie link is from

00:56:23.949 --> 00:56:26.349
BSPWM, but all these panels are from Plasma.

00:56:26.449 --> 00:56:30.110
So these are KDE panels. So you see I've got

00:56:30.110 --> 00:56:33.070
all my applications at hand here. I've got my

00:56:33.070 --> 00:56:36.710
global menu because I'm a former Mac user. I

00:56:36.710 --> 00:56:39.210
think global menus are superior in every way.

00:56:40.070 --> 00:56:43.750
And so, for example, if I want to see my downloads,

00:56:43.889 --> 00:56:46.809
I can click this widget here. I have my desktop,

00:56:46.989 --> 00:56:50.070
my trash bin. I need to start GIMP. I click here.

00:56:50.489 --> 00:56:53.530
So you can see I'm doing a lot of stuff using

00:56:53.530 --> 00:56:56.090
just my mouse. So I won't close this window.

00:56:56.150 --> 00:57:01.929
I do go to the menu or I can use this dock here

00:57:01.929 --> 00:57:06.280
on the right -hand side. But I can also... use

00:57:06.280 --> 00:57:11.179
um i'm going to move to my keyboard and now um

00:57:11.179 --> 00:57:20.280
i should open a new terminal okay ah okay the

00:57:20.280 --> 00:57:23.460
cable had gotten had gotten loose so you can

00:57:23.460 --> 00:57:26.000
see i can create a new window i can move stuff

00:57:26.000 --> 00:57:29.400
around so like let's say i want to open my file

00:57:29.400 --> 00:57:34.019
browser i use super and space to open this k

00:57:34.019 --> 00:57:37.500
runner menu and i type now dolphin to open my

00:57:37.500 --> 00:57:39.940
file manager i move windows around with my keyboard

00:57:39.940 --> 00:57:44.679
so this is all bspwm doing stuff so you can see

00:57:44.679 --> 00:57:48.820
how i can manage my windows i can move to a different

00:57:48.820 --> 00:57:51.820
desktop i could move for example my terminal

00:57:51.820 --> 00:57:55.860
to my second desktop so press here and then see

00:57:55.860 --> 00:57:59.559
it's on my second desktop now so and this allows

00:57:59.559 --> 00:58:01.579
me to minimize the switching between keyboard

00:58:01.579 --> 00:58:05.670
and Now, obviously, if I want to do something

00:58:05.670 --> 00:58:08.409
with image editing, I will have to switch to

00:58:08.409 --> 00:58:11.869
my mouse. But then I'm going to remain on my

00:58:11.869 --> 00:58:14.010
mouse for image editing. I'm not going to do

00:58:14.010 --> 00:58:18.050
image editing using my keyboard. And this is

00:58:18.050 --> 00:58:21.449
a setup which used to work very well. But then

00:58:21.449 --> 00:58:25.710
Plasma updated to version 6. And now it's all

00:58:25.710 --> 00:58:28.750
Wayland. And the problem with Wayland is... So

00:58:28.750 --> 00:58:31.800
in the past, when you used... Maybe I should

00:58:31.800 --> 00:58:34.079
provide some context. So on Linux, there are

00:58:34.079 --> 00:58:39.199
two different display servers. So Linux by default

00:58:39.199 --> 00:58:42.679
is pure tech space, pure tech space. So there's

00:58:42.679 --> 00:58:46.480
a package called X11, which gives the operating

00:58:46.480 --> 00:58:48.760
system graphical capabilities. So you can have

00:58:48.760 --> 00:58:51.099
a desktop, you can have widgets, icons, windows,

00:58:51.139 --> 00:58:54.059
and all that stuff. And X11 has gotten pretty

00:58:54.059 --> 00:58:58.230
old. And the new one is Wayland. And it's not

00:58:58.230 --> 00:59:01.849
like Wayland is just a new version of X11. Wayland

00:59:01.849 --> 00:59:03.630
is completely different from the ground up and

00:59:03.630 --> 00:59:07.190
it's intentional. And unfortunately, because

00:59:07.190 --> 00:59:10.510
of how Wayland works, you cannot mix and match

00:59:10.510 --> 00:59:13.849
components like you can on X11. On X11, you have

00:59:13.849 --> 00:59:16.550
this monolithic server and then you can add your

00:59:16.550 --> 00:59:18.530
own compositor, you can add your own window manager

00:59:18.530 --> 00:59:22.369
and panels and all this stuff. But on Wayland,

00:59:22.449 --> 00:59:25.070
it's much more concentrated. So either you use...

00:59:25.440 --> 00:59:29.239
a tiling compositor like Hyperland or Riva, or

00:59:29.239 --> 00:59:32.699
you're using KDE Plasma. And I cannot combine

00:59:32.699 --> 00:59:36.219
these two. And there are a couple of bugs on

00:59:36.219 --> 00:59:41.239
the X11 side of Plasma. For example, you can

00:59:41.239 --> 00:59:43.880
see if I hover over this clock, there should

00:59:43.880 --> 00:59:46.989
be a tooltip. um above my window but if you look

00:59:46.989 --> 00:59:49.570
closely it's actually behind my window so the

00:59:49.570 --> 00:59:54.570
z order z axis is all messed up and i cannot

00:59:54.570 --> 00:59:56.929
turn my screen off if i do turn my screen off

00:59:56.929 --> 01:00:00.909
to save energy to save power when i turn it back

01:00:00.909 --> 01:00:03.329
on the desktop will be all messed up and unusable

01:00:03.329 --> 01:00:06.590
and the menu for shutting down so if i click

01:00:06.590 --> 01:00:09.190
press here there should be like an overlay and

01:00:09.190 --> 01:00:12.360
then when i press it again um the machine will

01:00:12.360 --> 01:00:14.260
shut down this one doesn't work either so i have

01:00:14.260 --> 01:00:17.719
to use my terminal and type sudo power off to

01:00:17.719 --> 01:00:20.119
turn it off which i mean it's not the worst thing

01:00:20.119 --> 01:00:23.179
in the world it's just annoying but the other

01:00:23.179 --> 01:00:26.099
two are real problems so i haven't yet found

01:00:26.099 --> 01:00:29.239
a good solution what i would love to be able

01:00:29.239 --> 01:00:33.199
to do is use a composer like hyperland or river

01:00:33.199 --> 01:00:36.519
and then use all these plasma panels on top of

01:00:36.519 --> 01:00:40.099
it and then i would have my stream set up again

01:00:40.099 --> 01:00:43.719
and maybe it will be possible in the future but

01:00:43.719 --> 01:00:46.980
not for now and what do you think about single

01:00:46.980 --> 01:00:49.840
app on the screen because you mentioned vsp i'm

01:00:49.840 --> 01:00:53.639
on mac os and um i use a window manager let me

01:00:53.639 --> 01:00:57.239
just show you my screen real quick okay and um

01:00:57.239 --> 01:00:59.679
i don't know if you know the primogen or not

01:00:59.679 --> 01:01:02.320
but i watched the video that he created in which

01:01:02.320 --> 01:01:05.019
in which he talked about how he used i3 right

01:01:05.019 --> 01:01:09.079
so i said interesting i like the idea of having

01:01:09.599 --> 01:01:11.980
a single application on the screen at a time

01:01:11.980 --> 01:01:16.059
right so i did my research and um i found this

01:01:16.059 --> 01:01:19.320
window manager in mac os called yapai it gives

01:01:19.320 --> 01:01:23.800
you two modes one of them is um bsp and the other

01:01:23.800 --> 01:01:28.320
one is um stack mode right so stack mode is what

01:01:28.320 --> 01:01:31.219
i have on the screen i have the browser you know

01:01:31.219 --> 01:01:34.739
on the main area like this part here right the

01:01:34.739 --> 01:01:38.469
where the browser is This on the right hand side

01:01:38.469 --> 01:01:41.150
is the padding section of the of the window manager.

01:01:41.289 --> 01:01:44.329
Right. So I only have and I like keeping that

01:01:44.329 --> 01:01:46.230
that application there because I don't know,

01:01:46.289 --> 01:01:49.710
I use it quite often. Right. But I have just

01:01:49.710 --> 01:01:52.369
one thing on the screen at a time. If I switch

01:01:52.369 --> 01:01:54.989
to YouTube, for example, that's the only one

01:01:54.989 --> 01:01:57.309
there. Right. Or if I switch to the terminal

01:01:57.309 --> 01:02:01.429
or to the browser. What are your thoughts on

01:02:01.429 --> 01:02:05.349
something like that? Because I do get BSP, it's

01:02:05.349 --> 01:02:07.769
nice, but you have to be managing applications,

01:02:08.170 --> 01:02:10.989
right? Because otherwise, all of them open in

01:02:10.989 --> 01:02:14.809
the same desktop, right? So if you open GIMP,

01:02:14.929 --> 01:02:17.110
you have to move it to a different desktop and

01:02:17.110 --> 01:02:19.789
all that stuff. What are your thoughts on that?

01:02:21.510 --> 01:02:24.409
Yeah, there's something called monocle mode in

01:02:24.409 --> 01:02:27.130
BSPWM, which is similar to what you're describing

01:02:27.130 --> 01:02:30.610
right now. I never got the hang of it. So I'm

01:02:30.610 --> 01:02:34.010
using regular binary space partitioning where

01:02:34.010 --> 01:02:37.550
I open GIMP and then my screen is cut in half

01:02:37.550 --> 01:02:39.969
and then I move it to a new desktop if I want

01:02:39.969 --> 01:02:43.869
to. It works for me. Is it the best? I don't

01:02:43.869 --> 01:02:47.449
know. Maybe, maybe not. I don't care. But you

01:02:47.449 --> 01:02:49.949
got used to the tiles already, right? You find

01:02:49.949 --> 01:02:53.369
them useful. Yeah. Yeah. Okay. Interesting. Okay.

01:02:53.429 --> 01:02:55.309
And I noticed that the terminal that you were

01:02:55.309 --> 01:02:58.019
using is Alacrity. Is there a reason why you

01:02:58.019 --> 01:03:02.619
haven't switched to anything else? Yeah, not

01:03:02.619 --> 01:03:06.079
really. What I do like about Electricity is its

01:03:06.079 --> 01:03:10.219
VIA mode. I can show you what I mean. So if I

01:03:10.219 --> 01:03:14.320
open Electricity and then I do like, I don't

01:03:14.320 --> 01:03:17.960
know, something that's going to produce lots

01:03:17.960 --> 01:03:22.619
of output like XBPS query, I don't know, SQL

01:03:22.619 --> 01:03:27.889
or something. so you see there's a lot of output

01:03:27.889 --> 01:03:32.929
and now i could use my mouse to select text but

01:03:32.929 --> 01:03:35.070
as i said i don't want to use my mouse i want

01:03:35.070 --> 01:03:37.289
to be or i don't want to have to use my mouse

01:03:37.289 --> 01:03:39.489
i want to be able to use my keyboard because

01:03:39.489 --> 01:03:41.869
when i'm using a terminal my hands are already

01:03:41.869 --> 01:03:44.730
on the keyboard so i press a shortcut and now

01:03:44.730 --> 01:03:47.130
if you look closely my cursor has changed its

01:03:47.130 --> 01:03:50.289
shape and now i can move around the cursor using

01:03:50.289 --> 01:03:53.980
bi keys i can select text And I can press, for

01:03:53.980 --> 01:03:57.119
example, Y to copy this text. And I can then,

01:03:57.119 --> 01:04:01.500
now it's on my clipboard, so I can do XBPS show.

01:04:02.400 --> 01:04:06.619
And I'm like, okay. So I really like this VI

01:04:06.619 --> 01:04:08.880
mode. I don't know if other editors can, other

01:04:08.880 --> 01:04:11.880
terminals can do it. But for me, that's a killer

01:04:11.880 --> 01:04:14.500
feature. And the other feature I like is that

01:04:14.500 --> 01:04:18.000
electricity does support modern features, like,

01:04:18.079 --> 01:04:25.360
for example, undercurls. Okay, let me try to

01:04:25.360 --> 01:04:31.920
create something. So you see the grammar checker.

01:04:32.159 --> 01:04:34.980
Yeah, I see it. The word checker doesn't recognize

01:04:34.980 --> 01:04:38.860
this word, so it undercurls it. And before this

01:04:38.860 --> 01:04:42.219
protocol was supported in Alacrity, it would

01:04:42.219 --> 01:04:44.059
underline and then it would highlight the entire

01:04:44.059 --> 01:04:47.800
word in pink, which again looks like Unicorn

01:04:47.800 --> 01:04:51.460
Puke, but this one is much more. much more pleasant

01:04:51.460 --> 01:04:54.340
so um yeah this is another reason why i like

01:04:54.340 --> 01:04:57.880
electricity it does like some features like ligatures

01:04:57.880 --> 01:05:02.380
but you know yeah i don't have it all i don't

01:05:02.380 --> 01:05:04.460
use ligatures let me show you something real

01:05:04.460 --> 01:05:08.099
quick i might use them if i had if i had the

01:05:08.099 --> 01:05:11.199
ability but i don't and yeah it's like whatever

01:05:11.199 --> 01:05:15.400
i do know ghosty is the new hot stuff uh i tried

01:05:15.400 --> 01:05:19.280
it I mean, it's a terminal. It terminals like

01:05:19.280 --> 01:05:22.260
it's not nothing special. And the big selling

01:05:22.260 --> 01:05:27.340
point of Ghosty is that it's native. But unfortunately,

01:05:27.380 --> 01:05:30.679
on Linux, native for the author means GNOME.

01:05:31.099 --> 01:05:33.820
And I really don't like what GNOME is doing.

01:05:33.920 --> 01:05:37.440
So that feature is completely mute for me. And

01:05:37.440 --> 01:05:41.340
yeah, I'm not that impressed. I don't know. Maybe

01:05:41.340 --> 01:05:44.579
I'll switch to it one day. I don't see any reason,

01:05:44.679 --> 01:05:47.639
at least for now, that I would say I have to

01:05:47.639 --> 01:05:49.840
switch to another terminal. The only reason,

01:05:49.880 --> 01:05:52.599
you know, if you're looking at my screen, the

01:05:52.599 --> 01:05:57.239
only reason why I switched to... I was using

01:05:57.239 --> 01:05:59.539
anacrity and I was pretty happy because I don't

01:05:59.539 --> 01:06:02.460
like tabs. I don't like anything. My terminal

01:06:02.460 --> 01:06:05.380
should be just that, just a terminal. i don't

01:06:05.380 --> 01:06:07.400
want anything else to be added to my terminal

01:06:07.400 --> 01:06:11.239
right i never use the tabs that um ghosty provides

01:06:11.239 --> 01:06:15.260
or western or other terminals because i don't

01:06:15.260 --> 01:06:18.139
know i use tmux and that's something else that

01:06:18.139 --> 01:06:20.840
i want to ask you about in a little while right

01:06:20.840 --> 01:06:26.380
but the only reason why i switched to ghosty

01:06:26.380 --> 01:06:32.429
well first it was um kitty Then it was Western.

01:06:32.590 --> 01:06:35.829
And then I ended up in Ghosty. But this is mainly

01:06:35.829 --> 01:06:40.670
the only reason why I'm in Ghosty at the moment.

01:06:40.809 --> 01:06:44.030
It also works in Kitty and Western, right? So

01:06:44.030 --> 01:06:47.630
image rendering, basically. And I couldn't do

01:06:47.630 --> 01:06:50.630
that with Alacrity. Maybe it's possible nowadays.

01:06:50.869 --> 01:06:54.349
I'm not quite sure. But that is the only reason

01:06:54.349 --> 01:06:59.090
why I switched away from Alacrity. And what you

01:06:59.090 --> 01:07:02.199
mentioned... When I'm in my terminal, yeah, and

01:07:02.199 --> 01:07:05.000
I need to copy some text, I do it with Tmux.

01:07:05.239 --> 01:07:08.659
I don't know who got the inspiration from who,

01:07:08.719 --> 01:07:11.840
but Tmux has this called Copy Mode. You see the

01:07:11.840 --> 01:07:14.360
little thingy on the right -hand side, on the

01:07:14.360 --> 01:07:19.119
corner? I don't know if you're able to see that

01:07:19.119 --> 01:07:21.820
there. Yeah, I can see it. Yeah, it's similar

01:07:21.820 --> 01:07:27.960
to what it shows up in in electricity, right?

01:07:28.639 --> 01:07:31.380
i can just copy stuff from the terminal i'm not

01:07:31.380 --> 01:07:34.539
in neobim here right so same same thing using

01:07:34.539 --> 01:07:40.179
bim motions and all that and uh yeah interesting

01:07:40.179 --> 01:07:42.739
but what are your thoughts on tmux by the way

01:07:42.739 --> 01:07:46.280
do you use tmux or no uh no i don't use it i

01:07:46.280 --> 01:07:50.199
tried it once it was fine but i didn't like how

01:07:50.199 --> 01:07:54.260
it would uh steal one of your keys from your

01:07:55.030 --> 01:07:57.429
applications so it's by default if i remember

01:07:57.429 --> 01:08:01.769
correctly control b and then control b is gone

01:08:01.769 --> 01:08:04.630
control b is like the t -max key and it cannot

01:08:04.630 --> 01:08:08.409
none of your other applications can read it and

01:08:08.409 --> 01:08:12.269
that was annoying because i do use it in the

01:08:12.269 --> 01:08:15.989
terminal a lot because of read line so when i

01:08:15.989 --> 01:08:18.750
want to move my cursor back i don't use the arrow

01:08:18.750 --> 01:08:22.140
keys Because then I would have to twist my wrist.

01:08:22.439 --> 01:08:25.239
And control B is much easier to read, especially

01:08:25.239 --> 01:08:29.560
if you have caps lock bound to control. And that's

01:08:29.560 --> 01:08:32.319
the part I don't like about TMAX. I do have a

01:08:32.319 --> 01:08:35.180
tiling window manager which does all the multiplexing

01:08:35.180 --> 01:08:39.479
stuff. Not the multiplexing, the split windows

01:08:39.479 --> 01:08:43.659
and stuff. Is that multiplexing? I don't know.

01:08:43.680 --> 01:08:46.850
You know what I mean. Yeah, yeah. Okay. Okay.

01:08:46.930 --> 01:08:49.170
So a tiling window manager does this part for

01:08:49.170 --> 01:08:52.890
me and yeah, I don't miss it. Okay. And how do

01:08:52.890 --> 01:08:58.510
you, uh, uh, what I wanted to say, um, sessions

01:08:58.510 --> 01:09:00.670
and all this stuff, that's kind of cool, but

01:09:00.670 --> 01:09:04.970
I don't need them. So if I had to use those,

01:09:05.029 --> 01:09:08.449
I would probably use T max, but right now I don't

01:09:08.449 --> 01:09:11.149
have to. Yeah. That was, that was going to be

01:09:11.149 --> 01:09:14.710
my question. Like, um, do you use sessions? That's

01:09:14.710 --> 01:09:17.180
one of the, Reasons. Well, that's actually the

01:09:17.180 --> 01:09:19.359
main reason why I use tmux. I don't care about

01:09:19.359 --> 01:09:24.279
the split paints It's just sessions, right? I

01:09:24.279 --> 01:09:26.279
just like to switch in between different projects

01:09:26.279 --> 01:09:28.899
Let's say that I want to go to my notes With

01:09:28.899 --> 01:09:31.699
that single key map I can jump to them or if

01:09:31.699 --> 01:09:34.439
I want to go to my that files or any other github

01:09:34.439 --> 01:09:37.899
repo, you know Just like he press away. So I

01:09:37.899 --> 01:09:43.229
define that kind of kind of useful and You mentioned

01:09:43.229 --> 01:09:46.810
as well your IDE. We already covered this. It's

01:09:46.810 --> 01:09:51.029
Neovim, of course. And do you use your own Neovim

01:09:51.029 --> 01:09:54.770
distribution? Or you use your own config? Or

01:09:54.770 --> 01:09:58.909
do you use a distribution? I use my own config

01:09:58.909 --> 01:10:02.250
because, again, I come from Vim. And there have

01:10:02.250 --> 01:10:05.369
been Vim distributions in the past, but they

01:10:05.369 --> 01:10:08.069
were not very popular. It was only with Neovim,

01:10:08.090 --> 01:10:12.020
especially with Lua. that we've seen this explosion

01:10:12.020 --> 01:10:16.659
of distributions. And there's like a new, maybe

01:10:16.659 --> 01:10:19.180
not so much nowadays, but there was a time when

01:10:19.180 --> 01:10:22.199
like every week there would be a new JavaScript

01:10:22.199 --> 01:10:26.520
framework and a new Neowin distribution. Okay.

01:10:26.800 --> 01:10:30.500
I don't have a high opinion of those because

01:10:30.500 --> 01:10:33.100
Neowin on its own is already a complex application.

01:10:33.800 --> 01:10:36.180
And what a distribution is, it's basically someone

01:10:36.180 --> 01:10:40.029
else's config. So you're taking... an already

01:10:40.029 --> 01:10:41.909
complex application which you don't understand

01:10:41.909 --> 01:10:45.109
fully. And then you're putting even more complexity

01:10:45.109 --> 01:10:48.130
on top of it. It's like, what are you doing?

01:10:48.750 --> 01:10:52.270
And I could understand it if it was a situation

01:10:52.270 --> 01:10:55.430
like an IDE, you're starting a new job, you need

01:10:55.430 --> 01:10:59.329
to be editing text, and then you need a working

01:10:59.329 --> 01:11:01.430
setup right now. You don't have time to grow

01:11:01.430 --> 01:11:03.409
your setup over the course of several months

01:11:03.409 --> 01:11:06.170
or weeks. You need a working setup right now.

01:11:06.560 --> 01:11:08.619
But for every language out there, there's already

01:11:08.619 --> 01:11:11.020
an IDE which does provide this sort of thing.

01:11:11.180 --> 01:11:16.479
So if you started a new Python job and you need

01:11:16.479 --> 01:11:20.380
something right now, just pick PyCharm. I mean,

01:11:20.420 --> 01:11:23.800
it already works out of the box. So the way I

01:11:23.800 --> 01:11:27.260
did it, I first installed Vim and I didn't switch

01:11:27.260 --> 01:11:30.659
immediately. I was first using it for small shell

01:11:30.659 --> 01:11:33.380
scripts and configuration files. Then I would

01:11:33.380 --> 01:11:37.239
identify what I needed. And then I would make

01:11:37.239 --> 01:11:40.500
some small changes to my configuration and I

01:11:40.500 --> 01:11:42.739
would grow it over time. But for heavy actual

01:11:42.739 --> 01:11:45.939
programming, I was still using an IDE. Then over

01:11:45.939 --> 01:11:48.380
time, I was finding myself more and more switching

01:11:48.380 --> 01:11:51.180
towards Neovin. And eventually I just reached

01:11:51.180 --> 01:11:54.720
the point where I didn't even need the IDE anymore.

01:11:54.920 --> 01:11:59.479
And that was the point where I knew I had completely

01:11:59.479 --> 01:12:04.279
completed the switch. I did make a mistake. Sorry.

01:12:04.960 --> 01:12:07.699
i did make a mistake at the very beginning i

01:12:07.699 --> 01:12:13.039
was searching the web for best vim plugins top

01:12:13.039 --> 01:12:15.619
10 vim plugins and then i would just find all

01:12:15.619 --> 01:12:18.180
this is like oh this looks cool this looks cool

01:12:18.180 --> 01:12:20.359
this looks cool and i installed it installed

01:12:20.359 --> 01:12:25.479
them all and then i i had this exact exact problem

01:12:25.479 --> 01:12:28.180
i was trying to describe there my config was

01:12:28.180 --> 01:12:30.899
i didn't understand what was going on yeah in

01:12:30.899 --> 01:12:35.699
my config and then i i understood that You have

01:12:35.699 --> 01:12:39.359
to sharpen your own saw as the author of Practical

01:12:39.359 --> 01:12:43.119
Vim. It was Drew Neal. So maybe you've read his

01:12:43.119 --> 01:12:46.319
book, Practical Vim. It was the book which helped

01:12:46.319 --> 01:12:48.760
me. Yeah, it's actually a pretty good book. It's

01:12:48.760 --> 01:12:51.000
quite old, but it's still relevant because it

01:12:51.000 --> 01:12:53.939
doesn't deal with plugins and all. It does the

01:12:53.939 --> 01:12:56.340
fundamentals of Vim, which are also still in

01:12:56.340 --> 01:13:00.079
NeoVim. Anyway, he described it as sharpening

01:13:00.079 --> 01:13:05.109
your own saw because you've got this tool Instead

01:13:05.109 --> 01:13:08.649
of taking someone else's tool, you're modifying

01:13:08.649 --> 01:13:11.210
the tool to suit your own personal needs. So

01:13:11.210 --> 01:13:13.829
you're sharpening different parts of the tool

01:13:13.829 --> 01:13:16.970
in different ways to make the ideal tool for

01:13:16.970 --> 01:13:20.369
yourself. And I think this is one of the strengths

01:13:20.369 --> 01:13:24.010
of Vim and NeoVim and other editors like Emacs,

01:13:24.130 --> 01:13:26.489
where you shape the editor to suit yourself.

01:13:26.869 --> 01:13:30.590
You don't adjust your own behavior to the editor.

01:13:30.770 --> 01:13:34.369
You adjust the editor to you. Yeah, but... How

01:13:34.369 --> 01:13:36.470
long does it take you to get there? That's the

01:13:36.470 --> 01:13:38.029
point. And that's something that you brought

01:13:38.029 --> 01:13:40.390
up as well, right? Let's say that you need to

01:13:40.390 --> 01:13:44.050
start. Yeah, if you need to do it at work, just

01:13:44.050 --> 01:13:46.329
don't start with NeoVM. Just use something that's

01:13:46.329 --> 01:13:49.149
going to work right out of the gate, right? But

01:13:49.149 --> 01:13:52.729
how long does it take you to set up your own

01:13:52.729 --> 01:13:55.649
config? If you're just starting, I mean, it would

01:13:55.649 --> 01:13:59.609
take me years, maybe not even months, years to...

01:14:00.220 --> 01:14:02.140
you know set it up the way that i like it because

01:14:02.140 --> 01:14:04.359
i don't know what i like and what i don't like

01:14:04.359 --> 01:14:07.199
right a distribution allows me to see okay i

01:14:07.199 --> 01:14:10.119
like how this is done i like this plugin i like

01:14:10.119 --> 01:14:12.979
and i learn how things are done and then i can

01:14:12.979 --> 01:14:15.520
use that information to maybe set up my own config

01:14:15.520 --> 01:14:19.300
but if i start from scratch i wouldn't know what

01:14:19.300 --> 01:14:23.439
i want you know yeah it's a good question because

01:14:23.439 --> 01:14:27.300
do you ever know actually what you want no are

01:14:27.300 --> 01:14:29.000
you is your configuration ever actually done

01:14:30.159 --> 01:14:32.579
If you use that as your metric, you could say

01:14:32.579 --> 01:14:35.739
that your Vim configuration is never done. You're

01:14:35.739 --> 01:14:37.840
never going to be finished. Definitely, yeah.

01:14:38.000 --> 01:14:40.600
For the rest of your life. But when the question

01:14:40.600 --> 01:14:43.479
is, how long does it take to make a usable configuration?

01:14:43.920 --> 01:14:47.579
Again, the question is, what is usable? And Vim

01:14:47.579 --> 01:14:50.100
is out of the box pretty usable. If you just

01:14:50.100 --> 01:14:53.779
want to use it as a terminal notepad, it's fine.

01:14:53.920 --> 01:14:56.239
I mean, you don't have to do any configuration.

01:14:57.039 --> 01:14:59.859
You can create your init .vim or init .lua, whichever

01:14:59.859 --> 01:15:03.680
you prefer, leave it empty, and you've still

01:15:03.680 --> 01:15:07.159
got a decent text editor. Now, you are probably

01:15:07.159 --> 01:15:10.100
going to want to add some changes, like maybe

01:15:10.100 --> 01:15:13.340
you prefer tabs for indentation and spaces for

01:15:13.340 --> 01:15:16.859
alignment. It's one line. And then you find yourself

01:15:16.859 --> 01:15:19.539
writing and you find, oh, escape is hard to reach.

01:15:19.600 --> 01:15:22.699
I should maybe remap, I don't know, KJ to escape.

01:15:23.000 --> 01:15:24.939
So you add another line. That's the one that

01:15:24.939 --> 01:15:27.430
I use. And all this time, Do you use KJ as well?

01:15:27.529 --> 01:15:32.710
I use KJ. Yeah. Exactly. Okay. And the point

01:15:32.710 --> 01:15:35.329
is you keep growing your configuration and maybe

01:15:35.329 --> 01:15:39.109
one day you're like, oh, I want to do Python

01:15:39.109 --> 01:15:41.569
and I want to have this language server protocol

01:15:41.569 --> 01:15:45.930
thing. And you could say that's a slightly more

01:15:45.930 --> 01:15:48.850
involved setup. And how long is it going to take?

01:15:48.890 --> 01:15:53.140
Like maybe a week. just for lsp it doesn't have

01:15:53.140 --> 01:15:55.020
to be super fancy you're going to use features

01:15:55.020 --> 01:15:59.279
the way they are off the box and it's fine and

01:15:59.279 --> 01:16:02.220
sometime later like you could be two months later

01:16:02.220 --> 01:16:05.539
you could say oh i want to have a fancy auto

01:16:05.539 --> 01:16:08.239
completion plugin and then you add this one plugin

01:16:08.239 --> 01:16:10.479
it's how long is it going to take like a day

01:16:10.479 --> 01:16:14.020
two a weekend maybe the point is you don't have

01:16:14.020 --> 01:16:16.920
to sit down and do it all in one sitting you

01:16:16.920 --> 01:16:19.880
can spread it out over time What do you use for

01:16:19.880 --> 01:16:25.800
completion? What is it called? CMP? You haven't

01:16:25.800 --> 01:16:29.859
migrated to Blink? Not planning on? I don't know.

01:16:30.260 --> 01:16:35.500
CMP works for me. One thing, there's going to

01:16:35.500 --> 01:16:37.920
be inertia as your configuration grows. You're

01:16:37.920 --> 01:16:40.819
going to find some local optimum where you're

01:16:40.819 --> 01:16:44.000
like, okay, this works for me. I'm happy. Maybe

01:16:44.000 --> 01:16:47.220
something else is better. but i don't feel the

01:16:47.220 --> 01:16:49.020
need to change right now and you can keep the

01:16:49.020 --> 01:16:51.539
setup for years and then maybe one day you've

01:16:51.539 --> 01:16:54.239
got some free time and like okay let me try out

01:16:54.239 --> 01:16:57.939
this blink thing if people like it and then you

01:16:57.939 --> 01:17:00.819
set aside a couple of days you try it out maybe

01:17:00.819 --> 01:17:02.880
like it you keep it if you don't like it you

01:17:02.880 --> 01:17:07.399
switch back but it's not again it's not this

01:17:07.399 --> 01:17:09.899
this thing where you need to sit down right now

01:17:09.899 --> 01:17:13.960
and replicate your entire ide setup And that

01:17:13.960 --> 01:17:17.239
would be, I think it would be quite a challenge.

01:17:17.760 --> 01:17:21.039
And since your configuration is quite old, what

01:17:21.039 --> 01:17:23.560
package manager do you use in U of M? Do you

01:17:23.560 --> 01:17:26.760
use what was before LazyVim? What was it? Pacman?

01:17:26.960 --> 01:17:30.119
No, no, no, it's not Pacman. It's Packer. What

01:17:30.119 --> 01:17:34.079
is it? I don't remember anymore because I've

01:17:34.079 --> 01:17:37.239
grown beyond package managers. What do you do?

01:17:37.300 --> 01:17:40.300
I no longer use, I use Git submodules. I'm going

01:17:40.300 --> 01:17:44.899
to show it to you. Yep, yep. So if you go to

01:17:44.899 --> 01:17:57.319
cd .local share nvim site packages. So this one,

01:17:57.399 --> 01:18:01.159
third party, is the one which I'm using for third

01:18:01.159 --> 01:18:04.159
party packages. My plugins is for my plugins

01:18:04.159 --> 01:18:06.899
because I don't use versioning for my plugins.

01:18:06.960 --> 01:18:11.000
I just use them as they are. But if we switch

01:18:11.000 --> 01:18:18.579
to third party. You can see there's these folders

01:18:18.579 --> 01:18:21.100
start and opt. Can you make it a little bit bigger?

01:18:21.340 --> 01:18:26.699
That's what she said. Yes, of course. Yeah. What's

01:18:26.699 --> 01:18:33.100
interesting, if we go into .git modules. So this

01:18:33.100 --> 01:18:34.840
is my package manager. My package manager is

01:18:34.840 --> 01:18:37.640
git. So all these plugins, which I'm relying

01:18:37.640 --> 01:18:40.960
on, are installed as git sub modules. I see.

01:18:41.630 --> 01:18:45.210
And this folder, third -party, is just a regular

01:18:45.210 --> 01:18:49.710
Git repository, which has a bunch of sub -modules.

01:18:49.710 --> 01:18:53.069
Sub -modules inside. Okay. Yeah. And Vim will

01:18:53.069 --> 01:18:56.510
find this directory automatically because I'm

01:18:56.510 --> 01:19:00.369
using a standard NeoVim path, which is .local

01:19:00.369 --> 01:19:04.229
-share, so data -home, and Vim -site -peg. And

01:19:04.229 --> 01:19:07.909
then these names are arbitrary. So this is for

01:19:07.909 --> 01:19:09.789
third -party plugins. This is for plugins I'm

01:19:09.789 --> 01:19:12.159
not sure if I want to keep. I don't put them

01:19:12.159 --> 01:19:17.439
here yet. And my own plugins. And how do you

01:19:17.439 --> 01:19:22.199
update a package? I just wanted to come to it.

01:19:22.500 --> 01:19:27.739
So one advantage is I can use Git to version

01:19:27.739 --> 01:19:30.020
my configuration. So for example, you can see

01:19:30.020 --> 01:19:32.319
in this one, I have removed metals and then I

01:19:32.319 --> 01:19:34.779
had committed this change. So as far as updating,

01:19:35.039 --> 01:19:38.810
there's this folder bin. And it contains small

01:19:38.810 --> 01:19:41.229
shell scripts. We can take a look at it. So,

01:19:41.329 --> 01:19:45.750
for example, update. This is how I update plugins.

01:19:46.189 --> 01:19:48.810
And you update all of them at once or you just

01:19:48.810 --> 01:19:52.989
go one at a time and decide how do you... So

01:19:52.989 --> 01:19:56.050
the way git submodule update works is if I don't

01:19:56.050 --> 01:19:58.789
specify anything, it will update all my submodules.

01:19:58.909 --> 01:20:02.170
But if I specify any number of submodules, it

01:20:02.170 --> 01:20:04.130
will just update those. So this is what this

01:20:04.130 --> 01:20:05.949
variable does. It's a special shell variable.

01:20:06.649 --> 01:20:09.810
which says whatever arguments have been passed

01:20:09.810 --> 01:20:12.409
to the shell clip. Oh, okay. So you pass it as

01:20:12.409 --> 01:20:16.329
an argument. Start, let's say, nvim -treesitter

01:20:16.329 --> 01:20:19.590
or nvim -cmp. You see why I hate plugins which

01:20:19.590 --> 01:20:24.289
start with nvim. Okay, I get it now. Yeah, so

01:20:24.289 --> 01:20:28.010
please don't do that. Start, like, I don't know.

01:20:31.050 --> 01:20:34.270
This one. So I can now update only these two.

01:20:34.990 --> 01:20:38.050
Or if I don't give any arguments, it updates

01:20:38.050 --> 01:20:41.270
all of them. I wouldn't even need a shell script

01:20:41.270 --> 01:20:43.789
if I could remember the command. So I can just

01:20:43.789 --> 01:20:46.630
type the command as it is. But, you know, it's

01:20:46.630 --> 01:20:49.409
easier this way. For example, if I want to add

01:20:49.409 --> 01:20:51.710
a package from GitHub, because GitHub is so common,

01:20:51.829 --> 01:20:56.909
I just say add GitHub and then username and the

01:20:56.909 --> 01:21:00.550
name of the plugin. And what it does, it splices

01:21:00.550 --> 01:21:05.439
in the rest of the URL. Interesting. And the

01:21:05.439 --> 01:21:09.039
question now is why? Why did you do it this way

01:21:09.039 --> 01:21:12.939
and not with the package manager? So one reason

01:21:12.939 --> 01:21:15.319
was I realized that package managers are not

01:21:15.319 --> 01:21:18.600
doing anything else than using just Git submodules

01:21:18.600 --> 01:21:21.680
or Git under the hood. So I figured I might as

01:21:21.680 --> 01:21:24.500
well just use Git myself. And the other reason

01:21:24.500 --> 01:21:26.840
is bootstrapping. If I'm moving to a new computer,

01:21:27.199 --> 01:21:31.539
I want to get my text editor running. up as quickly

01:21:31.539 --> 01:21:34.800
as possible. So if I use a package manager, I

01:21:34.800 --> 01:21:37.800
would have to first install my text editor, then

01:21:37.800 --> 01:21:40.060
somehow need to install the package manager first

01:21:40.060 --> 01:21:46.279
before I get a usable text editor. I'm just skipping

01:21:46.279 --> 01:21:48.520
this step right now because I can clone this

01:21:48.520 --> 01:21:51.819
repository, do git submodules update checkout

01:21:51.819 --> 01:21:54.699
to get all my plugins, and then my text editor

01:21:54.699 --> 01:21:58.460
is working. So it's just cutting out one more

01:21:58.460 --> 01:22:02.279
dependency. That is quite interesting. That is

01:22:02.279 --> 01:22:04.859
quite interesting. All right. Thanks. Thanks

01:22:04.859 --> 01:22:06.659
for sharing that. I'm pretty sure some people

01:22:06.659 --> 01:22:09.760
is going to find that really interesting. I do

01:22:09.760 --> 01:22:11.939
actually have a blog post on my blog about it.

01:22:12.199 --> 01:22:13.819
Oh, really? You want to share your blog post?

01:22:15.239 --> 01:22:18.180
Yeah, I can. Do you want me to put a link in

01:22:18.180 --> 01:22:21.779
the chat or how do you want it? Yeah. Why don't

01:22:21.779 --> 01:22:23.439
you show it on your screen and then you can send

01:22:23.439 --> 01:22:25.359
me a link in the chat and I'm going to put it

01:22:25.359 --> 01:22:28.039
in the video description. But if you want to

01:22:28.039 --> 01:22:31.010
show it on your screen. Yeah, I'm sharing my

01:22:31.010 --> 01:22:38.289
screen right now. Let's see. What was it? Submodules?

01:22:40.130 --> 01:22:44.050
Plugin? Oh yeah, here it is. December 2021, that's

01:22:44.050 --> 01:22:47.289
when I switched. Managing Vim subplugins without

01:22:47.289 --> 01:22:49.949
a plugin manager. The same thing applies to Vim

01:22:49.949 --> 01:22:52.270
and NeoVim as well, so I just wrote it for Vim.

01:22:52.569 --> 01:22:54.729
But I was using NeoVim at that point already.

01:22:55.630 --> 01:22:58.909
And yeah, you can read through it. I'm explaining

01:22:59.500 --> 01:23:02.800
how the old, very old days used to work because

01:23:02.800 --> 01:23:06.500
before we had plugin managers, you had to manage

01:23:06.500 --> 01:23:09.680
your plugins all by yourself and you would dump

01:23:09.680 --> 01:23:12.680
all the files into one common directory and then

01:23:12.680 --> 01:23:15.979
it was impossible to untangle them again. And

01:23:15.979 --> 01:23:19.659
then it explains how Vim package managers solved

01:23:19.659 --> 01:23:21.420
this problem by putting different plugins in

01:23:21.420 --> 01:23:23.979
different folders and then using the runtime

01:23:23.979 --> 01:23:27.340
path setting. And then it explains Vim's native

01:23:27.340 --> 01:23:31.119
package system, which is built in. and then so

01:23:31.119 --> 01:23:35.140
all this is just build up to how i'm using this

01:23:35.140 --> 01:23:38.779
native package management system to use git sub

01:23:38.779 --> 01:23:43.739
modules to be yeah clever okay wonderful yeah

01:23:43.739 --> 01:23:47.060
i'll definitely add that in the in the video

01:23:47.060 --> 01:23:49.600
do you want me to send you the link and yes please

01:23:49.600 --> 01:23:52.739
send me the link in the chat so that i can just

01:23:52.739 --> 01:23:55.539
once i upload the video i upload the links i'll

01:23:55.539 --> 01:23:58.810
put that link to your to the plugin and to your

01:23:58.810 --> 01:24:01.930
to your blog post i noticed the file explorer

01:24:01.930 --> 01:24:04.329
that you were using in neofim which one was it

01:24:04.329 --> 01:24:08.170
and why are you using that one oh it's not true

01:24:08.170 --> 01:24:12.949
as old it predates neofim it works for me no

01:24:12.949 --> 01:24:16.510
particular reason okay it's just what you're

01:24:16.510 --> 01:24:20.710
used to basically yeah exactly and your color

01:24:20.710 --> 01:24:25.510
scheme what is it It's Solarized. I've kind of

01:24:25.510 --> 01:24:27.750
gotten bored of it, but every other color scheme

01:24:27.750 --> 01:24:31.489
I tried is more straining to the eyes. I keep

01:24:31.489 --> 01:24:34.069
coming back to Solarized eventually. Mine is

01:24:34.069 --> 01:24:36.710
painful for a lot of people because it's too

01:24:36.710 --> 01:24:40.270
bright. But what about Groovebox? Groovebox is

01:24:40.270 --> 01:24:43.270
another color scheme that my grandpa would use,

01:24:43.449 --> 01:24:48.409
like I usually say. What do you think about that

01:24:48.409 --> 01:24:52.640
one? I did try it once. I didn't like it as much

01:24:52.640 --> 01:24:54.920
as Solarized, so I switched back to Solarized.

01:24:55.180 --> 01:24:57.659
Actually, I should correct myself. What I'm using

01:24:57.659 --> 01:25:00.699
is not Solarized, but Salinized, which is basically

01:25:00.699 --> 01:25:04.260
almost the same, except for some minor adjustments

01:25:04.260 --> 01:25:06.680
to the colors to make it, I don't know, supposedly

01:25:06.680 --> 01:25:10.560
more pleasant to the eyes. I don't know. I kind

01:25:10.560 --> 01:25:12.520
of like it slightly better than Solarized, but

01:25:12.520 --> 01:25:15.180
it's basically the same thing. Okay, wonderful.

01:25:15.800 --> 01:25:19.739
And what do you use to push to... whatever version

01:25:19.739 --> 01:25:22.239
and control system you use to github or whatever

01:25:22.239 --> 01:25:24.680
you use just git commands or do you use a tool

01:25:24.680 --> 01:25:29.460
like lazy git or something i do use git uh from

01:25:29.460 --> 01:25:31.220
the command line because that's how i learned

01:25:31.220 --> 01:25:35.460
it i i used to be a big gui user back then when

01:25:35.460 --> 01:25:38.039
i learned git but the problem with guis is they

01:25:38.039 --> 01:25:40.520
present you all the options at once and it was

01:25:40.520 --> 01:25:42.560
just overwhelming for a complex system like git

01:25:42.560 --> 01:25:47.210
and then i tried learning i figured i might I

01:25:47.210 --> 01:25:49.409
would have an easier time first learning it in

01:25:49.409 --> 01:25:51.409
the terminal because that's the canonical way

01:25:51.409 --> 01:25:54.930
of using Git. And then I thought I had learned

01:25:54.930 --> 01:25:57.029
how to use it in the terminal. I was like, okay,

01:25:57.130 --> 01:26:00.609
well, this works fine. I don't need GUIs anymore.

01:26:01.409 --> 01:26:05.569
I do use Fugitive in Vim and NeoVim because sometimes

01:26:05.569 --> 01:26:08.970
having a GUI is actually nice because I can stage

01:26:08.970 --> 01:26:13.010
files by just pressing a key. So I move the cursor

01:26:13.010 --> 01:26:15.729
on the file name and then I press key. and then

01:26:15.729 --> 01:26:20.810
staged so that one's nice as well but it's just

01:26:20.810 --> 01:26:24.949
these two okay okay wonderful and do you use

01:26:24.949 --> 01:26:27.789
ai or not at all what are your thoughts on ai

01:26:27.789 --> 01:26:31.149
uh not at all yeah i've been thinking about ai

01:26:31.149 --> 01:26:33.090
recently because i talked someone to who does

01:26:33.090 --> 01:26:38.909
actually use ai successfully um so until recently

01:26:38.909 --> 01:26:45.029
my opinion of ai was it's slop and it sucks But

01:26:45.029 --> 01:26:48.729
obviously it does fulfill a need people seem

01:26:48.729 --> 01:26:51.770
to have. And I'm not just talking about beginners

01:26:51.770 --> 01:26:53.590
who don't know how to program and then like,

01:26:53.750 --> 01:26:56.770
oh, I'll have the machine do it for me and then

01:26:56.770 --> 01:27:01.729
I don't have to learn it. That's a bad attitude

01:27:01.729 --> 01:27:04.729
to have. But even people who are skilled programmers

01:27:04.729 --> 01:27:09.449
are apparently getting some value from AI. And

01:27:09.449 --> 01:27:11.850
I've been trying to think about what exactly

01:27:11.850 --> 01:27:15.710
is the value of AI. I think it's the idea of

01:27:15.710 --> 01:27:18.489
having a more expressive language, because at

01:27:18.489 --> 01:27:21.250
least personally, I don't enjoy writing code.

01:27:21.710 --> 01:27:24.890
I do enjoy thinking about problems and creating

01:27:24.890 --> 01:27:28.529
useful things, but the process itself is not

01:27:28.529 --> 01:27:32.850
what's enjoyable. So anything that can help me

01:27:32.850 --> 01:27:36.109
write less code is good. Now, the problem with

01:27:36.109 --> 01:27:38.930
AI is twofold. First of all, you're using a very

01:27:38.930 --> 01:27:42.510
imprecise input language, so it's natural English.

01:27:43.529 --> 01:27:46.390
whatever language the regular human language

01:27:46.390 --> 01:27:50.930
is. And human languages are ambiguous. So this

01:27:50.930 --> 01:27:52.909
is one problem. And now you have to fight your

01:27:52.909 --> 01:27:54.970
AI because your AI can misunderstand you and

01:27:54.970 --> 01:27:57.090
does the wrong thing. And now you have to argue

01:27:57.090 --> 01:28:01.029
with a machine, which is absurd, pretty absurd.

01:28:01.210 --> 01:28:04.710
But, you know, what is the alternative? So the

01:28:04.710 --> 01:28:07.250
alternative would be some very strict, formalized

01:28:07.250 --> 01:28:09.229
language, at which point you're back to programming

01:28:09.229 --> 01:28:14.770
languages. And the other problem I see is you

01:28:14.770 --> 01:28:18.789
are giving your input in one language, but the

01:28:18.789 --> 01:28:24.109
output is another language. It's code. So if

01:28:24.109 --> 01:28:27.970
we imagine the AI being a compiler, which takes

01:28:27.970 --> 01:28:29.930
an input from one language and then translates

01:28:29.930 --> 01:28:33.210
it to a different language, it would be like,

01:28:33.310 --> 01:28:36.949
imagine if you could only write C, but save only

01:28:36.949 --> 01:28:40.689
assembly code. So you wrote some C code, but

01:28:40.689 --> 01:28:42.689
then the output is assembly. And then when you

01:28:42.689 --> 01:28:46.149
want to keep editing your program, you no longer

01:28:46.149 --> 01:28:48.210
have the original C code. You just have assembly

01:28:48.210 --> 01:28:50.789
code. So you have to figure out what the assembly

01:28:50.789 --> 01:28:54.649
does and then talk to your compiler again in

01:28:54.649 --> 01:28:59.229
C. It's quite a mess. I think there has to be

01:28:59.229 --> 01:29:02.350
a better solution than the fuzziness and the

01:29:02.350 --> 01:29:06.529
loss of source code that's AI. i think we need

01:29:06.529 --> 01:29:09.569
to rethink programming languages to be more expressive

01:29:09.569 --> 01:29:14.250
i'm working as a web developer and i hate writing

01:29:14.250 --> 01:29:16.710
javascript and i think a lot of people hate writing

01:29:16.710 --> 01:29:20.250
javascript because most of the time i'm trying

01:29:20.250 --> 01:29:22.430
to do something really simple which should be

01:29:22.430 --> 01:29:26.960
built into the ecosystem so what really what

01:29:26.960 --> 01:29:29.439
i do want to do is i want to declare what i want

01:29:29.439 --> 01:29:31.899
so i don't i want to say make me a sandwich i

01:29:31.899 --> 01:29:35.319
don't want to say go to the kitchen or um take

01:29:35.319 --> 01:29:37.960
cut two slices of bread open the fridge take

01:29:37.960 --> 01:29:41.119
out some cheese like some sort of snippets right

01:29:41.119 --> 01:29:43.420
like you give it a snippet exactly and it'll

01:29:43.420 --> 01:29:46.640
do exactly what you want it to do but snippets

01:29:46.640 --> 01:29:49.069
again have the same They don't have the ambiguity

01:29:49.069 --> 01:29:51.630
problem of a natural language, but they do have

01:29:51.630 --> 01:29:54.449
the source code loss problem. Because if I type

01:29:54.449 --> 01:29:58.470
a snippet and it outputs 20 lines of JavaScript,

01:29:59.149 --> 01:30:03.409
the original snippet is gone. So now I have 20

01:30:03.409 --> 01:30:06.010
lines of JavaScript. And in web development,

01:30:06.090 --> 01:30:08.829
there's two pretty cool libraries called HTMX

01:30:08.829 --> 01:30:12.689
and AlpineJS. And what they allow you to do is

01:30:12.689 --> 01:30:16.930
you express what you want to happen, not how

01:30:16.930 --> 01:30:18.880
you want it to happen. in the form in the form

01:30:18.880 --> 01:30:22.939
of javascript of html attributes so for example

01:30:22.939 --> 01:30:27.159
you have a button and you want some text to update

01:30:27.159 --> 01:30:31.539
so um let me switch to lpjs and i can show you

01:30:31.539 --> 01:30:33.880
the example yep yep i'm gonna switch to your

01:30:33.880 --> 01:30:42.979
screen right now so there should be a demo somewhere

01:30:42.979 --> 01:30:45.399
okay here's the button so you press the button

01:30:45.760 --> 01:30:48.479
And then a number gets incremented, and then

01:30:48.479 --> 01:30:52.159
the text adjusts. So this is all I'm trying to

01:30:52.159 --> 01:30:54.960
do. Now, it's not hard to write this in JavaScript,

01:30:55.100 --> 01:30:57.199
but you have to write a lot of glue code and

01:30:57.199 --> 01:31:00.079
very imperative code, which go to the kitchen,

01:31:00.279 --> 01:31:02.819
cut two slices of bread, open the fridge, take

01:31:02.819 --> 01:31:05.539
out some cheese. I don't want to do this sort

01:31:05.539 --> 01:31:09.340
of thing. And what Alpine does, it says, okay,

01:31:09.399 --> 01:31:13.699
I define a variable. This variable exists. I

01:31:13.699 --> 01:31:16.079
define a side effect on my button. The side effect

01:31:16.079 --> 01:31:20.020
is increment the variable. And I define the text

01:31:20.020 --> 01:31:23.199
of this span element is whatever this variable

01:31:23.199 --> 01:31:27.760
is. Exactly. So it's very declarative where I'm

01:31:27.760 --> 01:31:31.260
saying these are the things I want to have, not

01:31:31.260 --> 01:31:35.039
how I want. I don't have to write all the low

01:31:35.039 --> 01:31:39.539
level logic. And this example is pretty trivial,

01:31:39.659 --> 01:31:42.840
but you could, for example, imagine having like

01:31:42.840 --> 01:31:45.979
some sidebar. and a button to toggle the sidebar.

01:31:46.520 --> 01:31:49.000
I don't want to write all the code to find the

01:31:49.000 --> 01:31:51.600
ID of the sidebar and then hook it up to a button

01:31:51.600 --> 01:31:54.859
and then have some sort of variable. All I want

01:31:54.859 --> 01:31:58.399
to have is a button, and this button toggles

01:31:58.399 --> 01:32:01.600
a variable, and the state of the sidebar, whether

01:32:01.600 --> 01:32:04.119
it's shown or hidden, depends on this variable.

01:32:04.479 --> 01:32:08.539
So really, all I want is these three lines. And

01:32:08.539 --> 01:32:14.159
no AI is going to be more concise than... this

01:32:14.159 --> 01:32:19.159
and i think the real value is so how do you put

01:32:19.159 --> 01:32:22.659
it i would say if you have to reach to for ai

01:32:22.659 --> 01:32:26.220
your tools are not sufficiently good enough you

01:32:26.220 --> 01:32:28.239
need better tools or you need a better language

01:32:28.239 --> 01:32:33.460
now obviously um i can say that but i need to

01:32:33.460 --> 01:32:36.439
write this code right now i cannot wait five

01:32:36.439 --> 01:32:39.880
years for someone to create something like alpine

01:32:39.880 --> 01:32:42.930
js or i don't know maybe not five years but like

01:32:42.930 --> 01:32:45.390
half a year or whatever i need to solve this

01:32:45.390 --> 01:32:47.970
problem like right now so i do understand why

01:32:47.970 --> 01:32:51.949
ai does have value for people but it should be

01:32:51.949 --> 01:32:59.250
treated as a stopgap solution okay nice thanks

01:32:59.250 --> 01:33:03.020
for sharing I absolutely recommend Alpine .js.

01:33:03.199 --> 01:33:06.000
It's pretty cool. So if you are doing web development

01:33:06.000 --> 01:33:08.680
and you find yourself having to use one of those

01:33:08.680 --> 01:33:13.000
heavy frontend frameworks like React, give Alpine

01:33:13.000 --> 01:33:17.119
.js a try. How does NeoBeam work with JavaScript?

01:33:17.579 --> 01:33:21.380
Do you have any issues? Works just fine? Works

01:33:21.380 --> 01:33:23.720
fine for me. There's a language server out there.

01:33:24.039 --> 01:33:28.100
I set it up. As I said, I don't like writing

01:33:28.100 --> 01:33:30.319
JavaScript. I want to write as little JavaScript

01:33:30.319 --> 01:33:33.779
as possible. So for the amount I'm writing, I

01:33:33.779 --> 01:33:35.479
would be fine even without a language server.

01:33:35.819 --> 01:33:39.399
Okay, wonderful. All right. I did actually use

01:33:39.399 --> 01:33:43.439
Write React at a previous job, and there's a

01:33:43.439 --> 01:33:46.979
lot of good language server support even for

01:33:46.979 --> 01:33:49.920
heavy stuff like React. Okay, so you don't need

01:33:49.920 --> 01:33:53.579
to use a dedicated IDE. It all works fine. No.

01:33:54.140 --> 01:33:57.130
Okay, wonderful. Yeah. are you working on any

01:33:57.130 --> 01:34:01.090
other projects besides the plugin and your blog

01:34:01.090 --> 01:34:05.310
post anything else you want to share uh nothing

01:34:05.310 --> 01:34:08.069
particularly for showing off i'm currently learning

01:34:08.069 --> 01:34:11.329
elixir because it's a really cool interesting

01:34:11.329 --> 01:34:14.930
language which has a lot of properties which

01:34:14.930 --> 01:34:19.289
other languages are have to fight to bolt on

01:34:19.289 --> 01:34:24.649
it's built in into elixir and airline and in

01:34:24.649 --> 01:34:29.010
general i'm doing web dev stuff i've already

01:34:29.010 --> 01:34:32.310
mentioned hd max and alpine there's a new library

01:34:32.310 --> 01:34:36.109
called data star which tries to do what both

01:34:36.109 --> 01:34:39.770
of these are doing in one and it claims to be

01:34:39.770 --> 01:34:42.409
more lightweight so definitely something to worth

01:34:42.409 --> 01:34:46.890
looking at looking into okay okay thanks for

01:34:46.890 --> 01:34:50.529
sharing that um do you have any favorite cli

01:34:50.529 --> 01:34:54.750
tools I don't care if they're 2Es or CLI tools,

01:34:54.989 --> 01:34:57.250
whatever is on the terminal. For me, it's just

01:34:57.250 --> 01:34:59.630
a CLI tool. Do you have any that you want to

01:34:59.630 --> 01:35:05.329
name? Neovim, obviously. And yeah, all the Unix

01:35:05.329 --> 01:35:08.470
stuff like Org and so on. But if I had to pick

01:35:08.470 --> 01:35:10.989
something that's not standard, I would mention

01:35:10.989 --> 01:35:15.329
JQ, which is sort of like a small language for

01:35:15.329 --> 01:35:18.449
processing JSON files. So let's say you have

01:35:18.449 --> 01:35:23.390
an HTTP JSON API. you get some massive JSON response

01:35:23.390 --> 01:35:26.109
and you only care about a certain section of

01:35:26.109 --> 01:35:30.470
it. If you had to open the JSON in your text

01:35:30.470 --> 01:35:32.149
editor, you would have to dig around through

01:35:32.149 --> 01:35:36.609
it, use some search and so on. But JQ is a small

01:35:36.609 --> 01:35:39.050
language that lets you specify exactly what you

01:35:39.050 --> 01:35:42.090
want. And then it runs through over the JSON

01:35:42.090 --> 01:35:45.569
and gives you exactly what you asked. Like grep

01:35:45.569 --> 01:35:48.630
for JSON, right? yeah exactly the problem with

01:35:48.630 --> 01:35:52.409
grep is it works on lines and json is structured

01:35:52.409 --> 01:35:56.789
data it's not just lines of text and for example

01:35:56.789 --> 01:36:00.069
in order to save space the server might put all

01:36:00.069 --> 01:36:02.770
the json on one line and then you can forget

01:36:02.770 --> 01:36:06.989
about grep but jq actually understands the json

01:36:06.989 --> 01:36:10.630
structure okay wonderful do you have any favorite

01:36:10.630 --> 01:36:17.069
applications on void linux besides like desktop

01:36:17.069 --> 01:36:20.649
applications like regular yeah not really i mean

01:36:20.649 --> 01:36:23.229
i like free tube if you want to watch youtube

01:36:23.229 --> 01:36:26.189
without all the bloat and advertising that's

01:36:26.189 --> 01:36:29.930
nice um trying to look through my application

01:36:29.930 --> 01:36:34.310
see if there's anything yeah the regular kde

01:36:34.310 --> 01:36:39.710
stuff i like kde but no i don't think there's

01:36:39.710 --> 01:36:42.130
anything particularly interesting i'm doing most

01:36:42.130 --> 01:36:44.850
of my work in the terminal because i'm a pro

01:36:44.850 --> 01:36:48.489
programmer yeah i figured yeah and do you have

01:36:48.489 --> 01:36:52.430
any favorite neovim plugins besides yours yours

01:36:52.430 --> 01:36:58.369
doesn't count yeah i do like neotest which is

01:36:58.369 --> 01:37:01.550
a plugin for running tests inside neovim so you

01:37:01.550 --> 01:37:07.289
you want to show you yep yeah so if i try type

01:37:07.289 --> 01:37:15.119
neotest uh what was it summary yeah So I get

01:37:15.119 --> 01:37:20.279
this panel. It zooms out slightly. And then I

01:37:20.279 --> 01:37:23.340
get this tree view of all my tests. And let's

01:37:23.340 --> 01:37:28.600
say I want to run this test. I press a key. There's

01:37:28.600 --> 01:37:44.399
a reason it's all red. So you see, I'll get all

01:37:44.399 --> 01:37:47.680
these checkmarks and I can open individual tests.

01:37:47.859 --> 01:37:51.819
So let's say I want to break this one. Now I

01:37:51.819 --> 01:37:55.020
rerun the tests and now I get an error. I can

01:37:55.020 --> 01:37:58.560
open the report. And what's cool is I can also

01:37:58.560 --> 01:38:01.479
set a watch. So you can see there's an eye icon

01:38:01.479 --> 01:38:05.600
now. And if I edit my test and save the file,

01:38:05.699 --> 01:38:09.800
it will rerun those tests automatically. So I

01:38:09.800 --> 01:38:13.170
don't have to switch and manually run them. so

01:38:13.170 --> 01:38:16.069
if you like to do a lot of testing or even test

01:38:16.069 --> 01:38:19.869
driven development this is a really indispensable

01:38:19.869 --> 01:38:22.529
plugin and i do actually use a lot of testing

01:38:22.529 --> 01:38:26.170
at my work at day job and even for rainbow delimiter

01:38:26.170 --> 01:38:28.069
so you can see there's a lot of tests going on

01:38:28.069 --> 01:38:33.850
here because it's a large plugin yeah you want

01:38:33.850 --> 01:38:37.010
to have lots of automated tests okay okay neo

01:38:37.010 --> 01:38:39.270
test is one of them and do you have any other

01:38:39.270 --> 01:38:46.659
favorite ones Let's say I do like Fugitive, the

01:38:46.659 --> 01:38:50.420
Git plugin. You know what? Let me go through

01:38:50.420 --> 01:38:55.479
all my plugins and see if there's an interesting

01:38:55.479 --> 01:39:11.310
one. So Fugitive. uh telescope yeah telescope

01:39:11.310 --> 01:39:13.770
everyone else telescope that's one that's nice

01:39:13.770 --> 01:39:19.829
uh there's lots of these quality of life like

01:39:19.829 --> 01:39:22.130
for example to auto insert matching the limiters

01:39:22.130 --> 01:39:24.409
so i don't have to close my parentheses okay

01:39:24.409 --> 01:39:29.390
uh yeah snippets obviously snippets are really

01:39:29.390 --> 01:39:34.109
useful use them yeah i like this one because

01:39:34.109 --> 01:39:37.210
it's like it's this um file browser and you're

01:39:37.210 --> 01:39:43.529
um buffer dear wish from justin from neovim maintainer

01:39:43.529 --> 01:39:49.470
oh yeah this one is great uh window manager mode

01:39:49.470 --> 01:39:52.130
so normally let's say let me let me open a couple

01:39:52.130 --> 01:39:55.510
of windows you have to press double control w

01:39:55.510 --> 01:39:57.850
and then another key to do something and if you

01:39:57.850 --> 01:40:00.409
want to resize windows you're like control w

01:40:00.409 --> 01:40:04.289
underscore control w underscore and you resize

01:40:04.289 --> 01:40:09.180
your window one line or one i don't even remember

01:40:09.180 --> 01:40:14.119
yeah one line at a time so what this plugin does

01:40:14.119 --> 01:40:17.260
is i can press the key binding now you see down

01:40:17.260 --> 01:40:21.600
below it says win and now i'm like in some window

01:40:21.600 --> 01:40:24.100
manager mode so i'm not no longer pressing ctrl

01:40:24.100 --> 01:40:28.920
w and instead i'm using vi keys to navigate and

01:40:28.920 --> 01:40:33.819
like i can do shift and hjkl to resize my windows

01:40:33.819 --> 01:40:38.909
i can swap windows yeah so this one is really

01:40:38.909 --> 01:40:42.210
handy because um i don't have to press as many

01:40:42.210 --> 01:40:46.750
keys so it's oh let's see and these are just

01:40:46.750 --> 01:40:49.750
vim splits right these are just neo vim splits

01:40:49.750 --> 01:40:52.829
yeah these are windows we don't call them split

01:40:52.829 --> 01:40:56.029
we call them windows okay uh yeah but they're

01:40:56.029 --> 01:41:02.510
regular windows okay yeah obviously dub so nvim

01:41:02.510 --> 01:41:06.210
dub for debugging this is a big one and w i for

01:41:06.210 --> 01:41:14.079
uh Do you have your config publicly in your .files,

01:41:14.180 --> 01:41:17.439
or is that private? Yes, I do. It's public. You

01:41:17.439 --> 01:41:20.380
can look at it. It might not be useful for you,

01:41:20.460 --> 01:41:24.600
or maybe it is. It's mostly just pick the parts

01:41:24.600 --> 01:41:28.060
you like, but please don't copy it, because it

01:41:28.060 --> 01:41:30.399
works for me. It might not work for you. Oh,

01:41:30.399 --> 01:41:34.119
no. Just for folks that are watching. Yeah, certainly.

01:41:34.579 --> 01:41:42.220
If you're curious. It should be nvenconfig. Yeah,

01:41:42.319 --> 01:41:45.279
that's the one. So it's on GitLab. I don't know

01:41:45.279 --> 01:41:50.180
if there's a GitHub mirror. License is MIT, but

01:41:50.180 --> 01:41:52.340
you don't have to give attribution. I should

01:41:52.340 --> 01:41:56.680
eventually realize it under the unlicensed. If

01:41:56.680 --> 01:41:59.300
there's anything you like, just copy -paste it.

01:41:59.760 --> 01:42:05.789
Okay. All right. Thanks for sharing that. Last

01:42:05.789 --> 01:42:08.229
question that I have here. Do you have a home

01:42:08.229 --> 01:42:10.449
lab? What are your thoughts on home labs you

01:42:10.449 --> 01:42:14.829
like? Home labs are pretty cool, but I don't

01:42:14.829 --> 01:42:18.850
have one. It would be cool to have one. I just

01:42:18.850 --> 01:42:22.789
can't figure out which hardware to buy. There's

01:42:22.789 --> 01:42:24.649
a lot of stuff and I'm not much of a hardware

01:42:24.649 --> 01:42:28.310
guy. I'm afraid of buying the wrong thing because

01:42:28.310 --> 01:42:30.489
when you have software and you pick the wrong

01:42:30.489 --> 01:42:32.829
software, it's like, okay, I didn't pay for it.

01:42:33.130 --> 01:42:35.649
Whatever, I lost some time, but who cares. But

01:42:35.649 --> 01:42:38.109
when you buy hardware, first of all, you bought

01:42:38.109 --> 01:42:39.970
the wrong thing, and now you have this thing

01:42:39.970 --> 01:42:43.489
collecting dust in your closet. Just annoying.

01:42:43.989 --> 01:42:47.010
What I have switched to in the recent years is

01:42:47.010 --> 01:42:49.649
these microcomputers, which are the really small

01:42:49.649 --> 01:42:54.649
ones. These ones, have you seen them? No, I'm

01:42:54.649 --> 01:42:57.619
not familiar. How expensive are these? You can

01:42:57.619 --> 01:43:00.960
get them on eBay used, of course, right? And

01:43:00.960 --> 01:43:05.359
not too expensive. It depends on the RAM and

01:43:05.359 --> 01:43:09.439
CPU that you get, right? But for example, I have

01:43:09.439 --> 01:43:16.180
three of those. I'm sorry that this is white.

01:43:16.340 --> 01:43:20.279
It's probably burning your eyes. But I have...

01:43:20.279 --> 01:43:23.260
I'll be fine. I have three. I don't have enough

01:43:23.260 --> 01:43:27.289
memory anymore. This one is 64. the other two

01:43:27.289 --> 01:43:32.069
are 32 gigs each one for for what you get if

01:43:32.069 --> 01:43:35.750
i would get a server with 64 gigs of ram i would

01:43:35.750 --> 01:43:38.670
need to spend thousands of dollars you know but

01:43:38.670 --> 01:43:44.189
these are quite decent they're not supposed to

01:43:44.189 --> 01:43:47.649
handle 64 gigs of ram because the manual says

01:43:47.649 --> 01:43:51.270
that they support up to up to 32 but they work

01:43:51.270 --> 01:43:55.789
fine right so you can upgrade them quite easily

01:43:55.789 --> 01:44:02.329
and um yeah i think if i would start with the

01:44:02.329 --> 01:44:05.989
home lab i did start with the raspberry pi but

01:44:05.989 --> 01:44:12.409
that became not too useful too fast you know

01:44:12.409 --> 01:44:15.170
because the resources that you get you're gonna

01:44:15.170 --> 01:44:16.989
try to run a lot of stuff so it's not gonna be

01:44:16.989 --> 01:44:19.789
enough so if i would start today with the home

01:44:19.789 --> 01:44:22.689
lab i would definitely go with one of these not

01:44:22.689 --> 01:44:26.829
a huge desk uh computer like the the big ones

01:44:26.829 --> 01:44:30.390
because one too much power two a lot of noise

01:44:30.390 --> 01:44:33.510
i don't know these are perfect i think for a

01:44:33.510 --> 01:44:36.569
home lab that's just my personal opinion of course

01:44:36.569 --> 01:44:43.130
yeah yeah i'll keep it in mind yeah and uh finally

01:44:43.130 --> 01:44:47.390
i just want to quickly go over your plugin if

01:44:47.390 --> 01:44:51.680
that's okay with you over by what I want to quickly

01:44:51.680 --> 01:44:53.779
go over your plugin. I want to install it and

01:44:53.779 --> 01:44:57.319
just... Oh, plugin. Yeah, your plugin. So let

01:44:57.319 --> 01:45:01.739
me switch here to my .files. You can see my screen,

01:45:01.859 --> 01:45:07.479
right? Yeah. Okay. Let me go to the plugins.

01:45:07.640 --> 01:45:18.500
I'm just going to use one of these. Rainbow delimiters,

01:45:18.619 --> 01:45:25.500
right? okay i'm just gonna get rid of all this

01:45:25.500 --> 01:45:30.560
okay so what do i have to do just as someone

01:45:30.560 --> 01:45:32.920
installing the plugin for the first time then

01:45:32.920 --> 01:45:36.920
uh the first thing you're going to do is read

01:45:36.920 --> 01:45:42.760
the readme and if you have trouble then it means

01:45:42.760 --> 01:45:46.939
i need to fix something all right install it

01:45:46.939 --> 01:45:49.710
like any other new plugin tree sitter parser

01:45:49.710 --> 01:45:56.350
for each language i do have those okay so i don't

01:45:56.350 --> 01:45:59.229
know how you install neovim plugins but whatever

01:45:59.229 --> 01:46:01.630
method you use it should work out of the box

01:46:01.630 --> 01:46:05.609
okay just raider installation right let's see

01:46:05.609 --> 01:46:11.609
exactly gonna grab this i don't like it when

01:46:11.609 --> 01:46:13.949
plugins put instructions for like five different

01:46:13.949 --> 01:46:17.890
plugin managers because um when i see that It's

01:46:17.890 --> 01:46:21.229
just noise. And when there's noise, my brain

01:46:21.229 --> 01:46:24.310
skips over it. And if there's actually useful

01:46:24.310 --> 01:46:26.310
information, like some extra step you need to

01:46:26.310 --> 01:46:29.970
do, it gets lost in all that noise. So what I

01:46:29.970 --> 01:46:32.409
do is just say, install it like any other plugins.

01:46:32.569 --> 01:46:35.210
And then if there's anything additional, I put

01:46:35.210 --> 01:46:39.689
it in a second sentence. That way, this important

01:46:39.689 --> 01:46:42.170
information does not get lost among all the noise.

01:46:42.829 --> 01:46:45.649
So these are defaults. It says here that no configuration

01:46:45.649 --> 01:46:50.359
is needed. Exactly. Okay, so this comes by default

01:46:50.359 --> 01:46:55.159
already, right? Yes. Okay, let me see then. I'm

01:46:55.159 --> 01:46:58.479
just going to quit out of NeoVim. Well, basically

01:46:58.479 --> 01:47:05.739
restart it. Let me see if I get the cutters now.

01:47:13.899 --> 01:47:18.640
Okay. and is it colored in yeah i can't see it

01:47:18.640 --> 01:47:24.039
yep is it too small i know uh and it's fuzzy

01:47:24.039 --> 01:47:28.380
so oh yeah i can see now the right the premise

01:47:28.380 --> 01:47:31.399
is different than the curly brace yep yep they

01:47:31.399 --> 01:47:35.159
are colored now and it's using my i don't know

01:47:35.159 --> 01:47:39.600
i have a weird um color scheme so but it's picking

01:47:39.600 --> 01:47:42.939
up those colors right that's that's exactly what

01:47:42.939 --> 01:47:47.239
i see okay Yeah, all of them have colors. Let

01:47:47.239 --> 01:47:52.720
me see if I open, for example, another file.

01:47:53.880 --> 01:47:59.840
Yeah, this has colors. You can see, for example,

01:47:59.939 --> 01:48:02.500
Darwin, Linux, Star, those delimiters are not

01:48:02.500 --> 01:48:05.380
highlighted because the plugin understands that

01:48:05.380 --> 01:48:07.779
these are not actually delimiters. Oh, okay.

01:48:07.819 --> 01:48:11.079
Because it uses TreeSitter. Okay. Interesting.

01:48:11.939 --> 01:48:17.819
Okay. and uh do you have some html maybe i don't

01:48:17.819 --> 01:48:24.479
think i have no i don't have uh or try json maybe

01:48:24.479 --> 01:48:31.479
let's see i have some json here let's see yeah

01:48:31.479 --> 01:48:36.279
this one json c i think it is yeah but i do see

01:48:36.279 --> 01:48:43.819
the colors here as well yeah interesting okay

01:48:43.819 --> 01:48:48.619
and try typing inspect uh try typing the command

01:48:48.619 --> 01:48:55.340
inspect tree and i wonder if this one works yeah

01:48:55.340 --> 01:48:58.760
you you do have colored parentheses now in three

01:48:58.760 --> 01:49:07.439
sita queries as well okay i see all right wonderful

01:49:07.439 --> 01:49:11.550
and for for people that want to modify the highlight

01:49:11.550 --> 01:49:14.590
groups you have them listed here i think these

01:49:14.590 --> 01:49:17.909
right yeah but you shouldn't read the readme

01:49:17.909 --> 01:49:20.789
the readme is just a little teaser if you really

01:49:20.789 --> 01:49:22.970
want to know how to customize the plugin you

01:49:22.970 --> 01:49:24.750
should read the manual so if you switch to your

01:49:24.750 --> 01:49:28.270
editor back and then help type help rainbow delimiters

01:49:28.270 --> 01:49:33.090
rainbow dash delimiters help rainbow delimiters

01:49:33.090 --> 01:49:40.300
this one yes so there's a pretty large manual

01:49:40.300 --> 01:49:42.560
you don't have to read all the parts of obviously

01:49:42.560 --> 01:49:46.760
but for different settings like colors strategies

01:49:46.760 --> 01:49:49.720
you can even define your own queries for example

01:49:49.720 --> 01:49:52.319
there's a file type which i don't support you

01:49:52.319 --> 01:49:54.239
can define it first in your own configuration

01:49:54.239 --> 01:49:57.340
before submitting a pull request or if you disagree

01:49:57.340 --> 01:49:59.319
with me like do you have you have a different

01:49:59.319 --> 01:50:01.699
opinion on what constitutes a rainbow delimiter

01:50:01.699 --> 01:50:06.800
you can just write your own query and you don't

01:50:06.800 --> 01:50:10.220
have to be beholden to my choices because i tried

01:50:10.220 --> 01:50:13.840
to come up with with what i think is reasonable

01:50:13.840 --> 01:50:18.380
but different people have different opinion okay

01:50:18.380 --> 01:50:24.520
okay so everything is documented here then wonderful

01:50:24.520 --> 01:50:28.779
here are the different highlight groups okay

01:50:28.779 --> 01:50:32.319
all right yes you can redefine those or you can

01:50:32.319 --> 01:50:34.640
define your own highlight groups if for example

01:50:34.640 --> 01:50:37.779
you're color theme has already its own rainbow

01:50:37.779 --> 01:50:42.859
colors you can swap those out okay wonderful

01:50:42.859 --> 01:50:45.720
yes it's pretty simple pretty straightforward

01:50:45.720 --> 01:50:49.140
then we covered a lot of stuff in the call i

01:50:49.140 --> 01:50:51.579
ask a lot of questions that's like the goal of

01:50:51.579 --> 01:50:53.880
these calls right so just to get to know the

01:50:53.880 --> 01:50:58.899
the other person a little bit more right because

01:50:58.899 --> 01:51:02.060
i don't know i like having these type of conversations

01:51:02.060 --> 01:51:07.149
hope um you had some you know fun time with the

01:51:07.149 --> 01:51:10.550
call oh yeah definitely yeah that's that's basically

01:51:10.550 --> 01:51:13.069
it do you want to add anything before we finish

01:51:13.069 --> 01:51:18.970
the call not really so yeah have fun and as you

01:51:18.970 --> 01:51:21.710
said uh try reading documentation and if you're

01:51:21.710 --> 01:51:23.729
still having trouble then open an issue because

01:51:23.729 --> 01:51:26.529
i consider documentation that isn't clear or

01:51:26.529 --> 01:51:31.569
has problems the same as having a bug so okay

01:51:31.569 --> 01:51:35.159
great If there's anyone watching, if you like

01:51:35.159 --> 01:51:37.460
this type of content, let me know. I'm going

01:51:37.460 --> 01:51:40.340
to post this in the subreddit. Well, I'm going

01:51:40.340 --> 01:51:43.439
to post this in the Neovim subreddit. Let's see

01:51:43.439 --> 01:51:49.199
what people says about this. So again, thanks

01:51:49.199 --> 01:51:54.140
for joining the call. Hi fish, right? Yeah. Thanks

01:51:54.140 --> 01:51:56.500
for having me on. All right. So I'll see you

01:51:56.500 --> 01:51:59.720
then. Till the next time. Yeah. Bye -bye.
