summaryrefslogblamecommitdiffstats
path: root/2020/subtitles/emacsconf-2020--02-an-emacs-developer-story-from-user-to-package-maintainer--leo-vivier.vtt
blob: 37114bf07f7884bb26bdc2644f055a5392ef8413 (plain) (tree)
1
2
3
4
5
6
7
8




                                           

                              
 


                                      
 


                                       
 
                             
                        

                  


                             
 


                             
 


                               
 


                              
 

                                       
 
                             
                                     
     
 


                                 
 


                                  
 
                             
                                         
          
 

                             
 
                             
                                      
      
 


                                        



                             
                             
                                 
          
 

                                   
 

                               
 

                                  
 
                             
                                     
         
 

                             
 


                                       
 

                             
 


                                     
 

                               






                                       


                                 

                                     
 

                             
 

                                 
 

                             



                                    

                                   
 

                             
 

                             
 

                             
 

                             
 

                             
 


                             



                                       
                             
                               
           
 

                                        
 

                                        

           
                             
                                  

                    
                             
                             
               
 

                             



























                                        
                             
                                
           
 


                                    
 


                                     






                                   


                             
 

                                       




                                     

                             
 

                                      
 

                                       
 


                                     
 


                                       

                             
                        

                             

                                      
 


                                     
 


                                      
 

                             
 


                                     
 

                                
 

                             
 


                             
 


                               
 


                                      






                                     

                                
 


                                   

                             
                                         
 


                                    
 

                             
 

                                  



                                    


                                    
 

                                
 


                                    
 

                                   
 

                               



                                         
                             
                                
                       
 

                               

          


                             
 

                             



                             




                             
 

                                    
 


                                   



                                    

                             
 

                             
 

                             
 

                               






                                     

                             
 


                               
 

                                  
 


                                      
 

                             
 

                                
 

                                       
 


                                   
 
                             
                                 
                
 

                             









                                        


                             
 

                             
 


                             
 
                             
                         
        
 

                               




                             

                                    
 

                                    




                             
                             
                                 
         
 

                                
 

                             






                                   
                             
                                      




                             
                             
                              

                

                             
 


                                 






                             
                             
                                      







                             
                             
                                  







                                     

                                       




                                          
                                           
 

                             
 




                               



                                 

                             
 


                                 
 

                             
 


                                     
 


                             
 


                                    
 


                             
 

                             
 


                             
 

                                       
 


                                
 


                                     
 

                                   
 

                                  
 

                                 
 


                                   






                                    

                               
 

                                      
 

                             
 


                             



                                         


                                     
 


                             
 


                             
 

                                










                                  

                                   
 

                                   
 

                                  
 

                             
 


                                     
 

                                       






                                     

                             
 


                                        
 

                             









                                           


                                
 

                                     






                                        
                             
                                    













                                            
                             
                                       

             


                                   
 

                                 

                             
              
 

                             
 

                             
 
                             
                            
         
 

                              
 

                             
 

                             
 
                             
                                








                                    
                                



                             
                             
                                      

           
                             
                                        
               
 


                                        
 


                                
 

                                
 

                               
 

                             
 

                             
 

                                       
 


                                   
 

                              
 

                             
 


                                      



                                  

                             
 

                                        





                                       

                                      

                             
                                  






                                   

                             
 


                                   
 


                                  
 
                             
                                        

                    


                                    
 

                                
 

                             



                                     
                             
                                 























                                        
                                    



                             

                                
 

                                 



                                   

                             
 

                                















                                       

                             
 


                               







                                       

                                  
 

                             
 

                                       
 


                             






                                        

                             
 

                                 
 

                              



                             

                             
 


                                     
 


                                    

                             
                                 






                                        

                                
 

                             
 


                                      
 
                             
                                      

           

                             
 


                             
 

                                    
 


                             






                                           

                              
 

                                   

          

                             
 

                             







                                    
                      
 

                                  
 

                                  
 


                                      






                                    




                             
 

                                
 


                              
 


                             
 

                             









                               
                             
                                
                    
 


                                        






                                      

                             
 


                                     
 


                                     
 


                               
 

                                
 

                              
 

                                
 

                             
 

                              
 

                             
 

                              
 

                             
 


                                      
 
                             
                                        





                                   
                                    



                                       


                                     




                              
                          
 

                                  
 

                                   
 


                                
 


                                      
 

                                   
 

                                     









                                          


                              
 

                             
 


                                 
 

                                      
 

                             
 

                                      
 

                                
 


                                 
 


                                   
 


                                       
 


                                      
 
                             
                                       
                   



                                           
                             
                                     

                  


                                        
 


                                      



                                
                             
                                      


                             
                                       
 
                             
                                         

             
                             
                                  
         
 


                                        
 


                                  
 

                                     
 

                              
 


                             
 


                             



                             

                                   
 

                                  
 

                             







                             

                             



                                      

                                 
 


                              
 

                             
 

                                 



                                        

                             
 

                                        
 


                                        
 


                                       
 
                             
                                      
                                       
 

                             
 


                               
 

                             
 

                             
 

                             
 

                             
 

                             
 

                                     
 

                                  
 

                                

           

                              
 


                                     
 

                                  
 
                             
                                      

           

                               
 


                             
 

                             

                             
                         
 


                                     






                              


                             
 

                                      



                                     

                                    
 

                             
 

                             
 

                              
 


                                   
 

                                     






























                                         


                                     
 


                                   
 


                                       
 


                                        
 
                             
                                      




                                         

                             
 


                                     
 

                                
 


                                       

                             
                                           
 




                             












                                      

                                    
 

                                   
 

                             
 

                                       



                                      


                                      



                             


                                       
 

                               



                             

                              
 

                                
 


                                      
 

                                       
 

                                      
 

                                   
 

                                        
 
                             
                                       
           
 


                                     



                                    

                             
 


                             
 


                                     

                             
                                       
 


                                    
 

                                       
 

                             



                             

                             
 


                                      






                                       
                             
                                      

          


                                 
 


                                      
 


                                    
 

                             

                             
                                    




                                         
                                       












                                    


                             
 

                                
 

                             
 

                                      
 

                                 
 

                              















                                          

                             
 

                                   
 

                             
 


                             
 

                             



                                       


                                     
 

                              
 

                                  


                                                  
WEBVTT

