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





                                           
                                        




























                                          
                                    
































































                                         
                 
















                                          
                           



















































































































































                                        


                                        




                             
                                           

                             
                                 




                             
                        

                             
                                              














































                                            
                             

                             
                                         

                             
             






















                                         
                                  















                                         
                             
                                




                                    
                             
      










                                       
                             
                                      













                                                 

                             
























                                     


                             






                                       


                                   















                                        


                             



























                                              

                                 



                               

                                     













































                                      
                             
                                  







                                     

                                       



























































































                                                
                                           















                                         
                             
                                       



















                                       
                             
                        

















































                                           
                             
                                    





























                                            
              
















































                                        


                                     


















                                         


                                    















                                            
                             
                                      

















































                                             
                             
                                 























                                        
                                    

















































                                                 
                                       








































                                        
                                 















                                        
                             
                                      








                                  
                                         

                             
                                       







                                           
                                 










                                  
                     






























                                          

                                        

       


                                   










































                                               
                             
                                 
            


































                                        
                                    













                                             
                          


















































































                                           
                   




































                                           
                             
                                         

















































                                               

                                        




                                         
                              












                                           
                             
                                        
       













                                           
          









                                      


                                       
 


                                    
 


                                        









                                     


                                        



















                                       
                         












































































































                                            
                             
                                    




                                           
                             
                                


                             
                                           
 


                                      





































                                         
             



































































                                         
               







                             
           































                                       

                                         

                             
                  












































































                                          
                               





























                                                  
WEBVTT

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

00:00:03.760 --> 00:00:05.839
Okay, well, thank you. I'm in. So you've

00:00:05.839 --> 00:00:06.879
just had a

00:00:06.879 --> 00:00:08.880
little roundup of the news, and we're

00:00:08.880 --> 00:00:10.320
going to get started now with some

00:00:10.320 --> 00:00:11.120
presentations.

00:00:11.120 --> 00:00:13.840
We're starting with user

00:00:13.840 --> 00:00:15.920
developer stories.

00:00:15.920 --> 00:00:18.000
I was extremely interested in this

00:00:18.000 --> 00:00:19.199
section because I

00:00:19.199 --> 00:00:21.600
wanted to get a chance, basically, to tell

00:00:21.600 --> 00:00:24.160
you a little more about who I am and

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

00:00:27.039 --> 00:00:28.160
Emacs

00:00:28.160 --> 00:00:30.640
to being nowadays a package

00:00:30.640 --> 00:00:31.279
maintainer,

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

00:00:33.280 --> 00:00:34.559
know. So,

00:00:34.559 --> 00:00:36.160
just for the organizers, I'm planning to

00:00:36.160 --> 00:00:37.760
speak for 15 minutes, and I'll have five

00:00:37.760 --> 00:00:39.680
more minutes of questions at the end.

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

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

00:00:43.440 --> 00:00:44.879
and I'll be reading the questions from

00:00:44.879 --> 00:00:47.360
there. Okay. So

00:00:47.360 --> 00:00:49.600
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:54.800
I'm a freelance software engineer

00:00:54.800 --> 00:00:58.079
in France, and I have been using Emacs

00:00:58.079 --> 00:00:59.359
now for

00:00:59.359 --> 00:01:01.280
i believe close to eight years. I can't

00:01:01.280 --> 00:01:03.039
believe it's been so long.

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

00:01:07.680 --> 00:01:12.000
in a way, nothing

00:01:12.000 --> 00:01:15.119
made me go for Emacs. You know I'm an--

00:01:15.119 --> 00:01:17.280
sorry, I was about to say Emacs major, but

00:01:17.280 --> 00:01:19.200
no, I'm an English major. I went to

00:01:19.200 --> 00:01:21.280
university to study English literature

00:01:21.280 --> 00:01:24.320
and linguistics, and

00:01:24.320 --> 00:01:26.159
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:31.340 --> 00:01:32.640
[Applause]

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

00:01:34.640 --> 00:01:36.720
structure the way I was

00:01:36.720 --> 00:01:40.079
taking notes. I stumbled one day

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

