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.700
that it was originally recorded as a video. If

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

00:00:06.120 --> 00:00:08.740
YouTube channel. My username is Linkarzu. And

00:00:08.740 --> 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.940
let's get started with this chapter then. Hey

00:00:17.940 --> 00:00:21.140
everyone, I have another guest today, Elijah.

00:00:21.839 --> 00:00:25.500
How's it going, Elijah? It's going all right,

00:00:25.600 --> 00:00:28.839
you know, it's a beautiful day here in Colorado.

00:00:29.480 --> 00:00:34.340
And I'm just like really excited to write some

00:00:34.340 --> 00:00:37.539
code, I guess, today and talk about it. Wonderful.

00:00:37.659 --> 00:00:40.939
Wonderful. So for people that don't know who

00:00:40.939 --> 00:00:44.740
Elijah is, he is the creator. Is that correct?

00:00:44.960 --> 00:00:48.600
Creator Elijah of Harper? Sure. Yeah. I like

00:00:48.600 --> 00:00:51.659
the word author because it implies a certain

00:00:51.659 --> 00:00:58.320
amount of, I don't know, literature. Okay. Mindset.

00:00:58.750 --> 00:01:02.549
Okay, okay. But yes. Okay, author of Harper.

00:01:02.829 --> 00:01:06.329
So if you don't know what Harper is, it's an

00:01:06.329 --> 00:01:09.950
alternative for Grammarly. It's open source.

00:01:10.329 --> 00:01:12.890
Would you like to give us a quick demo before

00:01:12.890 --> 00:01:15.510
we get to know you a little bit better? Yeah,

00:01:15.569 --> 00:01:21.150
so Harper is a grammar checker, and it was designed

00:01:21.150 --> 00:01:24.269
from the ground up to be fast and private. So

00:01:24.269 --> 00:01:27.510
that means unlike Grammarly or LanguageTool,

00:01:29.490 --> 00:01:31.950
I'm painting in broad strokes here, but unlike

00:01:31.950 --> 00:01:34.230
Grammarly and Language Tool, Harper doesn't send

00:01:34.230 --> 00:01:37.469
your data anywhere. It stays on your device no

00:01:37.469 --> 00:01:40.450
matter what, wherever you're using it. So in

00:01:40.450 --> 00:01:44.670
my case, my most frequent use of Harper happens

00:01:44.670 --> 00:01:47.750
inside of my text editor when I'm writing code.

00:01:48.069 --> 00:01:51.450
So here we have the Harper readme. Harper can

00:01:51.450 --> 00:01:53.230
detect a variety of different grammatical errors.

00:01:53.390 --> 00:01:56.650
So it can do agreement errors, spelling mistakes.

00:01:58.909 --> 00:02:07.290
It can identify if you're using the wrong kind

00:02:07.290 --> 00:02:13.610
of contraction, that kind of thing. Harper, like

00:02:13.610 --> 00:02:15.629
I said, it's designed to be very fast. It's designed

00:02:15.629 --> 00:02:17.990
to get out of your way. So I find that a lot

00:02:17.990 --> 00:02:19.909
of people who are using Grammarly, their biggest

00:02:19.909 --> 00:02:24.449
complaint is that they are spending a lot of

00:02:24.449 --> 00:02:26.189
time just waiting for Grammarly to do its thing.

00:02:26.830 --> 00:02:28.870
And the goal for Harper is you should be able

00:02:28.870 --> 00:02:32.409
to fix the grammatical errors in your work while

00:02:32.409 --> 00:02:34.129
you're doing it so that you don't have to context

00:02:34.129 --> 00:02:36.270
switch. You can just stay in the writing flow

00:02:36.270 --> 00:02:38.509
and you're not getting distracted with a variety

00:02:38.509 --> 00:02:43.800
of different things. So everything remains local,

00:02:44.000 --> 00:02:47.560
right? Harper doesn't have to reach out anywhere.

00:02:47.919 --> 00:02:50.060
Everything like the dictionaries that I use,

00:02:50.099 --> 00:02:52.360
I don't know how it works, but the dictionaries

00:02:52.360 --> 00:02:55.680
that it uses, downloads them locally and it uses

00:02:55.680 --> 00:02:59.259
that. It doesn't have to contact. I mean, I'm

00:02:59.259 --> 00:03:01.000
happy to get into the technical details, but

00:03:01.000 --> 00:03:03.659
yes, it is always local no matter what. So like

00:03:03.659 --> 00:03:05.680
even on our website, we have like a little demo

00:03:05.680 --> 00:03:09.840
here that like showcases how it can insert Oxford

00:03:09.840 --> 00:03:15.409
commas, that kind of thing. and improve the idiomatic

00:03:15.409 --> 00:03:19.270
nature of your writing. All of this is happening

00:03:19.270 --> 00:03:22.330
in your browser on your device. So anything you

00:03:22.330 --> 00:03:24.409
type into this text box stays on your device.

00:03:25.930 --> 00:03:28.270
It's not going into any server, it's not being

00:03:28.270 --> 00:03:30.169
used to train any large language models, and

00:03:30.169 --> 00:03:33.229
it's not being sold to anybody. Because it can't.

00:03:33.650 --> 00:03:39.250
It's not going anywhere, right? And that one...

00:03:40.039 --> 00:03:41.780
Makes it even faster because you don't have to

00:03:41.780 --> 00:03:44.900
do a network request to do anything Network requests

00:03:44.900 --> 00:03:49.060
are I think on average like 80 milliseconds For

00:03:49.060 --> 00:03:51.560
language language tool if it's not running on

00:03:51.560 --> 00:03:57.439
your device And that just makes it yeah Yeah,

00:03:58.219 --> 00:04:01.580
I noticed that it's quite snappy quite fast I

00:04:01.580 --> 00:04:03.680
was looking for a tool because I have always

00:04:03.680 --> 00:04:07.560
used the new of him the the spell thingy that

00:04:07.560 --> 00:04:10.289
comes with vim or neovim right and it's good

00:04:10.289 --> 00:04:13.469
highlights the words when they are not part of

00:04:13.469 --> 00:04:17.129
the dictionary but it's not it's not enough right

00:04:17.129 --> 00:04:20.509
i needed something like grammarly in neovim because

00:04:20.509 --> 00:04:23.449
i write a lot of text and i was looking for something

00:04:23.449 --> 00:04:26.709
and i don't know i think i searched in reddit

00:04:26.709 --> 00:04:29.569
i don't know how i found out about harper because

00:04:29.569 --> 00:04:32.689
i was ready to try this language tool thing or

00:04:32.689 --> 00:04:35.470
other plugins neovim plugins and i don't know

00:04:35.470 --> 00:04:40.290
just found harper somehow gave it a try and i

00:04:40.290 --> 00:04:42.829
love it what's one of my it's not a plug -in

00:04:42.829 --> 00:04:44.589
i know it's what what is it is it a language

00:04:44.589 --> 00:04:49.750
server for people that use neovim right yep yes

00:04:49.750 --> 00:04:53.250
it's a language server um although i don't know

00:04:53.250 --> 00:04:54.870
i feel like the line between plug -in and language

00:04:54.870 --> 00:04:56.850
server is a little fuzzy in neovim just because

00:04:56.850 --> 00:05:01.189
they're very tightly integrated um but yeah okay

00:05:01.189 --> 00:05:03.509
wonderful is there anything you want to talk

00:05:03.509 --> 00:05:05.310
about harper anything else you want to talk about

00:05:05.310 --> 00:05:12.600
it I would say right now, in addition to it just

00:05:12.600 --> 00:05:14.360
being like we're trying to make it available

00:05:14.360 --> 00:05:19.019
everywhere we can. The other big thing about

00:05:19.019 --> 00:05:23.920
Harper for developers, the real reason why we

00:05:23.920 --> 00:05:26.560
say it's the grammar checker for developers is

00:05:26.560 --> 00:05:29.959
because we've designed Harper to be very easy

00:05:29.959 --> 00:05:33.000
to integrate into your application. So if you

00:05:33.000 --> 00:05:34.800
have a web app and you want to add grammar checking

00:05:34.800 --> 00:05:38.220
to your web app, Um, it's as simple as NPM install.

00:05:38.519 --> 00:05:42.019
Um, it really is that simple. Um, obviously you

00:05:42.019 --> 00:05:44.399
have to create some UI, um, but that's going

00:05:44.399 --> 00:05:48.100
to be easier by the day. Um, and it, it, it,

00:05:48.100 --> 00:05:51.259
it's easy, you know? Um, and we're under an Apache

00:05:51.259 --> 00:05:54.120
two license, completely open source. Um, so it's

00:05:54.120 --> 00:05:55.779
not like you don't have to worry about your business

00:05:55.779 --> 00:05:59.800
or whatever. Um, but yeah, I don't think there's

00:05:59.800 --> 00:06:04.610
anything else I want to mention. Maybe just like

00:06:04.610 --> 00:06:10.290
beyond NeoVim. So NeoVim was the original editor

00:06:10.290 --> 00:06:13.649
we supported, but we've since expanded to VS

00:06:13.649 --> 00:06:17.990
Code, VS Code happens through a language server,

00:06:18.089 --> 00:06:21.310
so does NeoVim, Elix. But we also have Obsidian,

00:06:21.389 --> 00:06:23.569
and we have a WordPress plugin available as well.

00:06:24.129 --> 00:06:27.269
How does that WordPress plugin work? I've always

00:06:27.269 --> 00:06:30.129
been curious. So is it a plugin that you install

00:06:30.129 --> 00:06:34.480
when you're inside WordPress? Uh, yeah. So the

00:06:34.480 --> 00:06:38.300
plugin works. I mean, if you're, if you're a

00:06:38.300 --> 00:06:40.300
person that runs a WordPress site or a blog and

00:06:40.300 --> 00:06:43.339
you want to add grammar checking, um, to like,

00:06:43.459 --> 00:06:46.279
so it just helps you write better in WordPress,

00:06:46.399 --> 00:06:48.519
basically the same thing that, that, that it

00:06:48.519 --> 00:06:51.839
does in Neobim. Right. Right. Yep. Exactly. Yep.

00:06:51.860 --> 00:06:55.920
Okay. Um, and then in addition to these, we also

00:06:55.920 --> 00:06:58.980
have a Chrome extension on the way. Um, I disabled

00:06:58.980 --> 00:07:01.709
it before we got onto the call. So you're not

00:07:01.709 --> 00:07:04.089
going to get to see it, but it's, it's in the

00:07:04.089 --> 00:07:07.949
works. I'm really excited about it because there's

00:07:07.949 --> 00:07:10.550
like basically two things that people ask me

00:07:10.550 --> 00:07:13.269
about most often when it comes to Harper is,

00:07:13.430 --> 00:07:16.250
does it support other dialects of English? It

00:07:16.250 --> 00:07:19.910
does. That's one of my questions. Yeah. It supports

00:07:19.910 --> 00:07:24.870
all four major dialects of English as of, I don't

00:07:24.870 --> 00:07:26.290
remember the exact date, but a few weeks ago.

00:07:27.980 --> 00:07:30.379
And soon it will also have a Chrome extension,

00:07:30.560 --> 00:07:32.819
so you can use it pretty much anywhere you write

00:07:32.819 --> 00:07:35.759
in the browser. Okay, interesting. In addition

00:07:35.759 --> 00:07:38.199
to all these places. So is it only English for

00:07:38.199 --> 00:07:43.980
now? Does it support other languages? So, yes.

00:07:44.060 --> 00:07:48.079
So right now it is only English. That is an intentional

00:07:48.079 --> 00:07:51.339
decision by us. We want to make the English experience

00:07:51.339 --> 00:07:56.160
truly amazing before we move on to anything else.

00:07:57.230 --> 00:08:00.990
Harper's Harper's internals will work for pretty

00:08:00.990 --> 00:08:03.550
much any European language. There's pretty much

00:08:03.550 --> 00:08:06.649
no chance of it working for like Chinese, for

00:08:06.649 --> 00:08:15.029
example, just because we leverage the. Like English

00:08:15.029 --> 00:08:19.649
just does not have very many characters or most

00:08:19.649 --> 00:08:21.589
European languages only work with a pretty small

00:08:21.589 --> 00:08:23.509
set of characters, but Chinese and Japanese,

00:08:23.790 --> 00:08:27.269
they all. have huge character sets and it just

00:08:27.269 --> 00:08:30.009
doesn't work with the framework that we've built

00:08:30.009 --> 00:08:34.490
out. Okay. And are there any plans for something

00:08:34.490 --> 00:08:40.909
like Spanish, for example? To directly answer

00:08:40.909 --> 00:08:43.029
your question? No, we don't, we don't have plans

00:08:43.029 --> 00:08:45.730
to expand BL into English because we don't, we

00:08:45.730 --> 00:08:47.570
see English as being a very complicated piece

00:08:47.570 --> 00:08:49.429
to tackle. And we, like I said, we want to make

00:08:49.429 --> 00:08:55.029
it truly amazing. Part of the, Part of the weakness

00:08:55.029 --> 00:08:58.690
of other open source grammar checkers like LanguageTool

00:08:58.690 --> 00:09:01.850
is that, well, LanguageTool is great, let's be

00:09:01.850 --> 00:09:03.929
clear. It's a really amazing tool. You should

00:09:03.929 --> 00:09:07.409
use it if it fits your use case. They've spent

00:09:07.409 --> 00:09:10.450
a lot of time making their support for languages

00:09:10.450 --> 00:09:13.549
other than English very good. But that's been

00:09:13.549 --> 00:09:15.529
at the sacrifice of the English support itself.

00:09:16.169 --> 00:09:20.730
So LanguageTool's English support could be better.

00:09:21.580 --> 00:09:23.519
They just haven't invested the time into it because

00:09:23.519 --> 00:09:24.919
they've been spending their time on other languages,

00:09:25.059 --> 00:09:26.759
which is fine, which is great. And that's, that

00:09:26.759 --> 00:09:29.919
is the use case. And if that is, if that is important

00:09:29.919 --> 00:09:31.659
to you, you should absolutely use language tool.

00:09:32.419 --> 00:09:34.639
Right now we're focusing on English, making the

00:09:34.639 --> 00:09:37.779
English support really, really good before we

00:09:37.779 --> 00:09:42.700
go on to anything else. Okay. So no plans short

00:09:42.700 --> 00:09:45.720
term to support other languages. Okay. Wonderful.

00:09:45.840 --> 00:09:49.289
Yeah. Too, too, too much stuff. I think would

00:09:49.289 --> 00:09:51.190
need to happen for you to support other languages.

00:09:51.370 --> 00:09:54.649
Okay. But thanks for letting us know about that.

00:09:54.830 --> 00:09:58.870
And that said, if you are interested in adding

00:09:58.870 --> 00:10:01.389
support to another language or for another language

00:10:01.389 --> 00:10:04.429
to Harper, we're open source and we welcome contributions.

