summaryrefslogtreecommitdiffstats
path: root/2021/captions/borg.md
blob: f35d5c412f6e1606001bfa1eb36a92e930b06177 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
<a name="transcript"></a>
# Transcript

[[!template text="Hello, my name is Dhavan," start="00:00:00.950" video="mainVideo" id=subtitle]]
[[!template text="also known as codingquark!" start="00:00:03.225" video="mainVideo" id=subtitle]]
[[!template text="I started out learning Emacs" start="00:00:05.500" video="mainVideo" id=subtitle]]
[[!template text="without knowing I had to plug things in" start="00:00:08.041" video="mainVideo" id=subtitle]]
[[!template text="to make it work." start="00:00:12.540" video="mainVideo" id=subtitle]]
[[!template text="Eventually I had to learn to set up ELPA." start="00:00:13.629" video="mainVideo" id=subtitle]]
[[!template text="Since then I’ve used MELPA" start="00:00:14.849" video="mainVideo" id=subtitle]]
[[!template text="and Debian apt sources." start="00:00:16.850" video="mainVideo" id=subtitle]]
[[!template text="Recent discussions about ELPA," start="00:00:21.030" video="mainVideo" id=subtitle]]
[[!template text="NonGNU ELPA, MELPA, etc." start="00:00:21.054" video="mainVideo" id=subtitle]]
[[!template text="made me reconsider" start="00:00:21.054" video="mainVideo" id=subtitle]]
[[!template text="what I was doing" start="00:00:21.054" video="mainVideo" id=subtitle]]
[[!template text="with my Emacs." start="00:00:21.054" video="mainVideo" id=subtitle]]
[[!template new="1"  text="I am not the kind of person" start="00:00:28.590" video="mainVideo" id=subtitle]]
[[!template text="to mindlessly ram things into my emacs." start="00:00:30.887" video="mainVideo" id=subtitle]]
[[!template text="I like to ponder," start="00:00:34.290" video="mainVideo" id=subtitle]]
[[!template text="to understand," start="00:00:36.041" video="mainVideo" id=subtitle]]
[[!template text="to have a level of control" start="00:00:37.500" video="mainVideo" id=subtitle]]
[[!template text="and mindfulness" start="00:00:40.128" video="mainVideo" id=subtitle]]
[[!template text="about my Emacs." start="00:00:42.069" video="mainVideo" id=subtitle]]
[[!template text="It is not just a matter" start="00:00:43.890" video="mainVideo" id=subtitle]]
[[!template text="of trying things out," start="00:00:45.730" video="mainVideo" id=subtitle]]
[[!template text="it is about living an examined life" start="00:00:47.340" video="mainVideo" id=subtitle]]
[[!template text="as the Greeks would say;" start="00:00:50.909" video="mainVideo" id=subtitle]]
[[!template text="or sutta as Buddhists would say." start="00:00:53.387" video="mainVideo" id=subtitle]]
[[!template text="Such an Emacs is an Emacs worth having." start="00:00:57.040" video="mainVideo" id=subtitle]]
[[!template new="1" text="This pursuit of mine" start="00:00:59.860" video="mainVideo" id=subtitle]]
[[!template text="brought me to learn about borg." start="00:01:01.414" video="mainVideo" id=subtitle]]
[[!template text="And I am going to share with you" start="00:01:03.710" video="mainVideo" id=subtitle]]
[[!template text="how to use it." start="00:01:05.595" video="mainVideo" id=subtitle]]
[[!template text="I believe the approach of using borg" start="00:01:06.479" video="mainVideo" id=subtitle]]
[[!template text="for package management" start="00:01:09.018" video="mainVideo" id=subtitle]]
[[!template text="is not for everyone." start="00:01:10.597" video="mainVideo" id=subtitle]]
[[!template text="It involves knowing git," start="00:01:12.710" video="mainVideo" id=subtitle]]
[[!template text="it involves looking into source code" start="00:01:14.307" video="mainVideo" id=subtitle]]
[[!template text="and reading makefiles." start="00:01:16.648" video="mainVideo" id=subtitle]]
[[!template text="Sure, anyone can learn" start="00:01:18.229" video="mainVideo" id=subtitle]]
[[!template text="should they be motivated so," start="00:01:20.170" video="mainVideo" id=subtitle]]
[[!template text="but people have different priorities." start="00:01:22.617" video="mainVideo" id=subtitle]]
[[!template text="This is what is working for me right now." start="00:01:25.740" video="mainVideo" id=subtitle]]
[[!template new="1" text="Here is what we are going to do." start="00:01:29.056" video="mainVideo" id=subtitle]]
[[!template text="We'll set up Debian, install dependencies," start="00:01:32.826" video="mainVideo" id=subtitle]]
[[!template text="set up borg, install a package," start="00:01:35.696" video="mainVideo" id=subtitle]]
[[!template text="and make sure it installs all the docs." start="00:01:39.032" video="mainVideo" id=subtitle]]
[[!template text="Let’s get started!" start="00:01:42.090" video="mainVideo" id=subtitle]]
[[!template text="Would it not be amazing" start="00:01:47.240" video="mainVideo" id=subtitle]]
[[!template text="if we could start out with" start="00:01:48.342" video="mainVideo" id=subtitle]]
[[!template text="just Debian and basic tools?" start="00:01:49.560" video="mainVideo" id=subtitle]]
[[!template text="For borg, we need git," start="00:01:52.399" video="mainVideo" id=subtitle]]
[[!template text="build-essential," start="00:01:54.848" video="mainVideo" id=subtitle]]
[[!template text="and something to build docs." start="00:01:55.916" video="mainVideo" id=subtitle]]
[[!template text="Nothing more!" start="00:01:57.384" video="mainVideo" id=subtitle]]
[[!template new="1" text="Now that we have the OS setup," start="00:02:00.499" video="mainVideo" id=subtitle]]
[[!template text="it is time to clone" start="00:02:04.658" video="mainVideo" id=subtitle]]
[[!template text="what is called a “seed”." start="00:02:06.226" video="mainVideo" id=subtitle]]
[[!template text="A seed will speed our process up" start="00:02:09.429" video="mainVideo" id=subtitle]]
[[!template text="by providing things like" start="00:02:11.431" video="mainVideo" id=subtitle]]
[[!template text="magit, epkg, auto-compile, etc." start="00:02:13.379" video="mainVideo" id=subtitle]]
[[!template text="We will soon be using epkg and magit." start="00:02:15.500" video="mainVideo" id=subtitle]]
[[!template text="The docs cover how to start" start="00:02:20.430" video="mainVideo" id=subtitle]]
[[!template text="without a seed," start="00:02:22.642" video="mainVideo" id=subtitle]]
[[!template text="but for the purposes of a short demo," start="00:02:23.477" video="mainVideo" id=subtitle]]
[[!template text="seeds are better." start="00:02:25.779" video="mainVideo" id=subtitle]]
[[!template text="I started with a seed" start="00:02:27.770" video="mainVideo" id=subtitle]]
[[!template text="for my own dot emacs." start="00:02:28.682" video="mainVideo" id=subtitle]]
[[!template text="It is fairly slim." start="00:02:30.083" video="mainVideo" id=subtitle]]
[[!template new="1" text="As you can see," start="00:02:32.890" video="mainVideo" id=subtitle]]
[[!template text="borg uses git URLs" start="00:02:33.854" video="mainVideo" id=subtitle]]
[[!template text="and /not/ HTTPS URLs." start="00:02:35.088" video="mainVideo" id=subtitle]]
[[!template text="Make sure you have your ssh keys" start="00:02:37.290" video="mainVideo" id=subtitle]]
[[!template text="set up on GitHub, GitLab, etc." start="00:02:38.992" video="mainVideo" id=subtitle]]
[[!template new="1" text="Bootstrapping is like cloning a dot emacs," start="00:02:43.989" video="mainVideo" id=subtitle]]
[[!template text="but it only comes with a" start="00:02:45.899" video="mainVideo" id=subtitle]]
[[!template text="useful dot git submodules file." start="00:02:47.310" video="mainVideo" id=subtitle]]
[[!template text="We get a Makefile that has targets" start="00:02:51.400" video="mainVideo" id=subtitle]]
[[!template text="like help and bootstrap-borg." start="00:02:54.841" video="mainVideo" id=subtitle]]
[[!template text="There will be more targets" start="00:02:57.739" video="mainVideo" id=subtitle]]
[[!template text="after we finish the bootstrapping process." start="00:02:59.880" video="mainVideo" id=subtitle]]
[[!template text="Then, we need to clone all the git modules," start="00:03:30.110" video="mainVideo" id=subtitle]]
[[!template text="which is also done by a make target." start="00:03:35.582" video="mainVideo" id=subtitle]]
[[!template text="This time, it will not just pull" start="00:03:38.310" video="mainVideo" id=subtitle]]
[[!template text="the git submodules," start="00:03:40.754" video="mainVideo" id=subtitle]]
[[!template text="but will also run various things" start="00:03:42.656" video="mainVideo" id=subtitle]]
[[!template text="like auto-compilation," start="00:03:44.658" video="mainVideo" id=subtitle]]
[[!template text="Info doc installation, etc." start="00:03:45.826" video="mainVideo" id=subtitle]]
[[!template text="Good thing we installed texinfo earlier!" start="00:03:48.030" video="mainVideo" id=subtitle]]
[[!template new="1" text="Now that we have borg bootstrapped," start="00:04:08.282" video="mainVideo" id=subtitle]]
[[!template text="let’s see how to “assimilate” a drone." start="00:04:10.884" video="mainVideo" id=subtitle]]
[[!template text="Well, that’s just a borg way of saying" start="00:04:14.520" video="mainVideo" id=subtitle]]
[[!template text="how to install a new package." start="00:04:17.090" video="mainVideo" id=subtitle]]
[[!template text="We get to work from inside Emacs now." start="00:04:19.900" video="mainVideo" id=subtitle]]
[[!template text="Borg has excellent info docs," start="00:04:22.910" video="mainVideo" id=subtitle]]
[[!template text="should you ever be having questions." start="00:04:26.366" video="mainVideo" id=subtitle]]
[[!template text="I earlier talked about using a seed." start="00:04:28.450" video="mainVideo" id=subtitle]]
[[!template text="Borg docs go into details of what that means." start="00:04:32.240" video="mainVideo" id=subtitle]]
[[!template text="I encourage you to read the docs." start="00:04:34.830" video="mainVideo" id=subtitle]]
[[!template new="1" text="Let’s try to install lsp-mode." start="00:04:40.190" video="mainVideo" id=subtitle]]
[[!template text="Examining lsp-mode" start="00:04:51.500" video="mainVideo" id=subtitle]]
[[!template text="with epkg’s helper function," start="00:04:52.459" video="mainVideo" id=subtitle]]
[[!template text="we can see details of the package," start="00:04:54.694" video="mainVideo" id=subtitle]]
[[!template text="dependencies required, and so on." start="00:04:57.280" video="mainVideo" id=subtitle]]
[[!template text="epkg uses sqlite database." start="00:05:00.200" video="mainVideo" id=subtitle]]
[[!template text="Now you know why I installed sqlite" start="00:05:02.470" video="mainVideo" id=subtitle]]
[[!template text="in the OS preparation step!" start="00:05:04.871" video="mainVideo" id=subtitle]]
[[!template text="Well, lsp-mode has" start="00:05:20.820" video="mainVideo" id=subtitle]]
[[!template text="way too many dependencies" start="00:05:22.622" video="mainVideo" id=subtitle]]
[[!template text="for this demo." start="00:05:24.057" video="mainVideo" id=subtitle]]
[[!template text="Note how one is naturally led" start="00:05:25.830" video="mainVideo" id=subtitle]]
[[!template text="to take a peek at the innards of the packages" start="00:05:28.795" video="mainVideo" id=subtitle]]
[[!template text="in this simple workflow." start="00:05:32.332" video="mainVideo" id=subtitle]]
[[!template text="As I said, it is about being mindful!" start="00:05:34.780" video="mainVideo" id=subtitle]]
[[!template new="1" text="Okay, instead of lsp-mode," start="00:05:37.270" video="mainVideo" id=subtitle]]
[[!template text="let’s take a look at" start="00:05:39.573" video="mainVideo" id=subtitle]]
[[!template text="Prot’s excellent modus-themes." start="00:05:41.308" video="mainVideo" id=subtitle]]
[[!template text="No extra dependencies needed." start="00:05:45.400" video="mainVideo" id=subtitle]]
[[!template text="That is perfect!" start="00:05:47.247" video="mainVideo" id=subtitle]]
[[!template text="The themes have great docs" start="00:05:49.870" video="mainVideo" id=subtitle]]
[[!template text="and our philosopher friend" start="00:05:52.018" video="mainVideo" id=subtitle]]
[[!template text="is good at writing." start="00:05:53.620" video="mainVideo" id=subtitle]]
[[!template text="Alright, first, we clone the package." start="00:05:56.000" video="mainVideo" id=subtitle]]
[[!template text="This allows us to inspect the code," start="00:06:02.930" video="mainVideo" id=subtitle]]
[[!template text="should we want to." start="00:06:04.664" video="mainVideo" id=subtitle]]
[[!template text="Well, you /should/." start="00:06:06.330" video="mainVideo" id=subtitle]]
[[!template text="Upon inspecting the code," start="00:06:23.000" video="mainVideo" id=subtitle]]
[[!template text="we ask borg to assimilate the package." start="00:06:25.552" video="mainVideo" id=subtitle]]
[[!template text="This will load the code in our Emacs" start="00:06:30.620" video="mainVideo" id=subtitle]]
[[!template text="and make the package available for use." start="00:06:33.927" video="mainVideo" id=subtitle]]
[[!template tnew="1" ext="Wait, I was praising all the docs," start="00:06:39.799" video="mainVideo" id=subtitle]]
[[!template text="but where are they?" start="00:06:42.135" video="mainVideo" id=subtitle]]
[[!template text="To install the docs," start="00:06:43.690" video="mainVideo" id=subtitle]]
[[!template text="we need to instruct borg" start="00:06:44.571" video="mainVideo" id=subtitle]]
[[!template text="about where to find them." start="00:06:46.273" video="mainVideo" id=subtitle]]
[[!template text="To do this, we edit the gitmodules file" start="00:06:48.020" video="mainVideo" id=subtitle]]
[[!template text="and add the details." start="00:06:51.978" video="mainVideo" id=subtitle]]
[[!template text="There they are!" start="00:06:53.910" video="mainVideo" id=subtitle]]
[[!template text="We have our docs!" start="00:06:58.310" video="mainVideo" id=subtitle]]
[[!template text="Alright, we have assimilated a package." start="00:07:04.170" video="mainVideo" id=subtitle]]
[[!template text="After sufficient testing," start="00:07:09.940" video="mainVideo" id=subtitle]]
[[!template text="we can commit it as a part of our own dot emacs," start="00:07:11.398" video="mainVideo" id=subtitle]]
[[!template text="which is a drone of our borg collective." start="00:07:14.234" video="mainVideo" id=subtitle]]
[[!template text="Since all the packages are git submodules," start="00:07:19.272" video="mainVideo" id=subtitle]]
[[!template text="we get to use magit" start="00:07:21.741" video="mainVideo" id=subtitle]]
[[!template text="(all hail magit!)" start="00:07:23.810" video="mainVideo" id=subtitle]]
[[!template text="and borg’s helper functions" start="00:07:25.245" video="mainVideo" id=subtitle]]
[[!template text="to commit the code." start="00:07:27.514" video="mainVideo" id=subtitle]]
[[!template text="Now create your own dot el file" start="00:07:29.530" video="mainVideo" id=subtitle]]
[[!template text="and hack away!" start="00:07:31.818" video="mainVideo" id=subtitle]]
[[!template new="1" text="So that is it." start="00:07:38.758" video="mainVideo" id=subtitle]]
[[!template text="I hope you enjoyed the talk" start="00:07:39.793" video="mainVideo" id=subtitle]]
[[!template text="and I will be hanging out in IRC" start="00:07:41.661" video="mainVideo" id=subtitle]]
[[!template text="if you have any questions." start="00:07:45.131" video="mainVideo" id=subtitle]]
[[!template text="Thank you, and bye." start="00:07:46.666" video="mainVideo" id=subtitle]]