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.