00:10:04.450 --> 00:10:07.029
So I would love to see someone open a PR about

00:10:07.029 --> 00:10:11.090
this. Okay. Yeah. It's just that I personally

00:10:11.090 --> 00:10:13.889
don't have time to do English and something else.

00:10:13.929 --> 00:10:17.240
Right. Yeah. Makes sense. Okay, but you're open

00:10:17.240 --> 00:10:21.120
to it. Okay, wonderful. Something that I noticed

00:10:21.120 --> 00:10:24.440
when I was playing around with Harper is the

00:10:24.440 --> 00:10:29.139
GitHub account that it lives in. And I noticed

00:10:29.139 --> 00:10:31.320
that it's in the automatic account. I thought

00:10:31.320 --> 00:10:34.500
it was going to be in your account, but it's

00:10:34.500 --> 00:10:39.159
in automatic. Can you share something about this

00:10:39.159 --> 00:10:42.220
or, I don't know, anything you want to let us

00:10:42.220 --> 00:10:46.809
know about that? Yeah. Um, so Harper was originally

00:10:46.809 --> 00:10:49.870
a project that I worked on in my free time. Um,

00:10:49.970 --> 00:10:51.570
whenever I had a moment to spare, I would work

00:10:51.570 --> 00:10:54.490
on it. Um, because I saw it as kind of like a,

00:10:54.509 --> 00:10:57.750
a productivity multiplier for everything else

00:10:57.750 --> 00:11:01.870
I did. Um, because at least for me, writing is

00:11:01.870 --> 00:11:03.629
a really important part of my development workflow.

00:11:04.450 --> 00:11:07.529
Um, so if I can write better, write well, um,

00:11:07.809 --> 00:11:10.490
that sped up everything else, my professional

00:11:10.490 --> 00:11:13.509
academic life. Um, so I would work on Harper

00:11:13.509 --> 00:11:19.080
in my free time. Um, and in December, uh, automatic

00:11:19.080 --> 00:11:22.419
reached out to me or before December. Um, but

00:11:22.419 --> 00:11:24.519
it was finalized in December automatically reached

00:11:24.519 --> 00:11:27.679
out to me and they, um, they offered to, um,

00:11:27.899 --> 00:11:30.580
basically hire me to work full time on Harper

00:11:30.580 --> 00:11:35.379
and all of its like related, um, peripheral components.

00:11:36.259 --> 00:11:39.600
Um, and part of that was just like, this is now

00:11:39.600 --> 00:11:41.519
an automatic thing. They're sponsoring it. So

00:11:41.519 --> 00:11:42.919
it makes sense for it to be under the automatic

00:11:42.919 --> 00:11:49.970
org. Okay. Yeah. That said, it's still under

00:11:49.970 --> 00:11:53.370
Apache 2. Automatic is amazing. They're probably

00:11:53.370 --> 00:11:58.190
the single largest company in terms of open source

00:11:58.190 --> 00:12:02.870
commitment. We really do believe that open source

00:12:02.870 --> 00:12:04.789
is one of the most powerful ideas of our generation.

00:12:07.190 --> 00:12:10.409
And so Harper is going to... There are no plans

00:12:10.409 --> 00:12:14.299
to... Make a closed source or anything like that.

00:12:14.379 --> 00:12:17.519
It is it is an open source project. It just happens

00:12:17.519 --> 00:12:20.480
to the end of the automatic work Okay, so it

00:12:20.480 --> 00:12:23.580
was acquired basically. I think you shared this

00:12:23.580 --> 00:12:25.820
article with me. I'm just gonna open it here

00:12:25.820 --> 00:12:30.320
on my Browser, I'm just sharing my screen right

00:12:30.320 --> 00:12:32.860
now. Let me just fix this a little bit because

00:12:32.860 --> 00:12:39.620
I have the lights over my my face There we go,

00:12:39.899 --> 00:12:47.590
okay so um i can share this with um with everyone

00:12:47.590 --> 00:12:53.149
watching this right this article it explains

00:12:53.149 --> 00:12:57.090
what happened and uh and all that stuff so if

00:12:57.090 --> 00:12:59.549
if someone wants to know more a little bit about

00:12:59.549 --> 00:13:02.250
this i'm gonna leave this in the video description

00:13:02.250 --> 00:13:07.370
so you can go and read there right And are you

00:13:07.370 --> 00:13:10.370
working on Harper by yourself now or is there

00:13:10.370 --> 00:13:17.830
a team working on it? So Harper. Harper is interesting

00:13:17.830 --> 00:13:22.549
in terms of just like full time commitment. I'm

00:13:22.549 --> 00:13:26.970
probably the only one. But I'm definitely not

00:13:26.970 --> 00:13:31.370
the only person like contributing. We have like.

00:13:32.970 --> 00:13:36.309
So many people have open PRs and tweaks and little

00:13:36.309 --> 00:13:41.610
fixes to harbor. There are a couple people, you

00:13:41.610 --> 00:13:43.929
can look at the GitHub repo, that are doing just

00:13:43.929 --> 00:13:47.570
truly amazing work, contributing when they can.

00:13:49.950 --> 00:13:53.350
So I would not say I'm the only one with commit

00:13:53.350 --> 00:13:58.990
access, I suppose, is the real technical. But

00:13:58.990 --> 00:14:01.129
I'm definitely not the only one working on the

00:14:01.129 --> 00:14:06.860
project. Okay. So let's say that I find, I remember

00:14:06.860 --> 00:14:11.700
that I detected that it was not identifying when

00:14:11.700 --> 00:14:14.600
I had a duplicate word, right? So what should

00:14:14.600 --> 00:14:17.240
I do in that case? Should I just create an issue

00:14:17.240 --> 00:14:22.620
in the GitHub repo? I would say, oh, sorry, go

00:14:22.620 --> 00:14:26.100
ahead. No, no, no, you go ahead. Like as a user,

00:14:26.259 --> 00:14:28.820
if there's someone in Neobim using Harper, they

00:14:28.820 --> 00:14:31.759
just go to the repo, create an issue, or? When

00:14:31.759 --> 00:14:35.100
they detect something? Yes. If you encounter

00:14:35.100 --> 00:14:37.399
a problem with Harper, the single best thing

00:14:37.399 --> 00:14:40.679
that you can do is open an issue and just give

00:14:40.679 --> 00:14:44.720
us an example text or just a snippet that replicates

00:14:44.720 --> 00:14:47.700
that problem. You don't have to give us too many

00:14:47.700 --> 00:14:49.820
details about what platform. I mean, it'd be

00:14:49.820 --> 00:14:52.799
nice if you gave us details about what platform

00:14:52.799 --> 00:14:54.240
you're on and that kind of thing, what version

00:14:54.240 --> 00:14:57.980
of Harper. But if you're busy and you don't have

00:14:57.980 --> 00:15:00.269
a lot of time, But you find an issue in Harper,

00:15:00.490 --> 00:15:02.710
just take a screenshot or just copy and paste

00:15:02.710 --> 00:15:06.850
the problematic text. And we'll try and get Harper

00:15:06.850 --> 00:15:11.529
to not have that issue anymore. So even if that

00:15:11.529 --> 00:15:13.409
could be a false positive or a false negative,

00:15:13.629 --> 00:15:17.809
either way, we want to hear about it. That makes

00:15:17.809 --> 00:15:23.549
everything easier. Right. Yes. Language in general

00:15:23.549 --> 00:15:32.700
is a very complicated beast. we can kind of find

00:15:32.700 --> 00:15:37.820
these edge cases is through people. I mean, we

00:15:37.820 --> 00:15:41.019
have a couple other methods that I would love

00:15:41.019 --> 00:15:45.759
to talk about. And we can. Yeah, whatever you

00:15:45.759 --> 00:15:51.200
want to share is fine. Well, I don't want to

00:15:51.200 --> 00:15:54.620
get too off track. But yeah, to just answer your

00:15:54.620 --> 00:15:57.710
question. Just open an issue. If you would like

00:15:57.710 --> 00:15:59.529
to try and get into the code, we have amazing

00:15:59.529 --> 00:16:02.669
documentation and you should absolutely try.

00:16:03.610 --> 00:16:05.070
It would be a really great learning experience.

00:16:05.409 --> 00:16:07.750
I've talked to a lot of people who have opened

00:16:07.750 --> 00:16:09.909
PRs on Harper and been like, wow, this is so

00:16:09.909 --> 00:16:13.809
cool. Being able to contribute to an actual open

00:16:13.809 --> 00:16:15.710
source project. I didn't realize it was this

00:16:15.710 --> 00:16:21.370
easy. So I would love PRs. We welcome them. But

00:16:21.370 --> 00:16:23.129
if you only have time for an issue, that's more

00:16:23.129 --> 00:16:26.960
than enough. Okay. And is there questions that

00:16:26.960 --> 00:16:30.139
you get asked all the time that we can cover

00:16:30.139 --> 00:16:33.340
in here, right? Because there's a few of, do

00:16:33.340 --> 00:16:35.279
you have any common stuff that you want to share

00:16:35.279 --> 00:16:37.559
here for everyone that's going to go into the

00:16:37.559 --> 00:16:39.919
repo and ask for something that you know that

00:16:39.919 --> 00:16:44.100
you have asked or answered a lot of times? Is

00:16:44.100 --> 00:16:48.580
there something you want to share here? I mean,

00:16:48.600 --> 00:16:51.220
we've already covered two of them. The two most

00:16:51.220 --> 00:16:53.960
frequent things people ask me about Harper are,

00:16:55.879 --> 00:16:58.860
English. Like language support, right? English.

00:16:59.200 --> 00:17:02.700
What dialects of English? The answer is all of

00:17:02.700 --> 00:17:06.160
them now. And then Chrome extension, which we're

00:17:06.160 --> 00:17:10.019
working on. We have a PR open for it. Hopefully

00:17:10.019 --> 00:17:14.220
it'll get merged the next week or so. Okay. Oh,

00:17:14.319 --> 00:17:20.599
there it is. Okay. Wonderful. Yeah. And this

00:17:20.599 --> 00:17:24.240
extension is intended to work? Similar to Grammarly,

00:17:24.380 --> 00:17:32.440
for example, right? Right, right. I've been postponing

00:17:32.440 --> 00:17:37.099
the creation of a Chrome extension and a desktop

00:17:37.099 --> 00:17:40.319
app because those kind of fall in the same category

00:17:40.319 --> 00:17:44.220
where the general idea is you start with something

00:17:44.220 --> 00:17:47.660
basic and it kind of covers every case and then

00:17:47.660 --> 00:17:50.309
you have to slowly refine it over time. I've

00:17:50.309 --> 00:17:52.369
been kind of postponing that until we've reached

00:17:52.369 --> 00:17:59.849
like a critical point of actual utility. Like

00:17:59.849 --> 00:18:02.349
Harper's really great for taking quick notes,

00:18:02.430 --> 00:18:05.109
that kind of thing. But it hasn't been until

00:18:05.109 --> 00:18:07.029
we added the dialect support where it's really

00:18:07.029 --> 00:18:11.650
become like a truly formidable grammar checker

00:18:11.650 --> 00:18:17.009
for a wide variety of use cases. And you mentioned

00:18:17.009 --> 00:18:20.569
an application. Are there plans to create a desktop

00:18:20.569 --> 00:18:24.430
app or something? So we're going to start with,

00:18:24.509 --> 00:18:26.809
like I said, the problem with a Chrome extension

00:18:26.809 --> 00:18:29.670
or a desktop app is there's a lot of edge cases

00:18:29.670 --> 00:18:32.450
that we would have to handle. The most common

00:18:32.450 --> 00:18:34.569
complaint about Grammarly that I've received

00:18:34.569 --> 00:18:38.849
is the fact that if you open Grammarly in Obsidian,

00:18:38.910 --> 00:18:41.049
for example, you're not going to get great support

00:18:41.049 --> 00:18:44.240
because Grammarly isn't aware of code blocks

00:18:44.240 --> 00:18:48.240
or headings or anything like like it's not understanding

00:18:48.240 --> 00:18:52.259
the rich text or the context that your work is

00:18:52.259 --> 00:18:55.940
lying in right it's just taking the contents

00:18:55.940 --> 00:18:59.019
of obsidian or whatever app and treating it as

00:18:59.019 --> 00:19:01.539
plain text and that leads to a lot of like erroneous

00:19:01.539 --> 00:19:03.759
false positives that just doesn't make for a

00:19:03.759 --> 00:19:11.440
very good experience um so we're going to start

00:19:11.440 --> 00:19:14.980
with the chrome extension I'm just wondering,

00:19:15.079 --> 00:19:17.559
what would be the purpose of a dedicated desktop

00:19:17.559 --> 00:19:21.359
app? I don't see the well, I know for sure that

00:19:21.359 --> 00:19:24.299
I wouldn't use it, but who would use it? That's

00:19:24.299 --> 00:19:27.000
that's that's my question, basically. Like, what's

00:19:27.000 --> 00:19:32.319
the use case of a desktop app? I see. The main

00:19:32.319 --> 00:19:34.859
use case is just like like I've had people be

00:19:34.859 --> 00:19:37.119
like, I need Harper in Discord or I need Harper

00:19:37.119 --> 00:19:41.240
in Slack. And we can't make extensions for Discord

00:19:41.240 --> 00:19:44.950
or Slack because they don't have. like the capability

00:19:44.950 --> 00:19:48.289
for that. So the only other option is to create

00:19:48.289 --> 00:19:52.569
a desktop app that uses your device or your operating

00:19:52.569 --> 00:19:55.049
system's accessibility APIs. This is what Grammarly

00:19:55.049 --> 00:20:00.349
does. It looks at the accessibility APIs and

00:20:00.349 --> 00:20:03.490
uses that to do grammar checking for Discord

00:20:03.490 --> 00:20:06.630
and Slack or Microsoft Teams or whatever. Okay.

00:20:06.910 --> 00:20:10.569
Makes sense. So there's plans for that as well.

00:20:10.609 --> 00:20:13.190
The Chrome extension first and then the app?

00:20:13.589 --> 00:20:18.809
In the long future, maybe? I could see an app

00:20:18.809 --> 00:20:23.210
happening, yes. I'm hesitant to make guarantees

00:20:23.210 --> 00:20:28.450
on this just because I approach development in

00:20:28.450 --> 00:20:32.910
kind of a discovery fashion. So we need to see

00:20:32.910 --> 00:20:34.609
if, like, I don't know if people actually use

00:20:34.609 --> 00:20:36.250
a Chrome extension. People ask about it a lot,

00:20:36.349 --> 00:20:39.390
but that doesn't mean people actually would find

00:20:39.390 --> 00:20:42.809
that valuable, right? Yeah. If they will switch

00:20:42.809 --> 00:20:47.369
from Grammarly to Harper, right? Like, yeah.

00:20:48.569 --> 00:20:51.589
That's a good point. Okay. Thanks for sharing.

