0:00:00.000,0:00:03.760 at the end we are right on time so I'm 0:00:02.399,0:00:04.319 sorry if you have a lot of questions 0:00:03.760,0:00:06.960 before 0:00:04.319,0:00:08.559 you had some so many questions and I 0:00:06.960,0:00:10.080 couldn't answer all of them and I'm 0:00:08.559,0:00:11.599 really happy about it but I'm also 0:00:10.080,0:00:12.719 really sad that I don't have enough time 0:00:11.599,0:00:15.040 to do so 0:00:12.719,0:00:17.119 so I'm gonna try to do a better job this 0:00:15.040,0:00:20.240 time of leaving you a little more time 0:00:17.119,0:00:22.960 for the questions so just before 0:00:20.240,0:00:24.400 a little addendum because I did screw up 0:00:22.960,0:00:27.439 in the previous presentation 0:00:24.400,0:00:28.800 you remember I tried to rename the file 0:00:27.439,0:00:31.599 and it didn't work 0:00:28.800,0:00:32.559 well it turns out uh I had two file name 0:00:31.599,0:00:34.480 baz so 0:00:32.559,0:00:36.000 my software works great thank you very 0:00:34.480,0:00:38.800 much uh 0:00:36.000,0:00:40.239 all right so now what I'm gonna do 0:00:38.800,0:00:43.040 during this presentation 0:00:40.239,0:00:44.399 is that I'm going to oops I didn't stop 0:00:43.040,0:00:47.520 my timer just give me 0:00:44.399,0:00:50.719 a little second and let's subtract 0:00:47.520,0:00:52.239 one minute okay good so 0:00:50.719,0:00:54.079 what I'm going to do right now it's a 0:00:52.239,0:00:56.879 little different from the previous 0:00:54.079,0:00:58.239 talk I've gave you and different even 0:00:56.879,0:01:00.480 from what nura gave you 0:00:58.239,0:01:02.399 there's like uh scaling the mountain as 0:01:00.480,0:01:03.359 far as difficulty is concerned and on 0:01:02.399,0:01:04.879 this one 0:01:03.359,0:01:06.799 I will be telling you about the 0:01:04.879,0:01:09.360 technical aspects of orgrim 0:01:06.799,0:01:11.119 because you know I've been telling you 0:01:09.360,0:01:13.119 about the general philosophy 0:01:11.119,0:01:14.560 of the notes and the general philosophy 0:01:13.119,0:01:16.159 of organization 0:01:14.560,0:01:18.479 but right now I really want to get into 0:01:16.159,0:01:22.640 the nitty gritty about or grow 0:01:18.479,0:01:25.759 so if we go in the git repository 0:01:22.640,0:01:27.920 this at the very core is all grown and 0:01:25.759,0:01:28.960 for some of you who have no experience 0:01:27.920,0:01:31.280 whatsoever 0:01:28.960,0:01:32.880 uh developing stuff or programming or 0:01:31.280,0:01:36.000 anything along those lines 0:01:32.880,0:01:36.720 this is how all the development around 0:01:36.000,0:01:40.000 the world 0:01:36.720,0:01:42.159 is working you have a repository a 0:01:40.000,0:01:44.399 git repository where you have all the 0:01:42.159,0:01:46.399 files all the libraries you're using 0:01:44.399,0:01:48.720 all the programs all the commands 0:01:46.399,0:01:52.240 everything is inside your files 0:01:48.720,0:01:53.759 and in a way this is the organ project 0:01:52.240,0:01:55.600 you can see that we have many files we 0:01:53.759,0:01:57.040 have organ buffer capture compat 0:01:55.600,0:02:00.399 completion dailies 0:01:57.040,0:02:02.000 etc etc so 0:02:00.399,0:02:04.079 before we dive a little deeper I just 0:02:02.000,0:02:04.640 want to give you a lay of the land so to 0:02:04.079,0:02:08.160 speak to 0:02:04.640,0:02:11.680 to know where we're heading so 0:02:08.160,0:02:15.599 orgro is built on top of old mode 0:02:11.680,0:02:17.760 and org mode gives us plenty of tools 0:02:15.599,0:02:18.800 to play around with the files I'm moving 0:02:17.760,0:02:20.080 the glass I'm 0:02:18.800,0:02:21.360 I'm starting to move my hands a little 0:02:20.080,0:02:22.959 bit you know when I get excited about 0:02:21.360,0:02:26.640 something I move my hand 0:02:22.959,0:02:29.360 and then that stuff happens so 0:02:26.640,0:02:31.360 in all chrome we have org mode and 0:02:29.360,0:02:33.360 augment gives us plenty of tools which 0:02:31.360,0:02:36.560 are incredibly useful 0:02:33.360,0:02:37.440 for writing stuff so you know we already 0:02:36.560,0:02:39.440 have the links 0:02:37.440,0:02:40.560 we already have the hierarchy which is 0:02:39.440,0:02:43.360 given by having 0:02:40.560,0:02:43.760 trees within trees within trees we have 0:02:43.360,0:02:45.760 uh 0:02:43.760,0:02:48.000 quote blocks we have babel blocks we 0:02:45.760,0:02:49.680 have so much stuff we have an arsenal of 0:02:48.000,0:02:53.519 tools that have been developed 0:02:49.680,0:02:56.640 for the last 15 years and 0:02:53.519,0:02:59.760 when you think about it all chrome just 0:02:56.640,0:03:01.360 wants to create backlinks but it sounds 0:02:59.760,0:03:02.239 something very simple but the problem is 0:03:01.360,0:03:05.519 that we need 0:03:02.239,0:03:06.400 to play nicely with all of those 0:03:05.519,0:03:09.360 intricate 0:03:06.400,0:03:10.879 pieces and the fact is it takes quite a 0:03:09.360,0:03:11.440 lot of expertise to be able to do so 0:03:10.879,0:03:14.400 because 0:03:11.440,0:03:15.200 if right now we are in the brain of all 0:03:14.400,0:03:18.959 grow 0:03:15.200,0:03:21.599 but if I show you the brain of org mode 0:03:18.959,0:03:23.280 so this is the brain of org mode and it 0:03:21.599,0:03:25.519 looks very simple like this because I 0:03:23.280,0:03:28.000 haven't entered the less folder 0:03:25.519,0:03:29.120 but I'm just going to enter it I'm going 0:03:28.000,0:03:32.000 to 0:03:29.120,0:03:32.959 zoom out a little bit don't worry if you 0:03:32.000,0:03:35.519 don't see everything 0:03:32.959,0:03:37.519 but I just want you to get a fear the 0:03:35.519,0:03:41.280 sheer feel of magnitude 0:03:37.519,0:03:42.640 that is um org mode so right now we are 0:03:41.280,0:03:43.760 in a very small size what I'm gonna do 0:03:42.640,0:03:47.519 I'm going to skip 0:03:43.760,0:03:51.040 one page okay one two 0:03:47.519,0:03:52.319 three we have let's just check how many 0:03:51.040,0:03:54.640 lines we have 0:03:52.319,0:03:56.480 okay let me just revert to a fairly 0:03:54.640,0:03:58.560 readable side 0:03:56.480,0:03:59.599 at the bottom you can see that we have 0:03:58.560,0:04:00.959 oh it's not showing because it's a 0:03:59.599,0:04:03.840 little small okay I'm just going to 0:04:00.959,0:04:06.959 resize the window a little bit 0:04:03.840,0:04:08.720 it's not showing up give me a second I 0:04:06.959,0:04:10.159 can't see how many lines I have okay so 0:04:08.720,0:04:11.840 let's do it to get away 0:04:10.159,0:04:14.000 I'm going to go back at the beginning of 0:04:11.840,0:04:16.160 the buffer and we're going to count 0:04:14.000,0:04:17.840 how many lines we have so the bottom in 0:04:16.160,0:04:18.880 a midi buffer and the mini buffer is 0:04:17.840,0:04:22.320 this area 0:04:18.880,0:04:25.919 we have 377 lines 0:04:22.320,0:04:29.759 which means 377 0:04:25.919,0:04:31.520 libraries within org mode and mind you 0:04:29.759,0:04:32.960 that's not counting all the modules that 0:04:31.520,0:04:36.240 we have on the side which 0:04:32.960,0:04:37.360 come on top of volt mode now when you 0:04:36.240,0:04:40.639 try to think 0:04:37.360,0:04:44.400 about something so elemental 0:04:40.639,0:04:45.520 as links you have to think about how to 0:04:44.400,0:04:48.560 play well 0:04:45.520,0:04:50.000 with every single one of these modules 0:04:48.560,0:04:53.759 now obviously not 0:04:50.000,0:04:56.080 the 370 370. sometimes you know 0:04:53.759,0:04:57.680 one module it's not going to do anything 0:04:56.080,0:04:58.639 like I'm not sure op car could be doing 0:04:57.680,0:05:00.080 anything with it 0:04:58.639,0:05:03.039 but it's something that we have to keep 0:05:00.080,0:05:04.720 in mind and so 0:05:03.039,0:05:07.520 really early on when we started 0:05:04.720,0:05:10.080 developing all grown with jethro kwan my 0:05:07.520,0:05:10.639 co-maintainer you know we had this idea 0:05:10.080,0:05:13.520 that 0:05:10.639,0:05:14.639 we wanted to develop something that was 0:05:13.520,0:05:18.240 optimized 0:05:14.639,0:05:20.160 something that would you know scale very 0:05:18.240,0:05:21.600 nicely whether or not you had 0:05:20.160,0:05:24.560 you know something that would work as 0:05:21.600,0:05:27.680 fast if you had 10 files 0:05:24.560,0:05:30.880 or if you had 100 files or if you had 0:05:27.680,0:05:32.080 10 000 files and maybe more so the 0:05:30.880,0:05:34.400 problem when you do this 0:05:32.080,0:05:36.320 and I'm doing some callbacks to the talk 0:05:34.400,0:05:41.280 I gave you earlier today about 0:05:36.320,0:05:44.800 few small few big files this is many 0:05:41.280,0:05:45.919 I got confused few big files versus many 0:05:44.800,0:05:49.280 small files 0:05:45.919,0:05:51.600 the problem with this is that we need to 0:05:49.280,0:05:53.680 think about optimization from the get go 0:05:51.600,0:05:54.800 and so one of the decision we took when 0:05:53.680,0:05:59.199 we got started 0:05:54.800,0:06:02.479 with orgrum is that if I go in my 0:05:59.199,0:06:04.240 test repository so that's the one in 0:06:02.479,0:06:08.000 which we were right before 0:06:04.240,0:06:11.600 we have a file which is called orgrumdb 0:06:08.000,0:06:14.160 now if I open it it's not it's a 0:06:11.600,0:06:15.120 little garbage because uh it's a binary 0:06:14.160,0:06:18.560 but what we have 0:06:15.120,0:06:21.919 is a database with which we communicate 0:06:18.560,0:06:25.120 via sorry it's an sql database 0:06:21.919,0:06:28.479 and what this allows us to do 0:06:25.120,0:06:31.919 is we store all the information we need 0:06:28.479,0:06:34.720 inside this sql database which allows us 0:06:31.919,0:06:35.360 to speed up a lot of the operations that 0:06:34.720,0:06:37.840 are 0:06:35.360,0:06:38.479 necessary for the functioning of our 0:06:37.840,0:06:40.240 ground 0:06:38.479,0:06:41.759 so for instance if I go back to the 0:06:40.240,0:06:43.440 index file that I had before 0:06:41.759,0:06:45.680 let's just go back to who actually this 0:06:43.440,0:06:47.919 way you'll see a little more on the side 0:06:45.680,0:06:48.720 so you see that on the side we have 0:06:47.919,0:06:50.319 whoops 0:06:48.720,0:06:51.759 two links I'm not going to click on them 0:06:50.319,0:06:53.199 otherwise I'm going to open them but we 0:06:51.759,0:06:56.319 have two links 0:06:53.199,0:06:58.240 now there are many implementations of 0:06:56.319,0:07:00.800 the zettol casten method inside 0:06:58.240,0:07:02.400 Emacs and inside and with old mode but 0:07:00.800,0:07:04.639 what we've decided to do 0:07:02.400,0:07:05.520 is that every time you have a link so if 0:07:04.639,0:07:08.479 we go to 0:07:05.520,0:07:09.120 the index again here at point we have 0:07:08.479,0:07:12.400 the link 0:07:09.120,0:07:14.160 foo every time we create a link we 0:07:12.400,0:07:16.800 update our database 0:07:14.160,0:07:17.919 to say okay so we have a link in the 0:07:16.800,0:07:21.080 file 0:07:17.919,0:07:24.319 index which is leading to the file 0:07:21.080,0:07:27.840 fu.org and it is situated 0:07:24.319,0:07:29.840 under the heading a heading and 0:07:27.840,0:07:31.440 if you check the site buffer you see 0:07:29.840,0:07:33.120 that all this all these information 0:07:31.440,0:07:36.720 which I just highlighted to you 0:07:33.120,0:07:36.720 are present right here 0:07:42.639,0:07:46.400 oh well sorry I forgot this thank you 0:07:45.599,0:07:50.879 okay 0:07:46.400,0:07:53.039 so let's see log okay I'm going to split 0:07:50.879,0:07:54.960 actually I'm going to split like this 0:07:53.039,0:07:56.960 I'm going to go back there 0:07:54.960,0:07:58.720 the problem is that I can't show my 0:07:56.960,0:08:02.080 keystrokes at the same time as a machine 0:07:58.720,0:08:03.599 I'm showing the site buffer so I'll 0:08:02.080,0:08:05.199 keep it right now for your own 0:08:03.599,0:08:07.039 discretion anyway getting back to the 0:08:05.199,0:08:10.160 talk 0:08:07.039,0:08:12.720 so the thing is we have this 0:08:10.160,0:08:13.520 sql database and the goal is to keep it 0:08:12.720,0:08:16.400 optimized 0:08:13.520,0:08:17.039 now why is it better optimized than just 0:08:16.400,0:08:20.960 using 0:08:17.039,0:08:23.520 orgrom sorry just using default org mode 0:08:20.960,0:08:24.080 so in my talk about many big files 0:08:23.520,0:08:26.879 versus 0:08:24.080,0:08:28.080 a few I keep getting you know you got 0:08:26.879,0:08:29.120 what I was saying I'm not going to 0:08:28.080,0:08:32.240 repeat it 0:08:29.120,0:08:35.200 by the way it is uh 10 to 10. 0:08:32.240,0:08:36.399 I'm starting really to be tired now so 0:08:35.200,0:08:39.279 uh moving on to 0:08:36.399,0:08:40.800 um what did I want to show you so it was 0:08:39.279,0:08:44.959 almost yes all the elements 0:08:40.800,0:08:47.200 so what I'm going to do I'm going to 0:08:44.959,0:08:48.399 see I believe it's org element pass 0:08:47.200,0:08:51.040 buffer 0:08:48.399,0:08:51.920 so I was telling you about all elements 0:08:51.040,0:08:53.600 before 0:08:51.920,0:08:55.760 and the main command sorry the main 0:08:53.600,0:08:58.560 function that is used by org element 0:08:55.760,0:08:59.760 is pass buffer what it does and you can 0:08:58.560,0:09:01.040 see the dock string is that it 0:08:59.760,0:09:03.279 recursively passed 0:09:01.040,0:09:04.959 the buffer and return structure 0:09:03.279,0:09:06.320 structure being all the information that 0:09:04.959,0:09:07.680 we have in this buffer 0:09:06.320,0:09:09.600 so just to show you a little more we're 0:09:07.680,0:09:10.880 going to move into a scratch buffer 0:09:09.600,0:09:12.800 and what we're going to do is that we're 0:09:10.880,0:09:16.320 going to write this command 0:09:12.800,0:09:17.760 pass buffer and we're going to check the 0:09:16.320,0:09:19.600 output of this command 0:09:17.760,0:09:22.000 oh sorry not this one we're going to go 0:09:19.600,0:09:23.680 in the index so the index file you have 0:09:22.000,0:09:25.120 a title you have a heading you have a 0:09:23.680,0:09:26.880 link etc etc 0:09:25.120,0:09:28.560 so what I'm going to do I'm going to 0:09:26.880,0:09:30.800 evaluate this text 0:09:28.560,0:09:32.560 and now at the bottom in the midi buffer 0:09:30.800,0:09:36.160 in the mini buffer sorry 0:09:32.560,0:09:37.600 you see an ast an abstract 0:09:36.160,0:09:39.839 obviously don't remember what the s 0:09:37.600,0:09:42.720 stands for semantic 0:09:39.839,0:09:43.519 huh interesting anyway a representation 0:09:42.720,0:09:45.279 of the data 0:09:43.519,0:09:47.600 in a way that is exploitable by a 0:09:45.279,0:09:49.839 machine now what I'm going to do 0:09:47.600,0:09:52.000 syntax thank you so what I'm going to do 0:09:49.839,0:09:54.480 I'm going to paste it inside the buffer 0:09:52.000,0:09:56.399 in a way that is humanly readable and 0:09:54.480,0:09:58.800 you can see that we have plenty of 0:09:56.399,0:10:00.560 information we have a section which 0:09:58.800,0:10:05.040 starts at the char 0:10:00.560,0:10:07.040 1 which ends at the character 45 0:10:05.040,0:10:08.240 we have the content so he makes scratch 0:10:07.040,0:10:10.240 oh actually no 0:10:08.240,0:10:11.279 never mind I did something wrong I run 0:10:10.240,0:10:13.040 it in the wrong buffer 0:10:11.279,0:10:14.399 so actually what I'm going to do we're 0:10:13.040,0:10:17.519 going to run this command 0:10:14.399,0:10:21.120 with the selected window next 0:10:17.519,0:10:23.760 window okay that's a bit of live 0:10:21.120,0:10:24.640 elise writing for you right now okay so 0:10:23.760,0:10:26.240 now if I 0:10:24.640,0:10:28.480 evaluate this and paste the content of 0:10:26.240,0:10:31.600 the buffer 0:10:28.480,0:10:32.399 it is doing its bidding so now what we 0:10:31.600,0:10:34.959 have 0:10:32.399,0:10:36.720 we have a section we have the keyword 0:10:34.959,0:10:38.160 title which you see right here you have 0:10:36.720,0:10:39.920 the value 0:10:38.160,0:10:41.360 if we scroll down a little bit we have a 0:10:39.920,0:10:42.480 heading which is right here we have the 0:10:41.360,0:10:44.800 contents 0:10:42.480,0:10:46.320 which should be yes the content is not 0:10:44.800,0:10:48.079 listed exactly here but you have a 0:10:46.320,0:10:50.640 paragraph which is this 0:10:48.079,0:10:51.200 and then you have a link etc etc it is 0:10:50.640,0:10:53.839 all 0:10:51.200,0:10:54.640 uh parenthesis if you're not used to 0:10:53.839,0:10:56.320 e-list 0:10:54.640,0:10:58.640 like right now I've selected only the 0:10:56.320,0:11:00.399 content of the parenthesis link 0:10:58.640,0:11:01.680 I can move like this etcetera etcetera 0:11:00.399,0:11:03.760 I'm not it's not a needle 0:11:01.680,0:11:05.279 lessons that I'm doing right now but 0:11:03.760,0:11:08.399 basically 0:11:05.279,0:11:09.120 if we were to use the default tooling of 0:11:08.399,0:11:10.880 orgrom 0:11:09.120,0:11:12.480 org mode sorry I keep getting too 0:11:10.880,0:11:14.240 confused sorry for that 0:11:12.480,0:11:16.399 uh it would be extremely slow to do what 0:11:14.240,0:11:19.760 we're doing some people 0:11:16.399,0:11:22.240 are doing so some implementations of the 0:11:19.760,0:11:23.040 zettelkassen method inside Emacs have 0:11:22.240,0:11:26.480 opted 0:11:23.040,0:11:27.360 for this method but the problem is that 0:11:26.480,0:11:30.160 we think 0:11:27.360,0:11:30.560 that it scales poorly now some other 0:11:30.160,0:11:33.920 people 0:11:30.560,0:11:35.600 have decided to not do with a database 0:11:33.920,0:11:37.200 and what they do is that they use a tool 0:11:35.600,0:11:38.800 which is called rip grep 0:11:37.200,0:11:41.279 you might know grep which is a tool that 0:11:38.800,0:11:43.440 allows you to search 0:11:41.279,0:11:46.560 a file the content of a file for a line 0:11:43.440,0:11:49.680 so for instance if we open v term here 0:11:46.560,0:11:51.839 uh let's see so I've opened the term I 0:11:49.680,0:11:54.399 am in this repository what I'm going to 0:11:51.839,0:11:58.000 do is that I'm going to 0:11:54.399,0:12:00.480 load the content of the file uh 0:11:58.000,0:12:02.480 how am I going to do this oh um I need 0:12:00.480,0:12:06.160 to move to bash 0:12:02.480,0:12:08.000 let's do crap 0:12:06.160,0:12:09.519 for the line which links do we did we 0:12:08.000,0:12:11.600 have grep foo 0:12:09.519,0:12:13.760 inside the file is it three I can 0:12:11.600,0:12:16.880 remember okay let's do this 0:12:13.760,0:12:16.880 am I working no 0:12:18.079,0:12:22.800 let's go for four why is it eight 0:12:21.279,0:12:24.320 ah damn it oh you know what I'm just 0:12:22.800,0:12:28.240 going to copy the name 0:12:24.320,0:12:33.279 up there we go no 0:12:28.240,0:12:33.279 ah problem with live presentation always 0:12:33.680,0:12:36.720 you know what I'm struggling so I'm 0:12:34.800,0:12:38.560 going to drop this point anyway 0:12:36.720,0:12:40.000 so grep is a simple tool that allows you 0:12:38.560,0:12:42.480 to search the content of a file but 0:12:40.000,0:12:44.160 rig grep is a solution that is written 0:12:42.480,0:12:45.920 in rust and which is supposed to be 0:12:44.160,0:12:48.880 well not supposed which is far more 0:12:45.920,0:12:50.639 capable now 0:12:48.880,0:12:52.320 I'd like to talk to you about the future 0:12:50.639,0:12:54.720 of orgrim right now I've told you about 0:12:52.320,0:12:58.399 the general concept which is about using 0:12:54.720,0:13:01.519 uh this sql database and about 0:12:58.399,0:13:03.279 playing nicely with old mode but 0:13:01.519,0:13:05.200 we think that there's something great 0:13:03.279,0:13:08.320 that we can do about orgrim 0:13:05.200,0:13:10.320 now I've been talking with the a lot of 0:13:08.320,0:13:10.880 people who are behind org mode and you 0:13:10.320,0:13:14.000 know 0:13:10.880,0:13:16.880 they've told us do you think that 0:13:14.000,0:13:18.320 orgrom could have something to bring to 0:13:16.880,0:13:20.160 old mode let's say 0:13:18.320,0:13:21.600 backlinks is there something that we 0:13:20.160,0:13:25.600 could be doing to 0:13:21.600,0:13:27.200 import backlinks into old mode and 0:13:25.600,0:13:29.200 we thought about it with jethro and the 0:13:27.200,0:13:30.800 problem is uh 0:13:29.200,0:13:32.720 we've always tried to have an 0:13:30.800,0:13:35.360 experimental ground a very 0:13:32.720,0:13:36.320 uh can a very isolated portion of your 0:13:35.360,0:13:37.920 system 0:13:36.320,0:13:40.320 where we could track backlinks and 0:13:37.920,0:13:42.320 that's why we use um 0:13:40.320,0:13:44.880 a slipbox directory so that we only 0:13:42.320,0:13:47.040 track backlinks in one specific place 0:13:44.880,0:13:48.639 but now because there seems to be so 0:13:47.040,0:13:50.079 much interest about the method and we 0:13:48.639,0:13:52.480 have so much backing 0:13:50.079,0:13:53.120 on uh you know on github we have like 0:13:52.480,0:13:56.399 200 0:13:53.120,0:13:59.760 2 600 stars which is mind-boggling to us 0:13:56.399,0:14:02.399 because we have so much success but 0:13:59.760,0:14:03.360 we have plenty of ideas about the future 0:14:02.399,0:14:06.000 one of the key 0:14:03.360,0:14:08.480 parts of development being the writing 0:14:06.000,0:14:09.680 of an external parser for orgrim 0:14:08.480,0:14:11.839 so I've been telling you about org 0:14:09.680,0:14:15.279 element org elements runs 0:14:11.839,0:14:19.519 inside Emacs but what if 0:14:15.279,0:14:23.600 we wrote a background process 0:14:19.519,0:14:25.760 that could read a file an augment file 0:14:23.600,0:14:27.440 extract the same type of data that you 0:14:25.760,0:14:30.240 see on your screen right now 0:14:27.440,0:14:30.959 so that we could use to update a 0:14:30.240,0:14:33.279 database 0:14:30.959,0:14:34.959 so that we could use to compute the 0:14:33.279,0:14:37.360 links so that we could use it 0:14:34.959,0:14:39.519 to show you know orgrim server all the 0:14:37.360,0:14:41.360 connections between your nodes 0:14:39.519,0:14:44.320 now there is a path of improvement here 0:14:41.360,0:14:47.360 that is extremely important to us 0:14:44.320,0:14:48.639 but you know that's the technical aspect 0:14:47.360,0:14:50.079 and I'm out of time I'm just going to 0:14:48.639,0:14:51.360 take one more minute to finish on this 0:14:50.079,0:14:54.560 point 0:14:51.360,0:14:57.680 but we believe 0:14:54.560,0:14:58.399 that orgrim has the potential to be a 0:14:57.680,0:15:00.639 think tank 0:14:58.399,0:15:01.920 in a way for org mode and the way we 0:15:00.639,0:15:04.079 think about 0:15:01.920,0:15:06.079 note-taking in general I've stressed a 0:15:04.079,0:15:10.240 great deal in my first presentation 0:15:06.079,0:15:12.480 sorry the one I did before neura that 0:15:10.240,0:15:14.639 all chrome is really great as a way to 0:15:12.480,0:15:17.600 think organically about knowledge 0:15:14.639,0:15:19.279 and honestly we kind of want to put the 0:15:17.600,0:15:22.079 theory into practice with orgrim 0:15:19.279,0:15:23.440 we are holding something which has the 0:15:22.079,0:15:25.120 potential to be 0:15:23.440,0:15:27.279 a great factor of innovation for the 0:15:25.120,0:15:29.600 future whether it be or org mode 0:15:27.279,0:15:31.440 or even for software in general you know 0:15:29.600,0:15:34.880 the way to think about 0:15:31.440,0:15:37.440 build nodes of knowledge in a way 0:15:34.880,0:15:38.240 and the way to represent all those ids 0:15:37.440,0:15:40.560 with the graph 0:15:38.240,0:15:41.600 the way to basically have a note-taking 0:15:40.560,0:15:43.360 system that 0:15:41.600,0:15:45.839 corresponds to the research that 0:15:43.360,0:15:49.120 corresponds to the way you think 0:15:45.839,0:15:51.839 so yeah I believe we are 0:15:49.120,0:15:53.519 really excited about this and if you 0:15:51.839,0:15:55.360 want to keep track of the development of 0:15:53.519,0:15:57.600 all chrome 0:15:55.360,0:15:59.279 I on my youtube channel which is already 0:15:57.600,0:16:02.639 linked a little earlier 0:15:59.279,0:16:04.240 inside this present inside the pad sorry 0:16:02.639,0:16:06.079 I do have a youtube channel where I try 0:16:04.240,0:16:09.519 to present novelties 0:16:06.079,0:16:11.519 or the new stuff inside um orgrim 0:16:09.519,0:16:13.360 but I also be recording videos about the 0:16:11.519,0:16:15.519 technical aspects about the direction 0:16:13.360,0:16:18.000 that we're taking with orgrim 0:16:15.519,0:16:18.560 and if you want to talk with us we are 0:16:18.000,0:16:22.160 always 0:16:18.560,0:16:23.680 available either on isc channel orgrom 0:16:22.160,0:16:25.279 I believe there's a dash between org and 0:16:23.680,0:16:27.279 rome but also 0:16:25.279,0:16:29.440 on the discourse and I'll be putting all 0:16:27.279,0:16:31.199 the links inside the conversation 0:16:29.440,0:16:32.880 and that's me done so thank you for 0:16:31.199,0:16:34.560 listening and now I'll be taking 0:16:32.880,0:16:37.360 three minutes of questions so as to be 0:16:34.560,0:16:39.920 right on time 0:16:37.360,0:16:41.120 mini thanks for your awesome talk leo 0:16:39.920,0:16:43.040 thank you 0:16:41.120,0:16:44.959 so I'm just refreshing the page and I'm 0:16:43.040,0:16:49.279 going to scroll down to my 0:16:44.959,0:16:49.279 talk if I can find the right section 0:16:49.600,0:16:52.720 let me just scroll a little bit 0:16:53.120,0:16:57.120 uh reproducible Emacs no I think it's 0:16:55.600,0:16:59.279 slower 0:16:57.120,0:17:00.639 god we have so many questions so at the 0:16:59.279,0:17:01.120 same time I'm pissed because I can't 0:17:00.639,0:17:02.639 find it 0:17:01.120,0:17:05.360 but I'm really really impressed by the 0:17:02.639,0:17:07.760 number of questions that we had oh yeah 0:17:05.360,0:17:08.260 um which is about I think about line 600 0:17:07.760,0:17:09.919 or so 0:17:08.260,0:17:13.199 [Music] 0:17:09.919,0:17:16.400 yes got it splendid 0:17:13.199,0:17:18.160 so um the questions so why not run a 0:17:16.400,0:17:19.919 background Emacs for passing instead of 0:17:18.160,0:17:22.559 implementing a new parser 0:17:19.919,0:17:24.480 so I believe we've had this question uh 0:17:22.559,0:17:27.600 I was giving a similar talk 0:17:24.480,0:17:31.679 earlier this week and this week 0:17:27.600,0:17:33.280 I'm not french this week sorry and 0:17:31.679,0:17:35.679 someone asked me this question and the 0:17:33.280,0:17:38.320 thing is running a background Emacs 0:17:35.679,0:17:40.400 process you know it sounds great 0:17:38.320,0:17:41.760 but it's also very limited because all 0:17:40.400,0:17:45.520 the problems we have 0:17:41.760,0:17:48.160 about concurrency about threads in Emacs 0:17:45.520,0:17:49.200 well yes we can forward all our calls to 0:17:48.160,0:17:51.760 background Emacs 0:17:49.200,0:17:52.240 just like uh you know when you export a 0:17:51.760,0:17:56.400 file 0:17:52.240,0:17:57.840 with uh um sorry 0:17:56.400,0:17:58.799 I mean could you mute microphone when 0:17:57.840,0:18:01.520 you're speaking it's a little hard for 0:17:58.799,0:18:03.600 me to concentrate 0:18:01.520,0:18:04.640 that's fine don't worry you are now uh 0:18:03.600,0:18:06.960 so um 0:18:04.640,0:18:07.679 dammit where was I I'm sorry the 0:18:06.960,0:18:09.280 question yes 0:18:07.679,0:18:11.840 so basically forwarding all the 0:18:09.280,0:18:13.039 questions uh sorry all our queries to uh 0:18:11.840,0:18:16.000 background Emacs 0:18:13.039,0:18:17.960 that is what uh org export is doing like 0:18:16.000,0:18:20.799 you have the ability to 0:18:17.960,0:18:22.080 asynchronously export latex documents 0:18:20.799,0:18:24.480 odt documents from 0:18:22.080,0:18:26.000 org mode and it uses a very minimal 0:18:24.480,0:18:28.240 version of Emacs to do that but the 0:18:26.000,0:18:30.320 problem is that we think that it's not 0:18:28.240,0:18:33.039 going to scale as well as a true 0:18:30.320,0:18:34.480 genuine background process and since we 0:18:33.039,0:18:36.000 have been talking a lot 0:18:34.480,0:18:38.160 as far as the old mode development is 0:18:36.000,0:18:40.640 concerned about 0:18:38.160,0:18:41.760 writing a proper parser writing a proper 0:18:40.640,0:18:43.440 documentation 0:18:41.760,0:18:46.000 for the passing of old mode file and 0:18:43.440,0:18:48.400 writing a proper document standard 0:18:46.000,0:18:50.000 that says okay this is how the old mode 0:18:48.400,0:18:52.000 format works you know to 0:18:50.000,0:18:55.120 basically have a way to not fall into 0:18:52.000,0:18:56.559 the traps of markdown which has many 0:18:55.120,0:18:58.480 many standards 0:18:56.559,0:19:00.000 we need to think about this and we 0:18:58.480,0:19:01.360 believe that all grown has 0:19:00.000,0:19:03.120 the ability to think about these 0:19:01.360,0:19:04.640 questions and as a 0:19:03.120,0:19:06.400 as a person I'm also really interested 0:19:04.640,0:19:07.840 about this so 0:19:06.400,0:19:10.160 I can take the question I mean so don't 0:19:07.840,0:19:11.760 worry about feeding them to me so how 0:19:10.160,0:19:13.679 often does the 0:19:11.760,0:19:14.799 db index get updated in order to contain 0:19:13.679,0:19:17.360 changes within the 0:19:14.799,0:19:19.440 files so we have two ways either we 0:19:17.360,0:19:22.160 update as soon as you save a file 0:19:19.440,0:19:23.600 or we have a timer which is an idle 0:19:22.160,0:19:25.600 timer which waits okay 0:19:23.600,0:19:26.960 the user has not imputed inputted 0:19:25.600,0:19:29.360 anything in the last 0:19:26.960,0:19:30.080 five seconds so it's time to queue a 0:19:29.360,0:19:33.039 database 0:19:30.080,0:19:33.919 passing a rebuild of the data not a an 0:19:33.039,0:19:37.120 incrementation 0:19:33.919,0:19:38.799 of the database I should say so 0:19:37.120,0:19:40.320 did you ever think of uh I believe I 0:19:38.799,0:19:42.240 have one more one more minutes and then 0:19:40.320,0:19:43.440 I'll hand it to the other folks 0:19:42.240,0:19:45.440 do you ever think of opening up or 0:19:43.440,0:19:47.200 designing the sqldb as a general all 0:19:45.440,0:19:48.160 speed up tool outside of orgrom so that 0:19:47.200,0:19:49.919 other libraries 0:19:48.160,0:19:51.679 that do execute complex queries are able 0:19:49.919,0:19:52.960 to use it well 0:19:51.679,0:19:54.640 a lot of people have been working on 0:19:52.960,0:19:56.480 this and I believe alpha papa has been 0:19:54.640,0:19:57.679 thinking quite a lot about this you know 0:19:56.480,0:20:01.120 all ql 0:19:57.679,0:20:03.679 is the ql stands for language 0:20:01.120,0:20:04.720 and I I can't remember now what's uh 0:20:03.679,0:20:08.080 what's the backend 0:20:04.720,0:20:10.080 is for all ql but the idea is relatively 0:20:08.080,0:20:13.039 relatively the same you know it's about 0:20:10.080,0:20:14.880 finding ways to optimize the way we 0:20:13.039,0:20:16.640 store the data about an old mode file 0:20:14.880,0:20:20.400 and how we retrieve it 0:20:16.640,0:20:22.159 and sql for us seems to seem to be a 0:20:20.400,0:20:24.240 good idea now obviously 0:20:22.159,0:20:26.080 maybe we could do something about old 0:20:24.240,0:20:27.360 mode but the problem is I think a 0:20:26.080,0:20:30.799 background process 0:20:27.360,0:20:32.960 is not necessarily um in 0:20:30.799,0:20:34.000 the core mentality of old mode but it's 0:20:32.960,0:20:36.080 definitely a 0:20:34.000,0:20:37.679 something that we could suggest uh when 0:20:36.080,0:20:40.960 we are a little more mature because well 0:20:37.679,0:20:41.679 orgrom was started last february and so 0:20:40.960,0:20:44.480 it's a fairly 0:20:41.679,0:20:45.840 young project in a way so uh I see 0:20:44.480,0:20:48.400 plenty more questions but 0:20:45.840,0:20:50.559 I'm out of time folks so I'm not sure uh 0:20:48.400,0:20:52.559 the other speaker is probably ready 0:20:50.559,0:20:54.000 so what I'll do is I'll probably try to 0:20:52.559,0:20:55.360 answer your questions when I get the 0:20:54.000,0:20:58.960 time inside the pad 0:20:55.360,0:21:01.039 but feel free to ping me on isc 0:20:58.960,0:21:02.320 or on the different channels we have 0:21:01.039,0:21:04.000 foreground and 0:21:02.320,0:21:05.520 I answer them with you know as much 0:21:04.000,0:21:07.600 energy as I can gather 0:21:05.520,0:21:08.880 all right thank you so much you are now 0:21:07.600,0:21:11.760 unmuted 0:21:08.880,0:21:13.120 thank you again very much leo and that 0:21:11.760,0:21:14.000 was me done for today so you'll see me 0:21:13.120,0:21:15.840 at the end but I'm 0:21:14.000,0:21:17.840 officially done and I am free of 0:21:15.840,0:21:22.640 thoughts I can focus on 0:21:17.840,0:21:27.760 sleeping probably awesome 0:21:22.640,0:21:27.760 all right see you guys later bye bye