summaryrefslogtreecommitdiffstats
path: root/2023/captions/emacsconf-2023-writing--emacs-turbocharges-my-writing--jeremy-friesen--main.vtt
blob: 59b67e7783ed4c7105518d8dc93b584605896eb9 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
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.