00:20:51.970 --> 00:20:55.009
Yep. Yeah. We already covered that it works in

00:20:55.009 --> 00:20:58.430
multiple, not only IDEs, but also applications

00:20:58.430 --> 00:21:03.450
like Obsidian, even in WordPress and a lot of

00:21:03.450 --> 00:21:07.000
different stuff, even Emacs. What is Emacs? Emacs

00:21:07.000 --> 00:21:09.339
is not an ID. What is it? Is it like an operating

00:21:09.339 --> 00:21:13.420
system or something? So I have a friend that

00:21:13.420 --> 00:21:15.220
uses Emacs. I don't know if he has installed

00:21:15.220 --> 00:21:17.500
Harper, right? But it's not too complicated to

00:21:17.500 --> 00:21:19.180
get it running in Emacs. Have you tried it in

00:21:19.180 --> 00:21:22.240
Emacs or no? I have not tried it in Emacs. I

00:21:22.240 --> 00:21:23.960
know there are people who have used it in Emacs

00:21:23.960 --> 00:21:28.339
and I've asked them for like concise documentation

00:21:28.339 --> 00:21:32.380
about it. From what I understand, Emacs is like...

00:21:32.619 --> 00:21:35.779
such a build your own system that it's hard to

00:21:35.779 --> 00:21:38.259
like, it's just a language server, but there's

00:21:38.259 --> 00:21:41.160
not, it's not like in them LSP config where there's

00:21:41.160 --> 00:21:44.660
like a centralized repositories of language server

00:21:44.660 --> 00:21:46.660
configurations. You have to, you have to do it

00:21:46.660 --> 00:21:52.519
yourself a little bit more. So I, I'm not sure

00:21:52.519 --> 00:21:56.079
what the experience looks like there. Okay. Okay.

00:21:56.539 --> 00:21:59.359
So we started, we started at the, at the end,

00:21:59.440 --> 00:22:03.200
we didn't. Is there anything you want to share

00:22:03.200 --> 00:22:06.200
about you? I think we already know you a little

00:22:06.200 --> 00:22:08.619
bit based on everything that you have shared.

00:22:09.059 --> 00:22:10.980
Is there anything you want to share about you?

00:22:11.019 --> 00:22:13.220
Do you have a blog post, a YouTube channel newsletter?

00:22:14.700 --> 00:22:18.339
Yeah. So I don't have a newsletter. I don't have

00:22:18.339 --> 00:22:22.180
a YouTube channel. I do have, I don't want to

00:22:22.180 --> 00:22:25.460
call it a blog, but it is, it is totally a blog.

00:22:27.859 --> 00:22:29.759
Elijah potter .dev. That's where you can find

00:22:29.759 --> 00:22:32.740
me. I have links to everything that you might

00:22:32.740 --> 00:22:38.200
find relevant about me, Harper. I also kind of

00:22:38.200 --> 00:22:43.440
semi -frequently write on here, although I would

00:22:43.440 --> 00:22:45.940
say that it's not really for the purpose of informing

00:22:45.940 --> 00:22:51.579
a broad audience. This is usually like, for example,

00:22:51.720 --> 00:22:55.319
the general policy in Harper is you should just

00:22:55.319 --> 00:22:58.240
open a PR as soon as you have something. Um,

00:22:58.420 --> 00:23:00.460
just leave it as a draft if you're not ready

00:23:00.460 --> 00:23:03.299
yet. Um, but I really like the idea of, of people

00:23:03.299 --> 00:23:06.339
just opening a PR when they have something so

00:23:06.339 --> 00:23:08.700
that we can see like who's working on what. And

00:23:08.700 --> 00:23:11.480
so like this kind of thing that doesn't really

00:23:11.480 --> 00:23:14.519
fit into the documentation, but it's like kind

00:23:14.519 --> 00:23:16.940
of that general idea, something that I can link

00:23:16.940 --> 00:23:21.259
to. Um, that's what goes on here. So, okay. And

00:23:21.259 --> 00:23:24.319
is everything related to Harper or anything related

00:23:24.319 --> 00:23:26.559
to you personally? Like if you switched when

00:23:26.559 --> 00:23:29.759
you. editor or or something you're gonna post

00:23:29.759 --> 00:23:33.099
it there it's just harper related stuff in your

00:23:33.099 --> 00:23:37.500
blog post uh i would definitely say i mean there

00:23:37.500 --> 00:23:41.359
is a lot of harper related stuff like this is

00:23:41.359 --> 00:23:43.920
definitely harper related harper related sort

00:23:43.920 --> 00:23:47.339
of harper related okay uh harper related but

00:23:47.339 --> 00:23:51.460
it's definitely not all harper um like this is

00:23:51.460 --> 00:23:55.279
definitely not harper related okay You should

00:23:55.279 --> 00:23:57.039
read this, by the way. It's a very good book.

00:23:57.880 --> 00:24:03.640
Okay. Interesting. Okay. Yeah. Okay. So I will

00:24:03.640 --> 00:24:07.920
not be. Oh, no, go ahead. I will not be posting

00:24:07.920 --> 00:24:10.539
about switching to a new editor because why would

00:24:10.539 --> 00:24:14.440
I? It's just so good. We're going to touch on

00:24:14.440 --> 00:24:20.400
that in a little while. I am curious, you know,

00:24:20.420 --> 00:24:24.079
why are you using U of M? Okay. And. You want

00:24:24.079 --> 00:24:26.339
to talk a little bit about the experience of

00:24:26.339 --> 00:24:30.920
being an open source maintainer? How does it

00:24:30.920 --> 00:24:34.880
feel? Is it a lot of work? How does it go with

00:24:34.880 --> 00:24:37.799
issues, discussions? Is it a lot of burden of

00:24:37.799 --> 00:24:40.299
maintaining open source? And how long have you

00:24:40.299 --> 00:24:50.259
been doing it? Let's see. I would definitely

00:24:50.259 --> 00:24:52.390
not call it a burden. I know that's a word that

00:24:52.390 --> 00:24:54.009
people use a lot when it comes to open source

00:24:54.009 --> 00:24:59.910
maintenance because, and this is true for some

00:24:59.910 --> 00:25:03.109
projects where it is like, like it's critical

00:25:03.109 --> 00:25:05.230
infrastructure and it's something that you need

00:25:05.230 --> 00:25:08.329
to do or maintenance is something that you need

00:25:08.329 --> 00:25:11.529
to do to make things continue working and that

00:25:11.529 --> 00:25:16.230
there are people relying on you to build something

00:25:16.230 --> 00:25:19.849
or keep something. running, keep something free

00:25:19.849 --> 00:25:23.450
of bugs and security problems. I wouldn't use

00:25:23.450 --> 00:25:26.230
burden to describe maintenance of Harper for

00:25:26.230 --> 00:25:29.910
two reasons. One, we don't really have any security

00:25:29.910 --> 00:25:37.269
concerns. Harper is essentially just like we're

00:25:37.269 --> 00:25:40.869
not doing network in the vast majority of cases.

00:25:41.230 --> 00:25:47.839
We're not doing remote code execution. of any

00:25:47.839 --> 00:25:54.400
kind. It's really very self -contained. And the

00:25:54.400 --> 00:26:00.700
only... I won't say the only, just because there's

00:26:00.700 --> 00:26:03.099
always surprises, in which case we would be there

00:26:03.099 --> 00:26:07.720
to handle them. But the vast majority of potential

00:26:07.720 --> 00:26:11.079
security problems with Harper come from the consumers

00:26:11.079 --> 00:26:14.880
of our libraries. So if you're... if you're consuming

00:26:14.880 --> 00:26:17.400
harper and like maybe you're not loading the

00:26:17.400 --> 00:26:19.339
right web assembly binary or something like that

00:26:19.339 --> 00:26:24.819
um that's not that's not us that's not the harper

00:26:24.819 --> 00:26:27.019
team that is something that you need to consider

00:26:27.019 --> 00:26:33.960
you need to look at um but but yeah so i wouldn't

00:26:33.960 --> 00:26:35.519
say it's a burden it's a lot of fun actually

00:26:35.519 --> 00:26:41.019
um because it's been a good experience yeah okay

00:26:41.019 --> 00:26:44.380
yeah I caught you there. I'm sorry. Continue.

00:26:45.059 --> 00:26:47.440
No, it's it's a good it's a good experience.

00:26:47.539 --> 00:26:51.480
It's a lot of fun because we just I get to hear

00:26:51.480 --> 00:26:53.279
about people using Harper and all sorts of like

00:26:53.279 --> 00:26:58.200
interesting scenarios. Like I think someone's

00:26:58.200 --> 00:26:59.960
using them on like YouTube transcripts, that

00:26:59.960 --> 00:27:07.059
kind of thing. Weird edge cases. And I don't

00:27:07.059 --> 00:27:09.299
know, it's just it's very rewarding. rewarding

00:27:09.299 --> 00:27:11.579
experience to come across, come across someone

00:27:11.579 --> 00:27:13.460
in like real life. This happened multiple times.

00:27:14.339 --> 00:27:16.880
And they're like, yeah, so I was using Harper

00:27:16.880 --> 00:27:18.839
the other day and they don't realize that I'm

00:27:18.839 --> 00:27:23.380
the guy that made it. And that's partly because

00:27:23.380 --> 00:27:25.220
I live near a college campus and we have a lot

00:27:25.220 --> 00:27:26.900
of college students that use NeoVim for notes

00:27:26.900 --> 00:27:32.440
and stuff. Okay. Okay. Yeah. Okay. Wonderful.

00:27:32.740 --> 00:27:37.059
Okay. And let's see, what else do we have here?

00:27:38.680 --> 00:27:41.319
Just to get, you know, a little bit more. Let's

00:27:41.319 --> 00:27:44.700
see. We've been here for 30 minutes. I think

00:27:44.700 --> 00:27:46.859
we won't have enough time to go through all of

00:27:46.859 --> 00:27:50.980
the questions that I have here. Right. So I want

00:27:50.980 --> 00:27:54.220
to share two of your favorite music bands, if

00:27:54.220 --> 00:27:58.640
you have any, just to get, you know. I'm a big

00:27:58.640 --> 00:28:04.599
fan of Watch House. They're like a folk kind

00:28:04.599 --> 00:28:10.039
of music. They just feel very raw. And then also,

00:28:10.240 --> 00:28:13.119
I don't know, who doesn't like Taylor Swift?

00:28:14.019 --> 00:28:17.599
Let's be honest. Let's be honest. If you don't

00:28:17.599 --> 00:28:19.640
like Taylor Swift, you might not have a soul.

00:28:20.980 --> 00:28:29.660
I think I don't have one then. You know what?

00:28:29.819 --> 00:28:33.839
Teach their own. Teach their own. Tay -Tay is

00:28:33.839 --> 00:28:37.940
not for everybody. Yeah, well, I think I have

00:28:37.940 --> 00:28:41.000
her. Her? I don't even know, to be honest. Of

00:28:41.000 --> 00:28:42.839
course that I have her, her, but I'm like, oh,

00:28:42.920 --> 00:28:45.140
that's Taylor Swift. You know, I have no idea.

00:28:45.359 --> 00:28:47.579
Yeah. It may be placed in the background, but

00:28:47.579 --> 00:28:53.180
yeah. Yeah. Well, I do. I do spend a lot of time

00:28:53.180 --> 00:28:57.660
around like children and they are obsessed. Oh,

00:28:57.700 --> 00:29:01.119
into that. OK. Yeah. OK. Definitely. All right.

00:29:01.279 --> 00:29:04.859
All right. So watch House and Taylor Swift. You

00:29:04.859 --> 00:29:08.730
would say that are the ones. And. You have any

00:29:08.730 --> 00:29:14.650
favorite movies? Baby Driver. Baby Driver. What

00:29:14.650 --> 00:29:21.029
is that? It's like this. Is it a movie? Yeah.

00:29:23.950 --> 00:29:28.170
It's like this awesome action action movie. It's

00:29:28.170 --> 00:29:30.950
got a great story. Great music. Just the whole

00:29:30.950 --> 00:29:36.970
thing scored so well. It's just, I don't know.

00:29:37.029 --> 00:29:39.430
It's just a really good movie. It's hard to put

00:29:39.430 --> 00:29:42.890
into words. This is one of my favorite actors.

00:29:43.089 --> 00:29:46.289
What's this guy's name? This is Ray Charles,

00:29:46.690 --> 00:29:49.490
right? The guy that did Ray Charles. You watched

00:29:49.490 --> 00:29:53.269
Ray Charles by any chance? No, I haven't. Oh,

00:29:53.269 --> 00:30:00.430
hold on. This guy. This guy's not Jamie Foxx.

00:30:00.430 --> 00:30:03.809
Is that Jamie Foxx? Jamie Foxx. Yep. Yep. Man,

00:30:03.890 --> 00:30:07.250
this is such a great movie, okay? I haven't watched

00:30:07.250 --> 00:30:10.529
this one, but if Jamie Foxx is in there, for

00:30:10.529 --> 00:30:14.769
sure, check it out. Yeah. I'll have to watch

00:30:14.769 --> 00:30:19.309
Rachel's. Oh, yeah, you should, man. I love backstories

00:30:19.309 --> 00:30:25.890
on musicians. It adds so much depth to the music,

00:30:26.029 --> 00:30:31.170
I think. Yeah. Yeah, definitely. Baby Driver's

00:30:31.170 --> 00:30:38.839
very good. And I don't know. Who doesn't like

00:30:38.839 --> 00:30:42.019
Forrest Gump? Oh, yeah, for sure. Forrest Gump

00:30:42.019 --> 00:30:45.779
is a very good movie. Yeah, definitely. Definitely.

00:30:46.339 --> 00:30:50.799
Wonderful movie. I haven't met someone that doesn't

00:30:50.799 --> 00:30:53.440
like Forrest Gump. And are you into video games?

00:30:53.740 --> 00:30:57.319
Or, I don't know. I used to be. I haven't had

00:30:57.319 --> 00:31:04.240
time these last couple of years. Honestly. My

00:31:04.240 --> 00:31:07.220
little brother, he's six right now. He's really

00:31:07.220 --> 00:31:10.240
into Minecraft. So if there were a video game

00:31:10.240 --> 00:31:14.000
that I'd be playing, it would be that. Okay.

00:31:14.299 --> 00:31:17.160
Okay. Interesting. How old are you, by the way?

00:31:17.259 --> 00:31:19.740
You seem pretty young. If you want to share.

00:31:20.059 --> 00:31:31.079
If not, it's okay. I'm 20. 20? Yeah. Yeah. So.

00:31:31.559 --> 00:31:35.920
Not not not an aged man yet. Yeah. Although sometimes

00:31:35.920 --> 00:31:38.319
I feel like I'll get like cricks in my spine.

00:31:39.039 --> 00:31:42.539
Like, oh, it's getting there. Yeah. Sitting the

