summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--2020/info/19.md2
-rw-r--r--2020/organizers-notebook.md9
-rw-r--r--2020/organizers-notebook.org8
-rw-r--r--2020/subtitles/emacsconf-2020--18-org-roam-technical-presentation--leo-vivier.vtt1640
-rw-r--r--2020/subtitles/emacsconf-2020--19-sharing-blogs-and-more-with-org-webring--brett-gilio.vtt664
5 files changed, 2314 insertions, 9 deletions
diff --git a/2020/info/19.md b/2020/info/19.md
index 9260db46..ec5f5442 100644
--- a/2020/info/19.md
+++ b/2020/info/19.md
@@ -1,7 +1,7 @@
# Sharing blogs (and more) with org-webring
Brett Gilio
-[[!template id=vid src="https://mirror.csclub.uwaterloo.ca/emacsconf/2020/emacsconf-2020--19-sharing-blogs-and-more-with-org-webring--brett-gilio.webm"]]
+[[!template id=vid src="https://mirror.csclub.uwaterloo.ca/emacsconf/2020/emacsconf-2020--19-sharing-blogs-and-more-with-org-webring--brett-gilio.webm" subtitles="/2020/subtitles/emacsconf-2020--19-sharing-blogs-and-more-with-org-webring--brett-gilio-autogen.vtt"]]
[Download compressed .webm video (20.8M)](https://mirror.csclub.uwaterloo.ca/emacsconf/2020/smaller/emacsconf-2020--19-sharing-blogs-and-more-with-org-webring--brett-gilio--vp9-q56-video-original-audio.webm)
In this talk I will detail the ways in which static website generation
diff --git a/2020/organizers-notebook.md b/2020/organizers-notebook.md
index 171bf1b9..b2edbf12 100644
--- a/2020/organizers-notebook.md
+++ b/2020/organizers-notebook.md
@@ -45,11 +45,11 @@ I modified the `subed` package to work with VTT files. The modified version is a
- [X] sachac <./subtitles/emacsconf-2020--15-moving-from-jekyll-to-orgmode-an-experience-report--adolfo-villafiorita-autogen.vtt>
- [X] sachac <./info/16.md> <./subtitles/emacsconf-2020--16-org-roam-presentation-demonstration-and-whats-on-the-horizon--leo-vivier.vtt>
- [X] sachac <./info/17.md> <./subtitles/emacsconf-2020--17-org-mode-and-org-roam-for-scholars-and-researchers--noorah-alhasan.vtt>
-- [ ] sachac <./info/18.md> <./subtitles/emacsconf-2020--18-org-roam-technical-presentation--leo-vivier.vtt>
-- [ ] <./subtitles/emacsconf-2020--19-sharing-blogs-and-more-with-org-webring--brett-gilio-autogen.vtt>
-- [ ] <./subtitles/emacsconf-2020--20-omg-macros--corwin-brust-autogen.vtt>
+- [X] sachac <./info/18.md> <./subtitles/emacsconf-2020--18-org-roam-technical-presentation--leo-vivier.vtt>
+- [ ] sachac <./subtitles/emacsconf-2020--19-sharing-blogs-and-more-with-org-webring--brett-gilio-autogen.vtt>
+- [ ] sachac <./subtitles/emacsconf-2020--20-omg-macros--corwin-brust-autogen.vtt>
- [ ] <./subtitles/emacsconf-2020--21-on-why-most-of-the-best-features-in-eev-look-like-5-minute-hacks--eduardo-ochs-autogen.vtt>
-- [ ] <./subtitles/emacsconf-2020--22-powering-up-special-blocks--musa-al-hassy-autogen.vtt>
+- [ ] sachac <./subtitles/emacsconf-2020--22-powering-up-special-blocks--musa-al-hassy-autogen.vtt>
- [ ] <./subtitles/emacsconf-2020--23-incremental-parsing-with-emacs-tree-sitter--questions--tuan-anh-nguyen-autogen.vtt>
- [ ] <./subtitles/emacsconf-2020--23-incremental-parsing-with-emacs-tree-sitter--tuan-anh-nguyen-autogen.vtt>
- [ ] <./subtitles/emacsconf-2020--25-traverse-complex-json-structures-with-live-feedback-counsel-jq--zen-monk-alain-m-lafon-autogen.vtt>
@@ -64,6 +64,7 @@ I modified the `subed` package to work with VTT files. The modified version is a
- [ ] <./subtitles/emacsconf-2020--32-object-oriented-code-in-the-gnus-newsreader--eric-abrahamsen-autogen.vtt>
- [ ] <./subtitles/emacsconf-2020--33-maxima-a-computer-algebra-system-in-emacs--fermin.vtt>
- [ ] bhavin192 <./subtitles/emacsconf-2020--34-extend-emacs-to-modern-gui-applications-with-eaf--matthew-zeng-autogen.vtt>
+- [ ] bhavin192 <./subtitles/emacsconf-2020--35-waveing-at-repetitive-repetitive-repetitive-music-zmusic--zachary-kanfer-autogen.vtt>
- [ ] bhavin192 <./subtitles/emacsconf-2020--35-waveing-at-repetitive-repetitive-repetitive-music-zmusic--questions--zachary-kanfer-autogen.vtt>
- [X] bhavin192 <./info/38.md> <./subtitles/emacsconf-2020--38-emacs-development-update--john-wiegley.vtt>
- [X] bhavin192 <./info/39.md> <./subtitles/emacsconf-2020--39-nongnu-elpa--questions--richard-stallman.vtt>
diff --git a/2020/organizers-notebook.org b/2020/organizers-notebook.org
index b3fbf0ee..b8ad59f8 100644
--- a/2020/organizers-notebook.org
+++ b/2020/organizers-notebook.org
@@ -45,11 +45,11 @@ I modified the =subed= package to work with VTT files. The modified version is a
- [X] sachac [[./subtitles/emacsconf-2020--15-moving-from-jekyll-to-orgmode-an-experience-report--adolfo-villafiorita-autogen.vtt]]
- [X] sachac [[./info/16.md]] [[./subtitles/emacsconf-2020--16-org-roam-presentation-demonstration-and-whats-on-the-horizon--leo-vivier.vtt]]
- [X] sachac [[./info/17.md]] [[./subtitles/emacsconf-2020--17-org-mode-and-org-roam-for-scholars-and-researchers--noorah-alhasan.vtt]]
-- [ ] sachac [[./info/18.md]] [[./subtitles/emacsconf-2020--18-org-roam-technical-presentation--leo-vivier.vtt]]
-- [ ] [[./subtitles/emacsconf-2020--19-sharing-blogs-and-more-with-org-webring--brett-gilio-autogen.vtt]]
-- [ ] [[./subtitles/emacsconf-2020--20-omg-macros--corwin-brust-autogen.vtt]]
+- [X] sachac [[./info/18.md]] [[./subtitles/emacsconf-2020--18-org-roam-technical-presentation--leo-vivier.vtt]]
+- [ ] sachac [[./info/19.md]] [[./subtitles/emacsconf-2020--19-sharing-blogs-and-more-with-org-webring--brett-gilio-autogen.vtt]]
+- [ ] sachac [[./subtitles/emacsconf-2020--20-omg-macros--corwin-brust-autogen.vtt]]
- [ ] [[./subtitles/emacsconf-2020--21-on-why-most-of-the-best-features-in-eev-look-like-5-minute-hacks--eduardo-ochs-autogen.vtt]]
-- [ ] [[./subtitles/emacsconf-2020--22-powering-up-special-blocks--musa-al-hassy-autogen.vtt]]
+- [ ] sachac [[./subtitles/emacsconf-2020--22-powering-up-special-blocks--musa-al-hassy-autogen.vtt]]
- [ ] [[./subtitles/emacsconf-2020--23-incremental-parsing-with-emacs-tree-sitter--questions--tuan-anh-nguyen-autogen.vtt]]
- [ ] [[./subtitles/emacsconf-2020--23-incremental-parsing-with-emacs-tree-sitter--tuan-anh-nguyen-autogen.vtt]]
- [ ] [[./subtitles/emacsconf-2020--25-traverse-complex-json-structures-with-live-feedback-counsel-jq--zen-monk-alain-m-lafon-autogen.vtt]]
diff --git a/2020/subtitles/emacsconf-2020--18-org-roam-technical-presentation--leo-vivier.vtt b/2020/subtitles/emacsconf-2020--18-org-roam-technical-presentation--leo-vivier.vtt
new file mode 100644
index 00000000..4c840ad7
--- /dev/null
+++ b/2020/subtitles/emacsconf-2020--18-org-roam-technical-presentation--leo-vivier.vtt
@@ -0,0 +1,1640 @@
+WEBVTT
+
+00:00:00.000 --> 00:00:02.399
+Leo Vivier: [About the previous
+presentation:] At the end... We are
+right on time, so I'm
+
+00:00:02.399 --> 00:00:04.319
+sorry if you have a lot of questions
+before.
+
+00:00:04.319 --> 00:00:06.960
+You had so many questions and I
+
+00:00:06.960 --> 00:00:08.375
+couldn't answer all of them
+
+00:00:08.375 --> 00:00:10.080
+I'm really happy about it but I'm also
+
+00:00:10.080 --> 00:00:12.719
+really sad that I don't have enough time
+to do so.
+
+00:00:12.719 --> 00:00:15.040
+I'm going to try to do a better job this
+
+00:00:15.040 --> 00:00:17.119
+time of leaving you a little more time
+
+00:00:17.119 --> 00:00:20.240
+for the questions. So, just before,
+
+00:00:20.240 --> 00:00:22.960
+a little addendum because I did screw up
+
+00:00:22.960 --> 00:00:24.400
+in the previous presentation...
+
+00:00:24.400 --> 00:00:27.439
+You remember I tried to rename the file
+
+00:00:27.439 --> 00:00:28.800
+and it didn't work?
+
+00:00:28.800 --> 00:00:32.559
+well it turns out I had two files named
+"baz," so
+
+00:00:32.559 --> 00:00:36.000
+my software works great, thank you very
+much.
+
+00:00:36.000 --> 00:00:38.800
+[Org Roam Technical Presentation]: All
+right. So now what I'm going to do
+
+00:00:38.800 --> 00:00:40.239
+during this presentation
+
+00:00:40.239 --> 00:00:43.040
+is that I'm going to... Oops, I didn't start
+
+00:00:43.040 --> 00:00:44.399
+my timer. Just give me
+
+00:00:44.399 --> 00:00:47.520
+a little second, and let's subtract
+
+00:00:47.520 --> 00:00:50.141
+one minute. Okay. Good.
+
+00:00:50.141 --> 00:00:52.239
+So, what I'm going to do right now... It's a
+
+00:00:52.239 --> 00:00:54.079
+little different from the previous
+
+00:00:54.079 --> 00:00:56.879
+talk I gave you, and different even
+
+00:00:56.879 --> 00:00:58.239
+from what Noorah gave you.
+
+00:00:58.239 --> 00:01:00.480
+There's scaling the mountain as
+
+00:01:00.480 --> 00:01:01.941
+far as difficulty is concerned.
+
+00:01:01.941 --> 00:01:04.879
+On this one, I will be telling you
+about the
+
+00:01:04.879 --> 00:01:06.799
+technical aspects of org-roam,
+
+00:01:06.799 --> 00:01:09.360
+because I've been telling you
+
+00:01:09.360 --> 00:01:11.119
+about the general philosophy
+
+00:01:11.119 --> 00:01:13.119
+of the notes and the general philosophy
+
+00:01:13.119 --> 00:01:14.560
+of organization,
+
+00:01:14.560 --> 00:01:16.159
+but right now, I really want to get into
+
+00:01:16.159 --> 00:01:18.479
+the nitty gritty about org-roam.
+
+00:01:18.479 --> 00:01:22.640
+So if we go in the git repository,
+
+00:01:22.640 --> 00:01:25.759
+this at the very core is org-roam.
+
+00:01:25.759 --> 00:01:28.960
+For some of you who have no experience
+whatsoever
+
+00:01:28.960 --> 00:01:31.280
+developing stuff or programming or
+
+00:01:31.280 --> 00:01:32.880
+anything along those lines,
+
+00:01:32.880 --> 00:01:36.720
+this is how all the development
+around the world
+
+00:01:36.720 --> 00:01:40.000
+is working. You have a repository, a
+
+00:01:40.000 --> 00:01:42.159
+git repository, where you have all the
+
+00:01:42.159 --> 00:01:44.399
+files, all the libraries you're using,
+
+00:01:44.399 --> 00:01:46.399
+all the programs, all the commands.
+
+00:01:46.399 --> 00:01:48.720
+Everything is inside your files.
+
+00:01:48.720 --> 00:01:52.240
+And in a way, this is the org-roam project.
+
+00:01:52.240 --> 00:01:53.741
+You can see that we have many files.
+
+00:01:53.741 --> 00:01:55.600
+We have org-roam-buffer, -capture, -compat,
+
+00:01:55.600 --> 00:01:58.441
+-completion, -dailies, etc. etc.
+
+00:01:58.441 --> 00:02:02.000
+So, before we dive a little deeper,
+I just
+
+00:02:02.000 --> 00:02:04.640
+want to give you a lay of the land,
+so to speak,
+
+00:02:04.640 --> 00:02:08.160
+to know where we're heading.
+
+00:02:08.160 --> 00:02:11.680
+Org-roam is built on top of Org Mode,
+
+00:02:11.680 --> 00:02:15.599
+and Org Mode gives us plenty of tools
+
+00:02:15.599 --> 00:02:17.408
+to play around with the files.
+
+00:02:17.408 --> 00:02:18.308
+I'm moving the glass.
+
+00:02:18.308 --> 00:02:20.080
+I'm starting to move my hands a little
+
+00:02:20.080 --> 00:02:21.360
+bit. You know, when I get excited about
+
+00:02:21.360 --> 00:02:22.959
+something, I move my hand,
+
+00:02:22.959 --> 00:02:26.640
+and then that stuff happens. So
+
+00:02:26.640 --> 00:02:29.360
+in org-roam, we have Org Mode and
+
+00:02:29.360 --> 00:02:31.360
+Org Roam gives us plenty of tools which
+
+00:02:31.360 --> 00:02:33.360
+are incredibly useful
+
+00:02:33.360 --> 00:02:36.560
+for writing stuff. So you know we already
+
+00:02:36.560 --> 00:02:37.440
+have the links,
+
+00:02:37.440 --> 00:02:39.440
+we already have the hierarchy which is
+
+00:02:39.440 --> 00:02:43.360
+given by having trees within trees
+within trees. We have
+
+00:02:43.760 --> 00:02:45.741
+quote blocks. We have babel blocks.
+
+00:02:45.741 --> 00:02:48.000
+We have so much stuff. We have an
+arsenal of
+
+00:02:48.000 --> 00:02:49.680
+tools that have been developed
+
+00:02:49.680 --> 00:02:53.519
+for the last 15 years.
+
+00:02:53.519 --> 00:02:56.640
+When you think about it, org-roam just
+
+00:02:56.640 --> 00:02:59.760
+wants to create backlinks. It sounds
+
+00:02:59.760 --> 00:03:01.360
+something very simple, but the problem is
+
+00:03:01.360 --> 00:03:05.519
+that we need to play nicely with all
+of those
+
+00:03:05.519 --> 00:03:09.360
+intricate pieces. The fact is, it
+takes quite a
+
+00:03:09.360 --> 00:03:10.879
+lot of expertise to be able to do so
+
+00:03:10.879 --> 00:03:14.400
+because if... Right now we are in the brain
+of org-roam,
+
+00:03:15.200 --> 00:03:18.959
+but if I show you the brain of Org Mode...
+
+00:03:18.959 --> 00:03:20.608
+So this is the brain of Org Mode.
+
+00:03:20.608 --> 00:03:23.280
+It looks very simple like this because I
+
+00:03:23.280 --> 00:03:25.519
+haven't entered the lisp/ folder.
+
+00:03:25.519 --> 00:03:28.000
+I'm just going to enter it. I'm going
+
+00:03:28.000 --> 00:03:32.000
+to zoom out a little bit. Don't worry
+if you
+
+00:03:32.000 --> 00:03:32.959
+don't see everything.
+
+00:03:32.959 --> 00:03:35.519
+but I just want you to get the
+
+00:03:35.519 --> 00:03:37.519
+sheer feel of magnitude
+
+00:03:37.519 --> 00:03:41.280
+that is Org Mode. So right now, we are
+
+00:03:41.280 --> 00:03:42.640
+in a very small size... What I'm going
+to do,
+
+00:03:42.640 --> 00:03:43.760
+I'm going to skip
+
+00:03:43.760 --> 00:03:47.519
+one page, one, two,
+
+00:03:47.519 --> 00:03:51.040
+three, we have... Let's just check how many
+
+00:03:51.040 --> 00:03:52.319
+lines we have.
+
+00:03:52.319 --> 00:03:54.640
+Okay. Let me just revert to a fairly
+
+00:03:54.640 --> 00:03:56.480
+readable sight.
+
+00:03:56.480 --> 00:03:58.560
+At the bottom, you can see that we have...
+
+00:03:58.560 --> 00:03:59.599
+Oh it's not showing because it's a
+
+00:03:59.599 --> 00:04:00.959
+little small. Okay, I'm just going to
+
+00:04:00.959 --> 00:04:03.840
+resize the window a little bit.
+
+00:04:03.840 --> 00:04:06.959
+It's not showing up. Give me a second. I
+
+00:04:06.959 --> 00:04:08.720
+can't see how many lines I have. Okay. So
+
+00:04:08.720 --> 00:04:10.159
+let's do it the better way.
+
+00:04:10.159 --> 00:04:11.840
+I'm going to go back at the beginning of
+
+00:04:11.840 --> 00:04:14.000
+the buffer and we're going to count
+
+00:04:14.000 --> 00:04:16.160
+how many lines we have. So the bottom, in
+
+00:04:16.160 --> 00:04:18.880
+the mini buffer (and the mini buffer is
+this area),
+
+00:04:18.880 --> 00:04:22.320
+we have 377 lines,
+
+00:04:22.320 --> 00:04:25.919
+which means 377
+
+00:04:25.919 --> 00:04:29.759
+libraries within Org Mode. And mind you,
+
+00:04:29.759 --> 00:04:31.520
+that's not counting all the modules that
+
+00:04:31.520 --> 00:04:32.960
+we have on the side, which
+
+00:04:32.960 --> 00:04:36.240
+come on top of Org Mode. Now when you
+
+00:04:36.240 --> 00:04:37.360
+try to think
+
+00:04:37.360 --> 00:04:41.408
+about something so elemental as links,
+
+00:04:41.408 --> 00:04:45.520
+you have to think about how to play well
+
+00:04:45.520 --> 00:04:48.560
+with every single one of these modules.
+
+00:04:48.560 --> 00:04:48.875
+Now, obviously not the 370.
+
+00:04:48.875 --> 00:04:56.080
+Sometimes, you know one module it's not
+going to do anything.
+
+00:04:56.080 --> 00:04:57.680
+I'm not sure ob-calc could be doing
+
+00:04:57.680 --> 00:04:58.639
+anything with it.
+
+00:04:58.639 --> 00:05:00.080
+But it's something that we have to keep
+
+00:05:00.080 --> 00:05:03.039
+in mind.
+
+00:05:03.039 --> 00:05:04.720
+So, really early on, when we started
+
+00:05:04.720 --> 00:05:07.520
+developing org-roam with Jethro Kuan, my
+
+00:05:07.520 --> 00:05:10.639
+co-maintainer, you know we had this
+idea that
+
+00:05:10.639 --> 00:05:14.639
+we wanted to develop something that
+was optimized,
+
+00:05:14.639 --> 00:05:18.240
+something that would scale very
+
+00:05:18.240 --> 00:05:20.160
+nicely, whether or not you had...
+
+00:05:20.160 --> 00:05:21.600
+Something that would work as
+
+00:05:21.600 --> 00:05:24.560
+fast if you had 10 files,
+
+00:05:24.560 --> 00:05:27.680
+or if you had 100 files, or if you had
+
+00:05:27.680 --> 00:05:30.880
+10,000 files and maybe more. So the
+
+00:05:30.880 --> 00:05:32.080
+problem when you do this--
+
+00:05:32.080 --> 00:05:34.400
+and I'm doing some callbacks to the talk
+
+00:05:34.400 --> 00:05:36.320
+I gave you earlier today about
+
+00:05:36.320 --> 00:05:41.280
+a few big files versus many--
+
+00:05:41.280 --> 00:05:44.800
+I got confused--few big files versus many
+
+00:05:44.800 --> 00:05:45.919
+small files,
+
+00:05:45.919 --> 00:05:49.280
+the problem with this is that we need to
+
+00:05:49.280 --> 00:05:51.600
+think about optimization from the get go.
+
+00:05:51.600 --> 00:05:53.680
+So one of the decisions we took when
+
+00:05:53.680 --> 00:05:54.800
+we got started
+
+00:05:54.800 --> 00:05:59.199
+with org-roam is that if I go in my
+
+00:05:59.199 --> 00:06:02.479
+test repository--so that's the one in
+
+00:06:02.479 --> 00:06:04.240
+which we were right before--
+
+00:06:04.240 --> 00:06:08.000
+we have a file which is called org-roam.db.
+
+00:06:08.000 --> 00:06:11.600
+Now if I open it, it's not... It's a
+
+00:06:11.600 --> 00:06:14.160
+little garbage because it's a binary.
+
+00:06:14.160 --> 00:06:15.120
+But what we have
+
+00:06:15.120 --> 00:06:18.560
+is a database with which we communicate
+
+00:06:18.560 --> 00:06:21.919
+via... Sorry, it's an SQL database.
+
+00:06:21.919 --> 00:06:25.120
+And what this allows us to do
+
+00:06:25.120 --> 00:06:28.479
+is we store all the information we need
+
+00:06:28.479 --> 00:06:31.919
+inside this SQL database which allows us
+
+00:06:31.919 --> 00:06:34.720
+to speed up a lot of the operations that
+
+00:06:34.720 --> 00:06:38.479
+are necessary for the functioning of org-roam.
+
+00:06:38.479 --> 00:06:40.240
+So, for instance, if I go back to the
+
+00:06:40.240 --> 00:06:41.759
+index file that I had before...
+
+00:06:41.759 --> 00:06:43.341
+Let's just go back to "foo," actually.
+
+00:06:43.341 --> 00:06:45.680
+This way you'll see a little more on
+the side.
+
+00:06:45.680 --> 00:06:47.919
+So you see that on the side we have
+
+00:06:47.919 --> 00:06:50.319
+two links. I'm not going to
+click on them;
+
+00:06:50.319 --> 00:06:51.508
+otherwise, I'm going to open them.
+
+00:06:51.508 --> 00:06:53.199
+But we have two links.
+
+00:06:53.199 --> 00:06:56.319
+Now there are many implementations of
+
+00:06:56.319 --> 00:06:58.975
+the Zettelkasten method inside Emacs
+
+00:06:58.975 --> 00:07:00.541
+and with Org Mode.
+
+00:07:00.541 --> 00:07:02.400
+But what we've decided to do
+
+00:07:02.400 --> 00:07:04.639
+is that every time you have a link--so if
+
+00:07:04.639 --> 00:07:08.479
+we go to the index again here at point
+we have
+
+00:07:08.479 --> 00:07:09.908
+the link "foo." Every time we create a
+link,
+
+00:07:09.908 --> 00:07:14.160
+we update our database
+
+00:07:14.160 --> 00:07:17.919
+to say, okay, so we have a link in the
+file
+
+00:07:17.919 --> 00:07:21.080
+"index" which is leading to the file
+
+00:07:21.080 --> 00:07:24.319
+"foo.org" and it is situated
+
+00:07:24.319 --> 00:07:27.840
+under the heading "A heading."
+
+00:07:27.840 --> 00:07:29.840
+If you check the side buffer, you see
+
+00:07:29.840 --> 00:07:31.440
+that all this information
+
+00:07:31.440 --> 00:07:33.120
+which I just highlighted to you
+
+00:07:33.120 --> 00:07:42.639
+is present right here.
+
+00:07:42.639 --> 00:07:45.599
+Oh, sorry I forgot this. Thank you.
+
+00:07:46.400 --> 00:07:50.879
+So let's see. Log. Okay.
+
+00:07:50.879 --> 00:07:53.039
+I'm going to split like this.
+
+00:07:53.039 --> 00:07:54.960
+I'm going to go back there.
+
+00:07:54.960 --> 00:07:56.960
+The problem is that I can't show my
+
+00:07:56.960 --> 00:07:58.720
+keystrokes at the same time as
+
+00:07:58.720 --> 00:08:02.080
+I'm showing the side buffer, so I'll
+
+00:08:02.080 --> 00:08:03.599
+keep it right now for your own
+
+00:08:03.599 --> 00:08:07.039
+discretion. Anyway, getting back to the
+talk.
+
+00:08:07.039 --> 00:08:10.160
+So the thing is we have this
+
+00:08:10.160 --> 00:08:13.520
+SQL database. The goal is to keep it
+optimized.
+
+00:08:13.520 --> 00:08:16.400
+Now, why is it better optimized than just
+
+00:08:16.400 --> 00:08:20.960
+using default Org Mode?
+
+00:08:20.960 --> 00:08:23.520
+So in my talk about many big files
+
+00:08:23.520 --> 00:08:26.879
+versus a few--I keep getting.--
+you got
+
+00:08:26.879 --> 00:08:28.080
+what I was saying; I'm not going to
+
+00:08:28.080 --> 00:08:29.120
+repeat it--
+
+00:08:29.120 --> 00:08:32.240
+By the way, it is 10 to 10:00.
+
+00:08:32.240 --> 00:08:35.200
+I'm starting really to be tired now.
+
+00:08:35.200 --> 00:08:36.399
+Moving on to...
+
+00:08:36.399 --> 00:08:39.279
+What did I want to show you? So it was
+
+00:08:39.279 --> 00:08:40.800
+almost... Yes, org-elements.
+
+00:08:40.800 --> 00:08:44.959
+So what I'm going to do... I'm going to...
+
+00:08:44.959 --> 00:08:48.399
+I believe it's org-element-parse-buffer.
+
+00:08:48.399 --> 00:08:51.920
+So I was telling you about org-elements
+before.
+
+00:08:51.920 --> 00:08:53.600
+And the main command--sorry, the main
+
+00:08:53.600 --> 00:08:55.760
+function that is used by org-element
+
+00:08:55.760 --> 00:08:58.560
+is -parse-buffer. What it does (and you can
+
+00:08:58.560 --> 00:08:59.760
+see the docstring) is that it
+
+00:08:59.760 --> 00:09:01.040
+recursively parsed
+
+00:09:01.040 --> 00:09:03.279
+the buffer and returned structure,
+
+00:09:03.279 --> 00:09:04.959
+structure being all the information that
+
+00:09:04.959 --> 00:09:06.320
+we have in this buffer.
+
+00:09:06.320 --> 00:09:07.680
+So just to show you a little more, we're
+
+00:09:07.680 --> 00:09:09.600
+going to move into a scratch buffer,
+
+00:09:09.600 --> 00:09:10.880
+and what we're going to do is that we're
+
+00:09:10.880 --> 00:09:12.800
+going to write this command
+
+00:09:12.800 --> 00:09:16.320
+org-element-parse-buffer, and we're going to check the
+
+00:09:16.320 --> 00:09:17.760
+output of this command.
+
+00:09:17.760 --> 00:09:19.600
+Sorry, not this one. We're going to go
+
+00:09:19.600 --> 00:09:22.000
+in the index. So in the index file, you have
+
+00:09:22.000 --> 00:09:23.680
+a title, you have a heading, you have a
+
+00:09:23.680 --> 00:09:25.120
+link, etc. etc.
+
+00:09:25.120 --> 00:09:26.880
+So what I'm going to do, I'm going to
+
+00:09:26.880 --> 00:09:28.560
+evaluate this text.
+
+00:09:28.560 --> 00:09:30.800
+Now at the bottom in the mini buffer,
+
+00:09:32.560 --> 00:09:36.160
+you see an AST, an abstract--
+
+00:09:36.160 --> 00:09:37.600
+obviously don't remember what the S
+
+00:09:37.600 --> 00:09:39.839
+stands for... Semantic?--
+
+00:09:39.839 --> 00:09:42.720
+Huh. Interesting. Anyway. A representation
+
+00:09:42.720 --> 00:09:43.519
+of the data
+
+00:09:43.519 --> 00:09:45.279
+in a way that is exploitable by a
+
+00:09:45.279 --> 00:09:47.600
+machine. Now what I'm going to do--
+
+00:09:47.600 --> 00:09:49.839
+syntax, thank you--so what I'm going to do,
+
+00:09:49.839 --> 00:09:52.000
+I'm going to paste it inside the buffer
+
+00:09:52.000 --> 00:09:54.480
+in a way that is humanly readable.
+
+00:09:54.480 --> 00:09:56.399
+You can see that we have plenty of
+
+00:09:56.399 --> 00:09:58.800
+information. We have a section which
+
+00:09:58.800 --> 00:10:05.040
+starts at the char 1, which ends at the
+character 45.
+
+00:10:05.040 --> 00:10:07.040
+We have the content... so "Emacs Scratch"--
+
+00:10:07.040 --> 00:10:10.240
+oh actually, no, never mind, I did
+something wrong, I ran
+
+00:10:10.240 --> 00:10:11.279
+it in the wrong buffer.
+
+00:10:11.279 --> 00:10:13.040
+So actually what I'm going to do, we're
+
+00:10:13.040 --> 00:10:14.399
+going to run this command
+
+00:10:14.399 --> 00:10:16.241
+with the selected window.
+
+00:10:16.241 --> 00:10:21.120
+Next window. Okay. That's a bit of live
+
+00:10:21.120 --> 00:10:23.760
+Elisp writing for you right now.
+
+00:10:23.760 --> 00:10:25.541
+Now if I evaluate this
+
+00:10:25.541 --> 00:10:28.480
+and paste the content of the buffer,
+
+00:10:28.480 --> 00:10:30.208
+it is doing its bidding.
+
+00:10:30.208 --> 00:10:32.399
+So now what we have...
+
+00:10:32.399 --> 00:10:34.959
+We have a section. We have the keyword
+
+00:10:34.959 --> 00:10:38.160
+TITLE which you see right here. You have
+the :value.
+
+00:10:38.160 --> 00:10:39.920
+If we scroll down a little bit, we have a
+
+00:10:39.920 --> 00:10:42.480
+heading which is right here. We have the
+contents,
+
+00:10:42.480 --> 00:10:44.800
+which should be... Yes, the content is not
+
+00:10:44.800 --> 00:10:46.320
+listed exactly here, but you have a
+
+00:10:46.320 --> 00:10:48.079
+paragraph, which is this,
+
+00:10:48.079 --> 00:10:50.308
+and then you have a link, etc. etc.
+
+00:10:50.308 --> 00:10:54.640
+It is all parentheses if you're not
+used to Elisp.
+
+00:10:54.640 --> 00:10:56.320
+Like, right now, I've selected only the
+
+00:10:56.320 --> 00:10:58.640
+content of the parenthesis link.
+
+00:10:58.640 --> 00:11:00.399
+I can move like this etc. etc.
+
+00:11:00.399 --> 00:11:01.680
+I'm not... It's not an Elisp
+
+00:11:01.680 --> 00:11:05.279
+lesson that I'm doing right now, but
+basically,
+
+00:11:05.279 --> 00:11:08.399
+if we were to use the default tooling of
+
+00:11:08.399 --> 00:11:12.480
+org-roam--Org Mode, sorry, I keep
+getting too confused, sorry for that--
+
+00:11:12.480 --> 00:11:14.240
+would be extremely slow to do what
+
+00:11:14.240 --> 00:11:16.399
+we're doing. Some people
+
+00:11:16.399 --> 00:11:19.760
+who are doing some implementations of the
+
+00:11:19.760 --> 00:11:22.240
+Zettelkasten method inside Emacs have
+
+00:11:22.240 --> 00:11:26.480
+opted for this method, but the problem
+is that
+
+00:11:26.480 --> 00:11:28.975
+we think that it scales poorly.
+
+00:11:28.975 --> 00:11:33.920
+Now some other people have decided to
+not do with a database,
+
+00:11:33.920 --> 00:11:35.600
+and what they do is that they use a tool
+
+00:11:35.600 --> 00:11:37.200
+which is called ripgrep.
+
+00:11:37.200 --> 00:11:38.800
+You might know grep, which is a tool that
+
+00:11:38.800 --> 00:11:41.279
+allows you to search
+
+00:11:41.279 --> 00:11:43.440
+a file, the content of a file, for a line.
+
+00:11:43.440 --> 00:11:46.560
+So for instance, if we open vterm here,
+
+00:11:46.560 --> 00:11:48.041
+let's see... I've opened the term.
+
+00:11:48.041 --> 00:11:51.308
+I am in this repository.
+
+00:11:51.308 --> 00:11:54.399
+What I'm going to do is that I'm
+going to
+
+00:11:54.399 --> 00:11:58.000
+load the content of the file.
+
+00:11:58.000 --> 00:12:02.480
+How am I going to do this? I need to
+move to bash.
+
+00:12:02.480 --> 00:12:06.160
+Let's do grep
+
+00:12:06.160 --> 00:12:08.000
+for the line... Which links did we
+
+00:12:08.000 --> 00:12:09.519
+have... grep foo
+
+00:12:09.519 --> 00:12:11.600
+inside the file. Is it three? I can't
+
+00:12:11.600 --> 00:12:13.760
+remember. Okay. Let's do this.
+
+00:12:13.760 --> 00:12:18.079
+Am I working? No.
+
+00:12:18.079 --> 00:12:21.279
+Let's go for four? Why, is it eight?
+
+00:12:21.279 --> 00:12:22.800
+Oh, you know what, I'm just
+
+00:12:22.800 --> 00:12:24.320
+going to copy the name.
+
+00:12:24.320 --> 00:12:28.240
+There we go.
+
+00:12:28.240 --> 00:12:33.680
+Problem with live presentation, always.
+
+00:12:33.680 --> 00:12:34.800
+You know what, I'm struggling, so I'm
+
+00:12:34.800 --> 00:12:36.720
+going to drop this point. Anyway,
+
+00:12:36.720 --> 00:12:38.560
+so grep is a simple tool that allows you
+
+00:12:38.560 --> 00:12:40.000
+to search the content of a file, but
+
+00:12:40.000 --> 00:12:42.480
+ripgrep is a solution that is written
+
+00:12:42.480 --> 00:12:44.160
+in Rust and which is supposed to be--
+
+00:12:44.160 --> 00:12:48.880
+well, not supposed--which is far more
+capable.
+
+00:12:48.880 --> 00:12:50.639
+Now I'd like to talk to you about the future
+
+00:12:50.639 --> 00:12:52.320
+of org-roam. Right now, I've told you about
+
+00:12:52.320 --> 00:12:54.720
+the general concept, which is about using
+
+00:12:54.720 --> 00:12:58.399
+this SQL database, and about
+
+00:12:58.399 --> 00:13:01.519
+playing nicely with Org Mode.
+
+00:13:01.519 --> 00:13:03.279
+We think that there's something great
+
+00:13:03.279 --> 00:13:05.200
+that we can do about org-roam.
+
+00:13:05.200 --> 00:13:08.320
+Now I've been talking with a lot of
+
+00:13:08.320 --> 00:13:10.880
+people who are behind Org Mode and you
+know,
+
+00:13:10.880 --> 00:13:14.000
+they've told us, "Do you think that
+
+00:13:14.000 --> 00:13:16.880
+org-roam could have something to bring to
+
+00:13:16.880 --> 00:13:18.320
+Org Mode? Let's say,
+
+00:13:18.320 --> 00:13:20.160
+backlinks? Is there something that we
+
+00:13:20.160 --> 00:13:21.600
+could be doing to
+
+00:13:21.600 --> 00:13:25.600
+import backlinks into Org Mode?"
+
+00:13:25.600 --> 00:13:29.200
+We thought about it with Jethro and the
+problem is
+
+00:13:29.200 --> 00:13:30.800
+we've always tried to have an
+
+00:13:30.800 --> 00:13:32.720
+experimental ground,
+
+00:13:32.720 --> 00:13:36.320
+a very isolated portion of your
+system
+
+00:13:36.320 --> 00:13:37.920
+where we could track backlinks and
+
+00:13:37.920 --> 00:13:40.320
+that's why we use
+
+00:13:40.320 --> 00:13:42.320
+a slipbox directory, so that we only
+
+00:13:42.320 --> 00:13:44.880
+track backlinks in one specific place.
+
+00:13:44.880 --> 00:13:47.040
+But now, because there seems to be so
+
+00:13:47.040 --> 00:13:48.639
+much interest about the method and we
+
+00:13:48.639 --> 00:13:50.079
+have so much backing
+
+00:13:50.079 --> 00:13:52.480
+on Github--we have like
+
+00:13:53.120 --> 00:13:56.399
+2,600 stars, which is mind-boggling to us---
+
+00:13:56.399 --> 00:13:59.760
+because we have so much success...
+
+00:13:59.760 --> 00:14:02.399
+We have plenty of ideas about the future.
+
+00:14:02.399 --> 00:14:06.000
+One of the key parts of development
+being the writing
+
+00:14:06.000 --> 00:14:08.480
+of an external parser for org-roam.
+
+00:14:08.480 --> 00:14:11.839
+So I've been telling you about org-element.
+org-element runs
+
+00:14:11.839 --> 00:14:15.279
+inside Emacs. But what if
+
+00:14:15.279 --> 00:14:19.519
+we wrote a background process
+
+00:14:19.519 --> 00:14:23.600
+that could read a file, an Org Mode file,
+
+00:14:23.600 --> 00:14:25.760
+extract the same type of data that you
+
+00:14:25.760 --> 00:14:27.440
+see on your screen right now,
+
+00:14:27.440 --> 00:14:30.959
+so that we could use to update a
+database
+
+00:14:30.959 --> 00:14:33.279
+that we could use to compute the
+
+00:14:33.279 --> 00:14:34.959
+links, so that we could use it
+
+00:14:34.959 --> 00:14:37.360
+to show org-roam server all the
+
+00:14:37.360 --> 00:14:39.519
+connections between your nodes?
+
+00:14:39.519 --> 00:14:41.360
+Now there is a path of improvement here
+
+00:14:41.360 --> 00:14:44.320
+that is extremely important to us.
+
+00:14:44.320 --> 00:14:47.360
+But you know, that's the technical aspect.
+
+00:14:47.360 --> 00:14:48.639
+I'm out of time. I'm just going to
+
+00:14:48.639 --> 00:14:51.360
+take one more minute to finish on this
+point.
+
+00:14:51.360 --> 00:14:57.680
+We believe that org-roam has the
+potential to be a
+
+00:14:57.680 --> 00:14:58.399
+think tank,
+
+00:14:58.399 --> 00:15:00.639
+in a way, for Org Mode and the way we
+
+00:15:00.639 --> 00:15:01.920
+think about
+
+00:15:01.920 --> 00:15:04.079
+note-taking in general. I've stressed a
+
+00:15:04.079 --> 00:15:06.079
+great deal in my first presentation--
+
+00:15:06.079 --> 00:15:10.240
+sorry, the one I did before Noorah--that
+
+00:15:10.240 --> 00:15:12.480
+org-roam is really great as a way to
+
+00:15:12.480 --> 00:15:14.639
+think organically about knowledge.
+
+00:15:14.639 --> 00:15:17.600
+Honestly, we want to put the
+
+00:15:17.600 --> 00:15:19.279
+theory into practice with org-roam.
+
+00:15:19.279 --> 00:15:22.079
+We are holding something which has the
+
+00:15:22.079 --> 00:15:23.440
+potential to be
+
+00:15:23.440 --> 00:15:25.120
+a great factor of innovation for the
+
+00:15:25.120 --> 00:15:27.279
+future, whether it be Org Mode
+
+00:15:27.279 --> 00:15:29.600
+or even for software in general. You know,
+
+00:15:29.600 --> 00:15:31.440
+the way to think about...
+
+00:15:31.440 --> 00:15:34.880
+build nodes of knowledge in a way,
+
+00:15:34.880 --> 00:15:37.440
+and the way to represent all those ids
+
+00:15:37.440 --> 00:15:38.240
+with the graph...
+
+00:15:38.240 --> 00:15:41.600
+the way to basically have a note-taking
+system that
+
+00:15:41.600 --> 00:15:43.360
+corresponds to the research that
+
+00:15:43.360 --> 00:15:45.839
+corresponds to the way you think.
+
+00:15:45.839 --> 00:15:51.839
+I believe we are really excited about
+this and if you
+
+00:15:51.839 --> 00:15:55.360
+want to keep track of the development of
+org-roam
+
+00:15:55.360 --> 00:15:57.600
+on my YouTube channel (which is already
+
+00:15:57.600 --> 00:15:59.279
+linked a little earlier
+
+00:15:59.279 --> 00:16:02.639
+inside the pad),
+
+00:16:02.639 --> 00:16:04.240
+I do have a Youtube channel where I try
+
+00:16:04.240 --> 00:16:06.079
+to present novelties
+
+00:16:06.079 --> 00:16:09.519
+or the new stuff inside org-roam.
+
+00:16:09.519 --> 00:16:11.519
+I'll also be recording videos about the
+
+00:16:11.519 --> 00:16:13.360
+technical aspects, about the direction
+
+00:16:13.360 --> 00:16:15.519
+that we're taking with org-roam.
+
+00:16:15.519 --> 00:16:18.000
+If you want to talk with us we are
+
+00:16:18.000 --> 00:16:22.160
+always available either on IRC
+channel #org-roam
+
+00:16:22.160 --> 00:16:25.279
+(I believe there's a dash between org
+and roam) but also
+
+00:16:25.279 --> 00:16:27.279
+on the Discourse. I'll be putting all
+
+00:16:27.279 --> 00:16:29.440
+the links inside the conversation.
+
+00:16:29.440 --> 00:16:31.199
+And that's me done. So, thank you for
+
+00:16:31.199 --> 00:16:32.880
+listening. Now I'll be taking
+
+00:16:32.880 --> 00:16:34.560
+three minutes of questions so as to be
+
+00:16:34.560 --> 00:16:37.360
+right on time.
+
+00:16:37.360 --> 00:16:39.920
+(Amin: Many thanks for your awesome talk, Leo.)
+
+00:16:39.920 --> 00:16:41.120
+Leo: Thank you.
+
+00:16:41.120 --> 00:16:43.040
+I'm just refreshing the page, and I'm
+
+00:16:43.040 --> 00:16:44.959
+going to scroll down to my
+
+00:16:44.959 --> 00:16:49.600
+talk if I can find the right section.
+
+00:16:49.600 --> 00:16:53.120
+Let me just scroll a little bit.
+
+00:16:53.120 --> 00:16:55.600
+Reproducible Emacs. No, I think it's
+
+00:16:55.600 --> 00:16:57.120
+slower...
+
+00:16:57.120 --> 00:16:59.279
+We have so many questions, so at the
+
+00:16:59.279 --> 00:17:00.639
+same time I'm pissed because I can't
+
+00:17:00.639 --> 00:17:01.120
+find it,
+
+00:17:01.120 --> 00:17:02.639
+but I'm really, really impressed by the
+
+00:17:02.639 --> 00:17:05.360
+number of questions that we had. (Amin: Oh yeah.
+
+00:17:05.360 --> 00:17:07.760
+Yours is about I think about line 600
+
+00:17:07.760 --> 00:17:08.260
+or so.)
+
+00:17:09.919 --> 00:17:13.199
+Leo: Yes, got it splendid.
+
+00:17:13.199 --> 00:17:16.400
+So, the questions. "So why not run a
+
+00:17:16.400 --> 00:17:18.160
+background Emacs for parsing instead of
+
+00:17:18.160 --> 00:17:19.919
+implementing a new parser?"
+
+00:17:19.919 --> 00:17:22.559
+I believe we've had this question.
+
+00:17:22.559 --> 00:17:24.480
+I was giving a similar talk
+
+00:17:24.480 --> 00:17:27.600
+earlier this week--and this week,
+
+00:17:27.600 --> 00:17:31.679
+I'm not French, this week, sorry--and
+
+00:17:31.679 --> 00:17:33.008
+someone asked me this question.
+
+00:17:33.008 --> 00:17:35.679
+The thing is running a background Emacs
+
+00:17:35.679 --> 00:17:38.320
+process... You know, it sounds great,
+
+00:17:38.320 --> 00:17:40.400
+but it's also very limited because all
+
+00:17:40.400 --> 00:17:41.760
+the problems we have
+
+00:17:41.760 --> 00:17:45.520
+about concurrency, about threads in Emacs...
+
+00:17:45.520 --> 00:17:48.160
+Well, yes, we can forward all our calls to
+
+00:17:48.160 --> 00:17:49.200
+background Emacs
+
+00:17:49.200 --> 00:17:52.240
+just like when you export a file
+
+00:17:52.240 --> 00:17:56.400
+with... Sorry,
+
+00:17:56.400 --> 00:17:57.840
+Amin, could you mute microphone when
+
+00:17:57.840 --> 00:17:58.799
+you're not speaking, it's a little hard for
+
+00:17:58.799 --> 00:18:01.520
+me to concentrate?
+
+00:18:01.520 --> 00:18:03.600
+That's fine. Don't worry.
+
+00:18:04.640 --> 00:18:06.960
+Where was I? I'm sorry. The
+
+00:18:06.960 --> 00:18:07.679
+question. Yes.
+
+00:18:07.679 --> 00:18:09.280
+So, basically, forwarding all the
+
+00:18:09.280 --> 00:18:11.840
+questions--sorry, all our queries to a
+
+00:18:11.840 --> 00:18:13.039
+background Emacs.
+
+00:18:13.039 --> 00:18:16.000
+That is what org export is doing. Like,
+
+00:18:16.000 --> 00:18:17.960
+you have the ability to
+
+00:18:17.960 --> 00:18:20.799
+asynchronously export LaTeX documents,
+
+00:18:20.799 --> 00:18:22.080
+ODT documents from
+
+00:18:22.080 --> 00:18:24.480
+Org Mode. It uses a very minimal
+
+00:18:24.480 --> 00:18:26.000
+version of Emacs to do that. But the
+
+00:18:26.000 --> 00:18:28.240
+problem is that we think that it's not
+
+00:18:28.240 --> 00:18:30.320
+going to scale as well as a true
+
+00:18:30.320 --> 00:18:33.039
+genuine background process. Since we
+
+00:18:33.039 --> 00:18:34.480
+have been talking a lot
+
+00:18:34.480 --> 00:18:36.000
+as far as the Org Mode development is
+
+00:18:36.000 --> 00:18:38.160
+concerned about,
+
+00:18:38.160 --> 00:18:40.640
+writing a proper parser, writing a proper
+
+00:18:40.640 --> 00:18:43.440
+documentation for the parsing of Org
+Mode files and
+
+00:18:43.440 --> 00:18:46.000
+writing a proper document standard
+
+00:18:46.000 --> 00:18:48.400
+that says, okay, this is how the Org Mode
+
+00:18:48.400 --> 00:18:50.000
+format works, you know, to
+
+00:18:50.000 --> 00:18:52.000
+basically have a way to not fall into
+
+00:18:52.000 --> 00:18:55.120
+the traps of Markdown which has many
+
+00:18:55.120 --> 00:18:56.559
+many standards...
+
+00:18:56.559 --> 00:18:58.480
+We need to think about this and we
+
+00:18:58.480 --> 00:19:00.000
+believe that org-roam has
+
+00:19:00.000 --> 00:19:03.120
+the ability to think about these
+questions.
+
+00:19:03.120 --> 00:19:04.640
+As a person, I'm also really interested
+
+00:19:04.640 --> 00:19:06.400
+about this.
+
+00:19:06.400 --> 00:19:07.840
+I can take the questions, Amin, so don't
+
+00:19:07.840 --> 00:19:10.160
+worry about feeding them to me. So how
+
+00:19:10.160 --> 00:19:11.760
+often does the
+
+00:19:11.760 --> 00:19:13.679
+DB index get updated in order to contain
+
+00:19:13.679 --> 00:19:15.175
+changes within the Org files?
+
+00:19:15.175 --> 00:19:17.360
+So we have two ways: either we
+
+00:19:17.360 --> 00:19:19.440
+update as soon as you save a file,
+
+00:19:19.440 --> 00:19:22.160
+or we have a timer which is an idle
+
+00:19:22.160 --> 00:19:23.600
+timer, which waits... Okay
+
+00:19:23.600 --> 00:19:25.600
+the user has not inputted
+
+00:19:25.600 --> 00:19:26.960
+anything in the last
+
+00:19:26.960 --> 00:19:29.360
+five seconds, so it's time to queue a
+
+00:19:29.360 --> 00:19:30.080
+database--parsing--
+
+00:19:30.080 --> 00:19:33.039
+a rebuild of the data, not an
+
+00:19:33.039 --> 00:19:33.919
+incrementation
+
+00:19:33.919 --> 00:19:37.120
+of the database, I should say.
+
+00:19:37.120 --> 00:19:38.799
+"Did you ever think of..." I believe I
+
+00:19:38.799 --> 00:19:40.320
+have one more minute and then
+
+00:19:40.320 --> 00:19:42.240
+I'll hand it to the other folks.
+
+00:19:42.240 --> 00:19:43.440
+"Do you ever think of opening up or
+
+00:19:43.440 --> 00:19:45.440
+designing the SQL DB as a general Org
+
+00:19:45.440 --> 00:19:47.200
+speed up tool outside of org-roam so that
+
+00:19:47.200 --> 00:19:49.141
+other libraries that do execute
+
+00:19:49.141 --> 00:19:50.208
+complex queries are able to use it?"
+
+00:19:50.208 --> 00:19:53.341
+Well, a lot of people have been working
+on this
+
+00:19:53.341 --> 00:19:54.640
+I believe alphapapa has been
+
+00:19:54.640 --> 00:19:56.480
+thinking quite a lot about this.
+
+00:19:56.480 --> 00:20:01.120
+org-ql is... The ql stands for
+query language.
+
+00:20:01.120 --> 00:20:04.720
+I can't remember now what the backend is
+
+00:20:04.720 --> 00:20:08.080
+for org-ql, but the idea is
+
+00:20:08.080 --> 00:20:10.080
+relatively the same, you know. It's about
+
+00:20:10.080 --> 00:20:13.039
+finding ways to optimize the way we
+
+00:20:13.039 --> 00:20:14.880
+store the data about an Org Mode file
+
+00:20:14.880 --> 00:20:16.640
+and how we retrieve it,
+
+00:20:16.640 --> 00:20:20.400
+and SQL for us seems to seem to be a
+
+00:20:20.400 --> 00:20:22.159
+good idea. Now, obviously,
+
+00:20:22.159 --> 00:20:24.240
+maybe we could do something about
+
+00:20:24.240 --> 00:20:26.080
+Org Mode, but the problem is, I think, a
+
+00:20:26.080 --> 00:20:27.360
+background process
+
+00:20:27.360 --> 00:20:30.799
+is not necessarily in
+
+00:20:30.799 --> 00:20:32.960
+the core mentality of Org Mode. But it's
+
+00:20:32.960 --> 00:20:36.080
+definitely something that we
+could suggest
+
+00:20:36.080 --> 00:20:37.679
+when we are a little more mature,
+because, well,
+
+00:20:37.679 --> 00:20:40.960
+org-roam was started last February and so
+
+00:20:40.960 --> 00:20:43.008
+it's a fairly young project in a way.
+
+00:20:43.008 --> 00:20:45.840
+I see plenty more questions, but
+
+00:20:45.840 --> 00:20:48.400
+I'm out of time, folks, so I'm not sure.
+
+00:20:48.400 --> 00:20:50.559
+The other speaker is probably ready.
+
+00:20:50.559 --> 00:20:52.559
+So what I'll do is I'll probably try to
+
+00:20:52.559 --> 00:20:54.000
+answer your questions when I get the
+
+00:20:54.000 --> 00:20:55.360
+time inside the pad,
+
+00:20:55.360 --> 00:20:58.960
+but feel free to ping me on IRC
+
+00:20:58.960 --> 00:21:01.039
+or on the different channels we have
+
+00:21:01.039 --> 00:21:02.320
+for org-roam, and
+
+00:21:02.320 --> 00:21:04.000
+I'll answer them with as much
+
+00:21:04.000 --> 00:21:05.520
+energy as I can gather.
+
+00:21:05.520 --> 00:21:07.600
+All right, thank you so much.
+
+00:21:08.880 --> 00:21:10.808
+(Amin: Thank you again very much, Leo.)
+
+00:21:10.808 --> 00:21:14.000
+Leo: And that was me done for today. So
+you'll see me at the end, but I'm
+
+00:21:14.000 --> 00:21:15.840
+officially done and I am free of
+
+00:21:15.840 --> 00:21:17.840
+thoughts. I can focus on
+
+00:21:17.840 --> 00:21:22.640
+sleeping, probably. (Amin: Awesome)
+
+00:21:22.640 --> 00:21:27.760
+Leo: See you guys later. Bye.
diff --git a/2020/subtitles/emacsconf-2020--19-sharing-blogs-and-more-with-org-webring--brett-gilio.vtt b/2020/subtitles/emacsconf-2020--19-sharing-blogs-and-more-with-org-webring--brett-gilio.vtt
new file mode 100644
index 00000000..f2db5398
--- /dev/null
+++ b/2020/subtitles/emacsconf-2020--19-sharing-blogs-and-more-with-org-webring--brett-gilio.vtt
@@ -0,0 +1,664 @@
+WEBVTT
+
+00:00:01.120 --> 00:00:03.120
+Hi, my name is Brett Gillio,
+
+00:00:03.120 --> 00:00:04.560
+and today I'll be sharing a project that
+
+00:00:04.560 --> 00:00:05.920
+several people and I have been working on
+
+00:00:05.920 --> 00:00:08.480
+for the past few months, called
+org-webring.
+
+00:00:08.480 --> 00:00:10.559
+The essential idea behind org-webring
+
+00:00:10.559 --> 00:00:12.240
+is to take the power of creating a
+
+00:00:12.240 --> 00:00:13.679
+website with Org Mode
+
+00:00:13.679 --> 00:00:15.360
+and its built-in features to control
+
+00:00:15.360 --> 00:00:17.520
+HTML and XML output
+
+00:00:17.520 --> 00:00:19.119
+and utilize it to share blogs, git
+
+00:00:19.119 --> 00:00:22.640
+commits, or other rss or atom static
+feed content
+
+00:00:22.640 --> 00:00:25.920
+to share directly with your audiences.
+
+00:00:25.920 --> 00:00:28.362
+My website is created entirely using
+
+00:00:28.362 --> 00:00:30.000
+Org Mode. I love the amount of
+
+00:00:30.000 --> 00:00:31.679
+flexibility it offers me while keeping
+
+00:00:31.679 --> 00:00:34.079
+everything quite simple.
+
+00:00:34.079 --> 00:00:35.920
+I am able to put information about
+
+00:00:35.920 --> 00:00:37.600
+myself, a blog,
+
+00:00:37.600 --> 00:00:40.079
+and my org-webring tool directly on on
+
+00:00:40.079 --> 00:00:42.879
+the home page using simple Org syntax.
+
+00:00:42.879 --> 00:00:44.640
+As you can see, I am currently displaying
+
+00:00:44.640 --> 00:00:46.239
+three posts on my website.
+
+00:00:46.239 --> 00:00:48.239
+The first is the Guix Day announcement,
+
+00:00:48.239 --> 00:00:49.840
+the second is a quarterly financial
+
+00:00:49.840 --> 00:00:51.039
+update from SourceHut,
+
+00:00:51.039 --> 00:00:52.320
+and the third is a post from
+
+00:00:52.320 --> 00:00:55.120
+Drew DeVault's blog. Drew DeVault,
+by the way--
+
+00:00:55.120 --> 00:00:57.680
+his open ring is what helped inspire
+
+00:00:57.680 --> 00:01:01.359
+what is today org-webring.
+All this information is
+
+00:01:01.359 --> 00:01:03.440
+gathered using a sort of manifest file
+
+00:01:03.440 --> 00:01:05.360
+that org-webring will use to acquire
+
+00:01:05.360 --> 00:01:06.746
+and place the information in the
+
+00:01:06.746 --> 00:01:07.760
+correct format
+
+00:01:07.760 --> 00:01:10.000
+according to your specification.
+
+00:01:10.000 --> 00:01:11.729
+additionally, you can see that the
+
+00:01:11.729 --> 00:01:14.159
+Guix Day announcement's post is pinned.
+
+00:01:14.159 --> 00:01:17.200
+Stylization is likewise controlled by
+using CSS.
+
+00:01:17.200 --> 00:01:18.960
+You can add nice subtle color changes on
+
+00:01:18.960 --> 00:01:20.720
+mouse hover or control the size of the
+
+00:01:20.720 --> 00:01:23.759
+flexboxes, all using standard CSS.
+
+00:01:23.759 --> 00:01:28.320
+Let's examine a simple scenario of using
+org-webring.
+
+00:01:28.320 --> 00:01:30.400
+After you have org-webring installed,
+
+00:01:30.400 --> 00:01:32.000
+you'll be able to create a manifest file
+
+00:01:32.000 --> 00:01:33.759
+that looks something like this.
+
+00:01:33.759 --> 00:01:35.680
+This particular manifest file is an
+
+00:01:35.680 --> 00:01:37.840
+example offered in the repository under
+
+00:01:37.840 --> 00:01:39.520
+the assets directory.
+
+00:01:39.520 --> 00:01:41.200
+Please feel free to utilize them as a
+
+00:01:41.200 --> 00:01:42.640
+starting point if you are interested in
+
+00:01:42.640 --> 00:01:44.399
+using org-webring.
+
+00:01:44.399 --> 00:01:46.320
+As you can see here, we are able to place
+
+00:01:46.320 --> 00:01:48.640
+an RSS or ATOM feed in this file and
+
+00:01:48.640 --> 00:01:50.479
+specify information about the feed we
+
+00:01:50.479 --> 00:01:51.920
+wish to produce.
+
+00:01:51.920 --> 00:01:54.640
+For example: the total number of items
+
+00:01:54.640 --> 00:01:56.159
+and the total number of entries per
+
+00:01:56.159 --> 00:01:57.439
+source item.
+
+00:01:57.439 --> 00:01:59.439
+Additionally, you're able to filter posts
+
+00:01:59.439 --> 00:02:02.079
+you feel would not be relevant to your
+web ring.
+
+00:02:02.079 --> 00:02:03.843
+We can take this example file,
+
+00:02:03.843 --> 00:02:13.120
+run the dispatch and see the result.
+
+00:02:13.120 --> 00:02:15.280
+The web ring displays a proper summary
+
+00:02:15.280 --> 00:02:17.760
+set to a character limit you can specify.
+
+00:02:17.760 --> 00:02:19.453
+Additionally, all the links in the
+
+00:02:19.453 --> 00:02:20.814
+web ring are navigatable and
+
+00:02:20.814 --> 00:02:22.560
+will open in a new tab.
+
+00:02:22.560 --> 00:02:24.719
+That way, if someone wishes to
+view the content,
+
+00:02:24.719 --> 00:02:25.920
+they simply need to
+
+00:02:25.920 --> 00:02:30.319
+click on the title or their source name.
+
+00:02:30.319 --> 00:02:32.879
+Now this particular example is not
+
+00:02:32.879 --> 00:02:34.800
+stylized because we have not given the
+
+00:02:34.800 --> 00:02:37.120
+website a CSS file to reference.
+
+00:02:37.120 --> 00:02:38.720
+Let's examine what is happening from
+
+00:02:38.720 --> 00:02:40.319
+behind the scenes a little bit.
+
+00:02:40.319 --> 00:02:42.621
+From inside of the Org Mode file,
+
+00:02:42.621 --> 00:02:48.800
+let's run the org-webring function.
+
+00:02:48.800 --> 00:02:51.280
+As you can see, it takes that XML file
+
+00:02:51.280 --> 00:02:54.239
+and processes it into the correct HTML.
+
+00:02:54.239 --> 00:02:55.938
+You will then be able to embed this
+
+00:02:55.938 --> 00:02:57.758
+Org function into another Org file
+
+00:02:57.758 --> 00:03:00.080
+to be able to display it on your website.
+
+00:03:00.080 --> 00:03:05.440
+Pretty neat. Let's look at
+another example.
+
+00:03:05.440 --> 00:03:07.360
+On my website, we have an example of
+
+00:03:07.360 --> 00:03:09.519
+using org-webring to reply to another
+
+00:03:09.519 --> 00:03:10.800
+blog post.
+
+00:03:10.800 --> 00:03:12.178
+What I have here is a post from
+
+00:03:12.178 --> 00:03:14.640
+Drew DeVault's blog. It is showcased clearly at
+
+00:03:14.640 --> 00:03:16.239
+the top as a single entry,
+
+00:03:16.239 --> 00:03:18.220
+and you can see it is pinned.
+
+00:03:18.220 --> 00:03:19.889
+The pinning functionality ensures
+
+00:03:19.889 --> 00:03:20.800
+that this post is
+
+00:03:20.800 --> 00:03:21.852
+moved to the front of the
+
+00:03:21.852 --> 00:03:23.120
+hypothetical web ring
+
+00:03:23.120 --> 00:03:25.232
+and guaranteeing its visibility.
+
+00:03:25.232 --> 00:03:27.599
+This is then coupled with a
+few changes, such as
+
+00:03:27.599 --> 00:03:29.840
+disabling the generation time
+
+00:03:29.840 --> 00:03:31.552
+(which would not be relevant to the
+readers)
+
+00:03:31.552 --> 00:03:34.000
+and a change of the text
+in the header
+
+00:03:34.000 --> 00:03:37.040
+to demonstrate it is indeed
+used as a reply.
+
+00:03:37.040 --> 00:03:39.599
+An example of this is also provided in
+
+00:03:39.599 --> 00:03:42.319
+the assets directory.
+
+00:03:42.319 --> 00:03:44.146
+Last, we can use org-webring
+
+00:03:44.146 --> 00:03:45.519
+as a blog planet,
+
+00:03:45.519 --> 00:03:47.599
+which is one of my favorites. This takes
+
+00:03:47.599 --> 00:03:49.360
+after the Emacs Life planet, which I
+
+00:03:49.360 --> 00:03:51.722
+believe is moderated
+by Sacha and others,
+
+00:03:51.722 --> 00:03:53.200
+as well as the Haskell and
+
+00:03:53.200 --> 00:03:54.720
+OCaml planets.
+
+00:03:54.720 --> 00:03:56.959
+A planet, for the uninitiated, is a
+
+00:03:56.959 --> 00:03:58.485
+curated form of content sharing
+
+00:03:58.485 --> 00:04:00.159
+about a set of topics.
+
+00:04:00.159 --> 00:04:02.400
+The Emacs Life, Haskell, and OCaml planets,
+
+00:04:02.400 --> 00:04:03.439
+as their names imply,
+
+00:04:03.439 --> 00:04:07.200
+cover Emacs, Haskell, and OCaml blogs
+respectively.
+
+00:04:07.200 --> 00:04:08.962
+Likewise, my planet covers
+
+00:04:08.962 --> 00:04:10.310
+programming language theory
+
+00:04:10.310 --> 00:04:12.239
+and category theory, primarily.
+
+00:04:12.239 --> 00:04:13.920
+It works in essentially the same way as
+
+00:04:13.920 --> 00:04:15.840
+the org-webring. You provide it with a
+
+00:04:15.840 --> 00:04:17.519
+list of feeds that get parsed.
+
+00:04:17.519 --> 00:04:19.317
+However, unlike the web ring,
+
+00:04:19.317 --> 00:04:21.086
+the planet function has no limits
+
+00:04:21.086 --> 00:04:23.040
+on the number of entries per source,
+
+00:04:23.040 --> 00:04:24.639
+and the display number of posts is
+
+00:04:24.639 --> 00:04:27.600
+increased significantly.
+
+00:04:27.600 --> 00:04:29.759
+The syndicates or sources have their
+
+00:04:29.759 --> 00:04:31.429
+feeds shown visibly to users
+
+00:04:31.429 --> 00:04:33.759
+who may wish to fetch them.
+
+00:04:33.759 --> 00:04:35.440
+A planet is typically meant to be a
+
+00:04:35.440 --> 00:04:37.040
+standalone page and not something you
+
+00:04:37.040 --> 00:04:39.440
+would embed in another page like a
+web ring.
+
+00:04:39.440 --> 00:04:41.680
+All this is provided under a single file
+
+00:04:41.680 --> 00:04:43.009
+in the org-webring package,
+
+00:04:43.009 --> 00:04:45.280
+as the code reuse is quite high.
+
+00:04:45.280 --> 00:04:48.240
+Aside from my own website, we can view
+
+00:04:48.240 --> 00:04:49.840
+the org-webring being used in neat
+
+00:04:49.840 --> 00:04:52.400
+context with varying stylizations.
+
+00:04:52.400 --> 00:04:53.642
+Here's a nice example
+
+00:04:53.642 --> 00:04:57.680
+from Mikhail Kirillov at w96k.ru,
+
+00:04:57.680 --> 00:05:00.960
+featuring a four symmetrical
+flexbox layout,
+
+00:05:00.960 --> 00:05:02.324
+an appropriate Russian language
+
+00:05:02.324 --> 00:05:04.225
+time encoding, which can be also set
+
+00:05:04.225 --> 00:05:07.360
+in the org-webring manifest.
+
+00:05:07.360 --> 00:05:08.892
+Another is an example from
+
+00:05:08.892 --> 00:05:10.400
+Camilo Mesa Gaete (https://cmezagaete.cl/),
+
+00:05:10.400 --> 00:05:13.280
+using ox-hugo with org-webring and
+
+00:05:13.280 --> 00:05:14.320
+likewise correctly
+
+00:05:14.320 --> 00:05:17.680
+features the correct Spanish
+time encoding.
+
+00:05:17.680 --> 00:05:22.240
+Last, my other website workircd.org
+
+00:05:22.240 --> 00:05:24.265
+shows the web ring being used
+
+00:05:24.265 --> 00:05:27.440
+in combination with Ocaml's tool
+link Soupault,
+
+00:05:27.440 --> 00:05:32.800
+to fetch git logs for that project.
+
+00:05:32.800 --> 00:05:34.639
+You may obtain org-webring directly
+
+00:05:34.639 --> 00:05:37.039
+from SourceHut and add it to your
+load-path.
+
+00:05:37.039 --> 00:05:39.639
+Additionally, you will need to obtain
+
+00:05:39.639 --> 00:05:43.280
+xmlgen.el, which is unfortunately
+not yet on ELPA,
+
+00:05:43.280 --> 00:05:44.960
+although I have been trying to get this
+
+00:05:44.960 --> 00:05:46.800
+rectified so I do not have to rewrite
+
+00:05:46.800 --> 00:05:49.840
+org-webring's XML to HTML parser.
+
+00:05:49.840 --> 00:05:51.759
+Or if you're one of the cool kids using
+
+00:05:51.759 --> 00:05:54.000
+my favorite package manager, GNU Guix,
+
+00:05:54.000 --> 00:06:06.319
+you can obtain it like so.
+
+00:06:06.319 --> 00:06:08.248
+All of the documentation for
+
+00:06:08.248 --> 00:06:09.840
+org-webring is available
+
+00:06:09.840 --> 00:06:12.000
+on the SourceHut website or in the README
+
+00:06:12.000 --> 00:06:15.039
+file after you check it out
+from the git tree.
+
+00:06:15.039 --> 00:06:16.586
+There are so many ways to
+
+00:06:16.586 --> 00:06:18.240
+customize org-webring,
+
+00:06:18.240 --> 00:06:20.671
+as there are just as many variables
+
+00:06:20.671 --> 00:06:23.056
+as there are parts and components
+
+00:06:23.056 --> 00:06:25.759
+to org-webring for you to change.
+
+00:06:25.759 --> 00:06:27.759
+All of this is able to be done simply
+
+00:06:27.759 --> 00:06:31.600
+from that same manifest file.
+
+00:06:31.600 --> 00:06:33.919
+Now, taking a moment to examine some of
+
+00:06:33.919 --> 00:06:35.759
+the org-webring code,
+
+00:06:35.759 --> 00:06:37.840
+you can see it is all done in the same
+
+00:06:37.840 --> 00:06:40.160
+Elisp that everybody else is used to.
+
+00:06:40.160 --> 00:06:43.120
+Now, admittedly, my Elisp is not as
+
+00:06:43.120 --> 00:06:45.977
+strong as probably somebody else's,
+
+00:06:45.977 --> 00:06:48.678
+so if you are an Elisp ninja,
+
+00:06:48.678 --> 00:06:50.479
+please feel free to
+
+00:06:50.479 --> 00:06:52.633
+send a contribution or a patch
+
+00:06:52.633 --> 00:06:54.880
+and tell me what I'm doing wrong.
+
+00:06:54.880 --> 00:06:56.836
+I am not going to be offended
+
+00:06:56.836 --> 00:06:58.233
+by that at all. I would love to
+
+00:06:58.233 --> 00:06:59.982
+see this code to improve.
+
+00:06:59.982 --> 00:07:04.160
+Otherwise, I don't think it's half bad,
+
+00:07:04.160 --> 00:07:06.800
+considering that my experience with
+
+00:07:06.800 --> 00:07:08.880
+Lisps is usually in Scheme.
+
+00:07:08.880 --> 00:07:10.774
+Me moving from Scheme to Elisp
+
+00:07:10.774 --> 00:07:13.680
+was not all that hard.
+
+00:07:13.680 --> 00:07:17.120
+Taking the syntax apart,
+
+00:07:17.120 --> 00:07:20.880
+we're able to see that we can
+
+00:07:20.880 --> 00:07:23.331
+fetch URLs, which are then
+
+00:07:23.331 --> 00:07:26.505
+parsed and filtered, sorted, and then
+
+00:07:26.505 --> 00:07:29.151
+kind of reverse-sorted, rather,
+
+00:07:29.151 --> 00:07:32.960
+to get you to the web ring result.
+
+00:07:32.960 --> 00:07:34.639
+All of this is then passed through
+
+00:07:34.639 --> 00:07:37.840
+different parts of the xmlgen.el
+
+00:07:37.840 --> 00:07:40.280
+functions which gets you that HTML
+
+00:07:40.280 --> 00:07:43.520
+that you saw earlier.
+
+00:07:43.520 --> 00:07:45.599
+org-webring is fully free software
+
+00:07:45.599 --> 00:07:47.440
+distributed under the GNU General Public
+
+00:07:47.440 --> 00:07:49.280
+License versions 3 or later.
+
+00:07:49.280 --> 00:07:52.000
+At your option, I love accepting patches
+
+00:07:52.000 --> 00:07:53.120
+and collaborating.
+
+00:07:53.120 --> 00:07:55.166
+I hope you will consider
+using org-webring.
+
+00:07:55.166 --> 00:07:56.720
+You can contact me on
+
+00:07:56.720 --> 00:07:59.390
+Freenode, OFTC, or many other
+
+00:07:59.390 --> 00:08:01.520
+IRC networks at brettgillio,
+
+00:08:01.520 --> 00:08:05.120
+or email me at brettg@gnu.org.
+
+00:08:05.120 --> 00:08:09.327
+Thanks so much to Amin Bandali and the
+EmacsConf organizers,
+
+00:08:09.327 --> 00:08:13.840
+and to you, the audience, thanks.