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)