summaryrefslogblamecommitdiffstats
path: root/2021/captions/borg.md
blob: f35d5c412f6e1606001bfa1eb36a92e930b06177 (plain) (tree)


























































































































































                                                                                                                          
<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]]