WEBVTT
NOTE Introduction
00:00:00.000 --> 00:00:02.799
Hi, I'm Peter Prevos, and I'll be talking about Emacs
00:00:02.800 --> 00:00:06.039
Writing Studio. I'm a water engineer, a social scientist,
00:00:06.040 --> 00:00:08.759
and I dabble in theatrical magic. For each of those
00:00:08.760 --> 00:00:11.399
endeavors, I do a lot of writing. I take notes, I write
00:00:11.400 --> 00:00:14.559
reports, articles, books, and websites. I use Emacs for all
00:00:14.560 --> 00:00:18.719
my research, my writing, and my publishing. Emacs Writing
00:00:18.720 --> 00:00:20.999
Studio is an opinionated starter kit for authors who write
00:00:21.000 --> 00:00:23.999
for humans, not for programmers who write for computers.
00:00:24.000 --> 00:00:26.879
It consists of a configuration, some bespoke
00:00:26.880 --> 00:00:31.119
functions, but are not yet a package, a website, and a book.
00:00:31.120 --> 00:00:36.279
The book is completely written with EWS itself. The target
00:00:36.280 --> 00:00:39.039
audience are authors who are frustrated with using
00:00:39.040 --> 00:00:41.239
commercial software and hopping from application to
00:00:41.240 --> 00:00:45.879
application to achieve an objective. These are people
00:00:45.880 --> 00:00:49.986
without any Emacs experience or coding skills.
00:00:49.987 --> 00:00:53.307
The objective is to teach these people how to use Emacs,
00:00:53.308 --> 00:00:57.648
not how to configure Emacs to manage a complete writing project.
NOTE Why?
00:00:57.649 --> 00:01:00.479
So why did I write a book about Emacs when the documentation is
00:01:00.480 --> 00:01:04.719
already so extensive? Most Emacs documentation focuses on
00:01:04.720 --> 00:01:08.839
configuration, burying potential new users with choices.
00:01:08.840 --> 00:01:13.039
It forces people to work on Emacs instead of with Emacs,
00:01:13.040 --> 00:01:18.039
and it quickly can become a productivity sink. Emacs is the
00:01:18.040 --> 00:01:21.399
ultimate free software platform, but with this freedom
00:01:21.400 --> 00:01:25.879
also comes a price. Barry Schwartz wrote about the
00:01:25.880 --> 00:01:29.239
paradox of choice, which is about the dramatic explosion in
00:01:29.240 --> 00:01:32.119
choices in the modern world. Just think about the amount of
00:01:32.120 --> 00:01:34.599
effort it can take to decide what cereal to buy in a
00:01:34.600 --> 00:01:37.559
supermarket that you haven't been before. So many
00:01:37.560 --> 00:01:40.559
different choices. Paradoxically, that's become a
00:01:40.560 --> 00:01:44.239
problem instead of a solution. Emacs can perhaps suffer
00:01:44.240 --> 00:01:49.559
from the same issue. Another objective, using a COVID-19
00:01:49.560 --> 00:01:54.039
trope: EWS is about flattening the curve--that is, the
00:01:54.040 --> 00:01:56.727
learning curve--by making these choices
00:01:56.728 --> 00:02:02.451
for the new Emacs user and avoiding the paradox.
NOTE EWS configuration
00:02:02.452 --> 00:02:05.593
What about this EWS configuration?
00:02:05.594 --> 00:02:07.839
I decided to stay as close as humanly
00:02:07.840 --> 00:02:11.039
bearable to vanilla Emacs. I say that tongue-in-cheek,
00:02:11.040 --> 00:02:16.026
but also with some realism, centered around Org mode
00:02:16.027 --> 00:02:18.279
and Denote for note tagging, and citar for accessing
00:02:18.280 --> 00:02:21.319
bibliographies, and other convenience packages such as
00:02:21.320 --> 00:02:24.959
vertico for minibuffer completion. There's a
00:02:24.960 --> 00:02:27.999
dictionary, a thesaurus, and some other packages that are of
00:02:28.000 --> 00:02:32.559
interest to authors. EWS uses the standard keyboard
00:02:32.560 --> 00:02:37.359
shortcuts. Writing is much more about thinking than about
00:02:37.360 --> 00:02:40.439
maximizing the amount of words per minute. Just think
00:02:40.440 --> 00:02:43.639
about that the most used function for authors is
00:02:43.640 --> 00:02:46.919
self-insert. There's no need to use fancy keyboard
00:02:46.920 --> 00:02:50.071
shortcut systems when you write prose.
NOTE How did I develop EWS?
00:02:50.072 --> 00:02:54.534
How did I go about developing Emacs? I declared Emacs bankruptcy,
00:02:54.535 --> 00:02:57.096
like we all have every now and then.
00:02:57.097 --> 00:02:58.479
I decided to write this book with
00:02:58.480 --> 00:03:02.119
vanilla Emacs and only configure the system as was
00:03:02.120 --> 00:03:04.919
required. The first thing I did, I hooked visual-line-mode
00:03:04.920 --> 00:03:08.999
to text-mode and off I went. The configuration grew as the
00:03:09.000 --> 00:03:13.119
need arose. I was actually surprised with how far you can
00:03:13.120 --> 00:03:17.759
get with just using Vanilla Emacs. I also developed two
00:03:17.760 --> 00:03:21.953
packages to enhance how I can use Denote.
NOTE Overall workflow
00:03:21.954 --> 00:03:25.375
Well, let's get to a demo.
00:03:25.376 --> 00:03:30.157
EWS is based on a typical research and writing workflow.
00:03:30.158 --> 00:03:32.759
First step is you need to get some inspiration.
00:03:32.760 --> 00:03:35.479
Usually we do that by reading, by watching, by
00:03:35.480 --> 00:03:39.319
listening. Then the next step is ideation. You develop your
00:03:39.320 --> 00:03:42.679
ideas, summarize ideas from other people, write down your
00:03:42.680 --> 00:03:46.439
own ideas. For that, you need a note-taking system. EWS
00:03:46.440 --> 00:03:50.279
also talks about managing bibliographies. The third step
00:03:50.280 --> 00:03:53.439
is production. This is the actual writing process where, in
00:03:53.440 --> 00:03:57.479
this case, the EWS book. Once that is finished, we
00:03:57.480 --> 00:04:00.639
convert this Org mode file into something that can be
00:04:00.640 --> 00:04:04.119
published. That might be an e-book in an EPUB format, or a
00:04:04.120 --> 00:04:08.759
PDF for the interior of a a paperback book or perhaps as an
00:04:08.760 --> 00:04:12.159
e-book as well. There's also configuration in Emacs to
00:04:12.160 --> 00:04:16.759
produce MS Word documents if you need to collaborate with
00:04:16.760 --> 00:04:22.359
other people. Let's jump in to Emacs and walk through this
00:04:22.360 --> 00:04:25.399
workflow, give you a very quick demonstration of what's in
00:04:25.400 --> 00:04:29.319
the box.
NOTE Inspiration
00:04:29.320 --> 00:04:32.879
So the first step in the EWS workflow is inspiration. We all
00:04:32.880 --> 00:04:35.319
stand on the shoulders of each other. Some giants; most of
00:04:35.320 --> 00:04:38.079
them are normal people. We get inspiration by reading,
00:04:38.080 --> 00:04:40.799
listening, and watching, and Emacs can help you access
00:04:40.800 --> 00:04:44.279
text, sound, and video. It depends on external software.
00:04:44.280 --> 00:04:47.639
Emacs acts as a beautiful interface, and EWS helps you
00:04:47.640 --> 00:04:50.919
with the configuration. But we also need a tool to manage our
00:04:50.920 --> 00:04:53.631
electronic library, and BibTeX
00:04:53.632 --> 00:04:56.054
and citar package by Bruce D'Arcus
00:04:56.055 --> 00:04:58.119
provides a perfect interface to manage this
00:04:58.120 --> 00:05:02.959
literature. If I open my bibliography here, you see that
00:05:02.960 --> 00:05:06.959
I've got 1864 references in my BibTeX files. There's a
00:05:06.960 --> 00:05:11.999
whole bunch of stuff about, I guess, the weird things that I
00:05:12.000 --> 00:05:14.479
read. Let's look for Emacs, right, because that's a joint
00:05:14.480 --> 00:05:18.679
interest that we have. Let's open here this paper by
00:05:18.680 --> 00:05:23.799
Marcus Birkenkrahe, who did some research using Emacs to teach
00:05:23.800 --> 00:05:26.679
data science. Data science is my day job, so that had my
00:05:26.680 --> 00:05:29.759
interest. We have here a Denote file, which I'll talk
00:05:29.760 --> 00:05:33.399
about in a second. There's a library file, which is a PDF, but
00:05:33.400 --> 00:05:35.599
it could be a whole collection of different files in
00:05:35.600 --> 00:05:39.119
different formats, even video or sound. We can create a new
00:05:39.120 --> 00:05:42.279
Denote file, or there's a link to the document object
00:05:42.280 --> 00:05:46.959
identifier. Let's go to the PDF. Here we can now do our
00:05:46.960 --> 00:05:50.479
reading. We can get our inspiration by what Marcus has
00:05:50.480 --> 00:05:52.679
written here about teaching data science with literary
00:05:52.680 --> 00:05:54.760
programming tools.
NOTE Ideation
00:05:54.761 --> 00:05:57.599
Next step is ideation. Taking notes is
00:05:57.600 --> 00:06:00.999
the core of all creativity. When I read that paper, I might
00:06:01.000 --> 00:06:05.079
want to copy some ideas, I might get some of my own ideas, and I
00:06:05.080 --> 00:06:07.679
need to write that down. I basically write everything in a
00:06:07.680 --> 00:06:10.919
paper notebook, but then I transfer the things that are
00:06:10.920 --> 00:06:14.079
worth keeping to the Denote note-taking system. Now, there
00:06:14.080 --> 00:06:17.519
are many systems that exist out there that promise you
00:06:17.520 --> 00:06:20.639
note-taking heaven when you just follow a certain process.
00:06:20.640 --> 00:06:24.919
My advice: don't worry about Zettelkasten, PARA, or
00:06:24.920 --> 00:06:28.479
whatever is out there. Just write your notes and worry about
00:06:28.480 --> 00:06:31.479
structure and all that later. Even Niklas Luhmann, the
00:06:31.480 --> 00:06:34.639
inventor of Zettelkasten, called his system a septic tank
00:06:34.640 --> 00:06:38.319
of ideas. I call my collection of notes a primordial soup
00:06:38.320 --> 00:06:43.439
from which my books emerge. Now, Denote by Prot Stavrou is a
00:06:43.440 --> 00:06:45.919
flexible note-taking system that can implement any of the
00:06:45.920 --> 00:06:49.119
popular methods. I transferred thousands of files to
00:06:49.120 --> 00:06:54.319
this format, so all my information is at my fingertips. We
00:06:54.320 --> 00:06:59.759
can jump to the Denote directory. In my case, that's
00:06:59.760 --> 00:07:04.279
~/documents/notes. We see here the marvel that is Denote,
00:07:04.280 --> 00:07:09.759
which is its ingenious file naming convention that has a
00:07:09.760 --> 00:07:15.279
timestamp, a title, and some (what do we call them) tags or
00:07:15.280 --> 00:07:18.559
categories, whatever you please. This is a very quick way
00:07:18.560 --> 00:07:28.763
to find things. Then there is an ews-dired-narrow function.
00:07:28.764 --> 00:07:30.799
For example, I can find anything,
00:07:30.800 --> 00:07:34.679
_ews means anything that has the EWS tag, and
00:07:34.680 --> 00:07:39.112
there we go, it's narrowed down in my EWS notes.
NOTE denote-explore
00:07:39.113 --> 00:07:45.040
Now, this is all very well, but I also decided to
00:07:45.041 --> 00:07:47.102
write a package called denote-explore,
00:07:47.103 --> 00:07:54.071
which helps us sort of explore these collections of notes.
00:07:54.072 --> 00:07:55.519
One of the fancy things we can do is
00:07:55.520 --> 00:07:56.519
do some visualization.
00:07:56.520 --> 00:08:02.159
Let's go to the network function and create a community of
00:08:02.160 --> 00:08:05.359
notes. A community is a collection of notes that match a
00:08:05.360 --> 00:08:10.039
regular expression, _ews. All the notes here
00:08:10.040 --> 00:08:15.599
that are on this list, the ones with the EWS tag. In a second,
00:08:15.600 --> 00:08:22.159
my browser pops up. I shall move that to my other window in a
00:08:22.160 --> 00:08:28.599
second. There we go. denote-explore creates a SVG file and
00:08:28.600 --> 00:08:33.213
it creates an arrow between all the nodes that are linked.
00:08:33.214 --> 00:08:36.199
It puts a title up there when the node has more than two links
00:08:36.200 --> 00:08:39.599
going in or out. We can also click on the note to read it in
00:08:39.600 --> 00:08:43.679
the browser, if you choose. If you set up Firefox properly,
00:08:43.680 --> 00:08:49.639
I'm sure it can also go into Emacs. This is the note tagging
00:08:49.640 --> 00:08:54.580
that's available within EWS.
NOTE Writing with Org
00:08:54.581 --> 00:08:57.021
Now, we've taken all these notes. Now we need to
00:08:57.022 --> 00:09:00.518
start writing stuff. Org mode, for me,
00:09:00.519 --> 00:09:03.559
is the ideal tool. Org mode is what you see is what you
00:09:03.560 --> 00:09:06.919
mean. The text and the syntax instruct the computer on how to
00:09:06.920 --> 00:09:10.479
produce the final result. This means that one file can
00:09:10.480 --> 00:09:12.879
become many different formats, an e-book, a printed book,
00:09:12.880 --> 00:09:16.759
or a website. It doesn't matter. Now, a lot of people talk
00:09:16.760 --> 00:09:18.959
about what you see, what you get, and that we should have a
00:09:18.960 --> 00:09:21.079
what you see, what you get mode in Emacs. I think that's
00:09:21.080 --> 00:09:24.799
irrelevant, because showing the final result while you're
00:09:24.800 --> 00:09:28.639
writing is actually a distraction. Traditional writing,
00:09:28.640 --> 00:09:31.359
producing the content, and designing the layout and
00:09:31.360 --> 00:09:34.119
typesetting are separate processes done by different
00:09:34.120 --> 00:09:38.079
professionals. In Emacs Writing Studio, the writing is
00:09:38.080 --> 00:09:40.359
still done by a human. There are no provisions for large
00:09:40.360 --> 00:09:45.039
language models in EWS. But layout and typesetting is done
00:09:45.040 --> 00:09:49.599
by external software, be it CSS, LaTeX, or XML, all mediated
00:09:49.600 --> 00:09:50.359
by Org mode.
00:09:50.360 --> 00:09:57.399
EWS also has some other tools for case conversion,
00:09:57.400 --> 00:09:59.799
thesaurus, a dictionary that I haven't got time to show,
00:09:59.800 --> 00:10:02.909
but what I will show you is how the book functions,
00:10:02.910 --> 00:10:05.919
and then how we create these publications.
NOTE The project file
00:10:05.920 --> 00:10:11.639
Okay. Let's go to my project file.
00:10:11.640 --> 00:10:17.058
So these are the EWS chapters,
00:10:17.059 --> 00:10:20.200
and each chapter is an Org mode file.
00:10:20.201 --> 00:10:25.079
Let's go into the main document, which is set up with
00:10:25.080 --> 00:10:30.359
olivetti-mode just to make it easier to read. What we see
00:10:30.360 --> 00:10:34.839
here is all the fluff from Org mode. These are all the
00:10:34.840 --> 00:10:37.719
various bits of metadata that I used to create the final
00:10:37.720 --> 00:10:43.439
result. Then for each chapter, I have an inclusion.
00:10:43.440 --> 00:10:46.721
This references another file. I've got some properties.
00:10:46.722 --> 00:10:49.839
In this case, the forward is unnumbered. There's some notes.
00:10:49.840 --> 00:10:53.599
In this case, Prot actually wrote this for me. Then we
00:10:53.600 --> 00:10:59.039
can jump into that text. Then what we see at the bottom
00:10:59.040 --> 00:11:02.919
here is some inclusions for HTML. This is the EPUB version,
00:11:02.920 --> 00:11:07.159
but it's different in LaTeX. Again, the same file can
00:11:07.160 --> 00:11:09.479
serve different purposes.
00:11:09.480 --> 00:11:14.719
So now let's, as the final part of this demonstration,
00:11:14.720 --> 00:11:17.759
actually create the book, because the book's freely
00:11:17.760 --> 00:11:23.159
available. You can download the source files from GitHub,
00:11:23.160 --> 00:11:29.839
and you can roll your own. Let's open the dispatcher.
00:11:29.840 --> 00:11:33.468
We'll export the LaTeX and we want to open the file.
00:11:33.469 --> 00:11:37.349
Now this takes a minute because there's a lot happening within
00:11:37.350 --> 00:11:42.199
all this code, so I'll shorten this video. I'll be silent now.
00:11:42.200 --> 00:11:49.959
There we are. This is the Emacs Writing Studio PDF version,
00:11:49.960 --> 00:11:53.439
which will eventually become the interior for the
00:11:53.440 --> 00:11:55.159
paperback version.
00:11:55.160 --> 00:12:02.399
So the EWS book is available in all major e-book shops.
00:12:02.400 --> 00:12:05.319
I'm also working on a paperback, which I hope to finish when
00:12:05.320 --> 00:12:09.279
Emacs 30 comes out. But the Org Mode files that I use to
00:12:09.280 --> 00:12:11.039
produce the book, they're available in the GitHub
00:12:11.040 --> 00:12:13.999
repository, so you can also roll your own, because the EWS
00:12:14.000 --> 00:12:18.719
configuration is the one that I use to produce the book.
NOTE Conclusions
00:12:18.720 --> 00:12:22.799
Now, some conclusions from this journey is that the best way to
00:12:22.800 --> 00:12:26.239
learn is to teach. That was my personal objective. I
00:12:26.240 --> 00:12:28.599
learned a lot from systematically working out how to
00:12:28.600 --> 00:12:33.559
implement the EWS workflow. One of the surprising things
00:12:33.560 --> 00:12:35.759
that I learned is to have reliance on external software
00:12:35.760 --> 00:12:39.359
throughout the writing process. I spent a lot of time in
00:12:39.360 --> 00:12:42.159
the book about explaining these connections that Emacs is
00:12:42.160 --> 00:12:46.399
not just a text processor, it is also an interface with other
00:12:46.400 --> 00:12:49.599
software. Now, future developments, as I mentioned,
00:12:49.600 --> 00:12:52.119
there'll be a paperback version of the book when Emacs 30
00:12:52.120 --> 00:12:55.959
comes out, and I might reconfigure things a little bit. I'm
00:12:55.960 --> 00:12:58.719
only planning to update the configuration when packages
00:12:58.720 --> 00:13:04.639
break or with another major Emacs release, because I want to
00:13:04.640 --> 00:13:08.079
work with Emacs, not work on Emacs. A big thank you to
00:13:08.080 --> 00:13:11.199
Prot Stavrou, who helped me with Denote packages, and he
00:13:11.200 --> 00:13:14.999
also wrote the forward to the book. There's also several
00:13:15.000 --> 00:13:18.119
test readers that I met through Mastodon that helped me out
00:13:18.120 --> 00:13:20.719
quite a bit. Of course, all the Emacs and package
00:13:20.720 --> 00:13:25.519
developers without which none of this would exist. Thank
00:13:25.520 --> 00:13:27.559
you all for your attention, and I look forward to your
00:13:27.560 --> 00:13:30.720
questions and suggestions.