00:00:00.000 --> 00:00:03.760
(Amin: Alrighty, Leo Vivier, take it away.)

00:00:03.760 --> 00:00:05.319
Okay, well, thank you. I'm in.

00:00:05.319 --> 00:00:08.393
So you've just had a little roundup of
the news,

00:00:08.393 --> 00:00:11.120
and we're going to get started now with
some presentations.

00:00:11.120 --> 00:00:15.920
We're starting with user
developer stories.

00:00:15.920 --> 00:00:18.568
I was extremely interested in
this section

00:00:18.568 --> 00:00:21.133
because I wanted to get
a chance, basically,

00:00:21.133 --> 00:00:24.160
to tell you a little more about
who I am and

00:00:24.160 --> 00:00:28.160
how I got from basically being
a user of Emacs

00:00:28.160 --> 00:00:31.279
to being nowadays a package maintainer,

00:00:31.279 --> 00:00:34.156
and maybe more in the future. I don't
know.

00:00:34.156 --> 00:00:36.954
So, just for the organizers, I'm
planning to speak for 15 minutes,

00:00:36.954 --> 00:00:39.680
and I'll have five more minutes of
questions at the end.

00:00:39.680 --> 00:00:41.880
As I told you before, if you want to have
questions,

00:00:41.880 --> 00:00:43.440
you know you can use the pad,

00:00:43.440 --> 00:00:45.871
and I'll be reading the questions from
there.

00:00:45.871 --> 00:00:49.600
Okay. So hi there, as Amin introduced me
before,

00:00:49.600 --> 00:00:51.280
my name is Leo Vivier.

00:00:51.280 --> 00:00:55.662
I'm a freelance software engineer
in France,

00:00:55.662 --> 00:00:59.359
and I have been using Emacs now for

00:00:59.359 --> 00:01:00.885
I believe close to eight years.

00:01:00.885 --> 00:01:03.039
I can't believe it's been so long.

00:01:03.039 --> 00:01:09.967
But yes, it's been a journey because,
in a way,

00:01:09.967 --> 00:01:13.255
nothing made me go for Emacs.

00:01:13.255 --> 00:01:17.011
You know I'm an-- sorry, I was about to
say Emacs major,

00:01:17.011 --> 00:01:18.638
but no, I'm an English major.

00:01:18.638 --> 00:01:23.990
I went to university to study English
literature and linguistics,

00:01:23.990 --> 00:01:26.159
and I just got started in Emacs

00:01:26.159 --> 00:01:28.240
because I was looking for ways to take

00:01:28.240 --> 00:01:31.340
better notes. I was looking for ways to

00:01:32.640 --> 00:01:34.640
structure the way I was learning,

00:01:34.640 --> 00:01:38.084
structure the way I was taking notes.

00:01:38.084 --> 00:01:40.079
I stumbled one day

00:01:40.079 --> 00:01:42.032
upon this weird piece of software

00:01:42.032 --> 00:01:43.759
which was called Emacs,

00:01:43.759 --> 00:01:46.479
and I've been trapped forever since,

00:01:46.479 --> 00:01:48.328
basically, because eight years ago,

00:01:48.328 --> 00:01:49.515
when I discovered Emacs,

00:01:49.515 --> 00:01:50.632
I just couldn't let go.

00:01:50.632 --> 00:01:52.720
There was just something very

00:01:52.720 --> 00:01:54.487
interesting about the way

00:01:54.487 --> 00:01:56.320
you configured your setup,

00:01:56.320 --> 00:01:59.759
and I just wanted to
dive deeper and deeper.

00:01:59.759 --> 00:02:04.320
So the title is of this talk exactly is

00:02:04.320 --> 00:02:07.637
how I went from user to package
maintainer,

00:02:07.637 --> 00:02:09.686
and the package now that I'm maintaining

00:02:09.686 --> 00:02:12.080
is called org-roam. I'm not the only one
doing this.

00:02:12.080 --> 00:02:18.720
I'm helped with many lovely people
working on org-roam.

00:02:18.720 --> 00:02:22.149
I got started as a maintainer
only this year,

00:02:22.149 --> 00:02:23.360
so that means that for

00:02:23.360 --> 00:02:24.720
the eight years I've been

00:02:24.720 --> 00:02:27.360
an Emacs user, seven of those years were

00:02:27.360 --> 00:02:29.200
spent merely being a user

00:02:29.200 --> 00:02:31.040
trying to be a sponge for knowledge,

00:02:31.040 --> 00:02:33.920
trying to learn as much as I could.

00:02:33.920 --> 00:02:36.800
I believe it would be

00:02:36.800 --> 00:02:39.040
interesting for me to share my story

00:02:39.040 --> 00:02:40.959
because I believe that I'm far from

00:02:40.959 --> 00:02:42.160
being the only user

00:02:42.160 --> 00:02:44.327
who can make the jump to being a
maintainer.

00:02:44.327 --> 00:02:47.572
A lot of you have a lot of knowledge
when it comes to Emacs.

00:02:47.572 --> 00:02:51.040
Some of you are at different steps in
your journey.

00:02:51.040 --> 00:02:52.720
Some of you, for instance, are just

00:02:52.720 --> 00:02:55.680
starting to copy stuff out of

00:02:55.680 --> 00:02:59.058
StackExchange into your Emacs
configuration.

00:02:59.058 --> 00:03:01.599
Let's say you want to do something very
particular

00:03:01.599 --> 00:03:04.480
and you haven't found a way to do so.

00:03:04.480 --> 00:03:05.527
You go on StackExchange.

00:03:05.527 --> 00:03:07.930
You find something that's interesting.

00:03:07.930 --> 00:03:10.077
You add it to your Emacs configuration.

00:03:10.077 --> 00:03:11.680
You barely understand anything that's
going on.

00:03:11.680 --> 00:03:14.800
You know that it's supposed to be Emacs
Lisp.

00:03:14.800 --> 00:03:17.200
"I hardly know Emacs and

