From 885826b801e0cf4bb068e1dfe68b923b8c304f38 Mon Sep 17 00:00:00 2001 From: Sacha Chua Date: Wed, 16 Dec 2020 01:38:22 -0500 Subject: Rename --- ...y-the-end-of-the-debate--leo-vivier-autogen.vtt | 1342 -------------------- ...s-finally-the-end-of-the-debate--leo-vivier.vtt | 1342 ++++++++++++++++++++ 2 files changed, 1342 insertions(+), 1342 deletions(-) delete mode 100644 2020/subtitles/emacsconf-2020--12-one-big-ass-org-file-or-multiple-tiny-ones-finally-the-end-of-the-debate--leo-vivier-autogen.vtt create mode 100644 2020/subtitles/emacsconf-2020--12-one-big-ass-org-file-or-multiple-tiny-ones-finally-the-end-of-the-debate--leo-vivier.vtt diff --git a/2020/subtitles/emacsconf-2020--12-one-big-ass-org-file-or-multiple-tiny-ones-finally-the-end-of-the-debate--leo-vivier-autogen.vtt b/2020/subtitles/emacsconf-2020--12-one-big-ass-org-file-or-multiple-tiny-ones-finally-the-end-of-the-debate--leo-vivier-autogen.vtt deleted file mode 100644 index 8e82bdbd..00000000 --- a/2020/subtitles/emacsconf-2020--12-one-big-ass-org-file-or-multiple-tiny-ones-finally-the-end-of-the-debate--leo-vivier-autogen.vtt +++ /dev/null @@ -1,1342 +0,0 @@ -WEBVTT - -00:00:00.240 --> 00:00:01.520 -([Amin Bandali]: I mean, we are ahead of -the schedule - -00:00:01.520 --> 00:00:03.679 -a little bit, but I mean we also were - -00:00:03.679 --> 00:00:05.680 -a little bit earlier in the day. - -00:00:05.680 --> 00:00:09.040 -Yeah, I'd say that's fine. Go for it. - -00:00:09.040 --> 00:00:10.800 -Take it away.) - -00:00:10.800 --> 00:00:14.240 -[Leo Vivier]: Sure. Thank you. So am I live already? - -00:00:14.240 --> 00:00:16.640 -[Amin]: Yep, you're live. - -00:00:16.640 --> 00:00:17.359 -[Leo]: Hello - -00:00:17.359 --> 00:00:18.880 -Splendid. So I'll just start the timer to - -00:00:18.880 --> 00:00:20.720 -make sure that I don't go overboard. - -00:00:20.720 --> 00:00:22.720 -All right. ([BBB:] you are now muted) Okay, good - -00:00:22.720 --> 00:00:24.160 -to go now. - -00:00:24.160 --> 00:00:26.960 -Hello again, everyone! I hope you had, - -00:00:26.960 --> 00:00:28.240 -well, quite a lot of talks - -00:00:28.240 --> 00:00:30.880 -ever since the last one I did, and all - -00:00:30.880 --> 00:00:32.000 -more interesting - -00:00:32.000 --> 00:00:35.040 -one after the other. - -00:00:35.040 --> 00:00:36.559 -You know, I'm a bit in a bit of a weird - -00:00:36.559 --> 00:00:38.239 -spot right now, because I'm supposed to - -00:00:38.239 --> 00:00:40.239 -be presenting to you (as you can see on -my screen) - -00:00:40.239 --> 00:00:42.879 -"One big-ass Org file or multiple tiny ones: - -00:00:42.879 --> 00:00:44.960 -finally, the end of the debate," - -00:00:44.960 --> 00:00:48.160 -and it sounds about as clickbaity - -00:00:48.160 --> 00:00:49.760 -as you can possibly get with those - -00:00:49.760 --> 00:00:51.280 -topics. By the way, - -00:00:51.280 --> 00:00:54.000 -credit where credit is due, the title - -00:00:54.000 --> 00:00:55.760 -is not mine. It's actually from Bastien - -00:00:55.760 --> 00:00:57.039 -Guerry, the current Org - -00:00:57.039 --> 00:01:00.719 -maintainer. Yeah, I wanted to - -00:01:00.719 --> 00:01:03.199 -talk to you a little bit today about - -00:01:03.199 --> 00:01:04.879 -this question because - -00:01:04.879 --> 00:01:07.600 -if you are used to going on -reddit.com/r/emacs , - -00:01:07.600 --> 00:01:09.600 -you know the subreddit that we -have, - -00:01:09.600 --> 00:01:11.840 -if you go on Hacker News often, you know - -00:01:11.840 --> 00:01:13.200 -it's a question that - -00:01:13.200 --> 00:01:16.000 -you see pop up every once in a while. - -00:01:16.000 --> 00:01:17.520 -"Should I be using - -00:01:17.520 --> 00:01:20.640 -one big file, or should I be using - -00:01:20.640 --> 00:01:24.799 -a lot of tiny files?" I believe you -know - -00:01:24.799 --> 00:01:27.600 -we've got defenders on both sides. If I - -00:01:27.600 --> 00:01:29.520 -just show you one example... - -00:01:29.520 --> 00:01:32.479 -We have Karl Voit. He's one - -00:01:32.479 --> 00:01:35.280 -of the organizers for the conference. - -00:01:35.280 --> 00:01:37.920 -He is the guy who probably has the - -00:01:37.920 --> 00:01:40.000 -biggest Org Mode files - -00:01:40.000 --> 00:01:42.000 -right now in all the people I know, and - -00:01:42.000 --> 00:01:43.759 -god knows I know plenty of people use - -00:01:43.759 --> 00:01:44.479 -Org Mode. - -00:01:44.479 --> 00:01:46.880 -But if you just look at this line--I hope - -00:01:46.880 --> 00:01:48.320 -it's not too small; you just - -00:01:48.320 --> 00:01:51.360 -make it a little larger--but - -00:01:51.360 --> 00:01:56.719 -Carl basically has a file with - -00:01:56.719 --> 00:02:01.759 -126,000 lines. I'm just going to pause - -00:02:01.759 --> 00:02:04.560 -and try to have you imagine how large a - -00:02:04.560 --> 00:02:06.399 -file it actually is. - -00:02:06.399 --> 00:02:08.399 -Just think about all of these lines - -00:02:08.399 --> 00:02:10.000 -being tasks in your days. - -00:02:10.000 --> 00:02:13.200 -Think about all those lines being about -little thoughts - -00:02:13.200 --> 00:02:14.400 -you know that you've had throughout the - -00:02:14.400 --> 00:02:17.200 -day or project that you were working on. - -00:02:17.200 --> 00:02:19.680 -It's massive. You know one of the - -00:02:19.680 --> 00:02:23.920 -problems that Karl Voit actually -approaches on - -00:02:23.920 --> 00:02:27.680 -this topic is that it takes him roughly - -00:02:27.680 --> 00:02:30.160 -20 seconds to get his Org agenda going, - -00:02:30.160 --> 00:02:32.400 -which is a massive amount of time. - -00:02:32.400 --> 00:02:35.680 -I mean, we have very fast computers now. - -00:02:35.680 --> 00:02:37.720 -You know, ever since Emacs was created in - -00:02:37.720 --> 00:02:42.319 -1976, computers... I have no idea how much faster - -00:02:42.319 --> 00:02:43.440 -they've gotten. - -00:02:43.440 --> 00:02:47.760 -And yet, you know, for 100,000 lines, - -00:02:47.760 --> 00:02:49.599 -Emacs seems to be choking. It's - -00:02:49.599 --> 00:02:51.120 -certainly not reasonable, in a way, to - -00:02:51.120 --> 00:02:52.720 -have to wait 20 seconds - -00:02:52.720 --> 00:02:55.360 -just for your entire file to be parsed. - -00:02:55.360 --> 00:02:57.040 -So basically what I want to do-- - -00:02:57.040 --> 00:02:58.480 -By the way, I forgot to introduce the - -00:02:58.480 --> 00:03:00.879 -presentation, but I'm Leo Vivier. I did this - -00:03:00.879 --> 00:03:02.879 -before, for those who were around. - -00:03:02.879 --> 00:03:05.519 -I help maintain a software which - -00:03:05.519 --> 00:03:06.640 -is called org-roam, - -00:03:06.640 --> 00:03:08.560 -and that's the expertise that I have on - -00:03:08.560 --> 00:03:09.840 -the topic. - -00:03:09.840 --> 00:03:11.760 -Actually, if you go online, I do have a - -00:03:11.760 --> 00:03:13.599 -Github page. I will make sure that you - -00:03:13.599 --> 00:03:15.440 -have all the links available afterwards. - -00:03:15.440 --> 00:03:18.640 -But I do publish my init files, - -00:03:18.640 --> 00:03:20.720 -and you can see, if you scroll at the - -00:03:20.720 --> 00:03:22.319 -bottom, I have a little demonstration - -00:03:22.319 --> 00:03:23.200 -which shows you - -00:03:23.200 --> 00:03:25.519 -the fancy things that I can do with my - -00:03:25.519 --> 00:03:28.159 -Org Mode setup. That might be even -interesting - -00:03:28.159 --> 00:03:30.720 -in light of the talk you've just had - -00:03:30.720 --> 00:03:32.319 -about GTD stuff, because - -00:03:32.319 --> 00:03:34.080 -the first one is about how I handle my - -00:03:34.080 --> 00:03:36.159 -projects, the second one is about - -00:03:36.159 --> 00:03:39.680 -the flow from a task as I work on it... - -00:03:39.680 --> 00:03:41.519 -So I won't spend too much time on -this, but - -00:03:41.519 --> 00:03:43.120 -basically that's my expertise. - -00:03:43.120 --> 00:03:45.440 -I have spent eight years - -00:03:45.440 --> 00:03:46.959 -working with Org Mode, - -00:03:46.959 --> 00:03:48.959 -three of them actually thinking about - -00:03:48.959 --> 00:03:50.720 -writing packages. - -00:03:50.720 --> 00:03:54.080 -The thing is, if I go into a little - -00:03:54.080 --> 00:03:55.680 -bit of detail (and obviously it's only a - -00:03:55.680 --> 00:03:57.760 -lighting talk, so I won't have time to - -00:03:57.760 --> 00:04:00.720 -actually go really in depth about it), but - -00:04:00.720 --> 00:04:01.840 -there is something - -00:04:01.840 --> 00:04:03.599 -in the Org Mode library which is - -00:04:03.599 --> 00:04:05.200 -called org-element. - -00:04:05.200 --> 00:04:07.000 -You have the name right there, - -00:04:07.000 --> 00:04:08.319 -org-element.el, - -00:04:08.319 --> 00:04:12.319 -.el being for Elisp file. As you -can see, - -00:04:12.319 --> 00:04:14.799 -the page is on the Worg wiki, so it's - -00:04:14.799 --> 00:04:16.239 -accessible by everyone. - -00:04:16.239 --> 00:04:19.280 -It's basically the API that - -00:04:19.280 --> 00:04:23.759 -Org Mode uses to parse Org Mode files. - -00:04:23.759 --> 00:04:26.400 -For those who don't know, parsing - -00:04:26.400 --> 00:04:27.199 -means basically - -00:04:27.199 --> 00:04:29.360 -checking a file, checking all the contents - -00:04:29.360 --> 00:04:30.880 -of the file, and extracting all the - -00:04:30.880 --> 00:04:32.880 -information that we need from that file. - -00:04:32.880 --> 00:04:34.960 -As you can imagine, you all have - -00:04:34.960 --> 00:04:36.560 -Org Mode files in your mind, - -00:04:36.560 --> 00:04:38.240 -well you know they can be fairly complex. - -00:04:38.240 --> 00:04:39.840 -You can have properties, - -00:04:39.840 --> 00:04:41.759 -you can have contextual information, like - -00:04:41.759 --> 00:04:43.040 -if you write a line - -00:04:43.040 --> 00:04:45.199 -which starts at column zero (which means - -00:04:45.199 --> 00:04:46.560 -at the left), - -00:04:46.560 --> 00:04:48.000 -it doesn't have the same - -00:04:48.000 --> 00:04:49.680 -meaning, whether or not it is - -00:04:49.680 --> 00:04:52.639 -before the beginning of a headline or if - -00:04:52.639 --> 00:04:54.160 -it is after the beginning of a headline. - -00:04:54.160 --> 00:04:55.199 -It's going to be - -00:04:55.199 --> 00:04:57.759 -relatively different, hierarchically - -00:04:57.759 --> 00:04:58.960 -speaking. - -00:04:58.960 --> 00:05:02.639 -So the problem, when it comes to the -question of - -00:05:02.639 --> 00:05:05.759 -many files versus one big file or - -00:05:05.759 --> 00:05:08.560 -few big files, is that we always have to - -00:05:08.560 --> 00:05:09.600 -keep in mind - -00:05:09.600 --> 00:05:12.880 -what org-element wants you to do. - -00:05:12.880 --> 00:05:15.680 -The thing is, there are plenty of - -00:05:15.680 --> 00:05:17.440 -problems when it comes to parsing files, - -00:05:17.440 --> 00:05:19.330 -the first one being obviously - -00:05:19.330 --> 00:05:22.160 -that Emacs is a single-thread - -00:05:22.160 --> 00:05:24.880 -process (or has some threading - -00:05:24.880 --> 00:05:26.400 -capabilities; we're not going to go into - -00:05:26.400 --> 00:05:28.639 -the details right now, that's not my goal). - -00:05:28.639 --> 00:05:32.400 -It makes it incredibly hard to - -00:05:32.400 --> 00:05:35.919 -parallelize parsing processes - -00:05:35.919 --> 00:05:39.280 -with the current technology. - -00:05:39.280 --> 00:05:42.320 -So you'd have to imagine that if you - -00:05:42.320 --> 00:05:44.080 -have a very large file--if you go back - -00:05:44.080 --> 00:05:46.479 -to the example of Karl Voit from before: - -00:05:46.479 --> 00:05:49.199 -100,000 lines--that means that you have - -00:05:49.199 --> 00:05:50.000 -to scan - -00:05:50.000 --> 00:05:52.320 -through every single line, basically. - -00:05:52.320 --> 00:05:53.759 -Because sometimes... Let's just say that - -00:05:53.759 --> 00:05:56.080 -you have a property drawer, for instance, - -00:05:56.080 --> 00:05:59.440 -which tells you, oh okay, this tree - -00:05:59.440 --> 00:06:03.520 -has the tag :foo:. So the problem is, there - -00:06:03.520 --> 00:06:05.120 -are multiple ways for you - -00:06:05.120 --> 00:06:08.720 -to define a tag. You can use the - -00:06:08.720 --> 00:06:11.840 -usual way, which is about wrapping in - -00:06:11.840 --> 00:06:14.000 -columns the :tag: at the end of a heading. - -00:06:14.000 --> 00:06:16.160 -For instance, if I... (I'm not going to - -00:06:16.160 --> 00:06:17.360 -switch to Emacs, that's going to waste too - -00:06:17.360 --> 00:06:18.240 -much time) - -00:06:18.240 --> 00:06:21.520 -That's one way to say your tag. -But say, - -00:06:21.520 --> 00:06:23.520 -you have tag inheritance, which means - -00:06:23.520 --> 00:06:25.360 -that when you have a parent with a tag, - -00:06:25.360 --> 00:06:28.160 -you also want the child to inherit the - -00:06:28.160 --> 00:06:29.520 -tag. If you have - -00:06:29.520 --> 00:06:32.400 -first heading with the tag :foo:, you have - -00:06:32.400 --> 00:06:33.680 -the first subheading, - -00:06:33.680 --> 00:06:37.520 -and the tag :foo: is implied. Now imagine - -00:06:37.520 --> 00:06:39.680 -having to do that with a file that is - -00:06:39.680 --> 00:06:41.039 -completely nested, - -00:06:41.039 --> 00:06:44.160 -a file that has maybe 9, 10, - -00:06:44.160 --> 00:06:47.280 -11 levels of depth to it. - -00:06:47.280 --> 00:06:49.039 -It's mind-bogglingly complicated for the - -00:06:49.039 --> 00:06:51.039 -software to do that, knowing that... I've - -00:06:51.039 --> 00:06:52.639 -told you about tags, - -00:06:52.639 --> 00:06:55.919 -but any property can be inheritable. - -00:06:55.919 --> 00:06:58.639 -Anything like priorities, even. Though why - -00:06:58.639 --> 00:07:00.240 -would you do this? - -00:07:00.240 --> 00:07:03.759 -You can have groups. You can have all this. - -00:07:03.759 --> 00:07:05.599 -And as someone who went through the trouble - -00:07:05.599 --> 00:07:07.199 -of optimizing his Org agenda... So - -00:07:07.199 --> 00:07:08.560 -basically, if we go back to the - -00:07:08.560 --> 00:07:12.160 -GIFs--oh god we've already had this -discussion - -00:07:12.160 --> 00:07:14.479 -between the "git" and "magit" and now I've - -00:07:14.479 --> 00:07:16.400 -started "gif" and "gif" and I only have one - -00:07:16.400 --> 00:07:18.080 -more minute left to do so, so let's just - -00:07:18.080 --> 00:07:19.599 -say I'm going to say "gif" - -00:07:19.599 --> 00:07:23.599 -just to spite people... So if you go on - -00:07:23.599 --> 00:07:26.880 -the way I organize my agenda, what I did - -00:07:26.880 --> 00:07:29.120 -in order to keep my agenda build time - -00:07:29.120 --> 00:07:30.960 -under two seconds, - -00:07:30.960 --> 00:07:33.440 -is that I've rewritten a whole lot of - -00:07:33.440 --> 00:07:36.560 -codes to be able to parse my Org agenda -files. - -00:07:36.560 --> 00:07:40.080 -So the thing is, I'm going to be talking - -00:07:40.080 --> 00:07:41.360 -more about this later. - -00:07:41.360 --> 00:07:43.440 -I only have, let's say, one minute to - -00:07:43.440 --> 00:07:44.479 -conclude. - -00:07:44.479 --> 00:07:47.440 -So as you've gathered, I'm not going to - -00:07:47.440 --> 00:07:48.479 -be giving you the answer right now. - -00:07:48.479 --> 00:07:51.039 -I'm going to be talking about - -00:07:51.039 --> 00:07:53.440 -org-roam a little later, which is about - -00:07:53.440 --> 00:07:55.680 -following the principle of having many - -00:07:55.680 --> 00:07:57.759 -small files. - -00:07:57.759 --> 00:08:01.120 -But as someone who has been using - -00:08:01.120 --> 00:08:02.960 -one large file to manage my life, - -00:08:02.960 --> 00:08:04.879 -you know, I'm sitting on the fence. - -00:08:04.879 --> 00:08:08.319 -I do not know which one is the best, - -00:08:08.319 --> 00:08:10.560 -but I hope that my presentation has - -00:08:10.560 --> 00:08:12.240 -given you a little idea - -00:08:12.240 --> 00:08:15.199 -of what goes on behind the principles. - -00:08:15.520 --> 00:08:16.560 -You also need to think about the - -00:08:16.560 --> 00:08:18.560 -philosophy behind the organization of - -00:08:18.560 --> 00:08:19.120 -your notes. - -00:08:19.120 --> 00:08:21.039 -I hope to be approaching this topic - -00:08:21.039 --> 00:08:23.280 -with you in about - -00:08:23.280 --> 00:08:25.360 -two hours or so (maybe one hour actually). - -00:08:25.360 --> 00:08:27.520 -I'm actually finished. I've decided to - -00:08:27.520 --> 00:08:28.960 -leave you two minutes of questions. - -00:08:28.960 --> 00:08:31.520 -If someone could feed me the - -00:08:31.520 --> 00:08:32.880 -questions, that might be best, - -00:08:32.880 --> 00:08:34.399 -because I don't want... oh actually I can - -00:08:34.399 --> 00:08:36.240 -just open the pad. - -00:08:36.240 --> 00:08:39.919 -I can just open it. Give me a second, okay. - -00:08:40.800 --> 00:08:43.039 -Just loading up. I might stop showing - -00:08:43.039 --> 00:08:43.839 -my screen. - -00:08:43.839 --> 00:08:46.959 -That might make it easier. So I mean if - -00:08:46.959 --> 00:08:47.519 -you can make - -00:08:47.519 --> 00:08:49.360 -myself big now on the screen, that would - -00:08:49.360 --> 00:08:52.000 -be splendid. ([Amin]: yeah sure) - -00:08:52.000 --> 00:08:55.839 -Thank you. Where are we... - -00:08:55.839 --> 00:08:58.720 -Question 12. Okay, so what's better, one - -00:08:58.720 --> 00:09:00.160 -big file or...? - -00:09:00.160 --> 00:09:02.160 -Is it a jab to tell me that I - -00:09:02.160 --> 00:09:03.120 -haven't answered the question because - -00:09:03.120 --> 00:09:04.240 -someone just - -00:09:04.240 --> 00:09:06.320 -asked me the question? Well, personally, if - -00:09:06.320 --> 00:09:08.080 -I were to give you a quick answer in - -00:09:08.560 --> 00:09:11.600 -20 seconds, personally, I think it's a - -00:09:11.600 --> 00:09:13.920 -question that is contextually based. - -00:09:13.920 --> 00:09:15.680 -Do you want something that is efficient - -00:09:15.680 --> 00:09:17.839 -as far as optimization is concerned? - -00:09:17.839 --> 00:09:21.200 -Then you need to think about - -00:09:21.200 --> 00:09:23.440 -this. Personally, for all the - -00:09:23.440 --> 00:09:24.640 -organization that I do, - -00:09:24.640 --> 00:09:27.760 -all this stuff, all the TODOs that I -handle, - -00:09:27.760 --> 00:09:30.080 -I like to do this in one simple big file - -00:09:30.080 --> 00:09:31.519 -because you benefit from all the - -00:09:31.519 --> 00:09:33.760 -refiling capabilities of Org Mode, - -00:09:33.760 --> 00:09:37.200 -so I would do that. But for knowledge -management, - -00:09:37.200 --> 00:09:40.080 -for note-taking and all this, well I'd - -00:09:40.080 --> 00:09:41.279 -much rather follow the - -00:09:41.279 --> 00:09:42.959 -org-roam way of doing things, which is - -00:09:42.959 --> 00:09:44.480 -about having many - -00:09:44.480 --> 00:09:48.240 -small files. I'm not getting any - -00:09:48.240 --> 00:09:50.000 -more questions. I'm not sure if there is - -00:09:50.000 --> 00:09:52.080 -one on IRC that could be fed to me. - -00:09:52.080 --> 00:09:57.040 -Otherwise, I'm happy to pass over to -the next speaker. - -00:09:57.040 --> 00:09:59.360 -By the way, just before I finish, your - -00:09:59.360 --> 00:10:01.360 -world is a lie. It's not a three-piece - -00:10:01.360 --> 00:10:04.399 -suit. I'm wearing jeans below, so I hope - -00:10:04.399 --> 00:10:06.520 -that satisfies your curiosity. - -00:10:10.640 --> 00:10:12.640 -Okay, there's one more question appearing. - -00:10:12.640 --> 00:10:15.040 -"but otherwise one big file to have - -00:10:15.040 --> 00:10:17.680 -everything..." So I'm putting you on the - -00:10:17.680 --> 00:10:19.760 -spot, I believe. It was such a short talk. - -00:10:19.760 --> 00:10:21.040 -You know the problem is, - -00:10:21.040 --> 00:10:24.720 -I just wanted to give you a little -answer. - -00:10:24.720 --> 00:10:26.959 -A little, you know, path of thinking on - -00:10:26.959 --> 00:10:27.920 -this topic. - -00:10:27.920 --> 00:10:29.839 -Obviously it's a topic I could be - -00:10:29.839 --> 00:10:31.600 -spending 40 minutes on, - -00:10:31.600 --> 00:10:33.200 -but I'm going to be drained, you're going to - -00:10:33.200 --> 00:10:35.120 -be drained, nobody's going to be happy - -00:10:35.120 --> 00:10:35.680 -if I do this. - -00:10:39.440 --> 00:10:41.200 -Someone asked me if I switch between - -00:10:41.200 --> 00:10:42.880 -British and French accents. - -00:10:42.880 --> 00:10:46.560 -A little secret for you: - -00:10:46.560 --> 00:10:48.480 -when I'm stressed, I tend to revert to a - -00:10:48.480 --> 00:10:49.760 -French accent, - -00:10:49.760 --> 00:10:53.760 -so you can measure the amount of stress - -00:10:53.760 --> 00:10:56.160 -that I'm feeling during this talk - -00:10:56.160 --> 00:10:58.880 -with the amount of h's that I drop and - -00:10:58.880 --> 00:11:02.720 -the amount of sheer fright that you can -see sometimes - -00:11:02.720 --> 00:11:04.399 -in my eyes, when I'm thinking about what - -00:11:04.399 --> 00:11:08.240 -to say next. - -00:11:08.240 --> 00:11:10.880 -All right sir. So, Amin, do you believe - -00:11:10.880 --> 00:11:14.240 -we can leave it at that? I'll be... - -00:11:14.240 --> 00:11:15.519 -People will see plenty more of me - -00:11:15.519 --> 00:11:17.040 -later on, anyway. - -00:11:17.040 --> 00:11:20.640 -([Amin:] So, looking at the schedule, -I think - -00:11:20.640 --> 00:11:23.920 -your talk has until like 2:02, meaning - -00:11:23.920 --> 00:11:27.120 -like five or six minutes from now.) - -00:11:27.120 --> 00:11:28.000 -Oh, right. - -00:11:28.000 --> 00:11:30.000 -([Amin:] So if you do like to take one - -00:11:30.000 --> 00:11:31.680 -or two questions, to add two more - -00:11:31.680 --> 00:11:33.920 -questions, by all means.) - -00:11:33.920 --> 00:11:37.040 -So someone has asked me what is - -00:11:37.040 --> 00:11:38.320 -the Emacs - -00:11:38.320 --> 00:11:40.640 -icon (sorry, see, another French accent) - -00:11:40.640 --> 00:11:42.880 -here in my status bar... - -00:11:42.880 --> 00:11:44.880 -Oh sorry, I'm not sharing any more. - -00:11:44.880 --> 00:11:46.640 -I might just share again just so that - -00:11:46.640 --> 00:11:49.200 -everyone can catch a glimpse of that. - -00:11:49.200 --> 00:11:53.120 -There we go. Allow... - -00:11:53.120 --> 00:11:54.880 -So it should be... So if you could make me - -00:11:54.880 --> 00:11:56.240 -small again, Amin, I'm not sure if it's - -00:11:56.240 --> 00:11:56.959 -going to do it - -00:11:56.959 --> 00:12:00.480 -by itself, but I do have a little icon - -00:12:00.480 --> 00:12:01.839 -here in my status bar - -00:12:01.839 --> 00:12:04.480 -which is basically a way to interact - -00:12:04.480 --> 00:12:05.760 -with org-protocol. - -00:12:05.760 --> 00:12:09.120 -I'm not going to look for it right now, - -00:12:09.120 --> 00:12:10.800 -but it's a browser extension that is - -00:12:10.800 --> 00:12:12.399 -developed by one of my friends - -00:12:12.399 --> 00:12:15.680 -over at Ranger whose name is Li Fon (??) and - -00:12:16.160 --> 00:12:18.240 -it's very useful. I'm someone who uses a - -00:12:18.240 --> 00:12:22.320 -lot of Org protocols. And by the way, - -00:12:22.320 --> 00:12:25.279 -I used to teach English to high -schoolers, and they - -00:12:25.279 --> 00:12:27.279 -were supremely worried - -00:12:27.279 --> 00:12:29.600 -when I showed them my status line and they - -00:12:29.600 --> 00:12:34.000 -saw "kill" and "explore" in my status -line. - -00:12:34.000 --> 00:12:36.560 -As fellow Emacs users, you know that - -00:12:36.560 --> 00:12:40.880 -obviously kill means to kill a selection -of text and - -00:12:40.880 --> 00:12:44.320 -keep it inside your clipboard, - -00:12:44.320 --> 00:12:47.279 -but for my students, they - -00:12:47.279 --> 00:12:48.320 -were very worried - -00:12:48.320 --> 00:12:51.600 -about what their professor was up to - -00:12:51.600 --> 00:12:53.600 -during his nights. - -00:12:53.600 --> 00:12:55.120 -So let's see if we've got more questions. - -00:12:55.120 --> 00:12:56.560 -I'm showing you the questions on the - -00:12:56.560 --> 00:12:57.920 -rainbow. Let's see if - -00:12:57.920 --> 00:13:00.560 -we've got more. People are posting a - -00:13:00.560 --> 00:13:01.920 -lot of questions now. - -00:13:01.920 --> 00:13:03.920 -So how do you feel about archiving files - -00:13:03.920 --> 00:13:06.399 -in Org Mode and how can that work? - -00:13:06.399 --> 00:13:09.360 -So one of the things when we think about - -00:13:09.360 --> 00:13:13.920 -optimization is: yes, archiving done trees - -00:13:13.920 --> 00:13:16.240 -is a good idea because it means that if - -00:13:16.240 --> 00:13:17.920 -we go back to the org-element, the way it - -00:13:17.920 --> 00:13:20.399 -works (and we'll get into technical details - -00:13:20.399 --> 00:13:22.079 -afterwards; I'm giving a presentation - -00:13:22.079 --> 00:13:24.079 -about org-roam technical - -00:13:24.079 --> 00:13:26.880 -aspects, sorry, so I'll have a chance to - -00:13:26.880 --> 00:13:28.399 -expand a little more on this) - -00:13:28.399 --> 00:13:31.360 -but basically, org-element needs to... - -00:13:31.360 --> 00:13:35.279 -Every time it sees a TODO, it has to -consider it, - -00:13:35.279 --> 00:13:38.320 -even though it is a done TODO. Why? - -00:13:38.320 --> 00:13:40.000 -Because let's say, for instance, that in - -00:13:40.000 --> 00:13:41.839 -your agenda you want to activate - -00:13:41.839 --> 00:13:45.519 -log mode, which is going to show the - -00:13:45.519 --> 00:13:48.959 -tasks which are done... Now you could be - -00:13:48.959 --> 00:13:51.440 -clever and say, oh okay, the Org agenda does not - -00:13:51.440 --> 00:13:53.360 -need to show done items, so it's not going - -00:13:53.360 --> 00:13:54.880 -to look for them, - -00:13:54.880 --> 00:13:56.959 -but the problem is that org-element is - -00:13:56.959 --> 00:13:59.519 -always called. It always needs to parse -the buffer. - -00:13:59.519 --> 00:14:01.839 -You know, Nicolas Goaziou, who is the - -00:14:01.839 --> 00:14:03.519 -French developer who's worked a whole - -00:14:03.519 --> 00:14:05.040 -lot on org-element - -00:14:05.040 --> 00:14:07.440 -has gone through a lot of trouble to - -00:14:07.440 --> 00:14:11.600 -optimize org-element, but the problem is - -00:14:11.600 --> 00:14:13.279 -there's just so much that we can do with - -00:14:13.279 --> 00:14:14.720 -a concurrent process. - -00:14:14.720 --> 00:14:18.560 -Right now it leaves somewhat - -00:14:18.560 --> 00:14:21.120 -things to be desired, but - -00:14:21.120 --> 00:14:22.079 -we're working on it. - -00:14:22.079 --> 00:14:24.800 -One more time... I feel like I spent - -00:14:24.800 --> 00:14:25.839 -half of this talk - -00:14:25.839 --> 00:14:28.000 -teasing my next talks, but I'll be - -00:14:28.000 --> 00:14:29.360 -talking more about this - -00:14:29.360 --> 00:14:31.279 -in my future talks in about one to two - -00:14:31.279 --> 00:14:32.639 -hours. - -00:14:32.639 --> 00:14:34.959 -So, continuing with questions, how big are - -00:14:34.959 --> 00:14:36.079 -my Org files? - -00:14:36.079 --> 00:14:37.760 -So in the background, I'm just going to - -00:14:37.760 --> 00:14:40.720 -check how many lines I have in my main -file. - -00:14:40.720 --> 00:14:42.959 -In my own file, so the one I told you - -00:14:42.959 --> 00:14:44.079 -about where I keep all - -00:14:44.079 --> 00:14:47.279 -my TODO GTD stuff, I have - -00:14:47.279 --> 00:14:50.720 -38,000 lines, which is... - -00:14:50.720 --> 00:14:54.000 -It's sizable, definitely. - -00:14:54.000 --> 00:14:57.040 -But I do archive a lot of stuff, - -00:14:57.040 --> 00:14:58.480 -so that might be a slight difference - -00:14:58.480 --> 00:15:00.880 -between myself and Karl Voit, - -00:15:00.880 --> 00:15:02.079 -even though I don't remember if they - -00:15:02.079 --> 00:15:04.880 -actually archive stuff. - -00:15:04.880 --> 00:15:06.639 -So does it not consume more resources - -00:15:06.639 --> 00:15:08.480 -and time to load multiple files - -00:15:08.480 --> 00:15:10.839 -files than a large file or the same - -00:15:10.839 --> 00:15:12.560 -content now? - -00:15:12.560 --> 00:15:15.839 -Theoretically, yes, having many files - -00:15:15.839 --> 00:15:19.279 -open concurrently is slightly slower - -00:15:19.279 --> 00:15:22.240 -than having one main file opened. - -00:15:22.240 --> 00:15:24.160 -Now the problem is for those of you who - -00:15:24.160 --> 00:15:25.279 -have large files, - -00:15:25.279 --> 00:15:27.199 -you may have noticed that when you are - -00:15:27.199 --> 00:15:29.360 -scrolling in a very large file, - -00:15:29.360 --> 00:15:32.560 -it starts taking quite a bit of time. Why? - -00:15:32.560 --> 00:15:34.480 -It's because in Org Mode, - -00:15:34.480 --> 00:15:35.920 -you have a lot of content - -00:15:35.920 --> 00:15:38.959 -that is hidden, so when you have - -00:15:38.959 --> 00:15:40.959 -the view mode which hides as much stuff - -00:15:40.959 --> 00:15:43.600 -as possible, meaning that you only see - -00:15:43.600 --> 00:15:45.360 -the top heading--and I'm checking the - -00:15:45.360 --> 00:15:46.880 -time, Amin, don't worry, I'm finished - -00:15:46.880 --> 00:15:50.240 -on this one-- - -00:15:50.240 --> 00:15:52.160 -when you're hiding a whole lot of stuff, - -00:15:52.160 --> 00:15:54.720 -Org Mode needs to keep track, or I -should say, - -00:15:54.720 --> 00:15:56.959 -Emacs needs to keep track of which areas - -00:15:56.959 --> 00:15:58.160 -of text to show - -00:15:58.160 --> 00:16:00.560 -and which areas of text to hide. - -00:16:00.560 --> 00:16:02.320 -The problem is that when you're hiding stuff-- - -00:16:02.320 --> 00:16:04.480 -let's say you're moving from the - -00:16:04.480 --> 00:16:06.320 -first heading to the second heading, - -00:16:06.320 --> 00:16:08.639 -but you've got like 10,000 lines between - -00:16:08.639 --> 00:16:09.839 -those two headings-- - -00:16:09.839 --> 00:16:11.519 -well, Emacs needs to compute the - -00:16:11.519 --> 00:16:13.680 -difference between the two passages, - -00:16:13.680 --> 00:16:15.680 -and that takes quite a lot of time. - -00:16:15.680 --> 00:16:18.560 -That's why you might realize that it's -a little - -00:16:18.560 --> 00:16:21.199 -choppy when you start scrolling in large -files. - -00:16:21.199 --> 00:16:22.560 -Anyway I could be answering questions - -00:16:22.560 --> 00:16:25.120 -about Org Mode for literally two hours -straight, - -00:16:25.120 --> 00:16:26.720 -so I'm gonna hand it over to the next - -00:16:26.720 --> 00:16:28.639 -speakers. I'll be seeing - -00:16:28.639 --> 00:16:31.759 -you guys a little later. ([Amin]: Thank you - -00:16:31.759 --> 00:16:33.440 -very much, Leo.) - -00:16:33.440 --> 00:16:36.959 -Oh, thank you. ([Amin:] Yes. Bye.) - -00:16:36.959 --> 00:16:39.839 -Bye. diff --git a/2020/subtitles/emacsconf-2020--12-one-big-ass-org-file-or-multiple-tiny-ones-finally-the-end-of-the-debate--leo-vivier.vtt b/2020/subtitles/emacsconf-2020--12-one-big-ass-org-file-or-multiple-tiny-ones-finally-the-end-of-the-debate--leo-vivier.vtt new file mode 100644 index 00000000..8e82bdbd --- /dev/null +++ b/2020/subtitles/emacsconf-2020--12-one-big-ass-org-file-or-multiple-tiny-ones-finally-the-end-of-the-debate--leo-vivier.vtt @@ -0,0 +1,1342 @@ +WEBVTT + +00:00:00.240 --> 00:00:01.520 +([Amin Bandali]: I mean, we are ahead of +the schedule + +00:00:01.520 --> 00:00:03.679 +a little bit, but I mean we also were + +00:00:03.679 --> 00:00:05.680 +a little bit earlier in the day. + +00:00:05.680 --> 00:00:09.040 +Yeah, I'd say that's fine. Go for it. + +00:00:09.040 --> 00:00:10.800 +Take it away.) + +00:00:10.800 --> 00:00:14.240 +[Leo Vivier]: Sure. Thank you. So am I live already? + +00:00:14.240 --> 00:00:16.640 +[Amin]: Yep, you're live. + +00:00:16.640 --> 00:00:17.359 +[Leo]: Hello + +00:00:17.359 --> 00:00:18.880 +Splendid. So I'll just start the timer to + +00:00:18.880 --> 00:00:20.720 +make sure that I don't go overboard. + +00:00:20.720 --> 00:00:22.720 +All right. ([BBB:] you are now muted) Okay, good + +00:00:22.720 --> 00:00:24.160 +to go now. + +00:00:24.160 --> 00:00:26.960 +Hello again, everyone! I hope you had, + +00:00:26.960 --> 00:00:28.240 +well, quite a lot of talks + +00:00:28.240 --> 00:00:30.880 +ever since the last one I did, and all + +00:00:30.880 --> 00:00:32.000 +more interesting + +00:00:32.000 --> 00:00:35.040 +one after the other. + +00:00:35.040 --> 00:00:36.559 +You know, I'm a bit in a bit of a weird + +00:00:36.559 --> 00:00:38.239 +spot right now, because I'm supposed to + +00:00:38.239 --> 00:00:40.239 +be presenting to you (as you can see on +my screen) + +00:00:40.239 --> 00:00:42.879 +"One big-ass Org file or multiple tiny ones: + +00:00:42.879 --> 00:00:44.960 +finally, the end of the debate," + +00:00:44.960 --> 00:00:48.160 +and it sounds about as clickbaity + +00:00:48.160 --> 00:00:49.760 +as you can possibly get with those + +00:00:49.760 --> 00:00:51.280 +topics. By the way, + +00:00:51.280 --> 00:00:54.000 +credit where credit is due, the title + +00:00:54.000 --> 00:00:55.760 +is not mine. It's actually from Bastien + +00:00:55.760 --> 00:00:57.039 +Guerry, the current Org + +00:00:57.039 --> 00:01:00.719 +maintainer. Yeah, I wanted to + +00:01:00.719 --> 00:01:03.199 +talk to you a little bit today about + +00:01:03.199 --> 00:01:04.879 +this question because + +00:01:04.879 --> 00:01:07.600 +if you are used to going on +reddit.com/r/emacs , + +00:01:07.600 --> 00:01:09.600 +you know the subreddit that we +have, + +00:01:09.600 --> 00:01:11.840 +if you go on Hacker News often, you know + +00:01:11.840 --> 00:01:13.200 +it's a question that + +00:01:13.200 --> 00:01:16.000 +you see pop up every once in a while. + +00:01:16.000 --> 00:01:17.520 +"Should I be using + +00:01:17.520 --> 00:01:20.640 +one big file, or should I be using + +00:01:20.640 --> 00:01:24.799 +a lot of tiny files?" I believe you +know + +00:01:24.799 --> 00:01:27.600 +we've got defenders on both sides. If I + +00:01:27.600 --> 00:01:29.520 +just show you one example... + +00:01:29.520 --> 00:01:32.479 +We have Karl Voit. He's one + +00:01:32.479 --> 00:01:35.280 +of the organizers for the conference. + +00:01:35.280 --> 00:01:37.920 +He is the guy who probably has the + +00:01:37.920 --> 00:01:40.000 +biggest Org Mode files + +00:01:40.000 --> 00:01:42.000 +right now in all the people I know, and + +00:01:42.000 --> 00:01:43.759 +god knows I know plenty of people use + +00:01:43.759 --> 00:01:44.479 +Org Mode. + +00:01:44.479 --> 00:01:46.880 +But if you just look at this line--I hope + +00:01:46.880 --> 00:01:48.320 +it's not too small; you just + +00:01:48.320 --> 00:01:51.360 +make it a little larger--but + +00:01:51.360 --> 00:01:56.719 +Carl basically has a file with + +00:01:56.719 --> 00:02:01.759 +126,000 lines. I'm just going to pause + +00:02:01.759 --> 00:02:04.560 +and try to have you imagine how large a + +00:02:04.560 --> 00:02:06.399 +file it actually is. + +00:02:06.399 --> 00:02:08.399 +Just think about all of these lines + +00:02:08.399 --> 00:02:10.000 +being tasks in your days. + +00:02:10.000 --> 00:02:13.200 +Think about all those lines being about +little thoughts + +00:02:13.200 --> 00:02:14.400 +you know that you've had throughout the + +00:02:14.400 --> 00:02:17.200 +day or project that you were working on. + +00:02:17.200 --> 00:02:19.680 +It's massive. You know one of the + +00:02:19.680 --> 00:02:23.920 +problems that Karl Voit actually +approaches on + +00:02:23.920 --> 00:02:27.680 +this topic is that it takes him roughly + +00:02:27.680 --> 00:02:30.160 +20 seconds to get his Org agenda going, + +00:02:30.160 --> 00:02:32.400 +which is a massive amount of time. + +00:02:32.400 --> 00:02:35.680 +I mean, we have very fast computers now. + +00:02:35.680 --> 00:02:37.720 +You know, ever since Emacs was created in + +00:02:37.720 --> 00:02:42.319 +1976, computers... I have no idea how much faster + +00:02:42.319 --> 00:02:43.440 +they've gotten. + +00:02:43.440 --> 00:02:47.760 +And yet, you know, for 100,000 lines, + +00:02:47.760 --> 00:02:49.599 +Emacs seems to be choking. It's + +00:02:49.599 --> 00:02:51.120 +certainly not reasonable, in a way, to + +00:02:51.120 --> 00:02:52.720 +have to wait 20 seconds + +00:02:52.720 --> 00:02:55.360 +just for your entire file to be parsed. + +00:02:55.360 --> 00:02:57.040 +So basically what I want to do-- + +00:02:57.040 --> 00:02:58.480 +By the way, I forgot to introduce the + +00:02:58.480 --> 00:03:00.879 +presentation, but I'm Leo Vivier. I did this + +00:03:00.879 --> 00:03:02.879 +before, for those who were around. + +00:03:02.879 --> 00:03:05.519 +I help maintain a software which + +00:03:05.519 --> 00:03:06.640 +is called org-roam, + +00:03:06.640 --> 00:03:08.560 +and that's the expertise that I have on + +00:03:08.560 --> 00:03:09.840 +the topic. + +00:03:09.840 --> 00:03:11.760 +Actually, if you go online, I do have a + +00:03:11.760 --> 00:03:13.599 +Github page. I will make sure that you + +00:03:13.599 --> 00:03:15.440 +have all the links available afterwards. + +00:03:15.440 --> 00:03:18.640 +But I do publish my init files, + +00:03:18.640 --> 00:03:20.720 +and you can see, if you scroll at the + +00:03:20.720 --> 00:03:22.319 +bottom, I have a little demonstration + +00:03:22.319 --> 00:03:23.200 +which shows you + +00:03:23.200 --> 00:03:25.519 +the fancy things that I can do with my + +00:03:25.519 --> 00:03:28.159 +Org Mode setup. That might be even +interesting + +00:03:28.159 --> 00:03:30.720 +in light of the talk you've just had + +00:03:30.720 --> 00:03:32.319 +about GTD stuff, because + +00:03:32.319 --> 00:03:34.080 +the first one is about how I handle my + +00:03:34.080 --> 00:03:36.159 +projects, the second one is about + +00:03:36.159 --> 00:03:39.680 +the flow from a task as I work on it... + +00:03:39.680 --> 00:03:41.519 +So I won't spend too much time on +this, but + +00:03:41.519 --> 00:03:43.120 +basically that's my expertise. + +00:03:43.120 --> 00:03:45.440 +I have spent eight years + +00:03:45.440 --> 00:03:46.959 +working with Org Mode, + +00:03:46.959 --> 00:03:48.959 +three of them actually thinking about + +00:03:48.959 --> 00:03:50.720 +writing packages. + +00:03:50.720 --> 00:03:54.080 +The thing is, if I go into a little + +00:03:54.080 --> 00:03:55.680 +bit of detail (and obviously it's only a + +00:03:55.680 --> 00:03:57.760 +lighting talk, so I won't have time to + +00:03:57.760 --> 00:04:00.720 +actually go really in depth about it), but + +00:04:00.720 --> 00:04:01.840 +there is something + +00:04:01.840 --> 00:04:03.599 +in the Org Mode library which is + +00:04:03.599 --> 00:04:05.200 +called org-element. + +00:04:05.200 --> 00:04:07.000 +You have the name right there, + +00:04:07.000 --> 00:04:08.319 +org-element.el, + +00:04:08.319 --> 00:04:12.319 +.el being for Elisp file. As you +can see, + +00:04:12.319 --> 00:04:14.799 +the page is on the Worg wiki, so it's + +00:04:14.799 --> 00:04:16.239 +accessible by everyone. + +00:04:16.239 --> 00:04:19.280 +It's basically the API that + +00:04:19.280 --> 00:04:23.759 +Org Mode uses to parse Org Mode files. + +00:04:23.759 --> 00:04:26.400 +For those who don't know, parsing + +00:04:26.400 --> 00:04:27.199 +means basically + +00:04:27.199 --> 00:04:29.360 +checking a file, checking all the contents + +00:04:29.360 --> 00:04:30.880 +of the file, and extracting all the + +00:04:30.880 --> 00:04:32.880 +information that we need from that file. + +00:04:32.880 --> 00:04:34.960 +As you can imagine, you all have + +00:04:34.960 --> 00:04:36.560 +Org Mode files in your mind, + +00:04:36.560 --> 00:04:38.240 +well you know they can be fairly complex. + +00:04:38.240 --> 00:04:39.840 +You can have properties, + +00:04:39.840 --> 00:04:41.759 +you can have contextual information, like + +00:04:41.759 --> 00:04:43.040 +if you write a line + +00:04:43.040 --> 00:04:45.199 +which starts at column zero (which means + +00:04:45.199 --> 00:04:46.560 +at the left), + +00:04:46.560 --> 00:04:48.000 +it doesn't have the same + +00:04:48.000 --> 00:04:49.680 +meaning, whether or not it is + +00:04:49.680 --> 00:04:52.639 +before the beginning of a headline or if + +00:04:52.639 --> 00:04:54.160 +it is after the beginning of a headline. + +00:04:54.160 --> 00:04:55.199 +It's going to be + +00:04:55.199 --> 00:04:57.759 +relatively different, hierarchically + +00:04:57.759 --> 00:04:58.960 +speaking. + +00:04:58.960 --> 00:05:02.639 +So the problem, when it comes to the +question of + +00:05:02.639 --> 00:05:05.759 +many files versus one big file or + +00:05:05.759 --> 00:05:08.560 +few big files, is that we always have to + +00:05:08.560 --> 00:05:09.600 +keep in mind + +00:05:09.600 --> 00:05:12.880 +what org-element wants you to do. + +00:05:12.880 --> 00:05:15.680 +The thing is, there are plenty of + +00:05:15.680 --> 00:05:17.440 +problems when it comes to parsing files, + +00:05:17.440 --> 00:05:19.330 +the first one being obviously + +00:05:19.330 --> 00:05:22.160 +that Emacs is a single-thread + +00:05:22.160 --> 00:05:24.880 +process (or has some threading + +00:05:24.880 --> 00:05:26.400 +capabilities; we're not going to go into + +00:05:26.400 --> 00:05:28.639 +the details right now, that's not my goal). + +00:05:28.639 --> 00:05:32.400 +It makes it incredibly hard to + +00:05:32.400 --> 00:05:35.919 +parallelize parsing processes + +00:05:35.919 --> 00:05:39.280 +with the current technology. + +00:05:39.280 --> 00:05:42.320 +So you'd have to imagine that if you + +00:05:42.320 --> 00:05:44.080 +have a very large file--if you go back + +00:05:44.080 --> 00:05:46.479 +to the example of Karl Voit from before: + +00:05:46.479 --> 00:05:49.199 +100,000 lines--that means that you have + +00:05:49.199 --> 00:05:50.000 +to scan + +00:05:50.000 --> 00:05:52.320 +through every single line, basically. + +00:05:52.320 --> 00:05:53.759 +Because sometimes... Let's just say that + +00:05:53.759 --> 00:05:56.080 +you have a property drawer, for instance, + +00:05:56.080 --> 00:05:59.440 +which tells you, oh okay, this tree + +00:05:59.440 --> 00:06:03.520 +has the tag :foo:. So the problem is, there + +00:06:03.520 --> 00:06:05.120 +are multiple ways for you + +00:06:05.120 --> 00:06:08.720 +to define a tag. You can use the + +00:06:08.720 --> 00:06:11.840 +usual way, which is about wrapping in + +00:06:11.840 --> 00:06:14.000 +columns the :tag: at the end of a heading. + +00:06:14.000 --> 00:06:16.160 +For instance, if I... (I'm not going to + +00:06:16.160 --> 00:06:17.360 +switch to Emacs, that's going to waste too + +00:06:17.360 --> 00:06:18.240 +much time) + +00:06:18.240 --> 00:06:21.520 +That's one way to say your tag. +But say, + +00:06:21.520 --> 00:06:23.520 +you have tag inheritance, which means + +00:06:23.520 --> 00:06:25.360 +that when you have a parent with a tag, + +00:06:25.360 --> 00:06:28.160 +you also want the child to inherit the + +00:06:28.160 --> 00:06:29.520 +tag. If you have + +00:06:29.520 --> 00:06:32.400 +first heading with the tag :foo:, you have + +00:06:32.400 --> 00:06:33.680 +the first subheading, + +00:06:33.680 --> 00:06:37.520 +and the tag :foo: is implied. Now imagine + +00:06:37.520 --> 00:06:39.680 +having to do that with a file that is + +00:06:39.680 --> 00:06:41.039 +completely nested, + +00:06:41.039 --> 00:06:44.160 +a file that has maybe 9, 10, + +00:06:44.160 --> 00:06:47.280 +11 levels of depth to it. + +00:06:47.280 --> 00:06:49.039 +It's mind-bogglingly complicated for the + +00:06:49.039 --> 00:06:51.039 +software to do that, knowing that... I've + +00:06:51.039 --> 00:06:52.639 +told you about tags, + +00:06:52.639 --> 00:06:55.919 +but any property can be inheritable. + +00:06:55.919 --> 00:06:58.639 +Anything like priorities, even. Though why + +00:06:58.639 --> 00:07:00.240 +would you do this? + +00:07:00.240 --> 00:07:03.759 +You can have groups. You can have all this. + +00:07:03.759 --> 00:07:05.599 +And as someone who went through the trouble + +00:07:05.599 --> 00:07:07.199 +of optimizing his Org agenda... So + +00:07:07.199 --> 00:07:08.560 +basically, if we go back to the + +00:07:08.560 --> 00:07:12.160 +GIFs--oh god we've already had this +discussion + +00:07:12.160 --> 00:07:14.479 +between the "git" and "magit" and now I've + +00:07:14.479 --> 00:07:16.400 +started "gif" and "gif" and I only have one + +00:07:16.400 --> 00:07:18.080 +more minute left to do so, so let's just + +00:07:18.080 --> 00:07:19.599 +say I'm going to say "gif" + +00:07:19.599 --> 00:07:23.599 +just to spite people... So if you go on + +00:07:23.599 --> 00:07:26.880 +the way I organize my agenda, what I did + +00:07:26.880 --> 00:07:29.120 +in order to keep my agenda build time + +00:07:29.120 --> 00:07:30.960 +under two seconds, + +00:07:30.960 --> 00:07:33.440 +is that I've rewritten a whole lot of + +00:07:33.440 --> 00:07:36.560 +codes to be able to parse my Org agenda +files. + +00:07:36.560 --> 00:07:40.080 +So the thing is, I'm going to be talking + +00:07:40.080 --> 00:07:41.360 +more about this later. + +00:07:41.360 --> 00:07:43.440 +I only have, let's say, one minute to + +00:07:43.440 --> 00:07:44.479 +conclude. + +00:07:44.479 --> 00:07:47.440 +So as you've gathered, I'm not going to + +00:07:47.440 --> 00:07:48.479 +be giving you the answer right now. + +00:07:48.479 --> 00:07:51.039 +I'm going to be talking about + +00:07:51.039 --> 00:07:53.440 +org-roam a little later, which is about + +00:07:53.440 --> 00:07:55.680 +following the principle of having many + +00:07:55.680 --> 00:07:57.759 +small files. + +00:07:57.759 --> 00:08:01.120 +But as someone who has been using + +00:08:01.120 --> 00:08:02.960 +one large file to manage my life, + +00:08:02.960 --> 00:08:04.879 +you know, I'm sitting on the fence. + +00:08:04.879 --> 00:08:08.319 +I do not know which one is the best, + +00:08:08.319 --> 00:08:10.560 +but I hope that my presentation has + +00:08:10.560 --> 00:08:12.240 +given you a little idea + +00:08:12.240 --> 00:08:15.199 +of what goes on behind the principles. + +00:08:15.520 --> 00:08:16.560 +You also need to think about the + +00:08:16.560 --> 00:08:18.560 +philosophy behind the organization of + +00:08:18.560 --> 00:08:19.120 +your notes. + +00:08:19.120 --> 00:08:21.039 +I hope to be approaching this topic + +00:08:21.039 --> 00:08:23.280 +with you in about + +00:08:23.280 --> 00:08:25.360 +two hours or so (maybe one hour actually). + +00:08:25.360 --> 00:08:27.520 +I'm actually finished. I've decided to + +00:08:27.520 --> 00:08:28.960 +leave you two minutes of questions. + +00:08:28.960 --> 00:08:31.520 +If someone could feed me the + +00:08:31.520 --> 00:08:32.880 +questions, that might be best, + +00:08:32.880 --> 00:08:34.399 +because I don't want... oh actually I can + +00:08:34.399 --> 00:08:36.240 +just open the pad. + +00:08:36.240 --> 00:08:39.919 +I can just open it. Give me a second, okay. + +00:08:40.800 --> 00:08:43.039 +Just loading up. I might stop showing + +00:08:43.039 --> 00:08:43.839 +my screen. + +00:08:43.839 --> 00:08:46.959 +That might make it easier. So I mean if + +00:08:46.959 --> 00:08:47.519 +you can make + +00:08:47.519 --> 00:08:49.360 +myself big now on the screen, that would + +00:08:49.360 --> 00:08:52.000 +be splendid. ([Amin]: yeah sure) + +00:08:52.000 --> 00:08:55.839 +Thank you. Where are we... + +00:08:55.839 --> 00:08:58.720 +Question 12. Okay, so what's better, one + +00:08:58.720 --> 00:09:00.160 +big file or...? + +00:09:00.160 --> 00:09:02.160 +Is it a jab to tell me that I + +00:09:02.160 --> 00:09:03.120 +haven't answered the question because + +00:09:03.120 --> 00:09:04.240 +someone just + +00:09:04.240 --> 00:09:06.320 +asked me the question? Well, personally, if + +00:09:06.320 --> 00:09:08.080 +I were to give you a quick answer in + +00:09:08.560 --> 00:09:11.600 +20 seconds, personally, I think it's a + +00:09:11.600 --> 00:09:13.920 +question that is contextually based. + +00:09:13.920 --> 00:09:15.680 +Do you want something that is efficient + +00:09:15.680 --> 00:09:17.839 +as far as optimization is concerned? + +00:09:17.839 --> 00:09:21.200 +Then you need to think about + +00:09:21.200 --> 00:09:23.440 +this. Personally, for all the + +00:09:23.440 --> 00:09:24.640 +organization that I do, + +00:09:24.640 --> 00:09:27.760 +all this stuff, all the TODOs that I +handle, + +00:09:27.760 --> 00:09:30.080 +I like to do this in one simple big file + +00:09:30.080 --> 00:09:31.519 +because you benefit from all the + +00:09:31.519 --> 00:09:33.760 +refiling capabilities of Org Mode, + +00:09:33.760 --> 00:09:37.200 +so I would do that. But for knowledge +management, + +00:09:37.200 --> 00:09:40.080 +for note-taking and all this, well I'd + +00:09:40.080 --> 00:09:41.279 +much rather follow the + +00:09:41.279 --> 00:09:42.959 +org-roam way of doing things, which is + +00:09:42.959 --> 00:09:44.480 +about having many + +00:09:44.480 --> 00:09:48.240 +small files. I'm not getting any + +00:09:48.240 --> 00:09:50.000 +more questions. I'm not sure if there is + +00:09:50.000 --> 00:09:52.080 +one on IRC that could be fed to me. + +00:09:52.080 --> 00:09:57.040 +Otherwise, I'm happy to pass over to +the next speaker. + +00:09:57.040 --> 00:09:59.360 +By the way, just before I finish, your + +00:09:59.360 --> 00:10:01.360 +world is a lie. It's not a three-piece + +00:10:01.360 --> 00:10:04.399 +suit. I'm wearing jeans below, so I hope + +00:10:04.399 --> 00:10:06.520 +that satisfies your curiosity. + +00:10:10.640 --> 00:10:12.640 +Okay, there's one more question appearing. + +00:10:12.640 --> 00:10:15.040 +"but otherwise one big file to have + +00:10:15.040 --> 00:10:17.680 +everything..." So I'm putting you on the + +00:10:17.680 --> 00:10:19.760 +spot, I believe. It was such a short talk. + +00:10:19.760 --> 00:10:21.040 +You know the problem is, + +00:10:21.040 --> 00:10:24.720 +I just wanted to give you a little +answer. + +00:10:24.720 --> 00:10:26.959 +A little, you know, path of thinking on + +00:10:26.959 --> 00:10:27.920 +this topic. + +00:10:27.920 --> 00:10:29.839 +Obviously it's a topic I could be + +00:10:29.839 --> 00:10:31.600 +spending 40 minutes on, + +00:10:31.600 --> 00:10:33.200 +but I'm going to be drained, you're going to + +00:10:33.200 --> 00:10:35.120 +be drained, nobody's going to be happy + +00:10:35.120 --> 00:10:35.680 +if I do this. + +00:10:39.440 --> 00:10:41.200 +Someone asked me if I switch between + +00:10:41.200 --> 00:10:42.880 +British and French accents. + +00:10:42.880 --> 00:10:46.560 +A little secret for you: + +00:10:46.560 --> 00:10:48.480 +when I'm stressed, I tend to revert to a + +00:10:48.480 --> 00:10:49.760 +French accent, + +00:10:49.760 --> 00:10:53.760 +so you can measure the amount of stress + +00:10:53.760 --> 00:10:56.160 +that I'm feeling during this talk + +00:10:56.160 --> 00:10:58.880 +with the amount of h's that I drop and + +00:10:58.880 --> 00:11:02.720 +the amount of sheer fright that you can +see sometimes + +00:11:02.720 --> 00:11:04.399 +in my eyes, when I'm thinking about what + +00:11:04.399 --> 00:11:08.240 +to say next. + +00:11:08.240 --> 00:11:10.880 +All right sir. So, Amin, do you believe + +00:11:10.880 --> 00:11:14.240 +we can leave it at that? I'll be... + +00:11:14.240 --> 00:11:15.519 +People will see plenty more of me + +00:11:15.519 --> 00:11:17.040 +later on, anyway. + +00:11:17.040 --> 00:11:20.640 +([Amin:] So, looking at the schedule, +I think + +00:11:20.640 --> 00:11:23.920 +your talk has until like 2:02, meaning + +00:11:23.920 --> 00:11:27.120 +like five or six minutes from now.) + +00:11:27.120 --> 00:11:28.000 +Oh, right. + +00:11:28.000 --> 00:11:30.000 +([Amin:] So if you do like to take one + +00:11:30.000 --> 00:11:31.680 +or two questions, to add two more + +00:11:31.680 --> 00:11:33.920 +questions, by all means.) + +00:11:33.920 --> 00:11:37.040 +So someone has asked me what is + +00:11:37.040 --> 00:11:38.320 +the Emacs + +00:11:38.320 --> 00:11:40.640 +icon (sorry, see, another French accent) + +00:11:40.640 --> 00:11:42.880 +here in my status bar... + +00:11:42.880 --> 00:11:44.880 +Oh sorry, I'm not sharing any more. + +00:11:44.880 --> 00:11:46.640 +I might just share again just so that + +00:11:46.640 --> 00:11:49.200 +everyone can catch a glimpse of that. + +00:11:49.200 --> 00:11:53.120 +There we go. Allow... + +00:11:53.120 --> 00:11:54.880 +So it should be... So if you could make me + +00:11:54.880 --> 00:11:56.240 +small again, Amin, I'm not sure if it's + +00:11:56.240 --> 00:11:56.959 +going to do it + +00:11:56.959 --> 00:12:00.480 +by itself, but I do have a little icon + +00:12:00.480 --> 00:12:01.839 +here in my status bar + +00:12:01.839 --> 00:12:04.480 +which is basically a way to interact + +00:12:04.480 --> 00:12:05.760 +with org-protocol. + +00:12:05.760 --> 00:12:09.120 +I'm not going to look for it right now, + +00:12:09.120 --> 00:12:10.800 +but it's a browser extension that is + +00:12:10.800 --> 00:12:12.399 +developed by one of my friends + +00:12:12.399 --> 00:12:15.680 +over at Ranger whose name is Li Fon (??) and + +00:12:16.160 --> 00:12:18.240 +it's very useful. I'm someone who uses a + +00:12:18.240 --> 00:12:22.320 +lot of Org protocols. And by the way, + +00:12:22.320 --> 00:12:25.279 +I used to teach English to high +schoolers, and they + +00:12:25.279 --> 00:12:27.279 +were supremely worried + +00:12:27.279 --> 00:12:29.600 +when I showed them my status line and they + +00:12:29.600 --> 00:12:34.000 +saw "kill" and "explore" in my status +line. + +00:12:34.000 --> 00:12:36.560 +As fellow Emacs users, you know that + +00:12:36.560 --> 00:12:40.880 +obviously kill means to kill a selection +of text and + +00:12:40.880 --> 00:12:44.320 +keep it inside your clipboard, + +00:12:44.320 --> 00:12:47.279 +but for my students, they + +00:12:47.279 --> 00:12:48.320 +were very worried + +00:12:48.320 --> 00:12:51.600 +about what their professor was up to + +00:12:51.600 --> 00:12:53.600 +during his nights. + +00:12:53.600 --> 00:12:55.120 +So let's see if we've got more questions. + +00:12:55.120 --> 00:12:56.560 +I'm showing you the questions on the + +00:12:56.560 --> 00:12:57.920 +rainbow. Let's see if + +00:12:57.920 --> 00:13:00.560 +we've got more. People are posting a + +00:13:00.560 --> 00:13:01.920 +lot of questions now. + +00:13:01.920 --> 00:13:03.920 +So how do you feel about archiving files + +00:13:03.920 --> 00:13:06.399 +in Org Mode and how can that work? + +00:13:06.399 --> 00:13:09.360 +So one of the things when we think about + +00:13:09.360 --> 00:13:13.920 +optimization is: yes, archiving done trees + +00:13:13.920 --> 00:13:16.240 +is a good idea because it means that if + +00:13:16.240 --> 00:13:17.920 +we go back to the org-element, the way it + +00:13:17.920 --> 00:13:20.399 +works (and we'll get into technical details + +00:13:20.399 --> 00:13:22.079 +afterwards; I'm giving a presentation + +00:13:22.079 --> 00:13:24.079 +about org-roam technical + +00:13:24.079 --> 00:13:26.880 +aspects, sorry, so I'll have a chance to + +00:13:26.880 --> 00:13:28.399 +expand a little more on this) + +00:13:28.399 --> 00:13:31.360 +but basically, org-element needs to... + +00:13:31.360 --> 00:13:35.279 +Every time it sees a TODO, it has to +consider it, + +00:13:35.279 --> 00:13:38.320 +even though it is a done TODO. Why? + +00:13:38.320 --> 00:13:40.000 +Because let's say, for instance, that in + +00:13:40.000 --> 00:13:41.839 +your agenda you want to activate + +00:13:41.839 --> 00:13:45.519 +log mode, which is going to show the + +00:13:45.519 --> 00:13:48.959 +tasks which are done... Now you could be + +00:13:48.959 --> 00:13:51.440 +clever and say, oh okay, the Org agenda does not + +00:13:51.440 --> 00:13:53.360 +need to show done items, so it's not going + +00:13:53.360 --> 00:13:54.880 +to look for them, + +00:13:54.880 --> 00:13:56.959 +but the problem is that org-element is + +00:13:56.959 --> 00:13:59.519 +always called. It always needs to parse +the buffer. + +00:13:59.519 --> 00:14:01.839 +You know, Nicolas Goaziou, who is the + +00:14:01.839 --> 00:14:03.519 +French developer who's worked a whole + +00:14:03.519 --> 00:14:05.040 +lot on org-element + +00:14:05.040 --> 00:14:07.440 +has gone through a lot of trouble to + +00:14:07.440 --> 00:14:11.600 +optimize org-element, but the problem is + +00:14:11.600 --> 00:14:13.279 +there's just so much that we can do with + +00:14:13.279 --> 00:14:14.720 +a concurrent process. + +00:14:14.720 --> 00:14:18.560 +Right now it leaves somewhat + +00:14:18.560 --> 00:14:21.120 +things to be desired, but + +00:14:21.120 --> 00:14:22.079 +we're working on it. + +00:14:22.079 --> 00:14:24.800 +One more time... I feel like I spent + +00:14:24.800 --> 00:14:25.839 +half of this talk + +00:14:25.839 --> 00:14:28.000 +teasing my next talks, but I'll be + +00:14:28.000 --> 00:14:29.360 +talking more about this + +00:14:29.360 --> 00:14:31.279 +in my future talks in about one to two + +00:14:31.279 --> 00:14:32.639 +hours. + +00:14:32.639 --> 00:14:34.959 +So, continuing with questions, how big are + +00:14:34.959 --> 00:14:36.079 +my Org files? + +00:14:36.079 --> 00:14:37.760 +So in the background, I'm just going to + +00:14:37.760 --> 00:14:40.720 +check how many lines I have in my main +file. + +00:14:40.720 --> 00:14:42.959 +In my own file, so the one I told you + +00:14:42.959 --> 00:14:44.079 +about where I keep all + +00:14:44.079 --> 00:14:47.279 +my TODO GTD stuff, I have + +00:14:47.279 --> 00:14:50.720 +38,000 lines, which is... + +00:14:50.720 --> 00:14:54.000 +It's sizable, definitely. + +00:14:54.000 --> 00:14:57.040 +But I do archive a lot of stuff, + +00:14:57.040 --> 00:14:58.480 +so that might be a slight difference + +00:14:58.480 --> 00:15:00.880 +between myself and Karl Voit, + +00:15:00.880 --> 00:15:02.079 +even though I don't remember if they + +00:15:02.079 --> 00:15:04.880 +actually archive stuff. + +00:15:04.880 --> 00:15:06.639 +So does it not consume more resources + +00:15:06.639 --> 00:15:08.480 +and time to load multiple files + +00:15:08.480 --> 00:15:10.839 +files than a large file or the same + +00:15:10.839 --> 00:15:12.560 +content now? + +00:15:12.560 --> 00:15:15.839 +Theoretically, yes, having many files + +00:15:15.839 --> 00:15:19.279 +open concurrently is slightly slower + +00:15:19.279 --> 00:15:22.240 +than having one main file opened. + +00:15:22.240 --> 00:15:24.160 +Now the problem is for those of you who + +00:15:24.160 --> 00:15:25.279 +have large files, + +00:15:25.279 --> 00:15:27.199 +you may have noticed that when you are + +00:15:27.199 --> 00:15:29.360 +scrolling in a very large file, + +00:15:29.360 --> 00:15:32.560 +it starts taking quite a bit of time. Why? + +00:15:32.560 --> 00:15:34.480 +It's because in Org Mode, + +00:15:34.480 --> 00:15:35.920 +you have a lot of content + +00:15:35.920 --> 00:15:38.959 +that is hidden, so when you have + +00:15:38.959 --> 00:15:40.959 +the view mode which hides as much stuff + +00:15:40.959 --> 00:15:43.600 +as possible, meaning that you only see + +00:15:43.600 --> 00:15:45.360 +the top heading--and I'm checking the + +00:15:45.360 --> 00:15:46.880 +time, Amin, don't worry, I'm finished + +00:15:46.880 --> 00:15:50.240 +on this one-- + +00:15:50.240 --> 00:15:52.160 +when you're hiding a whole lot of stuff, + +00:15:52.160 --> 00:15:54.720 +Org Mode needs to keep track, or I +should say, + +00:15:54.720 --> 00:15:56.959 +Emacs needs to keep track of which areas + +00:15:56.959 --> 00:15:58.160 +of text to show + +00:15:58.160 --> 00:16:00.560 +and which areas of text to hide. + +00:16:00.560 --> 00:16:02.320 +The problem is that when you're hiding stuff-- + +00:16:02.320 --> 00:16:04.480 +let's say you're moving from the + +00:16:04.480 --> 00:16:06.320 +first heading to the second heading, + +00:16:06.320 --> 00:16:08.639 +but you've got like 10,000 lines between + +00:16:08.639 --> 00:16:09.839 +those two headings-- + +00:16:09.839 --> 00:16:11.519 +well, Emacs needs to compute the + +00:16:11.519 --> 00:16:13.680 +difference between the two passages, + +00:16:13.680 --> 00:16:15.680 +and that takes quite a lot of time. + +00:16:15.680 --> 00:16:18.560 +That's why you might realize that it's +a little + +00:16:18.560 --> 00:16:21.199 +choppy when you start scrolling in large +files. + +00:16:21.199 --> 00:16:22.560 +Anyway I could be answering questions + +00:16:22.560 --> 00:16:25.120 +about Org Mode for literally two hours +straight, + +00:16:25.120 --> 00:16:26.720 +so I'm gonna hand it over to the next + +00:16:26.720 --> 00:16:28.639 +speakers. I'll be seeing + +00:16:28.639 --> 00:16:31.759 +you guys a little later. ([Amin]: Thank you + +00:16:31.759 --> 00:16:33.440 +very much, Leo.) + +00:16:33.440 --> 00:16:36.959 +Oh, thank you. ([Amin:] Yes. Bye.) + +00:16:36.959 --> 00:16:39.839 +Bye. -- cgit v1.2.3