WEBVTT captioned by bala, checked by sachac
NOTE Intro
00:00:00.000 --> 00:00:04.559
Hello everyone, I'm Jeremy Friesen, pronouns he/him,
00:00:04.560 --> 00:00:05.879
and today I'll be talking about
00:00:05.880 --> 00:00:08.599
how Emacs turbocharges my writing.
00:00:08.600 --> 00:00:11.799
Quick intro: I've been programming since 1998
00:00:11.800 --> 00:00:14.079
and blogging since 2011.
00:00:14.080 --> 00:00:16.639
In May of 2020 I switched to Emacs,
00:00:16.640 --> 00:00:19.919
having previously used a long list of different editors.
00:00:19.920 --> 00:00:23.039
Curious about how Emacs impacted my writing,
00:00:23.040 --> 00:00:25.559
I wrote some stuff on my personal site and
00:00:25.560 --> 00:00:30.399
found that I blogged about 95 words per day prior to Emacs,
00:00:30.400 --> 00:00:33.719
and with Emacs I'm blogging about 340.
00:00:33.720 --> 00:00:37.959
Now, this is not a fair comparison, many things changed.
00:00:37.960 --> 00:00:40.919
A pandemic removed 2 hours of commute every day
00:00:40.920 --> 00:00:44.199
as a big contributor.
00:00:44.200 --> 00:00:46.999
Ultimately though, I've used Emacs and extended it
00:00:47.000 --> 00:00:50.319
to reduce barriers to capturing and writing and thinking,
00:00:50.320 --> 00:00:53.319
and I'm always on the lookout for minor refinements
00:00:53.320 --> 00:00:57.119
that help me stay in my thinking.
NOTE How I got here
00:00:57.120 --> 00:00:59.239
How I got here was I started in WordPress,
00:00:59.240 --> 00:01:02.599
then I moved to Jekyll, and then to Hugo,
00:01:02.600 --> 00:01:05.439
and through that process I started writing in Markdown.
00:01:05.440 --> 00:01:07.119
And when I was learning Emacs,
00:01:07.120 --> 00:01:09.359
I also didn't want to learn Org Mode,
00:01:09.360 --> 00:01:12.399
it felt intimidating because it could do so many things.
00:01:12.400 --> 00:01:15.519
I later learned Org Mode grows with you,
00:01:15.520 --> 00:01:18.399
and that's where I'm at now.
NOTE Friction
00:01:18.400 --> 00:01:19.999
But I didn't realize that friction
00:01:20.000 --> 00:01:23.359
between writing Markdown for my public blog
00:01:23.360 --> 00:01:25.479
and then adopting Org Mode locally
00:01:25.480 --> 00:01:28.519
for writing and time tracking and things like that.
00:01:28.520 --> 00:01:31.119
And also, where did I put things,
00:01:31.120 --> 00:01:35.159
because migrating the formats was just a little clunky.
00:01:35.160 --> 00:01:38.199
So ultimately I spent some time thinking about the data flow
00:01:38.200 --> 00:01:39.519
and where I would put things,
00:01:39.520 --> 00:01:41.039
this kind of pre-thinking,
00:01:41.040 --> 00:01:45.959
where does stuff go when it comes into and out of my brain.
NOTE Domains for notes
00:01:45.960 --> 00:01:49.399
So I have many domains where I'll write towards.
00:01:49.400 --> 00:01:51.119
The ones for this presentation are going to be
00:01:51.120 --> 00:01:54.159
blog posts, epigraphs, glossary, and melange.
00:01:54.160 --> 00:01:56.319
Melange is, I don't know where it goes,
00:01:56.320 --> 00:02:00.999
but now I do, I just throw it in melange.
00:02:01.000 --> 00:02:04.479
So I began exploring Org Mode via Org Roam,
00:02:04.480 --> 00:02:07.559
but I've ultimately switched from Org Roam
00:02:07.560 --> 00:02:10.639
to the simplified Denote package.
00:02:10.640 --> 00:02:13.199
I didn't use a lot of the functionality
00:02:13.200 --> 00:02:15.919
and I appreciate the plain text reality of Denote.
NOTE Demo
00:02:15.920 --> 00:02:18.799
So let's hop into the demo.
00:02:18.800 --> 00:02:19.919
I'm going to split my screen.
00:02:19.920 --> 00:02:21.959
Over on the right is going to be
00:02:21.960 --> 00:02:24.199
where I'm going to be live typing stuff.
00:02:24.200 --> 00:02:27.319
So let's get going.
00:02:27.320 --> 00:02:29.799
You'll notice I don't do a lot of screen splitting.
00:02:29.800 --> 00:02:32.239
It just makes it easier to focus.
00:02:32.240 --> 00:02:34.039
So let's create a note.
00:02:34.040 --> 00:02:41.279
All right, I have bound hyper to my command key,
00:02:41.280 --> 00:02:42.519
my right command key.
00:02:42.520 --> 00:02:43.679
This opens up a whole world.
00:02:43.680 --> 00:02:45.559
I'm going to create a blog post
00:02:45.560 --> 00:02:49.799
and we're going to name it the ever popular "hello world".
00:02:49.800 --> 00:02:50.799
It's Emacs.
00:02:50.800 --> 00:02:51.519
Great.
00:02:51.520 --> 00:02:55.439
We've saved it.
NOTE Dabbrev and hippie-expand
00:02:55.440 --> 00:02:57.399
One of the things I encourage everybody to do
00:02:57.400 --> 00:03:02.039
is to watch Jay Dixit's presentation, Emacs for Writers.
00:03:02.040 --> 00:03:08.079
It showed me the utility of Dabbrev for quick auto correction.
00:03:08.080 --> 00:03:11.479
And I also love using hippie-expand.
00:03:11.480 --> 00:03:14.639
When I watch VS coders code, it's always a little sad pants
00:03:14.640 --> 00:03:17.319
because they're thinking about coding or writing
00:03:17.320 --> 00:03:19.159
in terms of their code.
00:03:19.160 --> 00:03:24.239
But I have found as a programmer, I tend to write more tech,
00:03:24.240 --> 00:03:27.799
more like English instead of programming code.
00:03:27.800 --> 00:03:30.719
So I think it's important to understand these tools
00:03:30.720 --> 00:03:32.839
that help me write better.
NOTE Links
00:03:32.840 --> 00:03:34.879
All right, we're going to go with links.
00:03:34.880 --> 00:03:36.999
Links are foundational for the web.
00:03:37.000 --> 00:03:41.159
I'm going to insert a public link,
00:03:41.160 --> 00:03:43.439
which is a role playing game that I love,
00:03:43.440 --> 00:03:45.159
Worlds Without Number.
00:03:45.160 --> 00:03:48.399
And I'm going to go ahead and describe it.
00:03:48.400 --> 00:03:49.239
A role playing game.
00:03:49.240 --> 00:03:53.479
But I don't want to always say role playing game.
00:03:53.480 --> 00:03:54.599
I'm going to abbreviate it.
00:03:54.600 --> 00:03:57.079
So I wrote a function that will transform it.
00:03:57.080 --> 00:04:00.239
And let's take a look at what that looks like on the inside.
00:04:00.240 --> 00:04:06.279
When I do this real quick, it's toggling it back and forth.
00:04:06.280 --> 00:04:10.119
And I'll just keep doing that.
00:04:10.120 --> 00:04:12.999
I also have the idea of public notes and private notes.
00:04:13.000 --> 00:04:15.399
Public is things that's going to have a URL.
00:04:15.400 --> 00:04:16.879
I met a person at a conference.
00:04:16.880 --> 00:04:19.639
He gave a talk on something that I thought was very useful.
00:04:19.640 --> 00:04:23.159
I didn't write down what he talked about on his note.
00:04:23.160 --> 00:04:26.279
I wrote it where it was more relevant to the topic.
00:04:26.280 --> 00:04:31.159
And I can use a backlink to go find that.
00:04:31.160 --> 00:04:34.119
Next up, I demonstrate the abbreviation.
00:04:34.120 --> 00:04:35.839
I also have dates.
00:04:35.840 --> 00:04:37.999
This is a semantic date in HTML5.
00:04:38.000 --> 00:04:41.839
I can just have the year.
00:04:41.840 --> 00:04:48.359
I can also just have something like that date is today.
00:04:48.360 --> 00:04:52.239
And we have date links.
00:04:52.240 --> 00:04:54.199
I don't have backlinks built up for that,
00:04:54.200 --> 00:04:56.959
but I have ideas of how I go about doing it.
00:04:56.960 --> 00:04:58.759
And last up, thank you Frank Herbert,
00:04:58.760 --> 00:05:00.799
I want to introduce epigraphs.
00:05:00.800 --> 00:05:04.359
So this is epigraph.
00:05:04.360 --> 00:05:08.719
I just have that, any sufficiently, dot, dot, dot.
00:05:08.720 --> 00:05:10.359
And that's my epigraph.
00:05:10.360 --> 00:05:16.719
Backlinks, I mentioned that.
00:05:16.720 --> 00:05:18.999
Let's go take a look at Jonathan, right?
00:05:19.000 --> 00:05:23.119
He's a Rubyist, but importantly is the backlinks.
00:05:23.120 --> 00:05:27.319
He gave a talk on, that's right, PDFs.
00:05:27.320 --> 00:05:28.959
I can go look at what he spoke to
00:05:28.960 --> 00:05:31.879
and I can reference that because I will remember
00:05:31.880 --> 00:05:36.679
that talk or I will remember, oh, I need to look up PDFs.
00:05:36.680 --> 00:05:39.799
Oh, I have something in PDFs.
00:05:39.800 --> 00:05:43.239
Again, it's about stumbling upon data in a good way.
00:05:43.240 --> 00:05:48.319
So thinking of making linking easy helps me
00:05:48.320 --> 00:05:52.159
create more and more ways to find things,
00:05:52.160 --> 00:05:57.119
both by links, backlinks, indices, file searches, and so forth.
00:05:57.120 --> 00:05:59.239
It's all about information organization.
00:05:59.240 --> 00:06:04.879
Next up is a really cool function of org capture.
00:06:04.880 --> 00:06:06.679
So let's take a look here.
00:06:06.680 --> 00:06:08.039
I'm going to start a clock.
00:06:08.040 --> 00:06:09.159
It's running.
00:06:09.160 --> 00:06:11.479
And I'm going to bring up my browser.
00:06:11.480 --> 00:06:19.679
And I'm going to go ahead and capture to the content to clock.
00:06:19.680 --> 00:06:23.159
And it brings up this block quote, which is lovely.
00:06:23.160 --> 00:06:25.719
And boom, I'm going to save it.
00:06:25.720 --> 00:06:28.199
I'm going to close this.
00:06:28.200 --> 00:06:30.959
We're back here to my "hello world".
00:06:30.960 --> 00:06:33.519
And it has grabbed a block quote for this.
00:06:33.520 --> 00:06:38.039
Again, it helps me gather stuff up quickly.
00:06:38.040 --> 00:06:41.119
I've bound that also in my RSS feed.
00:06:41.120 --> 00:06:44.199
We're going to skip over macros, blocks, and the abstract.
00:06:44.200 --> 00:06:45.479
And we're going to get into the export
00:06:45.480 --> 00:06:47.519
because this is where we can see the magic
00:06:47.520 --> 00:06:49.599
that happens because I want to take things
00:06:49.600 --> 00:06:51.079
from private to public.
00:06:51.080 --> 00:06:53.199
So I have bound a key.
00:06:53.200 --> 00:06:55.559
These are my menu of things I don't want to forget.
00:06:55.560 --> 00:06:56.759
I will export.
00:06:56.760 --> 00:06:57.839
And here we go.
00:06:57.840 --> 00:07:04.959
Here is my blog post in markdown format with Hugo shortcodes.
00:07:04.960 --> 00:07:07.399
So let's go take a look at what that looks like.
00:07:07.400 --> 00:07:09.359
Localhost.
00:07:09.360 --> 00:07:12.359
I'm not writing in Rails.
00:07:12.360 --> 00:07:14.919
"Hello world" right there.
00:07:14.920 --> 00:07:17.159
This is the epigraph.
00:07:17.160 --> 00:07:22.279
And I have a mention of Worlds without Number.
00:07:22.280 --> 00:07:24.799
And I have mentioned this as a abbreviation.
00:07:24.800 --> 00:07:27.519
So I include the first time this text.
00:07:27.520 --> 00:07:30.199
Here's also Jonathan.
00:07:30.200 --> 00:07:33.399
He is not a public reference thing.
00:07:33.400 --> 00:07:37.519
Also, I have these things here.
00:07:37.520 --> 00:07:39.399
And here's my captured information
00:07:39.400 --> 00:07:42.599
along with the citation link to it.
00:07:42.600 --> 00:07:49.159
Again, helpful to be consistent.
NOTE Conclusion
00:07:49.160 --> 00:07:52.279
In conclusion, when I started learning Emacs,
00:07:52.280 --> 00:07:55.879
I quickly shifted to vanilla Emacs and just started writing.
00:07:55.880 --> 00:07:59.519
As I wrote, when I needed to do something that I'd previously
00:07:59.520 --> 00:08:02.999
done in a text editor, I'd find an experiment with a package.
00:08:03.000 --> 00:08:04.679
I continue that mindset.
00:08:04.680 --> 00:08:06.839
As I write, I'm attending to what I'm doing.
00:08:06.840 --> 00:08:08.879
And eventually, I realize if I were to just write
00:08:08.880 --> 00:08:11.639
a function that does this one thing,
00:08:11.640 --> 00:08:13.559
I'd have a smoother writing experience.
00:08:13.560 --> 00:08:16.359
This helps me practice my craft, extend my editor,
00:08:16.360 --> 00:08:19.999
understand its capabilities, and begin exploring other things.
00:08:20.000 --> 00:08:23.159
The goal of this is all to minimize the distractions.
00:08:23.160 --> 00:08:25.759
As I'm thinking about it, I wanted to quickly add it
00:08:25.760 --> 00:08:27.159
and then move along,
00:08:27.160 --> 00:08:29.559
basically creating breadcrumbs for me
00:08:29.560 --> 00:08:31.239
to follow my thoughts in the future.
00:08:31.240 --> 00:08:33.159
And one of those functions is
00:08:33.160 --> 00:08:36.479
I'd like to write an extender for my abbr,
00:08:36.480 --> 00:08:38.679
abbreviation export to work in Latex.
00:08:38.680 --> 00:08:40.279
It's like halfway there.
00:08:40.280 --> 00:08:42.239
So I'm looking forward to getting that done
00:08:42.240 --> 00:08:45.439
when I have some time and can prioritize it.
00:08:45.440 --> 00:08:47.799
But for now, thank you.
00:08:47.800 --> 00:08:53.160
And I look forward to your questions.