00:03:17.200 --> 00:03:19.440
I know even less what is Lisp supposed
to be."

00:03:19.440 --> 00:03:22.172
But you paste it in, and it does what
you want it to do,

00:03:22.172 --> 00:03:26.682
and you say "Great, I'll move on to my
work now."

00:03:26.682 --> 00:03:28.821
So that's how I got started.

00:03:28.821 --> 00:03:33.888
I had a very spartan setup for Emacs,
which a lot of you must know...

00:03:33.888 --> 00:03:36.000
The first time you launch Emacs,

00:03:36.000 --> 00:03:36.920
you have this feeling

00:03:36.920 --> 00:03:38.852
that you're jumping 20 years
back in time,

00:03:38.852 --> 00:03:43.260
as far as the user interface is
concerned.

00:03:43.260 --> 00:03:46.959
But as you get to spend more time with
Emacs...

00:03:46.959 --> 00:03:49.120
Some would call it Stockholm syndrome

00:03:49.120 --> 00:03:50.959
insofar as you can't see

00:03:50.959 --> 00:03:52.929
how spartan the entire thing is,

00:03:52.929 --> 00:03:58.400
but it actually is a lovely prison,
so to speak.

00:03:58.400 --> 00:04:00.400
That's how I got started eight years ago.

00:04:00.400 --> 00:04:04.319
I just wanted to find a way to do my
research properly.

00:04:04.319 --> 00:04:05.699
I wanted to have a tool

00:04:05.699 --> 00:04:07.280
that I could use to write my notes

00:04:07.280 --> 00:04:08.959
in plain text, because I was already

00:04:08.959 --> 00:04:16.320
fairly averse to Microsoft solutions
when it came to taking notes.

00:04:16.320 --> 00:04:19.180
So yeah, I got started in Emacs.

00:04:19.180 --> 00:04:21.651
I read a little bit about what plain
text was about.

00:04:21.651 --> 00:04:24.364
Just to be clear, at the time, yes,

00:04:24.364 --> 00:04:27.120
I was very good with computers,

00:04:27.120 --> 00:04:30.160
but I was not a computer science student.

00:04:30.160 --> 00:04:34.302
I had barely any experience with
programming and coding,

00:04:34.302 --> 00:04:39.919
and I was even less of a hacker
back then.

00:04:39.919 --> 00:04:43.052
It just goes to show you that
at the beginning,

00:04:43.052 --> 00:04:44.479
I had close to no knowledge,

00:04:44.479 --> 00:04:45.840
whether it be about

00:04:45.840 --> 00:04:47.457
the free software world,

00:04:47.457 --> 00:04:48.880
whether it be about...

00:04:48.880 --> 00:04:50.290
Sacha, do you want to say something?

00:04:50.290 --> 00:04:52.479
(Sacha: just confirming, you're not
sharing anything

00:04:52.479 --> 00:04:54.080
on the screen at the moment, right?)

00:04:54.080 --> 00:04:55.204
No, I'm not sharing anything,

00:04:55.204 --> 00:04:59.040
I'm just presenting.

00:04:59.040 --> 00:05:01.173
So when I started,

00:05:01.173 --> 00:05:03.680
I had no experience whatsoever.

00:05:03.680 --> 00:05:07.199
I was just a literature major

00:05:07.199 --> 00:05:11.039
trying to get better at taking notes.

00:05:11.039 --> 00:05:12.466
I stumbled upon LaTeX.

00:05:12.466 --> 00:05:15.280
As many people who stumble upon
LaTeX know,

00:05:15.280 --> 00:05:17.519
you don't just stumble upon LaTeX,

00:05:17.519 --> 00:05:21.950
you embroil yourself in the turmoil of
suffering,

00:05:21.950 --> 00:05:24.560
of late nights tweaking,

00:05:24.560 --> 00:05:26.923
so that your document is exactly

00:05:26.923 --> 00:05:33.440
in the perfect shape you want it to be.

00:05:33.440 --> 00:05:36.639
Soon after, when I got started with
Emacs and LaTeX,

00:05:36.639 --> 00:05:39.334
I discovered something that truly
changed my life,

00:05:39.334 --> 00:05:40.560
and it was Org Mode.

00:05:40.560 --> 00:05:44.479
As you'll get a lot of presentations

00:05:44.479 --> 00:05:46.960
this afternoon about Org Mode,

00:05:46.960 --> 00:05:49.360
I won't be spending too much time on it.

00:05:49.360 --> 00:05:53.680
But Org Mode, for me, was a
revelation. It's...

00:05:53.680 --> 00:05:55.869
There was something that,

00:05:55.869 --> 00:05:59.039
upon reading articles on
how to use Org Mode,

00:05:59.039 --> 00:06:02.453
especially one of the key
articles

00:06:02.453 --> 00:06:04.160
that I'd read which really made

00:06:04.160 --> 00:06:06.000
a huge impact on me

00:06:06.000 --> 00:06:09.199
was the "Organize Your Life in Plain
Text" one,

00:06:09.199 --> 00:06:12.240
which I'm sure many of you must have
stumbled upon

00:06:12.240 --> 00:06:15.919
in your Emacs journey...

00:06:15.919 --> 00:06:20.307
For me, when I stumbled upon this
document,

00:06:20.307 --> 00:06:22.488
I was starting to get interested

00:06:22.488 --> 00:06:24.240
in Getting Things Done and

00:06:24.240 --> 00:06:26.560
all the nitty-gritty stuff about

00:06:26.560 --> 00:06:29.199
organization and self-organization.

00:06:29.199 --> 00:06:32.960
It just felt like everything was under
my fingertips

00:06:32.960 --> 00:06:36.960
to make the perfect workflow.

00:06:36.960 --> 00:06:44.080
There was something incredibly
satisfying about

00:06:44.080 --> 00:06:45.834
having a system that gave you

00:06:45.834 --> 00:06:48.319
so many options to configure your
experience

00:06:48.319 --> 00:06:50.160
exactly how you wanted.

00:06:50.160 --> 00:06:54.479
You had this feeling that

00:06:54.479 --> 00:06:57.599
the people behind Org Mode had thought
of everything,