00:31:42.539 --> 00:31:45.359
whole day. Yeah. That. Oh, yeah. Makes your back

00:31:45.359 --> 00:31:49.240
hurt. I don't do too much activity. I go to swim

00:31:49.240 --> 00:31:52.380
two times a week. You know, that's the only thing

00:31:52.380 --> 00:31:55.640
I do. But I should take physical activity more

00:31:55.640 --> 00:31:58.279
seriously. I should go to the gym and all that

00:31:58.279 --> 00:32:03.119
stuff. I don't. But. Yeah. But yeah, I feel the

00:32:03.119 --> 00:32:05.720
same way. 20 years old. Yeah. You seem pretty

00:32:05.720 --> 00:32:08.160
young, you know, and you have a successful open

00:32:08.160 --> 00:32:11.779
source tool already. Developer. Is that your,

00:32:11.779 --> 00:32:14.960
your main, well, your developer for sure. Right.

00:32:15.400 --> 00:32:21.720
Yeah. Okay. Wonderful. I don't know. I, I just,

00:32:21.759 --> 00:32:23.819
I think I, I just gotten very lucky that I've

00:32:23.819 --> 00:32:26.059
happened upon something that people find useful.

00:32:26.660 --> 00:32:30.269
And that's the thing. That's the thing. You found

00:32:30.269 --> 00:32:34.730
an opportunity. You found something that the

00:32:34.730 --> 00:32:38.410
community needed, that everyone needed. And you

00:32:38.410 --> 00:32:40.930
just did it. And that's wonderful. You know,

00:32:41.009 --> 00:32:44.950
that's actually pretty great. And what do you

00:32:44.950 --> 00:32:48.009
use to take notes? Do you use NeoVim, Obsidian

00:32:48.009 --> 00:32:54.549
or something? It's complicated. That's the rough

00:32:54.549 --> 00:32:59.880
of it. I tend, I used to take notes, like I said,

00:32:59.880 --> 00:33:03.799
in the oven and I still do, um, the vast majority

00:33:03.799 --> 00:33:06.680
of the time, if it's just like, I need to record

00:33:06.680 --> 00:33:09.339
information, but if I'm like trying to really

00:33:09.339 --> 00:33:13.380
get in depth on something, I, I have one of these,

00:33:13.500 --> 00:33:17.359
uh, I don't know if you've seen these, uh, like

00:33:17.359 --> 00:33:22.079
a note taking like e -paper tablet. It's called

00:33:22.079 --> 00:33:27.759
remarkable. I haven't. You write and it translated

00:33:27.759 --> 00:33:30.779
to digital text or something, or what is it?

00:33:31.220 --> 00:33:36.779
It can. Um, I, the big appeal for me is just

00:33:36.779 --> 00:33:40.140
that it's a, it's a big, it's a big screen, big

00:33:40.140 --> 00:33:42.660
e -paper screen that I can load books onto and

00:33:42.660 --> 00:33:47.839
I can take notes in the margins. Oh yeah. So

00:33:47.839 --> 00:33:49.700
if I'm really trying to get in depth on a topic,

00:33:49.740 --> 00:33:53.019
like if I'm writing like a linguistics textbook

00:33:53.019 --> 00:33:55.990
or something like that. That's what I use this

00:33:55.990 --> 00:33:58.789
for. But for the vast majority of use cases,

00:33:58.849 --> 00:34:03.450
I'm using either NeoVim or Obsidian if I'm just

00:34:03.450 --> 00:34:06.869
trying to polish. If I'm trying to focus on polishing

00:34:06.869 --> 00:34:09.530
the hardware Obsidian experience, I'll use Obsidian.

00:34:10.269 --> 00:34:13.929
Okay. Yeah. Generally, actually, I would say

00:34:13.929 --> 00:34:17.190
as a general rule, it's whatever I'm focusing

00:34:17.190 --> 00:34:21.429
on improving that week. So if I'm working on...

00:34:21.920 --> 00:34:23.440
Working on improving the WordPress experience.

00:34:23.739 --> 00:34:26.559
I'll be taking notes in WordPress. Okay. It's

00:34:26.559 --> 00:34:28.139
not working on improving the Obsidian experience.

00:34:28.360 --> 00:34:30.900
I'm taking notes in Obsidian. You got what I'm

00:34:30.900 --> 00:34:34.960
saying? Yep. Makes sense. All right. Yeah. Okay.

00:34:35.139 --> 00:34:41.079
Okay. And when we were not recording yet, you

00:34:41.079 --> 00:34:44.619
mentioned that you use Hyperland, if I'm not

00:34:44.619 --> 00:34:49.079
mistaken. So Linux, you seem like a macOS guy.

00:34:49.670 --> 00:34:58.070
why are you using linux wow wow no i'm actually

00:34:58.070 --> 00:35:00.769
that's i don't see any problem with that i used

00:35:00.769 --> 00:35:05.110
to be really really uh really into the os flame

00:35:05.110 --> 00:35:09.030
wars but i actually see appeal for everything

00:35:09.030 --> 00:35:13.230
except for windows actually man just let me let

00:35:13.230 --> 00:35:15.889
me pause you right there People is going to think

00:35:15.889 --> 00:35:18.230
that the people that I bring over, that there's

00:35:18.230 --> 00:35:21.590
like a conspiracy or something against Windows

00:35:21.590 --> 00:35:27.050
because nobody so far has liked Windows. Everyone's

00:35:27.050 --> 00:35:30.809
like, okay, I'm into Linux, mainly Linux, some

00:35:30.809 --> 00:35:34.690
of them Mac OS, and everyone's like, not Windows.

00:35:34.949 --> 00:35:37.510
And I don't do it on purpose. It's just, I don't

00:35:37.510 --> 00:35:39.929
know. I need to get more Windows guys in here.

00:35:40.170 --> 00:35:43.630
But yeah, go on. Well, you're a Mac OS guy, right?

00:35:43.670 --> 00:35:47.250
Tell me about that. mac os yep yeah have you

00:35:47.250 --> 00:35:50.449
ever tried running linux everyone keeps telling

00:35:50.449 --> 00:35:53.469
me to switch to linux like everyone because i

00:35:53.469 --> 00:35:58.449
have my mac os really not really customized but

00:35:58.449 --> 00:36:00.329
if you look at it you would you wouldn't notice

00:36:00.329 --> 00:36:04.130
that it's it's mac os right if uh hold on let's

00:36:04.130 --> 00:36:07.469
see what's happening here so for example if i

00:36:07.469 --> 00:36:10.820
switch to my screen You wouldn't know it's Mac

00:36:10.820 --> 00:36:13.440
OS. You're like, what kind of Linux is this?

00:36:13.559 --> 00:36:16.519
It's just the little Apple that I left there.

00:36:16.619 --> 00:36:20.960
So people know that it's Mac OS. But yeah, everyone

00:36:20.960 --> 00:36:23.079
tells me the same thing. You know, you should

00:36:23.079 --> 00:36:27.800
switch to Linux. But I do love Linux. I run it

00:36:27.800 --> 00:36:31.099
only in servers. I have used it for years. I

00:36:31.099 --> 00:36:34.440
don't use a desktop environment. I just deploy

00:36:34.440 --> 00:36:37.539
a server. Debian is my operating system of choice.

00:36:38.219 --> 00:36:41.079
I just deploy them and I just SSH through them.

00:36:41.380 --> 00:36:46.380
And yeah, but not for the desktop. I'm not ready

00:36:46.380 --> 00:36:51.539
to take that jump yet. And what about you? Yeah,

00:36:52.360 --> 00:36:55.500
the desktop's a pretty big leap. I actually,

00:36:55.519 --> 00:36:57.940
I think that's my fly in the face of a lot of

00:36:57.940 --> 00:37:03.559
people. The main reason that I use Linux on the

00:37:03.559 --> 00:37:07.320
daily is for the desktop. mac os is great actually

00:37:07.320 --> 00:37:08.960
i think it's a really polished experience and

00:37:08.960 --> 00:37:10.320
i think it works for a lot of people i think

00:37:10.320 --> 00:37:13.119
it's great uh windows is also great if you use

00:37:13.119 --> 00:37:21.400
wsl um yeah for sure i agree yeah um but neither

00:37:21.400 --> 00:37:26.800
of them allow you to truly like customize the

00:37:26.800 --> 00:37:30.800
desktop experience how you like it um and i've

00:37:30.800 --> 00:37:35.570
gotten to a point where i i cannot use a computer

00:37:35.570 --> 00:37:38.190
for more than a few hours at a time if it doesn't

00:37:38.190 --> 00:37:42.230
have my specific key bindings and HyperLan set

00:37:42.230 --> 00:37:45.789
up. Oh, yeah. It's not even, I wouldn't even

00:37:45.789 --> 00:37:48.750
like, HyperLan's okay. I think it's fine. It's

00:37:48.750 --> 00:37:53.050
got a few reliability issues. But the main reason

00:37:53.050 --> 00:37:54.849
I use it is just because it would take so much

00:37:54.849 --> 00:37:57.909
time to get used to anything else. Okay. And

00:37:57.909 --> 00:38:00.989
did you get started with Linux or did you get

00:38:00.989 --> 00:38:05.739
started with something else? My first computer

00:38:05.739 --> 00:38:11.480
was a Linux machine. I used Windows after that

00:38:11.480 --> 00:38:18.199
for, I want to say, five years, something like

00:38:18.199 --> 00:38:23.280
that. And now I've been running Arch with Hyperland

00:38:23.280 --> 00:38:32.860
and Westerm for, I want to say, four years now,

00:38:32.920 --> 00:38:38.820
maybe. Okay. And why, why was the first one Linux?

00:38:38.900 --> 00:38:42.219
Like that's not something most people would do.

00:38:42.280 --> 00:38:45.099
You know, usually you get a computer and you

00:38:45.099 --> 00:38:48.539
get it with windows, right? Like, I don't know.

00:38:48.599 --> 00:38:50.900
My parents got me a computer and it had windows

00:38:50.900 --> 00:38:52.960
installed. I didn't, I didn't even know that

00:38:52.960 --> 00:38:57.000
something else existed. Like, yeah. Who influenced

00:38:57.000 --> 00:39:02.619
you into, into Linux basically? So my first computer,

00:39:03.500 --> 00:39:13.280
Was a machine that... So I did odd jobs to raise

00:39:13.280 --> 00:39:19.860
money as a kid. And I eventually built up, I

00:39:19.860 --> 00:39:26.199
think it was like maybe $300. And you can't get

00:39:26.199 --> 00:39:29.519
a great machine for that price. So I decided

00:39:29.519 --> 00:39:33.000
to build a desktop. from scratch or not from

00:39:33.000 --> 00:39:35.360
scratch obviously but like you know from components

00:39:35.360 --> 00:39:42.880
um and while i was doing that a i don't even

00:39:42.880 --> 00:39:46.500
remember the context someone told me just that

00:39:46.500 --> 00:39:48.119
that that i should approach linux and that'd

00:39:48.119 --> 00:39:50.139
be a really great way to learn how computers

00:39:50.139 --> 00:39:54.340
work um and so i installed linux mint on that

00:39:54.340 --> 00:39:58.280
first machine it was so confusing um but i muddled

00:39:58.280 --> 00:40:01.480
through it I eventually switched to Windows because

00:40:01.480 --> 00:40:03.760
I wanted to play video games. Oh, yeah. And you

00:40:03.760 --> 00:40:06.719
couldn't do that on Linux at the time. You just

00:40:06.719 --> 00:40:09.179
couldn't. Other than maybe like Minecraft or

00:40:09.179 --> 00:40:15.320
something. So I switched to Windows. And then

00:40:15.320 --> 00:40:20.900
I eventually switched back to Linux after I had

00:40:20.900 --> 00:40:23.760
been using a Raspberry Pi for like some random

00:40:23.760 --> 00:40:26.079
server things for a while. And I felt confident

00:40:26.079 --> 00:40:30.260
enough. And I haven't looked back. Except in

00:40:30.260 --> 00:40:31.960
my old job, they made me use Windows, and that

00:40:31.960 --> 00:40:36.960
sucked. Yeah. With WSL, could be, but you still

00:40:36.960 --> 00:40:40.619
have that hypervisor in there, right? That extra

00:40:40.619 --> 00:40:43.739
layer that makes things slower. That's the only

00:40:43.739 --> 00:40:46.360
way that I can use Windows as well with WSL,

00:40:46.420 --> 00:40:49.219
but I just rather not use it at all. I don't

00:40:49.219 --> 00:40:51.340
game anymore, so I don't have a reason, but I

00:40:51.340 --> 00:40:54.119
do understand. If you play games the whole day,

00:40:54.320 --> 00:40:58.780
I would go with Windows. Well, people say that

00:40:58.780 --> 00:41:01.039
nowadays you can play whatever you want in Linux,

00:41:01.239 --> 00:41:02.960
you know, but I would go with Windows either

00:41:02.960 --> 00:41:07.559
way because it's just simpler. And if you do

00:41:07.559 --> 00:41:11.000
Windows application development, of course, you'd

00:41:11.000 --> 00:41:14.320
have to use Windows. And what are your thoughts

00:41:14.320 --> 00:41:17.980
on Mac OS? We already discussed Windows. What

00:41:17.980 --> 00:41:23.639
are your thoughts on Mac OS? Have you used it?

00:41:23.699 --> 00:41:28.949
I have used it. Um, just for like a month or

00:41:28.949 --> 00:41:32.929
so total, because my, I had like a, like a 2014

00:41:32.929 --> 00:41:37.150
Mac machine lying around and my Linux machine

00:41:37.150 --> 00:41:42.550
was broken. It was in the shop. Um, and it was

00:41:42.550 --> 00:41:44.369
okay. I wouldn't, yeah, I thought it was fine.

00:41:44.510 --> 00:41:46.750
Like I said, the main thing that I was missing

00:41:46.750 --> 00:41:49.869
was just the, the desktop, like pretty much everything

00:41:49.869 --> 00:41:53.449
else, like with homebrew and you can install

00:41:53.449 --> 00:41:55.449
whatever terminal, like terminal emulator you

00:41:55.449 --> 00:41:57.730
want. it's like it's a pretty good experience

00:41:57.730 --> 00:42:03.389
um i just couldn't couldn't get used to the key

00:42:03.389 --> 00:42:07.570
bindings yeah takes time um to set everything

00:42:07.570 --> 00:42:09.989
up that that's the reason why i don't switch

00:42:09.989 --> 00:42:13.030
to linux because i have all my key binds here

00:42:13.030 --> 00:42:16.630
already right so if i want to switch to the terminal

00:42:16.630 --> 00:42:19.090
it's just a single key bind if i want to switch

00:42:19.090 --> 00:42:21.630
to another app if i want to switch the scenes

00:42:21.630 --> 00:42:25.179
in obs man I have it set up to my liking already.

00:42:25.280 --> 00:42:28.079
So switching to Linux would involve, you know,

