diff options
Diffstat (limited to '')
-rw-r--r-- | 2024/captions/emacsconf-2024-writing--emacs-writing-studio--peter-prevos--main.vtt | 677 |
1 files changed, 677 insertions, 0 deletions
diff --git a/2024/captions/emacsconf-2024-writing--emacs-writing-studio--peter-prevos--main.vtt b/2024/captions/emacsconf-2024-writing--emacs-writing-studio--peter-prevos--main.vtt new file mode 100644 index 00000000..41bcec05 --- /dev/null +++ b/2024/captions/emacsconf-2024-writing--emacs-writing-studio--peter-prevos--main.vtt @@ -0,0 +1,677 @@ +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. |