00:06:57.599 --> 00:07:00.479
whichever small adjustment

00:07:00.479 --> 00:07:02.000
that you needed in workflow

00:07:02.000 --> 00:07:05.440
whether it be more states for your
TODOs,

00:07:05.440 --> 00:07:07.520
whether it be, oh, I want my weeks to

00:07:07.520 --> 00:07:09.360
start on Monday and not on Saturday,

00:07:09.360 --> 00:07:13.520
oh, it's half past one and I need to...

00:07:13.520 --> 00:07:15.280
in the morning, I mean, and I need to make

00:07:15.280 --> 00:07:17.680
sure that the item that I'm marking as done

00:07:17.680 --> 00:07:18.759
is done for the day before

00:07:18.759 --> 00:07:20.233
and not for the current day.

00:07:20.233 --> 00:07:21.919
You see what I'm talking about.

00:07:21.919 --> 00:07:25.280
So many details that were already

00:07:25.280 --> 00:07:27.235
present in Org Mode.

00:07:27.235 --> 00:07:31.335
At first you're really impressed,
because you think, wow,

00:07:31.335 --> 00:07:33.470
they thought of everything,

00:07:33.470 --> 00:07:36.378
but then you realize that it's just a
matter of experience,

00:07:36.378 --> 00:07:39.712
just a matter of people
contributing code,

00:07:39.712 --> 00:07:42.171
because the development of Org Mode,
Emacs,

00:07:42.171 --> 00:07:44.455
and everything is just
open to the public.

00:07:44.455 --> 00:07:45.440
You know, it's like

00:07:45.440 --> 00:07:47.685
everything is being done
with the garage door opened.

00:07:47.685 --> 00:07:50.402
You can just go on Org Mode on Savannah

00:07:50.402 --> 00:07:54.800
and see everything that is being
developed.

00:07:54.800 --> 00:08:01.586
For me, the shift that occurred in my
mind was

00:08:01.586 --> 00:08:04.139
when I was reading all the options,

00:08:04.139 --> 00:08:05.881
I was looking at all the variables

00:08:05.881 --> 00:08:08.160
that I could modify for Org Mode,

00:08:08.160 --> 00:08:12.560
and there came a time, maybe two to
three years ago,

00:08:12.560 --> 00:08:15.599
where I thought, oh wow,

00:08:15.599 --> 00:08:17.759
maybe for the first time in a while,

00:08:17.759 --> 00:08:19.260
there is no option for me to do

00:08:19.260 --> 00:08:21.440
what I want to be doing with Org Mode.

00:08:21.440 --> 00:08:23.668
I believe at the time,

00:08:23.668 --> 00:08:29.199
the key issue that triggered
this reflex for me was

00:08:29.199 --> 00:08:31.039
I wanted to do something with the agenda.

00:08:31.039 --> 00:08:34.159
I wanted to have a super category so,
you know, in the...

00:08:34.159 --> 00:08:36.606
for those of you who know,
in your agenda,

00:08:36.606 --> 00:08:38.376
you have the ability to
have many files,

00:08:38.376 --> 00:08:41.200
and you have the ability to have
categories.

00:08:41.200 --> 00:08:47.920
I wanted somehow to group my

00:08:47.920 --> 00:08:51.680
TODOs in smaller groups, or bigger

00:08:51.680 --> 00:08:52.560
groups, I should say,

00:08:52.560 --> 00:08:53.780
so that, for instance, I could have

00:08:53.780 --> 00:08:55.131
one group for my professional life,

00:08:55.131 --> 00:08:57.462
I could have a group for one work,

00:08:57.462 --> 00:08:59.600
the second work...

00:08:59.600 --> 00:09:02.800
I could have something for university
and all this.

00:09:02.800 --> 00:09:09.600
I thought, yeah, I think I'd like this.

00:09:09.600 --> 00:09:12.959
After having spent so long working

00:09:12.959 --> 00:09:15.519
with Emacs and working with Org Mode,

00:09:15.519 --> 00:09:16.766
I had some ideas about

00:09:16.766 --> 00:09:19.292
what was within the realm of possibility
and what wasn't.

00:09:19.292 --> 00:09:21.120
Here I thought to myself,

00:09:21.120 --> 00:09:24.320
this is definitely something that I can do.

00:09:24.320 --> 00:09:27.839
And so thus started my journey

00:09:27.839 --> 00:09:31.360
into the Org Mode libraries.

00:09:31.360 --> 00:09:33.222
I won't go too much into details
right now,

00:09:33.222 --> 00:09:34.959
because right now, the main objective

00:09:34.959 --> 00:09:37.040
that I have is just to show you

00:09:37.040 --> 00:09:40.240
how simple it is to become a maintainer,

00:09:40.240 --> 00:09:42.800
how to become more involved with the
development.

00:09:42.800 --> 00:09:46.320
The libraries in Org Mode,

00:09:46.320 --> 00:09:50.320
they're written in Elisp, which is a very...

00:09:50.320 --> 00:09:52.080
It might seem like an obscure language,

00:09:52.080 --> 00:09:54.080
and it certainly is,

00:09:54.080 --> 00:09:57.279
but as soon as you get the logic of the
language--and

00:09:57.279 --> 00:10:00.136
what I'm telling you is coming from
someone

00:10:00.136 --> 00:10:01.760
who's never studied programming--

00:10:01.760 --> 00:10:04.399
it made sense.

00:10:04.399 --> 00:10:05.534
Everything is so verbose

00:10:05.534 --> 00:10:07.279
when you get into the code.

00:10:07.279 --> 00:10:11.065
When you learn the rudiments
of Elisp,

00:10:11.065 --> 00:10:13.360
you start getting to the code,

00:10:13.360 --> 00:10:15.229
and you start thinking, wow,

00:10:15.229 --> 00:10:17.120
okay that makes sense,

00:10:17.120 --> 00:10:21.360
and you start developing a logic
for all this.

00:10:21.360 --> 00:10:24.720
So, equipped as I was with this

00:10:24.720 --> 00:10:27.760
new knowledge, I went on my project,