00:42:28.079 --> 00:42:32.260
setting up different keybinds at the OS level,

00:42:32.400 --> 00:42:35.420
right? NeoVim is fine. I can run NeoVim. It doesn't

00:42:35.420 --> 00:42:39.880
matter where I run it. So, yeah. And do you use,

00:42:39.900 --> 00:42:43.159
well, of course you use a window manager in Linux.

00:42:43.420 --> 00:42:47.559
Which one do you use? Hyperland. Everland you

00:42:47.559 --> 00:42:49.619
mentioned that. Okay. Do you use it in DSP mode

00:42:49.619 --> 00:42:52.059
or I don't know what the other mode is called

00:42:52.059 --> 00:42:57.739
stack. I Don't I think I use the master layout.

00:42:57.920 --> 00:43:00.940
I think that's what it is So it partitions the

00:43:00.940 --> 00:43:03.920
screen like every time you open an app in partitions

00:43:03.920 --> 00:43:09.119
the screen It so here actually a lot I can show

00:43:09.119 --> 00:43:14.260
you. Okay. Yep In master mode, there's a master

00:43:14.260 --> 00:43:17.170
window And for me, I set that to be on the right

00:43:17.170 --> 00:43:20.250
side. And if you open any additional windows,

00:43:20.489 --> 00:43:27.349
they'll open. So it's not binary partitioning.

00:43:27.630 --> 00:43:30.369
I have a main thing that I'm focusing on. This

00:43:30.369 --> 00:43:33.230
is usually like NeoVim. And then I have a couple

00:43:33.230 --> 00:43:35.170
side windows. So this is maybe like if I'm working

00:43:35.170 --> 00:43:39.269
on a web app, I'll put it here. And then I'll

00:43:39.269 --> 00:43:42.550
have like documentation or something here. Interesting.

00:43:43.190 --> 00:43:47.199
Okay. your main screen is going to stay there

00:43:47.199 --> 00:43:50.639
all the time the main application and any others

00:43:50.639 --> 00:43:53.940
that you open are just going to open on the on

00:43:53.940 --> 00:43:59.460
the side then right okay that seems quite useful

00:43:59.460 --> 00:44:02.820
i guess it would be something similar to what

00:44:02.820 --> 00:44:06.059
you see on my screen right now i keep this um

00:44:06.059 --> 00:44:10.380
the main application always on the left hand

00:44:10.380 --> 00:44:13.539
side but i also keep this other thingy where

00:44:13.539 --> 00:44:16.500
i take the notes on the on the right side but

00:44:16.500 --> 00:44:19.139
if i switch to my browser for example terminal

00:44:19.139 --> 00:44:21.920
if i switch to any other application like youtube

00:44:21.920 --> 00:44:25.900
or whatever else yeah it's always there on the

00:44:25.900 --> 00:44:31.119
on the main screen okay interesting and um are

00:44:31.119 --> 00:44:34.480
you a single monitor person or multiple monitors

00:44:34.480 --> 00:44:42.000
um either i'll use multiple monitors though i

00:44:42.000 --> 00:44:46.889
have one Um, but I'm a pretty nomadic worker.

00:44:47.090 --> 00:44:50.730
I can't stay in the same place, um, physically

00:44:50.730 --> 00:44:55.730
for too long without losing focus. Okay. So I

00:44:55.730 --> 00:44:58.530
try to move around every couple hours. Um, and

00:44:58.530 --> 00:45:01.389
just by that nature, I tend to be working from

00:45:01.389 --> 00:45:04.849
a laptop a lot of the time. Okay. Um, but usually

00:45:04.849 --> 00:45:08.769
I try to organize my day so that in the mornings

00:45:08.769 --> 00:45:10.409
that's like deep work mode. That's where I'm

00:45:10.409 --> 00:45:13.800
trying to do. one really difficult task and in

00:45:13.800 --> 00:45:16.880
those cases i'll i'll try to stay like at a proper

00:45:16.880 --> 00:45:21.139
desk with a dedicated monitor and in addition

00:45:21.139 --> 00:45:24.340
to my laptop do you find it a little bit difficult

00:45:24.340 --> 00:45:27.159
when you switch i only work with a single screen

00:45:27.159 --> 00:45:32.219
um because i want the workflow to be exactly

00:45:32.219 --> 00:45:36.559
the same right so if i'm on the if i'm i have

00:45:36.559 --> 00:45:39.480
the laptop and the external monitor but the laptop

00:45:39.480 --> 00:45:43.429
is always closed um and if i grab the laptop

00:45:43.429 --> 00:45:46.750
i'm just on the on the screen laptop the reason

00:45:46.750 --> 00:45:49.710
is because if i'm only working on the laptop

00:45:49.710 --> 00:45:52.610
i want that workflow to be exactly the same i

00:45:52.610 --> 00:45:54.869
don't want to be moving applications around i

00:45:54.869 --> 00:45:56.809
don't want to be no i just want it to be the

00:45:56.809 --> 00:45:58.829
same do you find it difficult when you switch

00:45:58.829 --> 00:46:07.690
from two monitors to one no no i well but i think

00:46:07.690 --> 00:46:10.949
that is just because My workflow is pretty much

00:46:10.949 --> 00:46:13.570
like if I have a second monitor, that monitor,

00:46:13.710 --> 00:46:16.670
the only reason I'm using it is because it's

00:46:16.670 --> 00:46:19.150
like more comfortable because it's like higher

00:46:19.150 --> 00:46:21.269
up and I'm not staring down at a screen. Yeah.

00:46:21.369 --> 00:46:24.210
So I'm still using basically the same workflow

00:46:24.210 --> 00:46:27.590
where I have like my master light, my master

00:46:27.590 --> 00:46:30.789
layout with NeoVemo on one side and the documentation

00:46:30.789 --> 00:46:35.929
and the running app. Okay. Mainly on that monitor

00:46:35.929 --> 00:46:40.809
then. Yeah. Okay. yeah so i i think we're in

00:46:40.809 --> 00:46:42.250
the same we're pretty much in the same boat then

00:46:42.250 --> 00:46:44.690
i'm not really using the my laptop screen yeah

00:46:44.690 --> 00:46:46.409
sometimes i will but it's not really important

00:46:46.409 --> 00:46:50.309
yeah i mean either i just use it when i unplug

00:46:50.309 --> 00:46:52.170
it from the desk and i move it somewhere else

00:46:52.170 --> 00:46:55.949
yep and um you mentioned that you use uh western

00:46:55.949 --> 00:47:02.210
right um why uh i just really like that you can

00:47:02.210 --> 00:47:07.030
configure west term in lua so um a lot of like

00:47:07.030 --> 00:47:12.340
the like if like For example, I use light mode

00:47:12.340 --> 00:47:15.679
during the day and dark mode at night, which

00:47:15.679 --> 00:47:18.179
if you set up in Linux is like a little bit more

00:47:18.179 --> 00:47:21.760
complicated because you need to like, you just

00:47:21.760 --> 00:47:24.619
need to do extra work. Like in NeoVim, I use

00:47:24.619 --> 00:47:27.920
a short Lewis snippet that checks the time and

00:47:27.920 --> 00:47:31.039
sets the color scheme based off of that. Being

00:47:31.039 --> 00:47:34.579
able to use that same code in West term is huge.

00:47:35.440 --> 00:47:41.000
I also. I've been using it less because I've

00:47:41.000 --> 00:47:44.000
been using Tmux more, but I used to use Westerm's

00:47:44.000 --> 00:47:50.440
native terminal multiplexing a lot. So that's

00:47:50.440 --> 00:47:52.119
the main reason. It's also just, I don't know,

00:47:52.139 --> 00:47:56.280
very polished. Fonts work nicely well, or work

00:47:56.280 --> 00:47:58.719
nicely in it. You get ligatures and everything.

00:47:59.000 --> 00:48:01.360
It's just a, I don't know, very polished experience.

00:48:01.500 --> 00:48:05.619
It may not be as fast as, like, Alacrity or however

00:48:05.619 --> 00:48:08.090
you pronounce it. but um there's a setting have

00:48:08.090 --> 00:48:09.829
you checked this let me let me just show you

00:48:09.829 --> 00:48:12.829
in my screen real quick because i did have an

00:48:12.829 --> 00:48:20.670
issue with um with western uh fps this i thought

00:48:20.670 --> 00:48:24.090
western was slow i even made a video about it

00:48:24.090 --> 00:48:28.369
you know because western i switched from um kitty

00:48:28.989 --> 00:48:31.869
To western and I immediately felt it that it

00:48:31.869 --> 00:48:35.110
was slower right until I don't know someone in

00:48:35.110 --> 00:48:37.590
a youtube comment Let me know about this max

00:48:37.590 --> 00:48:41.389
fps 120. My monitor is not 120. My monitor is

00:48:41.389 --> 00:48:44.070
75 hertz. I don't know how this works I don't

00:48:44.070 --> 00:48:46.550
know anything. I know anything about gaming and

00:48:46.550 --> 00:48:49.510
all that resolution and refresh rates or anything

00:48:49.510 --> 00:48:54.269
but this actually did it for me, uh, and it's

00:48:55.340 --> 00:49:00.599
the same performance in Western kitty ghosty

00:49:00.599 --> 00:49:04.320
alacrity. I don't feel a difference, but you

00:49:04.320 --> 00:49:07.340
should wait. Well, I'm going to, I'm going to

00:49:07.340 --> 00:49:13.599
set this right now. Config dot max FPS. That's

00:49:13.599 --> 00:49:23.300
it. Yeah. Yep. I'm in inside config here. Let's

00:49:23.300 --> 00:49:26.699
see. I can share your screen. Want me to share

00:49:26.699 --> 00:49:31.179
it? Sure. Well, I already changed it. I'm I'm

00:49:31.179 --> 00:49:33.559
working ahead. Oh, my gosh. That feels so nice.

00:49:34.079 --> 00:49:40.780
Right. That's crazy. Yeah. I spent working in

00:49:40.780 --> 00:49:45.639
Western like for two months with or maybe a month,

00:49:45.699 --> 00:49:49.579
you know, with that. It felt laggy. And I was

00:49:49.579 --> 00:49:53.960
like, man, Western is perfect except for it's.

00:49:54.170 --> 00:49:56.690
It's laggy. It's slow. But someone told me, no,

00:49:56.789 --> 00:49:59.389
just change the setting and you'll see a big

00:49:59.389 --> 00:50:05.130
difference. And I did. Nice. That's actually

00:50:05.130 --> 00:50:09.389
huge. Thank you. It is. It is. And have you tried

00:50:09.389 --> 00:50:12.869
any other terminals? Have you tried Ghosty, for

00:50:12.869 --> 00:50:16.409
example? Or since Western works so fine, there

00:50:16.409 --> 00:50:22.090
is basically no need. I used Alacrity for a long

00:50:22.090 --> 00:50:27.039
time. And then I switched to Westterm and I just

00:50:27.039 --> 00:50:28.460
haven't had any reason to switch anything else.

00:50:28.559 --> 00:50:33.400
It works. Yeah. Good. Okay. Wonderful. Do you

00:50:33.400 --> 00:50:37.480
like Ghosty? I'm using Ghosty, but for no particular

00:50:37.480 --> 00:50:41.599
reason. Well, I'm using two actually. The one

00:50:41.599 --> 00:50:44.440
on the screen right now is Ghosty, the main one.

00:50:44.559 --> 00:50:47.719
And the one on the right -hand side is Kitty,

00:50:47.900 --> 00:50:52.059
right? And both of them work fine. Don't use

00:50:52.059 --> 00:50:55.139
Western because Western is like my backup terminal

00:50:55.139 --> 00:50:58.360
in case that I don't know I switch away from

00:50:58.360 --> 00:51:02.880
From ghosty. I will definitely go back to Western

00:51:02.880 --> 00:51:06.579
but I don't have a specific preference, you know,

00:51:06.599 --> 00:51:11.599
it's They work all great they allow me to view

00:51:11.599 --> 00:51:15.420
images inside new of him which is a main Which

00:51:15.420 --> 00:51:18.980
is a big point for me. So either of the three

00:51:18.980 --> 00:51:23.110
work fine And the IDE that you use is NeoVim.

00:51:23.269 --> 00:51:26.130
Why is that? You don't look like a NeoVim guy.

00:51:28.530 --> 00:51:33.010
Oh, man. I'm just playing with you. No, well,

00:51:33.329 --> 00:51:40.929
yeah. No, NeoVim is just very good. It's holistic.

00:51:41.909 --> 00:51:44.530
It does everything that I need it to do and nothing

00:51:44.530 --> 00:51:50.659
more unless I want it to do something more. It

00:51:50.659 --> 00:51:55.659
works pretty much anywhere I've tried. I can

00:51:55.659 --> 00:51:58.179
do it over remote connection, which is huge.

00:52:00.780 --> 00:52:08.500
It's the first text editor that I came across

00:52:08.500 --> 00:52:10.559
that allowed me to go completely mouse -less.

00:52:12.860 --> 00:52:17.320
Plus, there's just a lot of the functionality.

00:52:18.670 --> 00:52:21.269
Like Telescope is a really, really, really amazing

00:52:21.269 --> 00:52:25.110
plugin. And you can find similar things in other

00:52:25.110 --> 00:52:29.530
IDEs, but I've personally not really enjoyed

00:52:29.530 --> 00:52:35.210
how they're set up. I use Telescope with FreeCency,

00:52:35.389 --> 00:52:40.190
which is... Oh yeah, wonderful. And there are

00:52:40.190 --> 00:52:43.409
other IDEs... That's not a word. Someone in the

00:52:43.409 --> 00:52:45.369
comments told me it's not a word, but I also

00:52:45.369 --> 00:52:49.510
call it FreeCency. Yeah. Oh, yeah. It's a word.

00:52:51.289 --> 00:52:57.869
It's a word. Yeah. I appreciate the level of

00:52:57.869 --> 00:53:03.809
control it gives me overall. Plus, it also brings

00:53:03.809 --> 00:53:09.409
me pretty close to... I don't know. I just learned

00:53:09.409 --> 00:53:14.630
a lot about how text editors work from setting

00:53:14.630 --> 00:53:21.900
up Neova. Like you can you can use like even

00:53:21.900 --> 00:53:25.219
from a document editing standpoint, just like

00:53:25.219 --> 00:53:28.460
in a general sense, like you can use Word or

00:53:28.460 --> 00:53:32.619
Gutenberg or Google Docs and you're not going

00:53:32.619 --> 00:53:34.619
to understand how any of the low level things

00:53:34.619 --> 00:53:38.960
work, which is fine for most people. But as programmers,

00:53:39.199 --> 00:53:43.039
we're spending like. A significant portion of

00:53:43.039 --> 00:53:45.920
our waking lives working inside these things,

00:53:46.019 --> 00:53:48.349
and so it's it's. very much to our advantage

