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.