summaryrefslogblamecommitdiffstats
path: root/2020/subtitles/emacsconf-2020--12-one-big-ass-org-file-or-multiple-tiny-ones-finally-the-end-of-the-debate--leo-vivier.vtt
blob: ba6afec00e525c7ad610dc78cd740a5ae09cc013 (plain) (tree)
1
2
3
4
5
6
7
8
9
10


                             

                                        

                             
                                     

                             
                                

                             
                                     

                             
              

                             
                                                    

                             
                         

                             
            

                             
                                         

                             
                                    

                             
                                                

                             
          

                             
                                      

                             
                          

                             
                                      




                             
                    

                             
                                       

                             
                                       
 


                                       

                             
                                            

                             
                                







                                  
                   

                             
                                     

                             
                                       

                             
                       

                             
                             







                                    

                           
 


                              

                             
                                        




                             
                                     

                             
                  

                             
                                  
 

                                   


                             
                                       

                             
                            

                             
                           

                             
                                     

                             
                                  

                             
                      

                             
                                       




                                     
         

                             
                                         

                             
                            

                             
                            

                             
                              

                             
                                      




                                       
                    

                             
                                   

                             
                         
 

                                       





                                       
                                        

                             
                                 
 


                                




                                       
                                       

                             
                                  

                             
                                        

                             
                                         
 

                                                 

                             
               

                             
                                     

                             
                               

                             
                                      




                             
                                       

                             
                                

                             
                                     

                             
                                            

                             
                                  

                             
                                

                             
                   




                                       
          

                             
                                       

                             
                                      

                             
                                        

                             
                               

                             
                                     

                             
                                     






                                      

                                  


                             
                                    

                             
                        

                             
                                      

                             
                                 

                             
                                       
 


                                 

                             
                              

                             
                        

                             
                      




                                     
                 

                             
                                   

                             
                                        

                             
                                      

                             
                                          




                             
                                

                             
                   

                             
                              

                             
               
 


                                

                             
                                     

                             
                       

                             
                           

                             
                                      

                             
                                 




                             
                                          

                             
                                   

                             
                                        

                             
                                

                             
                            

                             
                                         

                             
                        

                             
                                         




                             
                                        

                             
             

                             
                        

                             
                             




                                        
                                        

                             
                

                             
                                    

                             
         
 

                                    





                                 
                                        




                             
                                 

                             
                                 

                             
                                        
 

                             
 

                             

                             
                              

                             
                                        

                             
                                           

                             
                              

                             
                             

                             
                            

                             
                                    

                             
                                      

                             
                                        

                             
                                       




                             
                                     

                             
                                        

                             
                                         

                             
                                   

                             
                                           




                             
                                

                             
                                     

                             
                                          

                             
                                       

                             
                                          

                             
          
 


                               

                             
                                     

                             
                                       




                                      
                

                             
                                          

                             
                     

                             
                                         




                                     
                  

                             
                            

                             
                         

                             
                                        

                             
                                         

                             
                    

                             
                                    

                             
                                          

                             
                  

                             
                                           

                             
                                           

                             
                                  

                             
                               
 

                                   


                             
                                          

                             
                                           

                             
                                        

                             
                          

                             
                                       

                             
                                        




                                     
                  



                                     


                                       

                             
                                        

                             
                      

                             
                                     

                             
         

                             
                                       

                             
                                   

                             
                             

                             
                                       




                                      
            

                             
                                 

                             
                                 

                             
                                   

                             
                                    




                                   
                       

                             
                                      

                             
                                




                                     
           

                             
                                   




                             
                                          

                             
                                      

                             
                                   

                             
                            

                             
                              

                             
                                         

                             
                  

                             
                                           

                             
                                     

                             
          

                             
                                       




                             
                                        

                             
                                

                             
                          

                             
                                        

                             
               

                             
                             







                                     
                                           



                                    
                             
                                      

                             
                                    

                             
                                       

                             
                                    

                             
                            

                             
                             

                             
                       
 


                                    







                                        
                                  
 


                                     

                             
                                      




                             
                                      




                             
                                

                             
                                        

                             
                                   
 


                                    

                             
                                      

                             
                                      

                             
                                        

                             
                              

                             
                                          

                             
                                   

                             
                                        

                             
                                          

                             
                        
 
                             
                                  
       

                             
                                       

                             
           

                             
                                 

                             
                       

                             
                                            

                             
                                      

                             
             

                             
                                    

                             
                           

                             
                        

                             
                                        

                             
              









                                       


                                       

                             
                                        

                             
            

                             
                                       
 

                                   

                             
                                 

                             
                 
 


                                     

                             
                                      

                             
                                   

                             
          

                             
                                      

                             
                                 

                             
                         

                             
                               

                             
         

                             
                                        

                             
                        

                             
                                   

                             
                                     

                             
                                     

                             
                     

                             
                                          

                             
                                       




                             
                                      







                                    
                  
 

                                       

                             
                                    




                              
                                             
 
                             
                                        
 

                                     
 


                               




                             
                                          
 


                                     

                             
                                    
 


                                        

                             
                              

                             
                         







                                    
                  

                             
                                         

                             
                                    

                             
                     

                             
                                    

                             
                     

                             
                                        

                             
                                  

                             
                                        
 

                                          




                                       
                                         
 

                                           

                             
                                     

                             
                        

                             
                                        

                             
                             

                             
                                      
 


                                    

                             
                                   

                             
                                        




                                
                                    

                             
                                        
 

                                                

                             
                                          

                             
                 

                             
                                      
 


                                       

                             
                                     

                             
                                     

                             
                  



                                    

                                        




                                        
                     

                             
                            

                             
                         

                             
                    

                             
                                    




                             
                                  







                                      
      

                             
                                          

                             
             

                             
                                       
 
                             
                                      
     

                             
                                     




                             
                         

                             
                         

                             
                         

                             
                                




                                    
                             




                                    
                       

                             
                                     







                                   
            

                             
                                     




                                    
                                 

                             
                                       

                             
                 




                                      
                               

                             
                                          

                             
                         

                             
                         

                             
                                



                                       

                                      

                             
                                     

                             
                                     

                             
             

                             
                                        
 


                                  

                             
                                        




                             
                                

                             
                                              

                             
                                

                             
                                    

                             
                                        

                             
                    

                             
                                

                             
                                    

                             
                                   
 


                                      
 
                             
                                        
      

                             
                                     
 


                                      

                             
                                     

                             
                        

                             
                                           

                             
                

                             
                                  

                             
    
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
Karl 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 Fong (??) 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.