00:53:48.349 --> 00:53:51.570
to understand how these how they work um because

00:53:51.570 --> 00:53:55.409
what you learn inside of neovim also applies

00:53:55.409 --> 00:53:58.570
to like any other text editing experience you

00:53:58.570 --> 00:54:03.150
can you can work with right yeah and you learn

00:54:03.150 --> 00:54:06.590
a lot for sure you'll learn a lot by playing

00:54:06.590 --> 00:54:09.050
around with uh with neovim how long have you

00:54:09.050 --> 00:54:19.699
been using neovim um i've been using neovim three

00:54:19.699 --> 00:54:21.980
or four years now three or four years that's

00:54:21.980 --> 00:54:25.039
a lot i've been using it for a year only okay

00:54:25.039 --> 00:54:28.320
and how has it been because like learning it

00:54:28.320 --> 00:54:31.260
when i learned it is dramatically different from

00:54:31.260 --> 00:54:33.619
if you were to try and learn it now it's like

00:54:33.619 --> 00:54:36.920
now you have all these distros and and out of

00:54:36.920 --> 00:54:41.380
the box setup experiences yeah the distros man

00:54:41.380 --> 00:54:45.340
it's 50 50 um or you love them or you hate them

00:54:45.340 --> 00:54:50.730
right but um It was tough, really tough coming

00:54:50.730 --> 00:54:55.389
from VS Code into NeoVim. I have always used

00:54:55.389 --> 00:54:58.369
BIM, you know, but in servers, right? Just to

00:54:58.369 --> 00:55:01.909
edit config files, stuff like that. But it was

00:55:01.909 --> 00:55:04.710
tough because you have too many options, too

00:55:04.710 --> 00:55:07.010
many choices, too many plugins, too many settings.

00:55:07.269 --> 00:55:11.849
So it's hard to get there. But once you get there,

00:55:11.949 --> 00:55:14.309
man, you cannot go to something else because

00:55:14.309 --> 00:55:17.039
it's... very flexible, right? I started with

00:55:17.039 --> 00:55:20.059
the distribution, with the LazyVim distro, and

00:55:20.059 --> 00:55:23.659
I have configured my stuff on top of it, right?

00:55:23.739 --> 00:55:29.639
So it was really challenging to understand the

00:55:29.639 --> 00:55:32.239
LazyVim distribution and configure it to my liking

00:55:32.239 --> 00:55:35.980
because it's a little bit complex. But I got

00:55:35.980 --> 00:55:38.519
to that point already, which I know how to do

00:55:38.519 --> 00:55:41.099
stuff, but it was not easy at the beginning,

00:55:41.260 --> 00:55:43.739
right? Yeah. And what about you? How was it on

00:55:43.739 --> 00:55:47.670
your end? Uh, learning it took a lot of time.

00:55:48.869 --> 00:55:52.809
Um, I built it. I, I don't think, I don't remember

00:55:52.809 --> 00:55:56.150
there being any distros when I was, when I first

00:55:56.150 --> 00:56:00.809
picked up NeoVim. So I, I configured it from

00:56:00.809 --> 00:56:03.809
scratch as in I copy and pasted the setup instructions

00:56:03.809 --> 00:56:15.380
for each plugin. Um, and I, I was astounded by

00:56:15.380 --> 00:56:19.820
the, it seems to be like an unspoken rule in

00:56:19.820 --> 00:56:25.579
NeoVim, like in the NeoVim ecosystem. And it's

00:56:25.579 --> 00:56:27.639
an unspoken rule that you don't see in other

00:56:27.639 --> 00:56:33.440
editors, especially like JetBrains or VS Code.

00:56:33.800 --> 00:56:37.760
And it's about what the role of a text editor

00:56:37.760 --> 00:56:43.670
is. It seems like a lot of like... like plugin

00:56:43.670 --> 00:56:47.929
developers for vs code are under the belief that

00:56:47.929 --> 00:56:51.869
you should be focused on the editor as much as

00:56:51.869 --> 00:56:56.610
possible right so uh you're interacting with

00:56:56.610 --> 00:57:00.989
like github copilot you should be thinking about

00:57:00.989 --> 00:57:06.530
copilot often um thinking about how you can use

00:57:06.530 --> 00:57:10.909
it When you first look at the NeoVim ecosystem,

00:57:11.230 --> 00:57:14.590
you get the sense that people are spending a

00:57:14.590 --> 00:57:17.210
lot of time configuring their editors, which

00:57:17.210 --> 00:57:20.550
is true, which is true. But that's not the goal.

00:57:20.650 --> 00:57:24.010
The goal is not to configure the editor. Sometimes

00:57:24.010 --> 00:57:25.949
it is to make it look pretty. And I went through

00:57:25.949 --> 00:57:31.750
that phase. The goal is for the editor to be

00:57:31.750 --> 00:57:36.210
out of the way. I personally, and it seems like

00:57:36.210 --> 00:57:40.199
a lot of people agree with me. believe that I

00:57:40.199 --> 00:57:42.539
should be able to press a button and it will

00:57:42.539 --> 00:57:45.659
just do what I want it to do. Right? There's

00:57:45.659 --> 00:57:49.840
no hunting and poking. There's no whatever. Searching

00:57:49.840 --> 00:57:58.639
in the menu. Right. It seems like customizability

00:57:58.639 --> 00:58:00.760
is very important, but it's not customizability

00:58:00.760 --> 00:58:03.500
for customizability's sake. It's customizability

00:58:03.500 --> 00:58:10.420
with the goal of eventually disappearing. um

00:58:10.420 --> 00:58:15.519
yeah yeah like you like sorry go ahead you get

00:58:15.519 --> 00:58:18.920
all that power right because for example i wanted

00:58:18.920 --> 00:58:21.539
to let's say that i'm going to file any of them

00:58:21.539 --> 00:58:24.920
and i want to open the github repo i want to

00:58:24.920 --> 00:58:27.659
open github in that file in my browser i created

00:58:27.659 --> 00:58:31.099
a key map that does that right so i just execute

00:58:31.099 --> 00:58:34.880
the key map takes me right there right yeah so

00:58:34.880 --> 00:58:38.550
gives you a lot of power in that Right. Like

00:58:38.550 --> 00:58:42.429
I like I I've spent a significant portion of

00:58:42.429 --> 00:58:47.989
my life in VS Code and IntelliJ. And with both

00:58:47.989 --> 00:58:52.010
of those, there's a lot of like like you can

00:58:52.010 --> 00:58:55.929
customize it. Yes. But that is not like when

00:58:55.929 --> 00:58:59.230
you when you go to the VS Code or the IntelliJ

00:58:59.230 --> 00:59:02.090
documentation, their first suggestion is not

00:59:02.090 --> 00:59:05.030
to customize it so that you get it out so that

00:59:05.030 --> 00:59:07.860
you don't have to solve this problem again. I

00:59:07.860 --> 00:59:10.119
found myself having to bookmark documentation

00:59:10.119 --> 00:59:14.139
pages for IntelliJ because they either change

00:59:14.139 --> 00:59:20.219
the behavior every so often, or it's just so

00:59:20.219 --> 00:59:23.780
unintuitive and such a hidden menu that you have

00:59:23.780 --> 00:59:27.900
to click on that you have to keep a reference.

00:59:28.599 --> 00:59:30.000
There's no way you can keep all that in your

00:59:30.000 --> 00:59:32.440
head. Where NeoVim's like, we're going to spend

00:59:32.440 --> 00:59:34.380
a little bit more time up front getting this

00:59:34.380 --> 00:59:37.699
working. But once it's working, it's just a key

00:59:37.699 --> 00:59:39.619
map and you won't even have to think about it.

00:59:39.679 --> 00:59:42.760
Yeah. Bam. How long did it take you to get it

00:59:42.760 --> 00:59:46.699
to where to a point in which you said, OK, it's

00:59:46.699 --> 00:59:49.619
just minor tweaks from now on. Like how many

00:59:49.619 --> 00:59:52.219
years did it take you or how many months you

00:59:52.219 --> 00:59:57.699
remember? And did you stop configuring it already?

00:59:57.900 --> 01:00:01.380
Because there's new optimizations all the time,

01:00:01.400 --> 01:00:04.039
right? I'm just working on something. I say,

01:00:04.139 --> 01:00:07.360
oh. I like the way that Emacs creates headings.

01:00:07.380 --> 01:00:10.139
I do a lot of markdown, right? And I installed

01:00:10.139 --> 01:00:13.500
Emacs a few days ago. And I like the way that

01:00:13.500 --> 01:00:16.699
it creates headings in markdown files by just

01:00:16.699 --> 01:00:19.980
pressing control enter in Emacs. That's not something

01:00:19.980 --> 01:00:22.260
that I could do in any of them. I was like, hmm,

01:00:22.460 --> 01:00:25.460
that is actually quite useful. I want to have

01:00:25.460 --> 01:00:27.440
a heading of the same level below the heading

01:00:27.440 --> 01:00:30.820
I'm at by pressing control enter. I did it. Took

01:00:30.820 --> 01:00:34.610
me, I don't know, like two, three. Or hours,

01:00:34.630 --> 01:00:36.909
maybe, to get there, because I had to play with

01:00:36.909 --> 01:00:40.210
the terminal, with Tmux, and with NeoVim, the

01:00:40.210 --> 01:00:43.550
three of them, right? I had to modify them. But

01:00:43.550 --> 01:00:46.769
now that I have that, you know, I just have it,

01:00:46.789 --> 01:00:49.889
and it's wonderful. It saves me seconds every

01:00:49.889 --> 01:00:53.389
time. So how long did it take you to get to your

01:00:53.389 --> 01:00:57.130
config? Or is it still going? Well, one would

01:00:57.130 --> 01:01:00.429
argue that I'm still working on my NeoVim configuration

01:01:00.429 --> 01:01:07.949
several hours a day through Harper. Okay. Argo

01:01:07.949 --> 01:01:10.650
is so much more than just a NeoVim language server

01:01:10.650 --> 01:01:13.650
now, but every improvement to the algorithm does

01:01:13.650 --> 01:01:23.710
affect my NeoVim experience. I would say probably...

01:01:23.710 --> 01:01:34.739
Hmm. This is really... It probably took me about

01:01:34.739 --> 01:01:42.460
a month of like an hour here or there, like maybe,

01:01:42.500 --> 01:01:46.219
maybe an hour or two on the weekends each week,

01:01:46.320 --> 01:01:49.679
maybe a month or two of that before I felt really

01:01:49.679 --> 01:01:53.059
comfortable and productive. And that's also with

01:01:53.059 --> 01:01:56.800
me, like just spending a lot of time practicing

01:01:56.800 --> 01:02:04.989
the VIN motions, I guess. Yeah. Since then, I

01:02:04.989 --> 01:02:07.730
really don't have to touch it. It just kind of

01:02:07.730 --> 01:02:17.909
works. I don't know. Part of it is with NeoVim,

01:02:17.989 --> 01:02:20.849
you can spend a lot of time configuring it, but

01:02:20.849 --> 01:02:25.750
in the end, it gives you extra energy, I guess.

01:02:26.190 --> 01:02:29.530
When I was using VS Code, or even more recently

01:02:29.530 --> 01:02:33.070
with IntelliJ, I could only really focus and

01:02:33.070 --> 01:02:37.590
work for an hour at a time just because of the,

01:02:37.630 --> 01:02:40.150
all the overhead and the mental exhaustion that

01:02:40.150 --> 01:02:42.269
comes from having to wait for your editor to

01:02:42.269 --> 01:02:46.449
do a thing or waiting for, or like having to

01:02:46.449 --> 01:02:50.210
figure out something. Yeah. That also comes with

01:02:50.210 --> 01:02:52.809
just having a very large Java code base, but

01:02:52.809 --> 01:02:59.650
I find that like having a good Neovin config,

01:03:00.599 --> 01:03:02.539
and making changes to it just gives me a lot

01:03:02.539 --> 01:03:06.920
more energy and allows me to deeply focus for

01:03:06.920 --> 01:03:12.920
significantly longer. So I would say it's a multiplicative

01:03:12.920 --> 01:03:17.199
effect, maybe. Okay. And you mentioned that you

01:03:17.199 --> 01:03:19.000
have your own config. What are your thoughts

01:03:19.000 --> 01:03:25.099
on distros? Any quick thoughts there? I think

01:03:25.099 --> 01:03:28.019
distros are fine. I don't really have an opinion.

01:03:28.079 --> 01:03:33.150
I have a friend. um who uses lazy them and he

01:03:33.150 --> 01:03:37.210
thinks it's okay but he finds he has a hard time

01:03:37.210 --> 01:03:43.230
like changing something yeah uh like he wants

01:03:43.230 --> 01:03:47.690
to customize whatever he just can't because there

01:03:47.690 --> 01:03:51.690
isn't a space for it or it's not like super clear

01:03:51.690 --> 01:03:55.210
yeah um and if you if you write your config yourself

01:03:55.210 --> 01:03:59.139
then it's like You're an expert on it already.

01:03:59.260 --> 01:04:00.780
You don't need to find a spy. You don't have

01:04:00.780 --> 01:04:03.300
to read documentation. You just know. Yeah. Well,

01:04:03.400 --> 01:04:07.579
it is customizable because I use LazyVim as well.

01:04:08.340 --> 01:04:10.179
There are some things that you have to keep in

01:04:10.179 --> 01:04:12.539
mind, like merging rules, for example, right?

01:04:12.599 --> 01:04:17.400
Because LazyVim provides you with the default

01:04:17.400 --> 01:04:20.280
configuration for each one of the plugins, right?

01:04:20.340 --> 01:04:23.099
So if you go to the page, you're going to...

01:04:23.099 --> 01:04:26.340
Let me show you. Okay. That's going to make...

01:04:26.590 --> 01:04:31.070
more sense but i do get it it is really complicated

01:04:31.070 --> 01:04:35.110
to um to get started let me just switch this

01:04:35.110 --> 01:04:41.130
and for example uh merging rules right so if

01:04:41.130 --> 01:04:43.710
you're going to configure a plugin you have to

01:04:43.710 --> 01:04:45.869
keep this in mind right because you're going

01:04:45.869 --> 01:04:49.650
to add your rules on top of the config that is

01:04:49.650 --> 01:04:53.949
already provided to you by the by the distribution

01:04:53.949 --> 01:04:57.880
right so You can configure anything that you

01:04:57.880 --> 01:05:02.159
want in LazyVim, actually. But it does take time,

01:05:02.360 --> 01:05:06.780
and it's not as straightforward as if you do

01:05:06.780 --> 01:05:12.880
it with your own distro. Yeah, I agree. The other

01:05:12.880 --> 01:05:16.360
thing is, there are plugins like Witchkey to

01:05:16.360 --> 01:05:23.670
help you learn the keys. But I found like when

01:05:23.670 --> 01:05:25.710
I set up the telescope plugin, I made a decision.

