WEBVTT 00:00:00.000 --> 00:00:02.399 at the end we are right on time so I'm 00:00:02.399 --> 00:00:03.760 sorry if you have a lot of questions 00:00:03.760 --> 00:00:04.319 before 00:00:04.319 --> 00:00:06.960 you had some so many questions and I 00:00:06.960 --> 00:00:08.559 couldn't answer all of them and I'm 00:00:08.559 --> 00:00:10.080 really happy about it but I'm also 00:00:10.080 --> 00:00:11.599 really sad that I don't have enough time 00:00:11.599 --> 00:00:12.719 to do so 00:00:12.719 --> 00:00:15.040 so I'm gonna 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:31.599 well it turns out uh I had two file name 00:00:31.599 --> 00:00:32.559 baz so 00:00:32.559 --> 00:00:34.480 my software works great thank you very 00:00:34.480 --> 00:00:36.000 much uh 00:00:36.000 --> 00:00:38.800 all right so now what I'm gonna 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 stop 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.719 one minute okay good so 00:00:50.719 --> 00:00:52.239 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've gave you and different even 00:00:56.879 --> 00:00:58.239 from what nura gave you 00:00:58.239 --> 00:01:00.480 there's like uh scaling the mountain as 00:01:00.480 --> 00:01:02.399 far as difficulty is concerned and on 00:01:02.399 --> 00:01:03.359 this one 00:01:03.359 --> 00:01:04.879 I will be telling you about the 00:01:04.879 --> 00:01:06.799 technical aspects of orgrim 00:01:06.799 --> 00:01:09.360 because you know 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 or grow 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 all grown and 00:01:25.759 --> 00:01:27.920 for some of you who have no experience 00:01:27.920 --> 00:01:28.960 whatsoever 00:01:28.960 --> 00:01:31.280 uh developing stuff or programming or 00:01:31.280 --> 00:01:32.880 anything along those lines 00:01:32.880 --> 00:01:36.000 this is how all the development around 00:01:36.000 --> 00:01:36.720 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 organ project 00:01:52.240 --> 00:01:53.759 you can see that we have many files we 00:01:53.759 --> 00:01:55.600 have organ buffer capture compat 00:01:55.600 --> 00:01:57.040 completion dailies 00:01:57.040 --> 00:02:00.399 etc etc so 00:02:00.399 --> 00:02:02.000 before we dive a little deeper I just 00:02:02.000 --> 00:02:04.079 want to give you a lay of the land so to 00:02:04.079 --> 00:02:04.640 speak to 00:02:04.640 --> 00:02:08.160 to know where we're heading so 00:02:08.160 --> 00:02:11.680 orgro is built on top of old mode 00:02:11.680 --> 00:02:15.599 and org mode gives us plenty of tools 00:02:15.599 --> 00:02:17.760 to play around with the files I'm moving 00:02:17.760 --> 00:02:18.800 the glass I'm 00:02:18.800 --> 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 all chrome we have org mode and 00:02:29.360 --> 00:02:31.360 augment 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:40.560 given by having 00:02:40.560 --> 00:02:43.360 trees within trees within trees we have 00:02:43.360 --> 00:02:43.760 uh 00:02:43.760 --> 00:02:45.760 quote blocks we have babel blocks we 00:02:45.760 --> 00:02:48.000 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 and 00:02:53.519 --> 00:02:56.640 when you think about it all chrome just 00:02:56.640 --> 00:02:59.760 wants to create backlinks but it sounds 00:02:59.760 --> 00:03:01.360 something very simple but the problem is 00:03:01.360 --> 00:03:02.239 that we need 00:03:02.239 --> 00:03:05.519 to play nicely with all of those 00:03:05.519 --> 00:03:06.400 intricate 00:03:06.400 --> 00:03:09.360 pieces and 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:11.440 because 00:03:11.440 --> 00:03:14.400 if right now we are in the brain of all 00:03:14.400 --> 00:03:15.200 grow 00:03:15.200 --> 00:03:18.959 but if I show you the brain of org mode 00:03:18.959 --> 00:03:21.599 so this is the brain of org mode and it 00:03:21.599 --> 00:03:23.280 looks very simple like this because I 00:03:23.280 --> 00:03:25.519 haven't entered the less folder 00:03:25.519 --> 00:03:28.000 but I'm just going to enter it I'm going 00:03:28.000 --> 00:03:29.120 to 00:03:29.120 --> 00:03:32.000 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 a fear the 00:03:35.519 --> 00:03:37.519 sheer feel of magnitude 00:03:37.519 --> 00:03:41.280 that is um org mode so right now we are 00:03:41.280 --> 00:03:42.640 in a very small size what I'm gonna do 00:03:42.640 --> 00:03:43.760 I'm going to skip 00:03:43.760 --> 00:03:47.519 one page okay 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 side 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 to get away 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:17.840 a midi buffer and the mini buffer is 00:04:17.840 --> 00:04:18.880 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 volt mode now when you 00:04:36.240 --> 00:04:37.360 try to think 00:04:37.360 --> 00:04:40.639 about something so elemental 00:04:40.639 --> 00:04:44.400 as links you have to think about how to 00:04:44.400 --> 00:04:45.520 play well 00:04:45.520 --> 00:04:48.560 with every single one of these modules 00:04:48.560 --> 00:04:50.000 now obviously not 00:04:50.000 --> 00:04:53.759 the 370 370. sometimes you know 00:04:53.759 --> 00:04:56.080 one module it's not going to do anything 00:04:56.080 --> 00:04:57.680 like I'm not sure op car 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 and so 00:05:03.039 --> 00:05:04.720 really early on when we started 00:05:04.720 --> 00:05:07.520 developing all grown with jethro kwan my 00:05:07.520 --> 00:05:10.080 co-maintainer you know we had this idea 00:05:10.080 --> 00:05:10.639 that 00:05:10.639 --> 00:05:13.520 we wanted to develop something that was 00:05:13.520 --> 00:05:14.639 optimized 00:05:14.639 --> 00:05:18.240 something that would you know scale very 00:05:18.240 --> 00:05:20.160 nicely whether or not you had 00:05:20.160 --> 00:05:21.600 you know 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 few small few big files this is 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 and so one of the decision we took when 00:05:53.680 --> 00:05:54.800 we got started 00:05:54.800 --> 00:05:59.199 with orgrum 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 orgrumdb 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 uh 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:35.360 are 00:06:35.360 --> 00:06:37.840 necessary for the functioning of our 00:06:37.840 --> 00:06:38.479 ground 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.440 let's just go back to who actually this 00:06:43.440 --> 00:06:45.680 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:48.720 whoops 00:06:48.720 --> 00:06:50.319 two links I'm not going to click on them 00:06:50.319 --> 00:06:51.759 otherwise I'm going to open them but we 00:06:51.759 --> 00:06:53.199 have two links 00:06:53.199 --> 00:06:56.319 now there are many implementations of 00:06:56.319 --> 00:06:58.240 the zettol casten method inside 00:06:58.240 --> 00:07:00.800 Emacs and inside and with old mode but 00:07:00.800 --> 00:07:02.400 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:05.520 we go to 00:07:05.520 --> 00:07:08.479 the index again here at point we have 00:07:08.479 --> 00:07:09.120 the link 00:07:09.120 --> 00:07:12.400 foo every time we create a link we 00:07:12.400 --> 00:07:14.160 update our database 00:07:14.160 --> 00:07:16.800 to say okay so we have a link in the 00:07:16.800 --> 00:07:17.919 file 00:07:17.919 --> 00:07:21.080 index which is leading to the file 00:07:21.080 --> 00:07:24.319 fu.org and it is situated 00:07:24.319 --> 00:07:27.840 under the heading a heading and 00:07:27.840 --> 00:07:29.840 if you check the site buffer you see 00:07:29.840 --> 00:07:31.440 that all this all these information 00:07:31.440 --> 00:07:33.120 which I just highlighted to you 00:07:33.120 --> 00:07:42.639 are present right here 00:07:42.639 --> 00:07:45.599 oh well sorry I forgot this thank you 00:07:45.599 --> 00:07:46.400 okay 00:07:46.400 --> 00:07:50.879 so let's see log okay I'm going to split 00:07:50.879 --> 00:07:53.039 actually 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 a machine 00:07:58.720 --> 00:08:02.080 I'm showing the site 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:05.199 discretion anyway getting back to the 00:08:05.199 --> 00:08:07.039 talk 00:08:07.039 --> 00:08:10.160 so the thing is we have this 00:08:10.160 --> 00:08:12.720 sql database and the goal is to keep it 00:08:12.720 --> 00:08:13.520 optimized 00:08:13.520 --> 00:08:16.400 now why is it better optimized than just 00:08:16.400 --> 00:08:17.039 using 00:08:17.039 --> 00:08:20.960 orgrom sorry just 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:24.080 versus 00:08:24.080 --> 00:08:26.879 a few I keep getting you know 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 uh 10 to 10. 00:08:32.240 --> 00:08:35.200 I'm starting really to be tired now so 00:08:35.200 --> 00:08:36.399 uh moving on to 00:08:36.399 --> 00:08:39.279 um what did I want to show you so it was 00:08:39.279 --> 00:08:40.800 almost yes all the 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:47.200 see I believe it's org element pass 00:08:47.200 --> 00:08:48.399 buffer 00:08:48.399 --> 00:08:51.040 so I was telling you about all elements 00:08:51.040 --> 00:08:51.920 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 pass buffer what it does and you can 00:08:58.560 --> 00:08:59.760 see the dock string is that it 00:08:59.760 --> 00:09:01.040 recursively passed 00:09:01.040 --> 00:09:03.279 the buffer and return 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 pass 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 oh sorry not this one we're going to go 00:09:19.600 --> 00:09:22.000 in the index so 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 and now at the bottom in the midi buffer 00:09:30.800 --> 00:09:32.560 in the mini buffer sorry 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 and 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:00.560 starts at the char 00:10:00.560 --> 00:10:05.040 1 which ends at the character 45 00:10:05.040 --> 00:10:07.040 we have the content so he makes scratch 00:10:07.040 --> 00:10:08.240 oh actually no 00:10:08.240 --> 00:10:10.240 never mind I did something wrong I run 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:17.519 with the selected window next 00:10:17.519 --> 00:10:21.120 window okay that's a bit of live 00:10:21.120 --> 00:10:23.760 elise writing for you right now okay so 00:10:23.760 --> 00:10:24.640 now if I 00:10:24.640 --> 00:10:26.240 evaluate this and paste the content of 00:10:26.240 --> 00:10:28.480 the buffer 00:10:28.480 --> 00:10:31.600 it is doing its bidding so now what we 00:10:31.600 --> 00:10:32.399 have 00:10:32.399 --> 00:10:34.959 we have a section we have the keyword 00:10:34.959 --> 00:10:36.720 title which you see right here you have 00:10:36.720 --> 00:10:38.160 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:41.360 heading which is right here we have the 00:10:41.360 --> 00:10:42.480 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.640 and then you have a link etc etc it is 00:10:50.640 --> 00:10:51.200 all 00:10:51.200 --> 00:10:53.839 uh parenthesis if you're not used to 00:10:53.839 --> 00:10:54.640 e-list 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 etcetera etcetera 00:11:00.399 --> 00:11:01.680 I'm not it's not a needle 00:11:01.680 --> 00:11:03.760 lessons that I'm doing right now but 00:11:03.760 --> 00:11:05.279 basically 00:11:05.279 --> 00:11:08.399 if we were to use the default tooling of 00:11:08.399 --> 00:11:09.120 orgrom 00:11:09.120 --> 00:11:10.880 org mode sorry I keep getting too 00:11:10.880 --> 00:11:12.480 confused sorry for that 00:11:12.480 --> 00:11:14.240 uh it 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 are doing so some implementations of the 00:11:19.760 --> 00:11:22.240 zettelkassen method inside Emacs have 00:11:22.240 --> 00:11:23.040 opted 00:11:23.040 --> 00:11:26.480 for this method but the problem is that 00:11:26.480 --> 00:11:27.360 we think 00:11:27.360 --> 00:11:30.160 that it scales poorly now some other 00:11:30.160 --> 00:11:30.560 people 00:11:30.560 --> 00:11:33.920 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 rip grep 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 v term here 00:11:46.560 --> 00:11:49.680 uh let's see so I've opened the term I 00:11:49.680 --> 00:11:51.839 am in this repository what I'm going to 00:11:51.839 --> 00:11:54.399 do is that I'm going to 00:11:54.399 --> 00:11:58.000 load the content of the file uh 00:11:58.000 --> 00:12:00.480 how am I going to do this oh um I need 00:12:00.480 --> 00:12:02.480 to move to bash 00:12:02.480 --> 00:12:06.160 let's do crap 00:12:06.160 --> 00:12:08.000 for the line which links do we 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 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 ah damn it 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 up there we go no 00:12:28.240 --> 00:12:33.680 ah 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 rig grep 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:45.920 well not supposed which is far more 00:12:45.920 --> 00:12:48.880 capable now 00:12:48.880 --> 00:12:50.639 I'd like to talk to you about the future 00:12:50.639 --> 00:12:52.320 of orgrim 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 uh this sql database and about 00:12:58.399 --> 00:13:01.519 playing nicely with old mode but 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 orgrim 00:13:05.200 --> 00:13:08.320 now I've been talking with the a lot of 00:13:08.320 --> 00:13:10.320 people who are behind org mode and you 00:13:10.320 --> 00:13:10.880 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 orgrom could have something to bring to 00:13:16.880 --> 00:13:18.320 old 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 old mode and 00:13:25.600 --> 00:13:27.200 we thought about it with jethro and the 00:13:27.200 --> 00:13:29.200 problem is uh 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 a very 00:13:32.720 --> 00:13:35.360 uh can a very isolated portion of your 00:13:35.360 --> 00:13:36.320 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 um 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 uh you know on github we have like 00:13:52.480 --> 00:13:53.120 200 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 but 00:13:59.760 --> 00:14:02.399 we have plenty of ideas about the future 00:14:02.399 --> 00:14:03.360 one of the key 00:14:03.360 --> 00:14:06.000 parts of development being the writing 00:14:06.000 --> 00:14:08.480 of an external parser for orgrim 00:14:08.480 --> 00:14:09.680 so I've been telling you about org 00:14:09.680 --> 00:14:11.839 element org elements 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 augment 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.240 so that we could use to update a 00:14:30.240 --> 00:14:30.959 database 00:14:30.959 --> 00:14:33.279 so 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 you know orgrim 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 and I'm out of time I'm just going to 00:14:48.639 --> 00:14:50.079 take one more minute to finish on this 00:14:50.079 --> 00:14:51.360 point 00:14:51.360 --> 00:14:54.560 but we believe 00:14:54.560 --> 00:14:57.680 that orgrim 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 neura that 00:15:10.240 --> 00:15:12.480 all chrome 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 and honestly we kind of want to put the 00:15:17.600 --> 00:15:19.279 theory into practice with orgrim 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 or 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:40.560 the way to basically have a note-taking 00:15:40.560 --> 00:15:41.600 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:49.120 so yeah I believe we are 00:15:49.120 --> 00:15:51.839 really excited about this and if you 00:15:51.839 --> 00:15:53.519 want to keep track of the development of 00:15:53.519 --> 00:15:55.360 all chrome 00:15:55.360 --> 00:15:57.600 I 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 this present inside the pad sorry 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 um orgrim 00:16:09.519 --> 00:16:11.519 but I 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 orgrim 00:16:15.519 --> 00:16:18.000 and if you want to talk with us we are 00:16:18.000 --> 00:16:18.560 always 00:16:18.560 --> 00:16:22.160 available either on isc channel orgrom 00:16:22.160 --> 00:16:23.680 I believe there's a dash between org and 00:16:23.680 --> 00:16:25.279 rome but also 00:16:25.279 --> 00:16:27.279 on the discourse and 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 and 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 mini thanks for your awesome talk leo 00:16:39.920 --> 00:16:41.120 thank you 00:16:41.120 --> 00:16:43.040 so 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 uh reproducible Emacs no I think it's 00:16:55.600 --> 00:16:57.120 slower 00:16:57.120 --> 00:16:59.279 god 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 oh yeah 00:17:05.360 --> 00:17:07.760 um which is about I think about line 600 00:17:07.760 --> 00:17:08.260 or so 00:17:08.260 --> 00:17:09.919 [Music] 00:17:09.919 --> 00:17:13.199 yes got it splendid 00:17:13.199 --> 00:17:16.400 so um the questions so why not run a 00:17:16.400 --> 00:17:18.160 background Emacs for passing instead of 00:17:18.160 --> 00:17:19.919 implementing a new parser 00:17:19.919 --> 00:17:22.559 so I believe we've had this question uh 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.280 someone asked me this question and the 00:17:33.280 --> 00:17:35.679 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:51.760 just like uh you know when you export a 00:17:51.760 --> 00:17:52.240 file 00:17:52.240 --> 00:17:56.400 with uh um sorry 00:17:56.400 --> 00:17:57.840 I mean could you mute microphone when 00:17:57.840 --> 00:17:58.799 you're 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 you are now uh 00:18:03.600 --> 00:18:04.640 so um 00:18:04.640 --> 00:18:06.960 dammit 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 uh sorry all our queries to uh 00:18:11.840 --> 00:18:13.039 background Emacs 00:18:13.039 --> 00:18:16.000 that is what uh 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 and 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 and 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 old 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:41.760 documentation 00:18:41.760 --> 00:18:43.440 for the passing of old mode file 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 old 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 all grown has 00:19:00.000 --> 00:19:01.360 the ability to think about these 00:19:01.360 --> 00:19:03.120 questions and as a 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 so 00:19:06.400 --> 00:19:07.840 I can take the question I mean 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:14.799 changes within the 00:19:14.799 --> 00:19:17.360 files 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 imputed 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 00:19:30.080 --> 00:19:33.039 passing a rebuild of the data not a an 00:19:33.039 --> 00:19:33.919 incrementation 00:19:33.919 --> 00:19:37.120 of the database I should say so 00:19:37.120 --> 00:19:38.799 did you ever think of uh I believe I 00:19:38.799 --> 00:19:40.320 have one more one more minutes 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 sqldb as a general all 00:19:45.440 --> 00:19:47.200 speed up tool outside of orgrom so that 00:19:47.200 --> 00:19:48.160 other libraries 00:19:48.160 --> 00:19:49.919 that do execute complex queries are able 00:19:49.919 --> 00:19:51.679 to use it well 00:19:51.679 --> 00:19:52.960 a lot of people have been working on 00:19:52.960 --> 00:19:54.640 this and I believe alpha papa has been 00:19:54.640 --> 00:19:56.480 thinking quite a lot about this you know 00:19:56.480 --> 00:19:57.679 all ql 00:19:57.679 --> 00:20:01.120 is the ql stands for language 00:20:01.120 --> 00:20:03.679 and I I can't remember now what's uh 00:20:03.679 --> 00:20:04.720 what's the backend 00:20:04.720 --> 00:20:08.080 is for all ql but the idea is relatively 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 old 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 old 00:20:24.240 --> 00:20:26.080 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 um in 00:20:30.799 --> 00:20:32.960 the core mentality of old mode but it's 00:20:32.960 --> 00:20:34.000 definitely a 00:20:34.000 --> 00:20:36.080 something that we could suggest uh when 00:20:36.080 --> 00:20:37.679 we are a little more mature because well 00:20:37.679 --> 00:20:40.960 orgrom was started last february and so 00:20:40.960 --> 00:20:41.679 it's a fairly 00:20:41.679 --> 00:20:44.480 young project in a way so uh I see 00:20:44.480 --> 00:20:45.840 plenty more questions but 00:20:45.840 --> 00:20:48.400 I'm out of time folks so I'm not sure uh 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 isc 00:20:58.960 --> 00:21:01.039 or on the different channels we have 00:21:01.039 --> 00:21:02.320 foreground and 00:21:02.320 --> 00:21:04.000 I answer them with you know 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 you are now 00:21:07.600 --> 00:21:08.880 unmuted 00:21:08.880 --> 00:21:11.760 thank you again very much leo and that 00:21:11.760 --> 00:21:13.120 was me done for today so you'll see me 00:21:13.120 --> 00:21:14.000 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 awesome 00:21:22.640 --> 00:21:27.760 all right see you guys later bye bye