00:01:42.320 --> 00:01:43.759
was called Emacs,

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

00:01:46.479 --> 00:01:47.920
basically, because

00:01:47.920 --> 00:01:49.280
eight years ago, when I discovered

00:01:49.280 --> 00:01:51.119
Emacs I just couldn't let go. There was

00:01:51.119 --> 00:01:52.720
just something very

00:01:52.720 --> 00:01:55.439
interesting about the way you configured

00:01:55.439 --> 00:01:56.320
your setup,

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

00:01:58.799 --> 00:01:59.759
deeper.

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

00:02:04.320 --> 00:02:06.640
how I went from user to package

00:02:06.640 --> 00:02:08.000
maintainer, and

00:02:08.000 --> 00:02:09.840
the package now that I'm maintaining is

00:02:09.840 --> 00:02:11.599
called org-roam. I'm not the only one

00:02:11.599 --> 00:02:12.080
doing this.

00:02:12.080 --> 00:02:15.440
I'm helped with many lovely people

00:02:15.440 --> 00:02:18.720
working on org-roam.

00:02:18.720 --> 00:02:21.360
I got started as a maintainer

00:02:21.360 --> 00:02:23.360
only this year, 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:43.599
who can make the jump to being a

00:02:43.599 --> 00:02:45.519
maintainer. A lot of you have

00:02:45.519 --> 00:02:46.879
a lot of knowledge when it comes to

00:02:46.879 --> 00:02:48.959
Emacs. Some of you

00:02:48.959 --> 00:02:51.040
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:57.040
StackExchange

00:02:57.040 --> 00:02:59.519
into your Emacs configuration. let's

00:02:59.519 --> 00:03:00.720
say you want to do something very

00:03:00.720 --> 00:03:01.599
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.920
You go on StackExchange. You find

00:03:05.920 --> 00:03:09.040
something that's interesting. You add it
to your

00:03:09.040 --> 00:03:10.239
Emacs configuration. You

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

00:03:11.680 --> 00:03:13.519
You know that it's supposed to be

00:03:13.519 --> 00:03:14.800
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:21.440
But you paste it in and it does what you

00:03:21.440 --> 00:03:22.800
want it to do, and you say

00:03:22.800 --> 00:03:26.959
"Great, I'll move on to my work now." So

00:03:26.959 --> 00:03:29.280
that's how I got started. I had

00:03:29.280 --> 00:03:30.879
a very spartan

00:03:30.879 --> 00:03:33.440
setup for Emacs, which a lot of you must

00:03:33.440 --> 00:03:36.000
know... The first time you launch Emacs,

00:03:36.000 --> 00:03:37.840
you have this feeling that you're jumping 20

00:03:37.840 --> 00:03:39.599
years back in time, as far as the

00:03:39.599 --> 00:03:43.680
user interface is concerned. But

00:03:43.680 --> 00:03:46.959
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:53.360
how spartan the entire thing is, but it

00:03:53.360 --> 00:03:54.640
actually is

00:03:54.640 --> 00:03:58.400
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:01.680
I just wanted

00:04:01.680 --> 00:04:04.319
to find a way to do my research properly.

00:04:04.319 --> 00:04:05.519
I wanted to have a

00:04:05.519 --> 00:04:07.280
tool 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:11.680
fairly averse to

00:04:11.680 --> 00:04:14.560
Microsoft solutions when it

00:04:14.560 --> 00:04:16.320
came to taking notes.

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

00:04:19.359 --> 00:04:20.880
read a little bit about what plain text

00:04:20.880 --> 00:04:23.040
was about. Just to be clear,

00:04:23.040 --> 00:04:26.000
at the time, yes, I was very good with

00:04:26.000 --> 00:04:27.120
computers,

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

00:04:30.160 --> 00:04:33.520
I had barely any experience with
programming

00:04:33.520 --> 00:04:36.080
and coding, and I was even less of a

00:04:36.080 --> 00:04:39.919
hacker
back then.

00:04:39.919 --> 00:04:42.560
It just goes to show you that at the

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

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

00:04:45.840 --> 00:04:48.880
the free software world, whether it be
about...