01:05:25.889 --> 01:05:30.710
What's the hockey for this? And that was so much

01:05:30.710 --> 01:05:33.190
easier to remember then, which I guess you can

01:05:33.190 --> 01:05:34.809
solve if you just like when you first set up

01:05:34.809 --> 01:05:36.929
the lazy event, you go through each plugin and

01:05:36.929 --> 01:05:39.230
you make a decision on the hockey then there

01:05:39.230 --> 01:05:41.710
rather than just like trying to figure out what

01:05:41.710 --> 01:05:43.889
the defaults are. I guess that would also work.

01:05:44.809 --> 01:05:47.469
Yeah. Something that I have done a lot in the

01:05:47.469 --> 01:05:51.199
past regarding that is. i've switched to this

01:05:51.199 --> 01:05:55.039
i have a key map alt k and if i don't remember

01:05:55.039 --> 01:05:57.980
something github i just come and search it right

01:05:57.980 --> 01:06:03.099
so uh leader colon does this you know paste the

01:06:03.099 --> 01:06:07.420
github link or i don't know create a github repo

01:06:07.420 --> 01:06:12.019
with space gc because i don't remember the key

01:06:12.019 --> 01:06:14.059
maps all the time so i just instead of using

01:06:14.059 --> 01:06:16.219
which key i just come here search for something

01:06:16.219 --> 01:06:21.400
and um Uh, to me, I think, uh, it's just easier

01:06:21.400 --> 01:06:23.599
because I already, I already know all the key

01:06:23.599 --> 01:06:27.440
maps that I, that I use. Just forget some of

01:06:27.440 --> 01:06:30.400
them at times. So I tend to use this. It's a

01:06:30.400 --> 01:06:33.460
lot. Yeah. Which exploder do you use in new file

01:06:33.460 --> 01:06:40.599
exploder? Um, that's a great question. I think

01:06:40.599 --> 01:06:45.360
it's Neo tree. Neo tree. I'm opening up my config.

01:06:45.519 --> 01:06:52.519
Yeah, go ahead. No, it's nvimtree. nvimtree,

01:06:52.679 --> 01:06:55.860
okay. I guess you started with it and you just

01:06:55.860 --> 01:06:59.039
left it, right? That's what you got started with?

01:06:59.860 --> 01:07:04.460
I think, well, my original NeoVim config was

01:07:04.460 --> 01:07:13.860
a vimrc. Now it's a Lua init file. So my original

01:07:13.860 --> 01:07:17.530
vimconfig had Nerd tree, I think something like

01:07:17.530 --> 01:07:21.090
that But when I switched it all till late to

01:07:21.090 --> 01:07:24.670
Lua for like performance reasons I Switched it

01:07:24.670 --> 01:07:26.730
to just because it looked like the first thing

01:07:26.730 --> 01:07:28.469
that looked good ultimately It doesn't really

01:07:28.469 --> 01:07:30.650
matter to me that much because I can configure

01:07:30.650 --> 01:07:33.230
it with the key bindings that I'm used to So

01:07:33.230 --> 01:07:36.090
I just went in and did that when I moved over

01:07:36.090 --> 01:07:42.090
Okay. Yeah most of these I don't have like a

01:07:42.090 --> 01:07:48.030
lot of opinions on other than like maybe Harper

01:07:48.030 --> 01:07:53.030
language server. Yes. You should use Harper for

01:07:53.030 --> 01:07:56.329
everything. Just install it. It's no biggie.

01:07:56.769 --> 01:08:00.070
Okay. Now in this part here, do you have three

01:08:00.070 --> 01:08:04.250
favorite in the open plugins? Telescope. Telescope.

01:08:04.329 --> 01:08:06.829
Okay. I'm not going to include Harper. Cause

01:08:06.829 --> 01:08:09.250
that's not, yeah, that doesn't count. That doesn't

01:08:09.250 --> 01:08:17.399
count. Yeah, Telescope. Does TreeSitter count

01:08:17.399 --> 01:08:20.119
as a plugin? No, that's native, right? Yeah,

01:08:20.140 --> 01:08:24.159
but you could call it as one, I guess. No, no,

01:08:24.199 --> 01:08:25.739
no, I'm not going to include that. Telescope,

01:08:25.819 --> 01:08:29.880
leap .envim. Leap, okay, to jump, okay. Yep,

01:08:29.979 --> 01:08:37.140
yep, yep, yep. And then, what else? Those are

01:08:37.140 --> 01:08:40.189
really, oh, I like Smear Cursor. You've seen

01:08:40.189 --> 01:08:42.930
that you've seen all the animation that is like

01:08:42.930 --> 01:08:46.909
is that is that a plugin? Yeah, it's a plugin.

01:08:47.010 --> 01:08:49.970
I'm not using like Neobite or anything. This

01:08:49.970 --> 01:08:53.989
is just like it animates a smear using. Oh, I

01:08:53.989 --> 01:08:57.670
didn't know about that one. Because it's in Kitty.

01:08:58.310 --> 01:09:01.069
Kitty implemented that Neobite. They are the

01:09:01.069 --> 01:09:02.930
ones that started with that with that cursor

01:09:02.930 --> 01:09:05.310
animation. And I was like, how are you doing

01:09:05.310 --> 01:09:08.029
this in Western? So it's it's not Western. It's

01:09:08.029 --> 01:09:10.510
this plugin then. Yeah, I know it's this plugin.

01:09:10.609 --> 01:09:12.989
It works. You can use it anywhere. Even if you're,

01:09:12.989 --> 01:09:16.430
if NeoVim is running like on a server, like a

01:09:16.430 --> 01:09:20.109
remote machine, it'll still work. I do that sometimes.

01:09:22.649 --> 01:09:24.489
It won't look as good because there's delay,

01:09:24.710 --> 01:09:29.869
but, but yeah, no, I, I, it adds nothing to my

01:09:29.869 --> 01:09:31.770
productivity, literally nothing. It just looks

01:09:31.770 --> 01:09:34.970
cool. I was just shocked that it worked out of

01:09:34.970 --> 01:09:37.210
the box. Like I just pasted in whatever their

01:09:37.210 --> 01:09:39.479
thing is and it just worked. I was not expecting

01:09:39.479 --> 01:09:43.899
it to work as well as it does. I thought it was

01:09:43.899 --> 01:09:46.079
running on the terminal. I thought it was a Western

01:09:46.079 --> 01:09:49.119
thing because it does look quite nice. And it

01:09:49.119 --> 01:09:54.779
looks, you know, native. It's snappy. So I didn't

01:09:54.779 --> 01:09:57.159
expect that at all. What color scheme do you

01:09:57.159 --> 01:10:03.279
use? Oh, this is... Why light mode? People in

01:10:03.279 --> 01:10:08.239
the... The comments are going to be like, why

01:10:08.239 --> 01:10:11.260
light mode? Well, your eyes are pretty young

01:10:11.260 --> 01:10:15.399
yet, so I guess they don't hurt too much. I did

01:10:15.399 --> 01:10:17.819
use light mode for a long time, to be honest

01:10:17.819 --> 01:10:20.859
with you. I did love light mode and everyone

01:10:20.859 --> 01:10:24.619
was like, why do you use light mode? But all

01:10:24.619 --> 01:10:28.659
of them were old folks, just old people. Interesting.

01:10:29.560 --> 01:10:34.859
Maybe. Yeah. My reasoning. is well like i said

01:10:34.859 --> 01:10:37.479
i like to move around a lot and i really really

01:10:37.479 --> 01:10:43.020
really appreciate natural light um especially

01:10:43.020 --> 01:10:48.220
like in the winter so i live in colorado um in

01:10:48.220 --> 01:10:51.260
the winter the days get pretty short and that

01:10:51.260 --> 01:10:54.840
can like um it can affect you like it's just

01:10:54.840 --> 01:10:57.979
it's just kind of dreary you know so i try to

01:10:57.979 --> 01:11:02.479
get as much natural light as i can um and It's

01:11:02.479 --> 01:11:05.000
very hard for me to see, even with my monitor

01:11:05.000 --> 01:11:06.840
on full brightness. If I'm sitting in direct

01:11:06.840 --> 01:11:09.279
sunlight, I just can't see anything in dark mode.

01:11:11.420 --> 01:11:15.760
Plus, I actually talked to my optometrist about

01:11:15.760 --> 01:11:19.840
this. There is a lot of strain that can come

01:11:19.840 --> 01:11:22.939
from, like if you're looking at a dark screen

01:11:22.939 --> 01:11:27.000
or a light screen, and it is substantially different

01:11:27.000 --> 01:11:29.720
in brightness from the surrounding environment.

01:11:30.319 --> 01:11:33.319
If you switch back and forth from surrounding

01:11:33.319 --> 01:11:36.539
environment to a dark screen, if the surrounding

01:11:36.539 --> 01:11:38.739
environment is bright, that can cause a lot of

01:11:38.739 --> 01:11:41.079
strain in your eyes, which can make it hurt.

01:11:42.020 --> 01:11:44.260
But it also, like, I don't want to have to get

01:11:44.260 --> 01:11:51.939
new glasses too often, you know? So it's just

01:11:51.939 --> 01:11:53.840
better for your eyes. Or for my eyes, at least.

01:11:53.859 --> 01:11:55.760
I've noticed a difference. I think your mileage

01:11:55.760 --> 01:11:58.590
may vary. That's the main reason. So at night,

01:11:58.689 --> 01:12:00.829
I have it set up so it'll automatically switch

01:12:00.829 --> 01:12:04.229
to dark mode when the sun goes down. Okay, interesting.

01:12:04.689 --> 01:12:06.689
Wonderful. And what color scheme is that? Do

01:12:06.689 --> 01:12:09.210
you have a special color scheme or something?

01:12:11.590 --> 01:12:16.670
This is called Modus Vivendi is the dark mode,

01:12:16.770 --> 01:12:19.970
and Modus Operandi is the light mode. Okay, it's

01:12:19.970 --> 01:12:21.810
a little bit small, so if you could make it a

01:12:21.810 --> 01:12:24.210
little bit bigger. Yeah, sorry about that. Okay.

01:12:26.720 --> 01:12:33.060
Got it. Yeah. I used to use Dayfox and Nightfox,

01:12:33.359 --> 01:12:39.460
but this has a higher contrast, and I like that

01:12:39.460 --> 01:12:42.020
better. It's just easier to read for me. Okay.

01:12:42.079 --> 01:12:45.720
Okay. Great. Now, moving on to something else.

01:12:45.779 --> 01:12:49.760
What tool do you use to push to versioning control,

01:12:50.000 --> 01:12:53.520
like to GitHub or whatever? Do you use just commands

01:12:53.520 --> 01:13:00.010
or... Oh, LazyKit. Yep. If we hop over, yeah,

01:13:00.029 --> 01:13:04.090
this is Harper. Yeah, I use LazyKit. It's just

01:13:04.090 --> 01:13:07.210
very useful. It saves me a lot of typing. I know

01:13:07.210 --> 01:13:10.010
I could probably set up shortcuts in the terminal,

01:13:10.170 --> 01:13:16.149
but I'm very frequently switching between branches,

01:13:16.229 --> 01:13:19.869
doing merging, that kind of thing. The only other,

01:13:19.890 --> 01:13:23.789
other than LazyKit, I do use the GitHub command.

01:13:24.699 --> 01:13:27.079
Um, cause it saves me the hassle of trying to

01:13:27.079 --> 01:13:29.380
set up origins for like pull requests and stuff.

01:13:30.420 --> 01:13:34.039
Um, so I can, I can review a pull request and

01:13:34.039 --> 01:13:36.640
then pull it down, run it, make sure everything

01:13:36.640 --> 01:13:39.760
works, um, before merging. And it's just pretty,

01:13:39.800 --> 01:13:42.319
pretty straightforward. Okay. Type in the PR

01:13:42.319 --> 01:13:47.739
number. Okay. The GitHub CLI, right? Yeah. Okay.

01:13:48.840 --> 01:13:51.039
Okay. Interesting. But Lacey get is like the

01:13:51.039 --> 01:13:55.550
main one. Okay. And, um, Let's see. Oh, you mentioned

01:13:55.550 --> 01:14:01.630
tmux as well, right? So What what how do you

01:14:01.630 --> 01:14:06.069
use tmux like They use it for the sessions they

01:14:06.069 --> 01:14:10.850
use it for the splits or What's your use case

01:14:10.850 --> 01:14:13.810
for a team us Pretty much pretty much just for

01:14:13.810 --> 01:14:16.689
splits. Like I said, I used to use West term

01:14:16.689 --> 01:14:22.869
for terminal deflexing But I've been recently

01:14:23.579 --> 01:14:26.840
spending more time on remote machines. And so

01:14:26.840 --> 01:14:30.500
being able to use the same config for my local

01:14:30.500 --> 01:14:33.159
machine terminal multiplexing and remote machine

01:14:33.159 --> 01:14:35.960
terminal multiplexing is just, it makes everything

01:14:35.960 --> 01:14:39.760
so much easier. So sessions are nice, I guess.

01:14:40.199 --> 01:14:44.920
Like I can reset my machine or like log out,

01:14:44.960 --> 01:14:46.199
log back in, that kind of thing. It'll still

01:14:46.199 --> 01:14:50.899
be there. But it's mostly just the multiplexing.

01:14:51.340 --> 01:14:56.600
Okay, wonderful. okay all right and uh let's

01:14:56.600 --> 01:14:59.720
see tmux do you have a special keyboard do you

01:14:59.720 --> 01:15:02.119
use a special keyboard or just the laptop keyboard

01:15:02.119 --> 01:15:05.720
just the laptop keyboard nothing fancy there

01:15:05.720 --> 01:15:13.720
it's yeah i i i run a a dell machine and they

01:15:13.720 --> 01:15:16.680
just have really fantastic keyboards like i've

01:15:16.680 --> 01:15:18.579
had trouble like i have a mechanical keyboard

01:15:18.579 --> 01:15:21.140
too i have trouble getting up to the same typing

01:15:21.140 --> 01:15:25.680
speed on my mechanical keyboard as on the laptop.

01:15:26.119 --> 01:15:30.539
And like I said, I move around a lot. Having

01:15:30.539 --> 01:15:32.079
to carry around an extra keyboard is just kind

01:15:32.079 --> 01:15:35.340
of a hassle. Yeah, that happened to me with my

01:15:35.340 --> 01:15:38.060
Magic Keyboard, the one that I used before, the

01:15:38.060 --> 01:15:40.779
Apple Magic Keyboard. I love that keyboard. I

01:15:40.779 --> 01:15:43.960
used to type really fast. I'm not as fast on

01:15:43.960 --> 01:15:46.460
my mechanical keyboard. I'm still faster on the

01:15:46.460 --> 01:15:54.729
other one. But yeah, okay. Do you use AI? I...

01:15:54.729 --> 01:16:00.989
Sometimes. Yeah? Sometimes. Mostly just like