00:10:27.760 --> 00:10:30.000
I went into the Org agenda code,

00:10:30.000 --> 00:10:30.880
and I thought, okay,

00:10:30.880 --> 00:10:34.640
is there anything that I can use to do
my bidding?

00:10:34.640 --> 00:10:39.733
Fast forward maybe two to three weeks of
intense turmoil

00:10:39.733 --> 00:10:46.079
and many nights which were spent
single-mindedly working on this project,

00:10:46.079 --> 00:10:48.781
two weeks after, I had something
that was working,

00:10:48.781 --> 00:10:51.680
and I was pretty happy about it.

00:10:51.680 --> 00:10:54.849
That was a key landmark for me,

00:10:54.849 --> 00:10:56.800
because when that happened,

00:10:56.800 --> 00:10:58.860
it just felt like, okay,

00:10:58.860 --> 00:11:01.335
I can contribute something to Org Mode,

00:11:01.335 --> 00:11:07.600
and I can do something that would
benefit as many people as possible.

00:11:07.600 --> 00:11:08.970
And to me, that was the click.

00:11:08.970 --> 00:11:10.530
That's when it occurred.

00:11:10.530 --> 00:11:14.640
That's when I went on my first project
and I did something

00:11:14.640 --> 00:11:18.079
that felt useful to the community.

00:11:18.079 --> 00:11:19.945
And nowadays, as I told you,

00:11:19.945 --> 00:11:22.640
I maintain packages, but really, nothing
has changed.

00:11:22.640 --> 00:11:24.399
The only thing, maybe, that has changed

00:11:24.399 --> 00:11:28.320
is that I've turned my mind onto other
problems.

00:11:28.320 --> 00:11:32.000
Maybe I've got three more minutes,

00:11:32.000 --> 00:11:35.279
and I'd like to finish by

00:11:35.279 --> 00:11:38.399
maybe something a little different.

00:11:38.399 --> 00:11:39.449
I've told you my Emacs story

00:11:39.449 --> 00:11:42.924
and I hope I've stressed how little
effort it took me

00:11:42.924 --> 00:11:46.560
to move from steps to steps on the
ladder.

00:11:46.560 --> 00:11:48.959
The ladder implies a sense of hierarchy,
but it really isn't.

00:11:48.959 --> 00:11:53.920
Whatever your step on the journey of
Emacs is...

00:11:53.920 --> 00:11:55.830
Some of you might be at the step

00:11:55.830 --> 00:11:57.440
where you're really worried

00:11:57.440 --> 00:11:59.360
about learning Elisp because it feels

00:11:59.360 --> 00:12:02.399
like such a monumental task to be
undertaking

00:12:02.399 --> 00:12:04.720
and you have no experience whatsoever,

00:12:04.720 --> 00:12:06.079
but the thing is,

00:12:06.079 --> 00:12:07.839
maybe you could try climbing this first

00:12:07.839 --> 00:12:09.600
step on the ladder. Maybe you could try,

00:12:09.600 --> 00:12:11.200
if you have any project,

00:12:11.200 --> 00:12:13.120
if you've been using Org Mode,

00:12:13.120 --> 00:12:15.600
maybe one day you thought, "oh, yes,

00:12:15.600 --> 00:12:18.160
I wish I could do this but I can't,"

00:12:18.160 --> 00:12:19.920
or maybe do try to do this,

00:12:19.920 --> 00:12:21.442
maybe do try to change something

00:12:21.442 --> 00:12:23.279
in a major mode that you're using

00:12:23.279 --> 00:12:26.560
and which you feel might be better.

00:12:26.560 --> 00:12:28.722
I think Emacs, Org Mode,

00:12:28.722 --> 00:12:31.040
and all free software in general

00:12:31.040 --> 00:12:34.720
has this tendency to give you this idea

00:12:34.720 --> 00:12:38.720
that I can be a hacker

00:12:38.720 --> 00:12:41.360
in the sense of the term

00:12:41.360 --> 00:12:43.200
that you're modifying things

00:12:43.200 --> 00:12:46.320
to do your bidding.

00:12:46.320 --> 00:12:48.042
For me, I believe this to be

00:12:48.042 --> 00:12:50.320
a very healthy attitude towards
software.

00:12:50.320 --> 00:12:54.079
As Amin said in the very beginning,

00:12:54.079 --> 00:12:57.279
we are doing this entire presentation--

00:12:57.279 --> 00:13:00.800
sorry, this entire conference with
free software.

00:13:00.800 --> 00:13:01.686
Just see all the things

00:13:01.686 --> 00:13:03.920
we've been able to do in free software.

00:13:03.920 --> 00:13:10.399
For me, Emacs was my gateway,
so to speak,

00:13:10.399 --> 00:13:14.399
into how to contribute to free software,

00:13:14.399 --> 00:13:18.639
about the philosophy that surrounds it.

00:13:18.639 --> 00:13:20.003
What I would like to do...

00:13:20.003 --> 00:13:21.375
I'll finish on this note and then

00:13:21.375 --> 00:13:23.360
I'll be taking your questions.

00:13:23.360 --> 00:13:26.480
Just try.

00:13:26.480 --> 00:13:28.592
You've read on Reddit

00:13:28.592 --> 00:13:31.807
that you need to go through the Elisp
manual in Emacs.

00:13:31.807 --> 00:13:35.920
You might be scared, but just do it.
Just give it a shot.

00:13:35.920 --> 00:13:38.560
Just give it maybe one afternoon.

00:13:38.560 --> 00:13:39.199
Try to read it.

00:13:39.199 --> 00:13:43.120
Try to see if this appeals to your mind.

00:13:43.120 --> 00:13:44.230
If you've been interested enough

00:13:44.230 --> 00:13:45.241
in my presentation right now,

00:13:45.241 --> 00:13:47.199
and if you're interested enough in any
of the talks

00:13:47.199 --> 00:13:49.519
you're going to have during the entire
conference,

00:13:49.519 --> 00:13:50.747
do give it a shot.

00:13:50.747 --> 00:13:52.959
I'm pretty sure you will like
the journey

00:13:52.959 --> 00:13:55.418
on which you will be embarking upon.