00:04:48.880 --> 00:04:50.800
Sacha, do you want to say something? (Sacha: just

00:04:50.800 --> 00:04:52.479
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.360
No, I'm not sharing anything, I'm

00:04:55.360 --> 00:04:59.040
just presenting.

00:04:59.040 --> 00:05:02.240
So when I started, I had no

00:05:02.240 --> 00:05:03.680
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:13.440
I stumbled upon LaTeX. As many people

00:05:13.440 --> 00:05:15.280
who stumble upon LaTeX know,

00:05:15.280 --> 00:05:17.039
you don't just stumble upon

00:05:17.039 --> 00:05:19.759
LaTeX, you embroil yourself in the

00:05:19.759 --> 00:05:24.560
turmoil of suffering, of late
nights tweaking,

00:05:24.560 --> 00:05:27.440
so that your document is exactly in the

00:05:27.440 --> 00:05:33.440
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:38.400
I discovered something that truly

00:05:38.400 --> 00:05:40.560
changed my life, 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:56.880
There was something that, upon reading

00:05:56.880 --> 00:05:59.039
articles on how to use Org Mode,

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

00:06:02.080 --> 00:06:04.160
article 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:10.720
which i'm sure many of you must have

00:06:10.720 --> 00:06:12.240
stumbled upon

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

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

00:06:19.680 --> 00:06:21.840
document, I was starting to get

00:06:21.840 --> 00:06:24.240
interested 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:31.919
It just felt like everything was under

00:06:31.919 --> 00:06:32.960
my fingertips

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

00:06:36.960 --> 00:06:40.880
There was something incredibly

00:06:40.880 --> 00:06:44.080
satisfying about

00:06:44.080 --> 00:06:46.319
having a system that gave you so many

00:06:46.319 --> 00:06:48.319
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.199
the people behind Org Mode had thought

00:06:57.199 --> 00:06:57.599
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:19.199
is done for the day before and not for

00:07:19.199 --> 00:07:21.919
the current day. 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:28.800
present in Org Mode. At first you're

00:07:28.800 --> 00:07:31.039
really impressed, because you think,

00:07:31.039 --> 00:07:34.080
wow, they thought of everything, but then

00:07:34.080 --> 00:07:35.599
you realize that it's just a matter of

00:07:35.599 --> 00:07:38.080
experience, just a matter of people

00:07:38.080 --> 00:07:40.800
contributing code, because the

00:07:40.800 --> 00:07:42.400
development of Org Mode, Emacs, and

00:07:42.400 --> 00:07:43.520
everything is just

00:07:43.520 --> 00:07:45.440
open to the public. You know, it's like

00:07:45.440 --> 00:07:46.879
everything is being done with the garage

00:07:46.879 --> 00:07:48.560
door opened. You can just

00:07:48.560 --> 00:07:50.960
go on Org Mode on Savannah and see

00:07:50.960 --> 00:07:54.800
everything that is being developed.

00:07:54.800 --> 00:07:58.639
For me, the shift that occurred

00:07:58.639 --> 00:08:02.639
in my mind was when

00:08:02.639 --> 00:08:04.240
I was reading all the options, I

00:08:04.240 --> 00:08:06.240
was looking at all the variables that i

00:08:06.240 --> 00:08:08.160
could modify for Org Mode,

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

00:08:11.440 --> 00:08:12.560
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.599
there is no option for me to do what I

00:08:19.599 --> 00:08:21.440
want to be doing with Org Mode.

00:08:21.440 --> 00:08:24.479
I believe at the time the the key

00:08:24.479 --> 00:08:29.199
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:33.599
I wanted to have a super category so, you

00:08:33.599 --> 00:08:34.159
know, in the...

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

00:08:36.320 --> 00:08:38.000
agenda, you have the ability to have many

00:08:38.000 --> 00:08:41.200
files, 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.920
so that, for instance, I could have one

00:08:53.920 --> 00:08:55.440
group for my professional life, I could

00:08:55.440 --> 00:08:56.000
have a group

00:08:56.000 --> 00:08:59.600
for one work, the second
work...

00:08:59.600 --> 00:09:00.800
I could have something for

00:09:00.800 --> 00:09:02.800
university and all this.

00:09:02.800 --> 00:09:06.000
I thought, yeah,

00:09:06.000 --> 00:09:09.600
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:17.200
I had some ideas about what was

00:09:17.200 --> 00:09:18.800
within the realm of possibility and what

00:09:18.800 --> 00:09:21.120
wasn't. 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.040
I won't go too much into details right

00:09:33.040 --> 00:09:34.959
now, 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:56.399
but as soon as you get the logic of the

00:09:56.399 --> 00:09:57.279
language--and

00:09:57.279 --> 00:09:59.360
what i'm telling you

00:09:59.360 --> 00:10:00.560
is coming from someone who's never

00:10:00.560 --> 00:10:01.760
studied programming--

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

00:10:04.399 --> 00:10:06.079
Everything is so verbose when you get

00:10:06.079 --> 00:10:07.279
into the code.

00:10:07.279 --> 00:10:10.399
When you learn the rudiments

00:10:10.399 --> 00:10:13.360
of Elisp, you start getting to the code,

00:10:13.360 --> 00:10:14.079
and you start

00:10:14.079 --> 00:10:17.120
thinking, wow, okay that makes sense,

00:10:17.120 --> 00:10:19.519
and you start developing a logic

00:10:19.519 --> 00:10:21.360
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:33.440
is there anything that I can use to do

00:10:33.440 --> 00:10:34.640
my bidding?

00:10:34.640 --> 00:10:38.560
Fast forward maybe two to three weeks of

00:10:38.560 --> 00:10:41.600
intense turmoil and many nights which

00:10:41.600 --> 00:10:46.079
were spent single-mindedly working on
this project,

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

00:10:48.079 --> 00:10:51.680
working, and I was pretty happy about it.

00:10:51.680 --> 00:10:54.640
That was a key landmark for

00:10:54.640 --> 00:10:56.800
me, because when that happened,

00:10:56.800 --> 00:11:00.320
it just felt like, okay, I can contribute

00:11:00.320 --> 00:11:02.160
something to Org Mode, and I can do

00:11:02.160 --> 00:11:07.600
something that would benefit as many
people as possible.

00:11:07.600 --> 00:11:09.519
And to me, that was the click. That's when

00:11:09.519 --> 00:11:11.440
it occurred. That's when I

00:11:11.440 --> 00:11:14.640
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:20.079
And nowadays, as I told you, I

00:11:20.079 --> 00:11:22.640
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
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.600
I've told you my Emacs story and

00:11:39.600 --> 00:11:42.079
I hope I've stressed how little effort

00:11:42.079 --> 00:11:43.600
it took me to

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

00:11:46.560 --> 00:11:48.399
The ladder implies a sense of hierarchy,

00:11:48.399 --> 00:11:48.959
but it really isn't.

00:11:48.959 --> 00:11:52.240
Whatever your step on the

00:11:52.240 --> 00:11:53.920
journey of Emacs is...

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

00:11:55.600 --> 00:11:57.440
step 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.680
maybe do try to change something in a

00:12:21.680 --> 00:12:23.279
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:29.760
I think Emacs, Org Mode, and all free

00:12:29.760 --> 00:12:31.040
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.399
For me, I believe this to be a very

00:12:48.399 --> 00:12:50.320
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:02.240
Just see all the things we've been able

00:13:02.240 --> 00:13:03.920
to do in free software.

00:13:03.920 --> 00:13:07.360
For me, Emacs

00:13:07.360 --> 00:13:10.399
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.560
What I would like to do... I'll finish

00:13:20.560 --> 00:13:22.000
on this note and then I'll be taking

00:13:22.000 --> 00:13:23.360
your questions.

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

00:13:26.480 --> 00:13:29.360
You've read on Reddit that you

00:13:29.360 --> 00:13:31.279
need to go through the Elisp manual

00:13:31.279 --> 00:13:33.040
in Emacs. You might be scared,

00:13:33.040 --> 00:13:35.920
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.399
If you've been interested enough in my

00:13:44.399 --> 00:13:45.680
presentation right now, and if you're

00:13:45.680 --> 00:13:47.199
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:51.839
do give it a shot. I'm pretty sure

00:13:51.839 --> 00:13:52.959
you will like the journey

00:13:52.959 --> 00:13:55.760
on which you will be embarking upon. So I

00:13:55.760 --> 00:13:57.120
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:06.000
just be reading the questions, or

00:14:06.000 --> 00:14:07.120
do you want to be feeding me the

00:14:07.120 --> 00:14:08.639
questions?

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

00:14:11.120 --> 00:14:12.320
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.680
Okay, well, I'm going to read them because

00:14:19.680 --> 00:14:20.880
I've got them on the side. I'm going

00:14:20.880 --> 00:14:22.800
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.680
Yeah. I mean, I do believe... There's

00:14:29.680 --> 00:14:31.360
an idea of privilege. I mean, I'm

00:14:31.360 --> 00:14:35.279
French. I live in... I'm lucky enough to
be here

00:14:35.279 --> 00:14:39.120
at university, okay, and I'm fairly
aware of the

00:14:39.120 --> 00:14:41.600
discrepancies that happen, 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:52.639
If you would like to specify the

00:14:52.639 --> 00:14:54.320
question, please do, but I don't have

00:14:54.320 --> 00:14:56.560
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:04.160
resource or any other tips?" I finished

00:15:04.160 --> 00:15:07.760
um my presentation by telling you about

00:15:07.760 --> 00:15:10.560
the Elisp introduction which is built into

00:15:10.560 --> 00:15:13.519
Emacs. What I might do... I'm going to share my

00:15:13.519 --> 00:15:15.120
screen just to show you

00:15:15.120 --> 00:15:22.880
how this works. I will be sharing
this window.

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

00:15:24.399 --> 00:15:27.199
can't see anything.

00:15:27.199 --> 00:15:28.959
i'm not sure if you can see me or if my

00:15:28.959 --> 00:15:32.560
camera is moving.

00:15:32.560 --> 00:15:34.800
Okay, so my Firefox is frozen. So i'll

00:15:34.800 --> 00:15:36.000
answer the question, but I won't be able

00:15:36.000 --> 00:15:36.800
to show you

00:15:36.800 --> 00:15:40.000
what I wanted to show you.

00:15:40.000 --> 00:15:42.639
There's a built-in guide inside Emacs to

00:15:42.639 --> 00:15:44.320
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:53.839
mention this to you in the #emacsconf channel

00:15:53.839 --> 00:15:54.880
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:01.279
You know, we tend to get obsessed, with

00:16:01.279 --> 00:16:03.360
software and with programming, about

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

00:16:04.880 --> 00:16:06.959
You see so many people who are

00:16:06.959 --> 00:16:08.399
heavily interested

00:16:08.399 --> 00:16:10.639
in getting started with programming but

00:16:10.639 --> 00:16:12.320
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:21.839
Well, if I may still recommend the

00:16:21.839 --> 00:16:23.920
first step, even after saying this,

00:16:23.920 --> 00:16:26.480
do try to start with the

00:16:26.480 --> 00:16:28.000
built-in guides. I believe they're pretty

00:16:28.000 --> 00:16:29.600
pretty good.

00:16:29.600 --> 00:16:32.079
There was another question. It's

00:16:32.079 --> 00:16:33.199
the last question that I can read and

00:16:33.199 --> 00:16:34.800
after that, you will have to read

00:16:34.800 --> 00:16:36.000
the questions for me because everything

00:16:36.000 --> 00:16:37.920
is frozen on my end.

00:16:37.920 --> 00:16:41.600
I hope I'm not frozen

00:16:41.600 --> 00:16:44.240
in a very bad position so

00:16:44.240 --> 00:16:45.680
please excuse me if

00:16:45.680 --> 00:16:48.240
my mouth is open or anything. (Amin: no, we

00:16:48.240 --> 00:16:49.759
just completely lost the video feed, so

00:16:49.759 --> 00:16:51.120
no worries.)

00:16:51.120 --> 00:16:52.720
Oh, splendid, so I won't have to make a

00:16:52.720 --> 00:16:54.800
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:58.320
"Have you read Dirk Gently's Holistic

00:16:58.320 --> 00:16:59.199
Detective Agency?"

00:16:59.199 --> 00:17:03.519
No, I haven't. I hope it's not

00:17:03.519 --> 00:17:05.199
a jab at the way i'm dressing for the

00:17:05.199 --> 00:17:06.559
conference, but yeah,

00:17:06.559 --> 00:17:08.559
I haven't read it. Was there any

00:17:08.559 --> 00:17:10.559
other question?

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

00:17:15.919 --> 00:17:17.919
"Any recommendation for good packaging

00:17:17.919 --> 00:17:19.679
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:28.240
Right. Okay. So that's a very good

00:17:28.240 --> 00:17:30.400
question. I believe

00:17:30.400 --> 00:17:33.840
alphapapa is in the chat right now.

00:17:33.840 --> 00:17:35.840
As myself a new lisp developer for

00:17:35.840 --> 00:17:38.320
org-roam, i'd really recommend you to look into

00:17:38.320 --> 00:17:40.640
his package developers' guide because you

00:17:40.640 --> 00:17:42.799
have a list of all the softwares that

00:17:42.799 --> 00:17:44.559
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.000
If you're looking into a first

00:17:48.000 --> 00:17:50.000
step for how to develop

00:17:50.000 --> 00:17:52.640
elast package, 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:04.320
getting to develop good packages. It was

00:18:04.320 --> 00:18:06.160
understanding basically what the code did

00:18:06.160 --> 00:18:08.960
and having us something like a

00:18:08.960 --> 00:18:09.919
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.360
and see exactly which states the

00:18:13.360 --> 00:18:16.000
variables are at which at this point in the

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

00:18:21.200 --> 00:18:24.400
Any other question? Thanks. Yeah, I see one

00:18:24.400 --> 00:18:26.160
or two more.

00:18:26.160 --> 00:18:28.240
So there's one. They ask, "How did the

00:18:28.240 --> 00:18:30.080
freedom of Emacs help you on

00:18:30.080 --> 00:18:33.120
your way?"

00:18:33.120 --> 00:18:36.480
So the freedom of Emacs... I mentioned

00:18:36.480 --> 00:18:38.080
that Emacs, for me, was my gateway

00:18:38.080 --> 00:18:40.320
into free software and the freedom of

00:18:40.320 --> 00:18:43.840
Emacs was that you could maybe... First
and foremost,

00:18:43.840 --> 00:18:47.840
compared to other software, was that
you had

00:18:47.840 --> 00:18:51.039
behind Emacs, Elisp, which allows you to
read the code,

00:18:51.039 --> 00:18:52.400
read whatever is going on in the

00:18:52.400 --> 00:18:53.039
background.

00:18:53.039 --> 00:18:54.640
Surely, if you go deep enough, you'll

00:18:54.640 --> 00:18:58.000
end up in C functions that you might not
be able to

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

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

00:19:02.000 --> 00:19:03.520
into Emacs,

00:19:03.520 --> 00:19:06.400
most of it is written in Elisp, and all

00:19:06.400 --> 00:19:08.240
the commands have a very verbose

00:19:08.240 --> 00:19:10.080
name, like something simple as

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

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

00:19:15.840 --> 00:19:16.880
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.320
insofar as you can go into the code and

00:19:24.320 --> 00:19:26.160
see, 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.400
and the liberty that is given to you to

00:19:30.400 --> 00:19:31.600
look into the code

00:19:31.600 --> 00:19:33.039
is something that invites you to do the

00:19:33.039 --> 00:19:34.640
same with your life. As

00:19:34.640 --> 00:19:35.200
someone who

00:19:35.200 --> 00:19:36.559
does a little bit of philosophy on the

00:19:36.559 --> 00:19:38.080
side, I believe it's a very healthy

00:19:38.080 --> 00:19:38.799
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:09.440
If you do have more

00:20:09.440 --> 00:20:11.280
questions, please do.) I'm just sorry that