01:16:00.989 --> 01:16:05.229
ChatGPT. Okay. Can I show you the screen or no?

01:16:05.789 --> 01:16:07.789
I mean, I don't really have anything to show.

01:16:07.949 --> 01:16:10.989
Nothing? Okay. Just copy -paste ChatGPT, the

01:16:10.989 --> 01:16:15.949
app itself. Yeah. I think Simon Willison's point

01:16:15.949 --> 01:16:23.829
on this is actually really... He's of the belief

01:16:23.829 --> 01:16:26.369
that chat is currently still the best way to

01:16:26.369 --> 01:16:30.489
use LLMs for coding or whatever, just because

01:16:30.489 --> 01:16:33.770
of the level of control you have over context.

01:16:33.989 --> 01:16:35.789
So you can give them exactly the information

01:16:35.789 --> 01:16:39.989
you think they'll need. Where if you're trying

01:16:39.989 --> 01:16:44.489
to use RAG or... I haven't actually tried Cursor

01:16:44.489 --> 01:16:49.500
for any real programming yet. But you have a

01:16:49.500 --> 01:16:52.520
lot less control over context. And I've just

01:16:52.520 --> 01:16:55.260
found that I get much better results when I'm

01:16:55.260 --> 01:16:57.600
able to give it exactly the context I think it

01:16:57.600 --> 01:16:59.420
needs rather than trying to let it figure it

01:16:59.420 --> 01:17:03.819
out itself. Yeah, makes sense. Yeah, I also provide

01:17:03.819 --> 01:17:07.479
it with documentation. I just print PDFs and

01:17:07.479 --> 01:17:11.140
add the PDF and I just let it read the PDF and

01:17:11.140 --> 01:17:13.399
get the information from there. Don't just...

01:17:13.399 --> 01:17:17.750
Okay. And besides Harper... Are you working on

01:17:17.750 --> 01:17:19.670
any other projects? I don't think you have the

01:17:19.670 --> 01:17:26.029
time, but... Yeah, I mean, obviously, Harper

01:17:26.029 --> 01:17:30.850
isn't the only thing I work on. I do work on

01:17:30.850 --> 01:17:39.050
other things for Automatic. But in terms of CLI

01:17:39.050 --> 01:17:42.369
apps or anything open source, I do have a couple

01:17:42.369 --> 01:17:45.789
tiny little projects. I don't think anyone uses

01:17:45.789 --> 01:17:50.319
them, though. I have, like, I call it the olama

01:17:50.319 --> 01:17:52.119
function caller. It's just a little command line

01:17:52.119 --> 01:17:58.800
app for using olama in, like, bash scripts, that

01:17:58.800 --> 01:18:04.420
kind of thing. I also, when I take notes or write

01:18:04.420 --> 01:18:14.140
stuff in, like, NeoVim, I use my project Tatum.

01:18:15.180 --> 01:18:19.960
which just like runs a Tiny web server on your

01:18:19.960 --> 01:18:27.979
machine so like here do sure yeah So I can just

01:18:27.979 --> 01:18:30.699
hit a key and it'll run up a web server with

01:18:30.699 --> 01:18:33.720
the current content of my buffer Okay, and it's

01:18:33.720 --> 01:18:36.060
very simple like it's two lines of the oven config

01:18:36.060 --> 01:18:38.060
to get this working It's just a little tiny rust

01:18:38.060 --> 01:18:40.659
binary that you can install with one line Oh,

01:18:40.699 --> 01:18:43.399
okay. There's something similar already for,

01:18:43.520 --> 01:18:45.899
well, there's a plugin. I think it is plugin

01:18:45.899 --> 01:18:48.640
Markdown preview that NBIM. I don't know if you've

01:18:48.640 --> 01:18:53.020
seen it or not, but I tried it. I tried it. The

01:18:53.020 --> 01:18:57.500
disadvantage with that is because Markdown, wait,

01:18:57.560 --> 01:18:59.319
does Markdown preview actually run a web server?

01:18:59.760 --> 01:19:06.380
Yep. Okay. I don't know. I, I, I had some very

01:19:06.380 --> 01:19:11.869
specific needs because I want. specific, like,

01:19:11.930 --> 01:19:14.770
JavaScript libraries available in my Markdown

01:19:14.770 --> 01:19:21.130
documents. Like, I want to be able to... Can

01:19:21.130 --> 01:19:23.369
you make it a little bit bigger? Yeah, sorry.

01:19:25.630 --> 01:19:31.310
Like, specific styles or, like, math rendering,

01:19:31.430 --> 01:19:34.279
that kind of thing. I want to have jQuery available.

01:19:34.659 --> 01:19:37.319
So if I do an inline script in my Markdown file,

01:19:37.520 --> 01:19:43.619
I can still use these specific utilities. I don't

01:19:43.619 --> 01:19:46.340
know if Markdown preview lets you do that. It

01:19:46.340 --> 01:19:50.939
probably does. But this is just, again, I appreciate

01:19:50.939 --> 01:19:54.340
a high level of control. And I don't have to

01:19:54.340 --> 01:19:56.380
dig through documentation to figure out how to

01:19:56.380 --> 01:19:59.739
customize the template that's used for this.

01:20:01.710 --> 01:20:07.609
It's just like right here. It's very simple.

01:20:09.170 --> 01:20:13.810
It just works. Okay. Okay. Wonderful. Okay. Do

01:20:13.810 --> 01:20:20.470
you have any favorite CLI tools, like terminal

01:20:20.470 --> 01:20:23.449
tools? It doesn't matter if it's a 2E, CLI tool,

01:20:23.590 --> 01:20:27.390
whatever. Anything you want to share there? LazyGit

01:20:27.390 --> 01:20:32.359
is very good. I like ripgrep. I use that a lot

01:20:32.359 --> 01:20:39.939
in jq. I try not to stray towards anything hyper

01:20:39.939 --> 01:20:46.359
specific or obscure for command line tools because

01:20:46.359 --> 01:20:51.760
I want to be able to toss them into like a reusable

01:20:51.760 --> 01:20:57.380
bash script and I can't reasonably expect like

01:20:57.380 --> 01:21:04.359
people to have some random tool, right? The only

01:21:04.359 --> 01:21:12.739
two eyes I use are lazy get and any of it. Okay.

01:21:13.239 --> 01:21:16.739
Yeah. Okay. Any favorite applications that you

01:21:16.739 --> 01:21:25.539
want to share? Like desktop applications? Obsidian

01:21:25.539 --> 01:21:28.949
is very good. Just generally. Obsidian is a very

01:21:28.949 --> 01:21:35.329
well -polished experience. I try to limit myself

01:21:35.329 --> 01:21:39.369
to things that I can extend. So that means browser

01:21:39.369 --> 01:21:45.369
apps I can extend through a web extension, command

01:21:45.369 --> 01:21:50.630
line apps, NeoVim, just because it's very...

01:21:50.630 --> 01:21:55.649
I don't know. Like I said, I don't want to have

01:21:55.649 --> 01:21:57.859
to think about launching an app. It should just

01:21:57.859 --> 01:22:00.899
kind of work. I don't want to have to dig through

01:22:00.899 --> 01:22:02.560
documentation. I want to be able to open it up

01:22:02.560 --> 01:22:06.800
myself. So I use a lot of custom scripts, a lot

01:22:06.800 --> 01:22:12.359
of web extensions, that kind of thing. Okay.

01:22:13.840 --> 01:22:17.180
But Obsidian is very good, especially with the

01:22:17.180 --> 01:22:22.260
Harper plugin. A little bit of promotion there.

01:22:23.560 --> 01:22:25.800
What are your thoughts on Homelapse? Do you have

01:22:25.800 --> 01:22:30.029
one or no? Uh, yeah, I run a little lab with

01:22:30.029 --> 01:22:33.310
some, some think center, uh, machines and an

01:22:33.310 --> 01:22:39.090
old, an old desktop computer. Um, I don't, I

01:22:39.090 --> 01:22:42.810
don't use it to its greatest extent. It's kind

01:22:42.810 --> 01:22:44.590
of a new thing. I just got it. I just started

01:22:44.590 --> 01:22:47.329
setting it up a few weeks ago. So I've yet to

01:22:47.329 --> 01:22:50.670
get to truly explore the possibilities. And what

01:22:50.670 --> 01:22:53.210
type of machines like the micro computers or

01:22:53.210 --> 01:22:55.850
what? Sorry. Yeah. Like the tiny mini micro.

01:22:56.520 --> 01:22:59.500
yeah they're wonderful yeah yeah i use those

01:22:59.500 --> 01:23:02.720
too yep they're sturdy you can take them you

01:23:02.720 --> 01:23:04.220
can kind of open them up and put whatever you

01:23:04.220 --> 01:23:07.420
want inside yeah um and they're they're really

01:23:07.420 --> 01:23:09.399
small they actually so i have like i said i have

01:23:09.399 --> 01:23:15.260
a desktop machine and uh it's it's a huge case

01:23:15.260 --> 01:23:17.739
for what for the actual hardware that's inside

01:23:17.739 --> 01:23:23.539
so power and noise right yep yep but You can

01:23:23.539 --> 01:23:26.439
fit the think centers inside of the desktop case.

01:23:27.960 --> 01:23:33.359
So I have two. Yeah, exactly. So I have the two

01:23:33.359 --> 01:23:35.579
think centers stacked on top of each other inside

01:23:35.579 --> 01:23:39.079
of the desktop case with all of the other hardware

01:23:39.079 --> 01:23:41.800
that's in there. So I get to take advantage of

01:23:41.800 --> 01:23:45.579
that cooling. Interesting. And it's still like

01:23:45.579 --> 01:23:49.880
one unified kind of thing. And there's not as

01:23:49.880 --> 01:23:53.659
much noise, actually, I found. The ThinkCentre

01:23:53.659 --> 01:23:56.600
machines spin up kind of lab, but when they're

01:23:56.600 --> 01:24:02.640
inside the case, it's not as bad. Yeah, mine

01:24:02.640 --> 01:24:06.920
support up to 32 gigs of RAM, the micros that

01:24:06.920 --> 01:24:10.779
I have, but I just installed 64 on one of them

01:24:10.779 --> 01:24:13.359
to see if it worked, and it works just fine.

01:24:13.560 --> 01:24:17.500
So 64 gigs of RAM, and I have three of them.

01:24:17.659 --> 01:24:20.819
Only one has 64. Right. I have to upgrade the

01:24:20.819 --> 01:24:23.399
other two. But man, you can basically that's

01:24:23.399 --> 01:24:25.619
the way that I run Windows. Sometimes I need

01:24:25.619 --> 01:24:28.939
to run Windows. I even run Mac OS in a virtual

01:24:28.939 --> 01:24:32.479
machine in one of those, you know, but it's not

01:24:32.479 --> 01:24:35.279
cool. It's not great because you cannot increase

01:24:35.279 --> 01:24:38.260
the video memory. It's only seven megs and the

01:24:38.260 --> 01:24:43.600
desktop looks. But it works. All right. And oh,

01:24:43.760 --> 01:24:46.279
just something that I want to share for the people

01:24:46.279 --> 01:24:50.600
that would like to get. demo on Harper hold on

01:24:50.600 --> 01:24:55.899
let me just I created a video about Harper if

01:24:55.899 --> 01:24:58.000
there's someone that doesn't know what Harper

01:24:58.000 --> 01:25:03.439
is I basically go over like the setup is quite

01:25:03.439 --> 01:25:06.899
easy there's not much to set up right but a demo

01:25:06.899 --> 01:25:10.220
and all that stuff and how I personally use it

01:25:10.220 --> 01:25:12.159
so if there's someone that does not know yet

01:25:12.159 --> 01:25:18.939
or it needs I don't know Like another demo or

01:25:18.939 --> 01:25:21.199
more information on Harper. I have this video

01:25:21.199 --> 01:25:25.699
go and check it out. All right, so Is there something

01:25:25.699 --> 01:25:30.520
you want to share before we wrap it up like that?

01:25:31.739 --> 01:25:35.699
I Can't think of anything specific. Thank you

01:25:35.699 --> 01:25:39.680
so much for for reaching out to To do this. I've

01:25:39.680 --> 01:25:43.060
had a blast. This has been a lot of fun I hope

01:25:43.060 --> 01:25:45.199
I've shared some some information that's hopefully

01:25:45.199 --> 01:25:48.770
useful Oh, for sure. Harper is a really great

01:25:48.770 --> 01:25:51.310
project, and I'm really proud of all the people

01:25:51.310 --> 01:25:55.829
who have contributed to it. Like I said, we're

01:25:55.829 --> 01:25:58.189
completely open to contributions, so if you need

01:25:58.189 --> 01:26:02.829
a good project to get started with open source,

01:26:02.989 --> 01:26:07.170
Harper is a great place to start. We have a Discord

01:26:07.170 --> 01:26:10.710
server, so if you need help contributing or finding

01:26:10.710 --> 01:26:12.729
something in the documentation or in the code,

01:26:13.010 --> 01:26:16.800
don't feel like... Don't be afraid to reach out.

01:26:16.859 --> 01:26:20.100
Or if you find an issue in Harper, false positive

01:26:20.100 --> 01:26:22.579
or false negative, either one, just let us know.

01:26:23.300 --> 01:26:27.279
And we'll try and get to it. Harper is slowly

01:26:27.279 --> 01:26:30.199
becoming a really formidable grammar checker.

01:26:31.859 --> 01:26:35.420
Even if it didn't have all of the privacy advantages

01:26:35.420 --> 01:26:37.920
and the memory usage and the CPU advantages.

01:26:40.760 --> 01:26:44.409
And yeah, I hope that... I hope that I've shared

01:26:44.409 --> 01:26:46.329
some good information. And yeah, thank you so

01:26:46.329 --> 01:26:48.449
much for having me. No, thanks to you for your

01:26:48.449 --> 01:26:52.010
time. It's been an hour and a half. Well, almost

01:26:52.010 --> 01:26:54.989
two hours because of the tests and all that stuff.

01:26:55.210 --> 01:26:58.390
So I really appreciate your time. I do love Harper

01:26:58.390 --> 01:27:01.130
as well. I use it every day. I have it installed.

01:27:01.609 --> 01:27:04.529
Any Markdown file that I edit, Harper is there.

01:27:04.689 --> 01:27:09.020
So I think it's a wonderful tool. And if there's

01:27:09.020 --> 01:27:11.460
someone still watching, if you like this type

01:27:11.460 --> 01:27:14.000
of content, if you like this type of interviews

01:27:14.000 --> 01:27:16.500
that I'm doing, let me know in the comments.

01:27:16.939 --> 01:27:20.739
And I guess that's it for today. Really appreciate

01:27:20.739 --> 01:27:24.800
it, Elijah. I'll see you next time. Yeah. See

01:27:24.800 --> 01:27:26.779
you soon. Bye. Bye.