00:13:55.418 --> 00:13:57.120
So I believe I'm finishing
one minute early,

00:13:57.120 --> 00:14:01.040
but I see quite a bit of questions already.

00:14:01.040 --> 00:14:04.320
I'm not sure. Sacha, should I

00:14:04.320 --> 00:14:05.847
just be reading the questions,

00:14:05.847 --> 00:14:08.639
or do you want to be feeding me the
questions?

00:14:08.639 --> 00:14:10.755
(Amin: It's really up to you.

00:14:10.755 --> 00:14:12.320
It's completely up to you.

00:14:12.320 --> 00:14:13.600
If you've got the questions

00:14:13.600 --> 00:14:15.839
open and can take them or read them,

00:14:15.839 --> 00:14:18.320
by all means, please.)

00:14:18.320 --> 00:14:19.420
Okay, well, I'm going to read them

00:14:19.420 --> 00:14:20.581
because I've got them on the side.

00:14:20.581 --> 00:14:22.800
I'm going to start with the one at the
bottom.

00:14:22.800 --> 00:14:24.959
"Do you feel that being a white male

00:14:24.959 --> 00:14:26.959
contributed to your experience?"

00:14:26.959 --> 00:14:29.165
Yeah. I mean, I do believe...

00:14:29.165 --> 00:14:30.771
There's an idea of privilege.

00:14:30.771 --> 00:14:33.250
I mean, I'm French. I live in...

00:14:33.250 --> 00:14:36.959
I'm lucky enough to be here at
university, okay,

00:14:36.959 --> 00:14:40.714
and I'm fairly aware of the
discrepancies that happen,

00:14:40.714 --> 00:14:41.600
even in France,

00:14:41.600 --> 00:14:42.880
according to this...

00:14:42.880 --> 00:14:46.320
So, yes, I believe my journey

00:14:46.320 --> 00:14:51.199
was heavily influenced by this.

00:14:51.199 --> 00:14:53.547
If you would like to specify the
question, please do,

00:14:53.547 --> 00:14:56.560
but I don't have really all that much to
ask on this.

00:14:56.560 --> 00:14:59.839
"What is your advice to start learning

00:14:59.839 --> 00:15:01.279
Elisp language? Any particularly good

00:15:01.279 --> 00:15:03.421
resource or any other tips?"

00:15:03.421 --> 00:15:07.760
I finished my presentation by telling
you about

00:15:07.760 --> 00:15:10.937
the Elisp introduction which is built
into Emacs.

00:15:10.937 --> 00:15:13.936
What I might do... I'm going to
share my screen

00:15:13.936 --> 00:15:17.819
just to show you how this works.

00:15:17.819 --> 00:15:22.880
I will be sharing this window.

00:15:22.880 --> 00:15:24.234
I believe it's frozen on my end,

00:15:24.234 --> 00:15:27.199
so I can't see anything.

00:15:27.199 --> 00:15:28.597
I'm not sure if you can see me

00:15:28.597 --> 00:15:32.560
or if my camera is moving.

00:15:32.560 --> 00:15:34.387
Okay, so my Firefox is frozen.

00:15:34.387 --> 00:15:35.361
So I'll answer the question,

00:15:35.361 --> 00:15:40.000
but I won't be able to show you what I
wanted to show you.

00:15:40.000 --> 00:15:44.320
There's a built-in guide inside Emacs to
learn Elisp.

00:15:44.320 --> 00:15:46.880
Maybe the best chance that you have

00:15:46.880 --> 00:15:49.040
is just to go open these info pages.

00:15:49.040 --> 00:15:50.959
I'm sure someone will be kind enough to

00:15:50.959 --> 00:15:54.880
mention this to you in the #emacsconf
channel on IRC

00:15:54.880 --> 00:15:56.880
but it's probably the best way

00:15:56.880 --> 00:15:59.040
to get started with Elisp.

00:15:59.040 --> 00:16:00.991
You know, we tend to get obsessed,

00:16:00.991 --> 00:16:03.013
with software and with programming,

00:16:03.013 --> 00:16:04.880
about what's the best way to get
started.

00:16:04.880 --> 00:16:08.399
You see so many people who are heavily
interested

00:16:08.399 --> 00:16:10.409
in getting started with programming

00:16:10.409 --> 00:16:12.320
but they never managed to get started

00:16:12.320 --> 00:16:14.320
because there's so much choice.

00:16:14.320 --> 00:16:16.320
My advice would be to just get started.

00:16:16.320 --> 00:16:18.800
Don't get so worried about the first step.

00:16:18.800 --> 00:16:22.493
Well, if I may still recommend
the first step,

00:16:22.493 --> 00:16:23.920
even after saying this,

00:16:23.920 --> 00:16:27.073
do try to start with the built-in
guides.

00:16:27.073 --> 00:16:29.600
I believe they're pretty, pretty good.

00:16:29.600 --> 00:16:31.691
There was another question.

00:16:31.691 --> 00:16:33.055
It's the last question that I can read

00:16:33.055 --> 00:16:34.564
and after that, you will have to

00:16:34.564 --> 00:16:37.920
read the questions for me because
everything is frozen on my end.

00:16:37.920 --> 00:16:43.935
I hope I'm not frozen in a very bad
position,

00:16:43.935 --> 00:16:47.406
so please excuse me if my mouth is open
or anything.

00:16:47.406 --> 00:16:51.120
(Amin: no, we just completely lost the
video feed, so no worries.)

00:16:51.120 --> 00:16:54.800
Oh, splendid, so I won't have to make a
fool out of myself.

00:16:54.800 --> 00:16:56.800
So the last question I wanted to answer was

00:16:56.800 --> 00:16:59.199
"Have you read Dirk Gently's Holistic
Detective Agency?"

00:16:59.199 --> 00:17:05.741
No, I haven't. I hope it's not a jab at
the way I'm dressing for the conference,

00:17:05.741 --> 00:17:10.559
but yeah, I haven't read it. Was there
any other question?