00:20:11.280 --> 00:20:12.880
my video is not working anymore.

00:20:12.880 --> 00:20:16.000
(Amin: No problem. Someone was

00:20:16.000 --> 00:20:17.120
actually saying...

00:20:17.120 --> 00:20:21.120
What's the most recent...

00:20:21.120 --> 00:20:24.159
Actually, yeah well before that.

00:20:24.159 --> 00:20:25.919
"Please show off your three-piece suit

00:20:25.919 --> 00:20:27.440
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.919
if this is not possible, please post

00:20:31.919 --> 00:20:36.240
suit selfies in an easily accessible
location."

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

00:20:38.720 --> 00:20:41.200
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:45.919
I'm very glad you like it. 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.760
It took me a while to find this one, so I

00:20:55.760 --> 00:21:00.840
hope you will appreciate this.

00:21:00.840 --> 00:21:03.679
(Amin: Awesome. Let's see. We have

00:21:03.679 --> 00:21:06.880
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:10.159
you've discovered

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

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

00:21:17.600 --> 00:21:20.799
The thing is,

00:21:20.799 --> 00:21:22.320
when you've spent as long as I have on

00:21:22.320 --> 00:21:23.919
Emacs--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:28.799
might have spent maybe 10, 20, maybe even

00:21:28.799 --> 00:21:30.000
more years on Emacs--

00:21:30.000 --> 00:21:32.799
but for me, I believe the the coolest

00:21:32.799 --> 00:21:35.120
neat trick that I found in Emacs was

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

00:21:40.080 --> 00:21:42.559
It's something that allows

00:21:42.559 --> 00:21:43.679
you to show

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

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

00:21:46.960 --> 00:21:49.760
it shows exactly where your point is in

00:21:49.760 --> 00:21:51.520
that buffer by making

00:21:51.520 --> 00:21:53.840
a slight ray of light which looks like a

00:21:53.840 --> 00:21:55.440
beacon, hence the name.

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

00:21:57.760 --> 00:21:59.520
because it always shows in a very

00:21:59.520 --> 00:22:01.760
visual way where your point is.

00:22:01.760 --> 00:22:03.520
I'll get a chance to show this to

00:22:03.520 --> 00:22:04.640
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:13.840
(Amin: Aeesome.

00:22:13.840 --> 00:22:16.880
We have one question

00:22:16.880 --> 00:22:20.159
from Jonas, the maintainer

00:22:20.159 --> 00:22:20.880
from Magit.

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

00:22:24.720 --> 00:22:26.880
webcam, 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.600
Well, I'm very sorry, Jonas, that it

00:22:31.600 --> 00:22:32.960
happened to you, but i'll make sure not

00:22:32.960 --> 00:22:36.960
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:45.840
I'm really sorry. Everything is frozen

00:22:45.840 --> 00:22:46.960
on my end.

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

00:22:48.720 --> 00:22:49.940
audience, I guess.

00:22:51.520 --> 00:22:55.120
I hope my lack of

00:22:55.120 --> 00:22:56.960
slides didn't bother you. I really

00:22:56.960 --> 00:22:58.159
wanted to have this

00:22:58.159 --> 00:23:01.039
verbose time with people, to be

00:23:01.039 --> 00:23:01.600
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.480
would be good. That's why i'm really

00:23:22.480 --> 00:23:24.000
happy, and I'm really lucky to have had

00:23:24.000 --> 00:23:25.120
the chance to

00:23:25.120 --> 00:23:27.919
do this today. I hope some of you

00:23:27.919 --> 00:23:29.200
I've convinced you

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

00:23:31.679 --> 00:23:34.480
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:51.840
with the audience. Unfortunately

00:23:51.840 --> 00:23:53.520
your webcam cut out, but I mean

00:23:53.520 --> 00:23:55.200
before that.)

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

00:23:57.279 --> 00:23:59.679
later on, 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:03.200
wrapping up

00:24:03.200 --> 00:24:06.400
for your talk and getting ready for the

00:24:06.400 --> 00:24:08.000
next talk.)

00:24:08.000 --> 00:24:10.000
Sure. Well, thank you so much. I'll see

00:24:10.000 --> 00:24:11.760
you all later, I suppose!

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