WEBVTT captioned by John Cummings 00:00:00.000 --> 00:00:02.203 Hello, my name is John Cummings, and I'm here today 00:00:02.206 --> 00:00:04.849 to play a Fanfare for the Common Emacs User. 00:00:04.852 --> 00:00:07.263 By "common", I mean the types of Emacs usage 00:00:07.266 --> 00:00:09.685 and comfort that are simpler, more mundane, 00:00:09.689 --> 00:00:11.074 and yes, even imperfect, 00:00:11.075 --> 00:00:13.035 that some may identify with more than others, 00:00:13.037 --> 00:00:14.648 or more at certain times. 00:00:14.651 --> 00:00:16.911 It's hard to use Emacs and not be aware of 00:00:16.914 --> 00:00:18.700 the impressive and interesting accomplishments 00:00:18.703 --> 00:00:20.754 of its community. And here at emacsconf 00:00:20.756 --> 00:00:22.424 we also get pumped up about those things, 00:00:22.426 --> 00:00:25.563 amplified by the energy of the other attendees. 00:00:25.567 --> 00:00:27.727 But this energy fades as we return focus 00:00:27.730 --> 00:00:30.567 to our day-to-day work. And in these circumstances, 00:00:30.571 --> 00:00:32.990 we may unfairly judge our own Emacs usage 00:00:32.993 --> 00:00:34.995 against the community highlights. 00:00:34.997 --> 00:00:37.708 So I want to identify and celebrate the ways 00:00:37.712 --> 00:00:39.930 that we common Emacs users use it, 00:00:39.932 --> 00:00:42.285 the reasons why it's a good fit for those ways, 00:00:42.290 --> 00:00:45.427 and some ways we could take advantage of that. 00:00:45.430 --> 00:00:48.524 What is Emacs to us common users? Well, we're consumers. 00:00:48.528 --> 00:00:51.489 We use whatever was available - whatever our OS gave us, 00:00:51.493 --> 00:00:53.987 or whatever we found when we searched the web. 00:00:53.990 --> 00:00:55.709 We're not even necessarily aware 00:00:55.711 --> 00:00:58.088 of what the latest version is, or what changes it has. 00:00:58.091 --> 00:01:00.135 We may not ever think about upgrading. 00:01:00.138 --> 00:01:02.740 We have what we have, and we use what we have. 00:01:02.742 --> 00:01:05.145 But I think, with this simple act, many of us 00:01:05.149 --> 00:01:07.993 achieve a very significant Emacs milestone: 00:01:07.997 --> 00:01:10.275 we've committed to having it in our toolkit 00:01:10.278 --> 00:01:12.622 and our skillset. We'll probably install it 00:01:12.625 --> 00:01:14.802 on every system that we can, eventually. 00:01:14.804 --> 00:01:16.827 We know it has a use for us today, 00:01:16.827 --> 00:01:18.120 and that it will solve some problems 00:01:18.120 --> 00:01:19.588 that we don't even know about yet. 00:01:19.588 --> 00:01:22.215 It will not just be one tool; it will be many. 00:01:22.215 --> 00:01:24.368 And we know that it will be more than just useful; 00:01:24.368 --> 00:01:27.345 it will also be challenging, puzzling, and frustrating. 00:01:27.345 --> 00:01:28.630 But we still keep it 00:01:28.630 --> 00:01:29.873 as a permanent part of our toolkit, 00:01:29.873 --> 00:01:31.800 and we should be proud of that. 00:01:31.800 --> 00:01:34.136 And regardless of what exactly we've installed, 00:01:34.136 --> 00:01:35.337 it was a good choice. 00:01:35.337 --> 00:01:37.556 It will almost certainly do what we need it to do. 00:01:37.556 --> 00:01:39.766 Old versions are not inert dead-ends; 00:01:39.766 --> 00:01:41.134 they're still functional tools. 00:01:41.134 --> 00:01:43.979 And that's a key aspect of Emacs - it's a tool 00:01:43.979 --> 00:01:46.398 to get our work done. That sounds obvious, 00:01:46.398 --> 00:01:48.483 but it's easy to get distracted by the great things 00:01:48.483 --> 00:01:49.985 that it can accomplish, and think 00:01:49.985 --> 00:01:52.571 that it requires the same accomplishments from us. 00:01:52.571 --> 00:01:54.656 But it requires no advanced state of mind, 00:01:54.656 --> 00:01:56.867 no level of expertise to start using it, 00:01:56.867 --> 00:01:58.043 or use it correctly. 00:01:58.043 --> 00:02:00.754 It just requires that we have it, and use it. 00:02:00.754 --> 00:02:03.665 And with a little effort, we can get results early on, 00:02:03.665 --> 00:02:06.084 and those results are not just preparations 00:02:06.084 --> 00:02:07.586 for better things to come later; 00:02:07.586 --> 00:02:08.712 they have value for us today, 00:02:08.712 --> 00:02:12.049 and we're already using it right. 00:02:12.049 --> 00:02:14.551 And when we do need to tweak whatever we installed, 00:02:14.551 --> 00:02:16.803 we might again be consumers, finding some snippets 00:02:16.803 --> 00:02:19.581 out on the web, pasting them in, and moving on. 00:02:19.581 --> 00:02:21.933 We don't necessarily understand what we did, 00:02:21.933 --> 00:02:24.102 but we got some value out of it. Over time, 00:02:24.102 --> 00:02:26.114 we may participate more, take it day by day, 00:02:26.114 --> 00:02:28.357 and one day we may find that our config 00:02:28.357 --> 00:02:30.902 has become a disorganized pile. 00:02:30.902 --> 00:02:32.027 Maybe it's mixed haphazardly 00:02:32.027 --> 00:02:34.029 with some output from the "customize" feature, 00:02:34.029 --> 00:02:35.697 and eventually we start to feel 00:02:35.697 --> 00:02:37.991 like it's a shameful mess. It's hard to manage; 00:02:37.991 --> 00:02:40.960 we may think of it as append-only or read-only. 00:02:40.960 --> 00:02:42.829 We can't deny there are problems here, 00:02:42.829 --> 00:02:45.582 but it happened for a good reason. It was quick, 00:02:45.582 --> 00:02:47.250 easy, and effective for us 00:02:47.250 --> 00:02:50.062 to enhance our experience this way, and then move on. 00:02:50.062 --> 00:02:52.172 We were using Emacs as it was designed here. 00:02:52.172 --> 00:02:54.775 It just wasn't sustainable indefinitely. 00:02:54.775 --> 00:02:56.627 We may continue doing things this way 00:02:56.627 --> 00:02:59.596 even though we realize it's not a good idea. 00:02:59.596 --> 00:03:00.472 But I think there are some ways 00:03:00.472 --> 00:03:01.682 to mitigate the downsides, 00:03:01.682 --> 00:03:03.150 that let us embrace our tendencies, 00:03:03.150 --> 00:03:05.444 and continue to benefit from them. 00:03:05.444 --> 00:03:06.971 If we allow and encourage ourselves 00:03:06.971 --> 00:03:10.065 to capture our thoughts and circumstances 00:03:10.065 --> 00:03:11.700 along with the work that we do on our config, 00:03:11.700 --> 00:03:14.386 and do so without judgment, or the responsibility 00:03:14.386 --> 00:03:17.047 to "do it right", we give ourselves the context 00:03:17.047 --> 00:03:19.549 to understand and manage it later. 00:03:19.549 --> 00:03:21.618 This should be done however works for us, 00:03:21.618 --> 00:03:23.286 whether it's rambling inline comments, 00:03:23.286 --> 00:03:25.247 keeping a separate journal or notes, 00:03:25.247 --> 00:03:27.975 or even a more advanced literate programming technique, 00:03:27.975 --> 00:03:30.485 if we want to make an investment like that. 00:03:30.485 --> 00:03:32.629 Or putting our config into source control, 00:03:32.629 --> 00:03:34.214 even if it's nothing more than a simple, 00:03:34.214 --> 00:03:37.050 daily record of changes along with our contextual notes, 00:03:37.050 --> 00:03:41.221 will make things a lot easier for our future selves. 00:03:41.221 --> 00:03:43.974 But regardless of how well, or sloppy, we manage it, 00:03:43.974 --> 00:03:46.184 we should also realize that our messy config 00:03:46.184 --> 00:03:48.129 is a personal artifact with inherent value, 00:03:48.129 --> 00:03:51.565 even if it's amusement value, or sentimental value. 00:03:51.565 --> 00:03:54.401 Emacs is not only a tool to get our work done, 00:03:54.401 --> 00:03:56.978 it can also be a very personalized experience. 00:03:56.978 --> 00:03:59.366 And if so, then our Emacs config 00:03:59.366 --> 00:04:02.110 is our experience in written form. 00:04:02.110 --> 00:04:04.303 You can see it as a log of your journey through Emacs, 00:04:04.303 --> 00:04:06.663 and the mark that you made on it along the way, 00:04:06.663 --> 00:04:08.506 mistakes and all. 00:04:08.506 --> 00:04:10.676 We may see our config as a record of failure, 00:04:10.676 --> 00:04:12.886 of things that we did wrong, the things that we repeated, 00:04:12.886 --> 00:04:15.672 or never finished. But it's important to realize 00:04:15.672 --> 00:04:18.592 that a record of failure is a record of persistence. 00:04:18.592 --> 00:04:20.761 In that sense, it's kind of like our genome: 00:04:20.761 --> 00:04:23.197 a set of unique, disorganized, 00:04:23.197 --> 00:04:26.308 somewhat accidental properties, that, on the whole, 00:04:26.308 --> 00:04:29.394 makes us fit to survive in our Emacs usage. 00:04:29.394 --> 00:04:31.021 It's also interesting to think of it 00:04:31.021 --> 00:04:33.482 as an archaeological record. Where we can sometimes 00:04:33.482 --> 00:04:35.942 get some insight into our "ancient times". 00:04:35.942 --> 00:04:38.570 Just being able to see what we were doing years ago 00:04:38.570 --> 00:04:40.906 is interesting -- to see how things changed, 00:04:40.906 --> 00:04:43.158 and hopefully grew over time. And sometimes 00:04:43.158 --> 00:04:45.845 we find some buried treasures that we forgot were there. 00:04:45.845 --> 00:04:48.172 And of course it's interesting to realize 00:04:48.172 --> 00:04:50.874 that when we start Emacs, this pile of config 00:04:50.874 --> 00:04:52.959 also executes in roughly the same order 00:04:52.959 --> 00:04:56.438 that we created it in. Our journey through Emacs 00:04:56.438 --> 00:04:59.482 happens again and again every time we start it up. 00:04:59.482 --> 00:05:04.095 And it's ready for us to keep working on it. 00:05:04.095 --> 00:05:05.305 And when it comes to packages, 00:05:05.305 --> 00:05:09.050 we may not make extensive use of them, if any at all. 00:05:09.050 --> 00:05:10.602 We probably have different reasons for this. 00:05:10.602 --> 00:05:12.437 We may feel like we need to reach 00:05:12.437 --> 00:05:14.815 some level of mastery before we start using them. 00:05:14.815 --> 00:05:17.943 We may not have the mental room to think about packages, 00:05:17.943 --> 00:05:20.362 or may not want to take on the administrative burden 00:05:20.362 --> 00:05:22.989 required to keep track of which packages we have, 00:05:22.989 --> 00:05:25.834 the dependencies and versions, and their compatibility. 00:05:25.834 --> 00:05:27.694 Some of us may just be uncomfortable 00:05:27.694 --> 00:05:30.664 letting new third-party code run in our environments. 00:05:30.664 --> 00:05:31.832 It could also just be the case 00:05:31.832 --> 00:05:35.377 that our needs haven't driven us to need a package yet. 00:05:35.377 --> 00:05:36.871 We're already doing what we need, 00:05:36.871 --> 00:05:39.089 and doing it efficiently enough. 00:05:39.089 --> 00:05:40.215 And here we find more alignment 00:05:40.215 --> 00:05:42.592 between Emacs the tool, and our common mindset: 00:05:42.592 --> 00:05:44.977 They work well when they stay needs-driven. 00:05:44.977 --> 00:05:46.646 We're not obligated to use 00:05:46.646 --> 00:05:48.949 as much of Emacs' functionality as we can, 00:05:48.949 --> 00:05:51.159 or every package that we're aware of 00:05:51.159 --> 00:05:52.510 if we don't have a need to. 00:05:52.510 --> 00:05:54.971 And in fact, that's a great way to stay overwhelmed. 00:05:54.971 --> 00:05:57.700 But if we stay aware of our needs, and then find 00:05:57.700 --> 00:05:59.902 that there is a package that might address them, 00:05:59.902 --> 00:06:02.655 then we can deal with it. And a need to explore, 00:06:02.655 --> 00:06:05.823 and a need to be curious, is a valid need. 00:06:05.823 --> 00:06:09.327 And if we do need extra confidence for that exploration, 00:06:09.327 --> 00:06:10.912 then the things we talked about before, 00:06:10.912 --> 00:06:13.633 like keeping good notes of our experiences and needs, 00:06:13.633 --> 00:06:15.541 or version controlling our config, 00:06:15.541 --> 00:06:18.586 will help us keep that connection to our needs, 00:06:18.586 --> 00:06:20.922 that gives us the freedom to experiment 00:06:20.922 --> 00:06:23.008 in the wide world of packages. 00:06:23.008 --> 00:06:27.262 And if we really do just need what's built in to Emacs, 00:06:27.262 --> 00:06:29.514 the vanilla out-of-the-box experience, 00:06:29.514 --> 00:06:32.183 then we can also be proud that we're making use 00:06:32.183 --> 00:06:33.560 of all the work that went into that experience, 00:06:33.560 --> 00:06:35.021 because a lot did. 00:06:35.021 --> 00:06:37.256 And when we report any problems that we find, 00:06:37.256 --> 00:06:39.190 we're also working to keep that experience 00:06:39.190 --> 00:06:41.192 smooth for future users. 00:06:41.192 --> 00:06:43.987 Of course, some of us may find this intimidating, 00:06:43.987 --> 00:06:46.531 and if so, feel free to reach out to me, 00:06:46.531 --> 00:06:48.767 and probably anyone in the community, 00:06:48.767 --> 00:06:56.249 that can help you navigate that process. 00:06:56.249 --> 00:06:59.461 So how do we use our Emacs installation? 00:06:59.461 --> 00:07:01.838 We often use it very simply: we get simple results 00:07:01.838 --> 00:07:06.068 in simple ways. Often we do things the same simple way 00:07:06.068 --> 00:07:08.720 for a very long time, and this is of course great, 00:07:08.720 --> 00:07:10.513 since we're getting done what we need to get done. 00:07:10.513 --> 00:07:14.392 There's no result or method too simple for Emacs. 00:07:14.392 --> 00:07:16.853 And we're not oblivious to the alternative. 00:07:16.853 --> 00:07:19.356 Many of us are at least aware that there are ways 00:07:19.356 --> 00:07:20.649 we could iterate on what we do, 00:07:20.649 --> 00:07:22.734 or some polish that we could apply, 00:07:22.734 --> 00:07:24.569 and we may even quite enjoy 00:07:24.569 --> 00:07:27.113 reading about more advanced Emacs possibilities, 00:07:27.113 --> 00:07:28.215 and thinking about how they could apply 00:07:28.215 --> 00:07:30.951 to our own workflow, but at the end of the day, 00:07:30.951 --> 00:07:33.703 we still keep our own usage the same, and basic. 00:07:33.703 --> 00:07:36.998 And this is another fundamental aspect of using Emacs. 00:07:36.998 --> 00:07:38.959 You can work simply and successfully, 00:07:38.959 --> 00:07:40.502 but you'll always be conscious of the possibility 00:07:40.502 --> 00:07:43.213 for far more complexity. And many of us 00:07:43.213 --> 00:07:46.424 do try to iterate on our ways, and sometimes succeed, 00:07:46.424 --> 00:07:49.177 but often we run into trouble and we stop or defer. 00:07:49.177 --> 00:07:51.304 A lot of times we're intimidated by the scope of things - 00:07:51.304 --> 00:07:53.848 we're not sure how to make measurable progress. 00:07:53.848 --> 00:07:56.101 We may find that the first ways we learned 00:07:56.101 --> 00:07:59.312 are so ingrained in us, that learning even a second way 00:07:59.312 --> 00:08:01.147 is many times harder. 00:08:01.147 --> 00:08:03.191 And sometimes we do make sudden progress 00:08:03.191 --> 00:08:04.275 after years of sameness, 00:08:04.275 --> 00:08:06.260 and wonder why we waited so long. 00:08:06.260 --> 00:08:07.737 And these are universal pains 00:08:07.737 --> 00:08:11.324 that everyone has to feel who wants to improve. 00:08:11.324 --> 00:08:13.451 But this is again where we can benefit 00:08:13.451 --> 00:08:14.661 from letting our needs drive us. 00:08:14.661 --> 00:08:16.538 Sometimes they'll tell us that it's OK 00:08:16.538 --> 00:08:18.806 keeping things the way they are, and sometimes 00:08:18.806 --> 00:08:20.491 they'll tell us that it's good to keep pushing, 00:08:20.491 --> 00:08:21.767 because there's a reason for it, 00:08:21.767 --> 00:08:25.077 and we'll be glad that we did. 00:08:25.077 --> 00:08:27.507 And what are the ways that we do learn, 00:08:27.507 --> 00:08:30.635 and grow, and create within Emacs? One constant 00:08:30.635 --> 00:08:33.596 is that we forget a lot. We learn something 00:08:33.596 --> 00:08:35.682 and then remember that we already learned 00:08:35.682 --> 00:08:38.309 and forgot it once before. Sometimes we just hope 00:08:38.309 --> 00:08:39.769 to learn more than we forget. 00:08:39.769 --> 00:08:41.772 And staying driven by our needs can also help here, 00:08:41.772 --> 00:08:43.499 because it's easier to learn something 00:08:43.499 --> 00:08:46.317 when we have a reason to, and an application for it. 00:08:46.317 --> 00:08:49.071 In Emacs, it can be tempting to do this backwards, 00:08:49.071 --> 00:08:51.782 and want to learn all there is about Emacs first, 00:08:51.782 --> 00:08:53.992 and then apply it. But again that's a surefire way 00:08:53.992 --> 00:08:55.935 to stay overwhelmed. 00:08:55.935 --> 00:08:59.640 And when we code and build things, we tend to create many small, quick things, 00:08:59.640 --> 00:09:01.600 but never really integrate them deeply 00:09:01.600 --> 00:09:03.661 into our environment or workflow. 00:09:03.661 --> 00:09:05.462 We leave things half-finished once we get bored, 00:09:05.462 --> 00:09:07.088 or find ourselves in over our head. 00:09:07.088 --> 00:09:09.883 And this is natural, because we're curious and creative, 00:09:09.883 --> 00:09:12.677 and Emacs makes it relatively easy, and actually fun, 00:09:12.677 --> 00:09:14.845 to experiment and get these quick results. 00:09:14.845 --> 00:09:17.065 But it's less clear how to see them through, 00:09:17.065 --> 00:09:20.310 and inherently less fun to do the follow-up gruntwork. 00:09:20.310 --> 00:09:21.970 But if we embrace our ways here, 00:09:21.970 --> 00:09:23.897 and structure our workflow to support them, 00:09:23.897 --> 00:09:26.215 we might find ourselves more satisfied. 00:09:26.215 --> 00:09:28.926 So let's give ourselves permission, and a logical place 00:09:28.926 --> 00:09:31.571 to put all our fun little quick experiments, 00:09:31.571 --> 00:09:33.423 without having to worry about integrating 00:09:33.423 --> 00:09:35.700 or polishing them, unless we find a need to later. 00:09:35.700 --> 00:09:38.505 Let's use source control wisely to give ourselves 00:09:38.505 --> 00:09:41.447 a place to experiment, and a place for stability. 00:09:41.447 --> 00:09:42.968 Let's stay needs-driven so that we know 00:09:42.968 --> 00:09:46.186 what we really do need to follow up on, 00:09:46.186 --> 00:09:48.963 and what's OK to drop. And let's remember 00:09:48.963 --> 00:09:50.965 that there is someone who will always appreciate 00:09:50.965 --> 00:09:53.635 any notes about our thought process we can take, 00:09:53.635 --> 00:09:55.845 no matter how rough or rambling they are: 00:09:55.845 --> 00:09:58.788 our future selves. 00:09:58.788 --> 00:10:01.376 And so I hope that some people can identify with 00:10:01.376 --> 00:10:02.927 at least some of what I've shared today. 00:10:02.927 --> 00:10:05.021 And I hope that we realize that, 00:10:05.021 --> 00:10:06.964 no matter how we see ourselves as Emacs users, 00:10:06.964 --> 00:10:09.233 and no matter what we see other people building, 00:10:09.233 --> 00:10:11.569 we're proud of the fact that we have built 00:10:11.569 --> 00:10:15.865 an experience that fits us. Thank you to everyone.