00:17:10.559 --> 00:17:15.919
(Amin: I see one other question.

00:17:15.919 --> 00:17:19.679
"Any recommendation for good packaging
guides or places to start?

00:17:19.679 --> 00:17:23.199
I get a bit overwhelmed by some things.

00:17:23.199 --> 00:17:26.799
For example, the choice of different test
frameworks.")

00:17:26.799 --> 00:17:29.263
Right. Okay. So that's a very good
question.

00:17:29.263 --> 00:17:33.840
I believe alphapapa is in the chat right
now.

00:17:33.840 --> 00:17:36.314
As myself a new Lisp developer for
org-roam,

00:17:36.314 --> 00:17:38.320
I'd really recommend you to look into

00:17:38.320 --> 00:17:40.032
his package developers' guide,

00:17:40.032 --> 00:17:42.507
because you have a list of
all the softwares

00:17:42.507 --> 00:17:44.559
that are extremely useful to
be using when

00:17:44.559 --> 00:17:45.760
you're getting started.

00:17:45.760 --> 00:17:48.347
If you're looking into a first step

00:17:48.347 --> 00:17:50.947
for how to develop elisp packages,

00:17:50.947 --> 00:17:52.640
I'd really advise you to

00:17:52.640 --> 00:17:53.520
look into edebug.

00:17:53.520 --> 00:17:56.559
It's one word, edebug,

00:17:56.559 --> 00:17:58.400
and you have a section in the
manual for this,

00:17:58.400 --> 00:18:00.799
because for me, it was the key step to

00:18:00.799 --> 00:18:03.791
getting to develop good packages.

00:18:03.791 --> 00:18:06.160
It was understanding basically
what the code did

00:18:06.160 --> 00:18:08.866
and having us something like

00:18:08.866 --> 00:18:09.919
a REPL (read-evaluate-print-loop)

00:18:09.919 --> 00:18:11.760
that allows you to step through the code

00:18:11.760 --> 00:18:13.210
and see exactly which states

00:18:13.210 --> 00:18:15.643
the variables are at which at this point

00:18:15.643 --> 00:18:20.080
in the program. That's really my biggest
advice to you.

00:18:21.200 --> 00:18:26.160
Any other question? Thanks. Yeah, I see
one or two more.

00:18:26.160 --> 00:18:33.120
So there's one. They ask, "How did the
freedom of Emacs help you on your way?"

00:18:33.120 --> 00:18:35.507
So the freedom of Emacs...

00:18:35.507 --> 00:18:38.080
I mentioned that Emacs, for me,
was my gateway

00:18:38.080 --> 00:18:39.216
into free software

00:18:39.216 --> 00:18:40.652
and the freedom of Emacs

00:18:40.652 --> 00:18:42.551
was that you could maybe...

00:18:42.551 --> 00:18:43.840
First and foremost,

00:18:43.840 --> 00:18:46.385
compared to other software,

00:18:46.385 --> 00:18:49.003
was that you had behind Emacs, Elisp,

00:18:49.003 --> 00:18:51.039
which allows you to read the code,

00:18:51.039 --> 00:18:53.039
read whatever is going on in the
background.

00:18:53.039 --> 00:18:54.380
Surely, if you go deep enough,

00:18:54.380 --> 00:18:58.172
you'll end up in C functions that you
might not be able to read

00:18:58.172 --> 00:18:59.679
if you do not have the experience.

00:18:59.679 --> 00:19:03.520
But for Org Mode, which was my gateway
into Emacs,

00:19:03.520 --> 00:19:05.883
most of it is written in Elisp,

00:19:05.883 --> 00:19:08.546
and all the commands have a
very verbose name,

00:19:08.546 --> 00:19:10.080
like something simple as

00:19:10.080 --> 00:19:13.440
org go to next subtree or

00:19:13.440 --> 00:19:16.880
org go to a parent subtree. You know,
things like this.

00:19:16.880 --> 00:19:20.240
It's so elegant. It's verbose.

00:19:20.240 --> 00:19:22.799
That's a sense of freedom

00:19:22.799 --> 00:19:24.491
insofar as you can go into
the code and see,

00:19:24.491 --> 00:19:26.160
oh, okay, that's how it's implemented.

00:19:26.160 --> 00:19:28.640
I believe in a way that's the freedom

00:19:28.640 --> 00:19:30.264
and the liberty that is given to you

00:19:30.264 --> 00:19:31.600
to look into the code

00:19:31.600 --> 00:19:32.670
is something that invites you

00:19:32.670 --> 00:19:34.460
to do the same with your life.

00:19:34.460 --> 00:19:36.776
As someone who does a little bit of
philosophy on the side,

00:19:36.776 --> 00:19:38.799
I believe it's a very healthy message

00:19:38.799 --> 00:19:42.320
to be gathering from a piece of software.

00:19:42.320 --> 00:19:45.440
(Amin: Awesome, thank you.

00:19:45.440 --> 00:19:50.960
Let's see... So we have...

00:19:50.960 --> 00:19:57.200
I think I saw another question pop up.)

00:19:57.200 --> 00:19:58.559
I'm not sure how we're doing as far

00:19:58.559 --> 00:19:59.760
as time is concerned... I believe we

00:19:59.760 --> 00:20:02.080
have like one or two minutes more.

00:20:02.080 --> 00:20:04.240
(Amin: Yeah, actually, we're quite a bit

00:20:04.240 --> 00:20:05.679
ahead of the schedule, so if we take a

00:20:05.679 --> 00:20:07.840
little bit longer, we're fine.

00:20:07.840 --> 00:20:10.225
If you do have more questions, please
do.)

00:20:10.225 --> 00:20:12.880
I'm just sorry that my video is not
working anymore.

00:20:12.880 --> 00:20:17.120
(Amin: No problem. Someone was actually
saying...

00:20:17.120 --> 00:20:24.159
What's the most recent... Actually, yeah
well before that.

00:20:24.159 --> 00:20:27.440
"Please show off your three-piece suit
before you end your talk,

00:20:27.440 --> 00:20:30.080
which requires fixing your frozen camera.

00:20:30.080 --> 00:20:31.306
If this is not possible,

00:20:31.306 --> 00:20:36.240
please post suit selfies in an easily
accessible location."

00:20:36.240 --> 00:20:38.143
Okay, I'll make sure to do this.

00:20:38.143 --> 00:20:41.200
But yes, I wanted to hype things up for
the conference,

00:20:41.200 --> 00:20:43.039
so yes, I did get the three-piece suit out.

00:20:43.039 --> 00:20:44.563
I'm very glad you like it.

00:20:44.563 --> 00:20:45.919
By the way, when you get

00:20:45.919 --> 00:20:47.760
a chance to see me live again,

00:20:47.760 --> 00:20:50.080
do appreciate that my tie has both the

00:20:50.080 --> 00:20:51.280
colors of Emacs purple

00:20:51.280 --> 00:20:53.679
and also Org Mode green.

00:20:53.679 --> 00:20:55.556
It took me a while to find this one,

00:20:55.556 --> 00:21:00.840
so I hope you will appreciate this.

00:21:00.840 --> 00:21:03.094
(Amin: Awesome. Let's see.

00:21:03.094 --> 00:21:06.880
We have one other question. "What's the

00:21:06.880 --> 00:21:08.960
most recent Emacs package or tool that

00:21:08.960 --> 00:21:14.480
you've discovered that you've added to
your repertoire?")

00:21:14.480 --> 00:21:17.600
Very interesting question.

00:21:17.600 --> 00:21:22.614
The thing is, when you've spent as long
as I have on Emacs--

00:21:22.614 --> 00:21:23.919
and I know that I've only spent

00:21:23.919 --> 00:21:25.120
eight years and some of you

00:21:25.120 --> 00:21:27.901
might have spent maybe 10, 20,

00:21:27.901 --> 00:21:30.000
maybe even more years on Emacs--

00:21:30.000 --> 00:21:34.926
but for me, I believe the coolest neat
trick that I found in Emacs

00:21:34.926 --> 00:21:40.080
was a mode which is called beacon-mode.

00:21:40.080 --> 00:21:43.679
It's something that allows you to show

00:21:43.679 --> 00:21:45.006
when you're jumping between buffers

00:21:45.006 --> 00:21:46.960
or when you're dropping between windows,

00:21:46.960 --> 00:21:50.681
it shows exactly where your point is in
that buffer

00:21:50.681 --> 00:21:55.440
by making a slight ray of light which
looks like a beacon, hence the name.

00:21:55.440 --> 00:21:57.760
It really helps you navigate buffers

00:21:57.760 --> 00:21:58.986
because it always shows

00:21:58.986 --> 00:22:01.760
in a very visual way
where your point is.

00:22:01.760 --> 00:22:04.640
I'll get a chance to show this to you
later today

00:22:04.640 --> 00:22:10.159
when I'll be presenting my other talks.

00:22:10.159 --> 00:22:20.880
(Amin: Awesome. We have one question
from Jonas, the maintainer of Magit.

00:22:20.880 --> 00:22:25.128
He asks, "When you touched your webcam,

00:22:25.128 --> 00:22:26.880
that blew a fuse at my place.

00:22:26.880 --> 00:22:29.760
How did you do that?")

00:22:29.760 --> 00:22:31.242
Well, I'm very sorry, Jonas,

00:22:31.242 --> 00:22:36.960
that it happened to you, but I'll make
sure not to touch my webcam again.

00:22:36.960 --> 00:22:41.600
(Amin: Do we have any other questions?)

00:22:41.600 --> 00:22:43.919
I have to trust you on this one.

00:22:43.919 --> 00:22:46.960
I'm really sorry. Everything is frozen
on my end.

00:22:46.960 --> 00:22:49.940
(Amin: No problem.) Yeah I'm more
talking to the audience, I guess.

00:22:51.520 --> 00:22:56.018
I hope my lack of slides didn't bother
you.

00:22:56.018 --> 00:23:00.481
I really wanted to have this verbose
time with people,

00:23:00.481 --> 00:23:01.600
to be able to...

00:23:01.600 --> 00:23:04.880
It's a message that I've been trying

00:23:04.880 --> 00:23:08.640
to share with as many people as possible.

00:23:08.640 --> 00:23:11.760
In France, we do have an Emacs workshop

00:23:11.760 --> 00:23:14.159
that we have on a monthly basis.

00:23:14.159 --> 00:23:16.000
I've been learning a lot

00:23:16.000 --> 00:23:18.960
with those people and I felt like

00:23:18.960 --> 00:23:20.400
doing the same with Emacs conference

00:23:20.400 --> 00:23:22.713
would be good. That's why I'm
really happy,

00:23:22.713 --> 00:23:24.000
and I'm really lucky to have had

00:23:24.000 --> 00:23:26.418
the chance to do this today.

00:23:26.418 --> 00:23:29.200
I hope some of you, I've convinced you

00:23:29.200 --> 00:23:31.472
of climbing up a step on a ladder

00:23:31.472 --> 00:23:34.480
or making a step in a journey.

00:23:34.480 --> 00:23:38.080
(Amin: Absolutely. Thank you so much, Leo.

00:23:38.080 --> 00:23:41.279
I happen to completely agree

00:23:41.279 --> 00:23:43.600
with your not necessarily using a slide

00:23:43.600 --> 00:23:45.600
when it's not really needed

00:23:45.600 --> 00:23:49.200
and to help give some face-to-face time

00:23:49.200 --> 00:23:50.685
with the audience.

00:23:50.685 --> 00:23:52.923
Unfortunately, your webcam cut out,

00:23:52.923 --> 00:23:55.200
but I mean before that.)

00:23:55.200 --> 00:23:57.914
Yes, I'll make sure to fix
the problems later on,

00:23:57.914 --> 00:23:59.679
so don't worry about it.

00:23:59.679 --> 00:24:02.240
(Amin: Awesome. Alrighty. I guess we're

00:24:02.240 --> 00:24:08.000
wrapping up for your talk and getting
ready for the next talk.)

00:24:08.000 --> 00:24:09.538
Sure. Well, thank you so much.

00:24:09.538 --> 00:24:11.760
I'll see you all later, I suppose!

00:24:11.760 --> 00:24:16.799
(Amin: Sounds good. Thank you again, Leo. Bye-bye)