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)