WEBVTT captioned by alfred NOTE Introduction 00:00:00.000 --> 00:00:06.959 All right. Hello, everyone. Welcome to my talk. 00:00:06.960 --> 00:00:10.119 We'll be talking today about Emacs journalism 00:00:10.120 --> 00:00:12.279 and what that means. 00:00:12.280 --> 00:00:14.999 First of all, I'd like to thank the EmacsConf organizers. 00:00:15.000 --> 00:00:20.039 Thank you very much, Sacha, for being very patient with me. 00:00:20.040 --> 00:00:22.679 Let's get right into it. So who's this talk for? 00:00:22.680 --> 00:00:24.799 First of all, it's for anyone 00:00:24.800 --> 00:00:26.359 who wants to learn about workflows 00:00:26.360 --> 00:00:28.519 and how you can work with Emacs 00:00:28.520 --> 00:00:31.279 to basically do anything you want. 00:00:31.280 --> 00:00:33.679 And it's for all levels of Emacs lovers. 00:00:33.680 --> 00:00:36.119 So I'll keep it accessible. NOTE Why this talk 00:00:36.120 --> 00:00:37.479 Why this talk? So first of all, 00:00:37.480 --> 00:00:40.519 I want to share a lot of Emacs. 00:00:40.520 --> 00:00:42.519 I also wanted to learn about workflows myself. 00:00:42.520 --> 00:00:46.319 So what better way than to talk about them 00:00:46.320 --> 00:00:49.519 to be able to learn? And we could maybe learn a thing 00:00:49.520 --> 00:00:56.799 or two about collaboration and using Emacs to that motive. 00:00:56.800 --> 00:01:00.479 I think it's useful to try and figure out who am I? 00:01:00.480 --> 00:01:03.159 Why am I having this talk? I'm a journalist based 00:01:03.160 --> 00:01:06.799 in Hong Kong and a documentary filmmaker. So that means 00:01:06.800 --> 00:01:08.959 that I have interviews quite often. 00:01:08.960 --> 00:01:11.519 I'm dealing with texts and subtitles, 00:01:11.520 --> 00:01:14.039 which I have to transcribe. 00:01:14.040 --> 00:01:16.879 And I'm also dealing with a lot of research. 00:01:16.880 --> 00:01:22.159 So that means going through a lot of documents and a lot of, 00:01:22.160 --> 00:01:26.759 well, skimming through documents 00:01:26.760 --> 00:01:30.279 to be able to have something to write. 00:01:30.280 --> 00:01:34.119 And I also use Emacs since basically one year ago, 00:01:34.120 --> 00:01:35.399 I started using it full time 00:01:35.400 --> 00:01:39.639 to have a great detriment of my productivity. 00:01:39.640 --> 00:01:45.599 So we'll be talking about, we'll be talking about, well, 00:01:45.600 --> 00:01:48.439 basically, my workflow for Emacs 00:01:48.440 --> 00:01:52.159 and how I went about having an Emacs workflow. NOTE Thinking about workflows 00:01:52.160 --> 00:01:56.799 So what is best when you're thinking about your own workflow 00:01:56.800 --> 00:01:59.199 and some things to think about journalism 00:01:59.200 --> 00:02:03.199 and about using these kinds of tools 00:02:03.200 --> 00:02:09.479 in combination for this? So where do we all start? 00:02:09.480 --> 00:02:11.559 Let's start with a simple-ish definition 00:02:11.560 --> 00:02:14.959 of what is a workflow. A workflow is 00:02:14.960 --> 00:02:18.359 any sequence of actions or tools you use to accomplish that. 00:02:18.360 --> 00:02:23.199 So it doesn't have to be through text processing, 00:02:23.200 --> 00:02:27.759 though obviously being a text-oriented community, 00:02:27.760 --> 00:02:31.439 it will most likely be partially text. 00:02:31.440 --> 00:02:34.999 But it's just about how we accomplish a task 00:02:35.000 --> 00:02:39.119 and which tools and mindsets we go into it with. NOTE My old workflow 00:02:39.120 --> 00:02:42.759 For example, let's talk about my old workflow. 00:02:42.760 --> 00:02:46.879 That workflow was basically just Google Drive 00:02:46.880 --> 00:02:50.759 using proprietary tools like Notion, Google Drive, Office, 00:02:50.760 --> 00:02:55.839 Storyboarder, and for communication, WeChat. 00:02:55.840 --> 00:02:59.559 If I could forgive all the privacy concerns of WeChat, 00:02:59.560 --> 00:03:03.279 I wouldn't, but I still wouldn't forgive 00:03:03.280 --> 00:03:06.759 the terribly buggy interface, and I hate it. 00:03:06.760 --> 00:03:09.119 So there are certain tools that you have to use 00:03:09.120 --> 00:03:11.359 and you have to modify your workflow 00:03:11.360 --> 00:03:13.839 or just adapt your workflow to the tools 00:03:13.840 --> 00:03:17.119 that you have to use. So for me, unfortunately, 00:03:17.120 --> 00:03:23.399 that means having to use WeChat. You compartmentalize it 00:03:23.400 --> 00:03:27.479 and set it aside, try not to think about it too hard. 00:03:27.480 --> 00:03:29.319 And this is the part that hurts the most, right? 00:03:29.320 --> 00:03:31.039 You're thinking about your workflow, 00:03:31.040 --> 00:03:32.239 you're thinking about, all right, 00:03:32.240 --> 00:03:37.199 I have this thing that works, I don't think about it. 00:03:37.200 --> 00:03:40.039 And all of a sudden, oh, I'm not happy 00:03:40.040 --> 00:03:44.239 with what I have right now. So let's get into, 00:03:44.240 --> 00:03:50.079 let's get into how, oops. So let's get into how and why 00:03:50.080 --> 00:03:51.479 we're not happy with our workflows. 00:03:51.480 --> 00:03:55.679 Because obviously, it's quite nice 00:03:55.680 --> 00:03:57.159 to not have to think about things. 00:03:57.160 --> 00:03:58.719 But once you've thought about it, 00:03:58.720 --> 00:04:01.399 and once you're not happy with how it works, 00:04:01.400 --> 00:04:03.559 I think it's quite useful to think about 00:04:03.560 --> 00:04:05.279 why we're not happy about it. NOTE Finding my workflow 00:04:05.280 --> 00:04:10.199 A huge part of what Emacs is being conscious of, well, 00:04:10.200 --> 00:04:11.679 how do we find our workflows? 00:04:11.680 --> 00:04:17.839 How do we find what we want to do? And for me, obviously, 00:04:17.840 --> 00:04:19.839 the best way to find that is to write it down 00:04:19.840 --> 00:04:24.239 and to try and tailor my tools to it. 00:04:24.240 --> 00:04:26.239 This is what I came up with. 00:04:26.240 --> 00:04:28.039 I want to be able to manage my accounting, 00:04:28.040 --> 00:04:30.719 to manage collaboration. So: working on files 00:04:30.720 --> 00:04:33.439 alongside my colleagues, communication, 00:04:33.440 --> 00:04:38.839 so that's planning out and managing meetings, 00:04:38.840 --> 00:04:43.999 managing teammates, managing tasks, information gathering. 00:04:44.000 --> 00:04:45.959 So that's what I was saying, going through documents, 00:04:45.960 --> 00:04:49.999 going through all these lists of tasks and all of these, 00:04:50.000 --> 00:04:54.079 not lists of tasks, all of these, well, basically, 00:04:54.080 --> 00:04:59.799 scientific papers, notes, references and wikis, media. 00:04:59.800 --> 00:05:02.319 So I want to be able to have a music player, 00:05:02.320 --> 00:05:06.159 a podcast player, a movie player. That's outside of work, 00:05:06.160 --> 00:05:09.999 but it's still one of the tasks that I do. Media processing, 00:05:10.000 --> 00:05:13.559 so this is where my job kind of gets into it a bit more. 00:05:13.560 --> 00:05:15.159 So I want to be able to take notes 00:05:15.160 --> 00:05:16.479 on the media that I watch, 00:05:16.480 --> 00:05:19.559 to transcribe the interviews 00:05:19.560 --> 00:05:21.559 and even the conversations that I have, 00:05:21.560 --> 00:05:26.439 to be able to later on have an easier time. 00:05:26.440 --> 00:05:32.119 Photo editing, video editing, so unfortunately, 00:05:32.120 --> 00:05:35.959 Emacs isn't quite quite oriented to that. 00:05:35.960 --> 00:05:40.519 Graphic design, color grading, storyboarding. 00:05:40.520 --> 00:05:43.479 And so obviously, you go into it a bit more. 00:05:43.480 --> 00:05:46.519 So managing to do scheduling tasks, interviews, 00:05:46.520 --> 00:05:49.159 preparing shot lists, tracking time, 00:05:49.160 --> 00:05:53.319 setting daily work goals, setting priorities, 00:05:53.320 --> 00:05:55.479 independent tasks, publishing, 00:05:55.480 --> 00:05:59.079 so publishing stuff for my work on my work CMS, 00:05:59.080 --> 00:06:01.519 publishing stuff on my personal CMS, 00:06:01.520 --> 00:06:06.079 although that's not happened yet. I've been kind of busy. 00:06:06.080 --> 00:06:08.639 Security and privacy, so making sure 00:06:08.640 --> 00:06:13.279 that everything that I use respects my data and respects me. 00:06:13.280 --> 00:06:18.399 Unfortunately, not the case, but you take what you can. 00:06:18.400 --> 00:06:20.599 Text processing. So that's journaling, 00:06:20.600 --> 00:06:26.039 writing down articles, my personal wiki, my work wiki, 00:06:26.040 --> 00:06:34.679 which I use to document, well, for example, 00:06:34.680 --> 00:06:37.159 several projects that I have currently. 00:06:37.160 --> 00:06:43.319 So I basically have my work wiki that I'm trying 00:06:43.320 --> 00:06:45.159 to fill out where I'll be able 00:06:45.160 --> 00:06:47.199 to basically go into it later on 00:06:47.200 --> 00:06:50.399 and have my thoughts written down. 00:06:50.400 --> 00:06:56.799 And programming, which I'm not very good at. NOTE Literate configuration 00:06:56.800 --> 00:06:59.399 Some people might have noticed 00:06:59.400 --> 00:07:17.159 that this looks a lot like [literate] programming. 00:07:17.160 --> 00:07:18.639 If you go into my config file, 00:07:18.640 --> 00:07:20.159 I have something kind of similar. 00:07:20.160 --> 00:07:22.439 I was planning on having a bit more time 00:07:22.440 --> 00:07:26.359 for this presentation and making it stick to that. 00:07:26.360 --> 00:07:30.999 But you'll see basically the mess that is my Emacs config. 00:07:31.000 --> 00:07:33.319 But it kind of sticks to the same thoughts, right? 00:07:33.320 --> 00:07:37.399 Text processing, web browsing, finances, 00:07:37.400 --> 00:07:39.879 that's my accounting, media and research. 00:07:39.880 --> 00:07:43.879 So my BibTeX... Here be dragons. 00:07:43.880 --> 00:07:45.119 Terrible, terrible config 00:07:45.120 --> 00:07:47.719 that I've stolen from plenty of people. 00:07:47.720 --> 00:07:52.479 So basically, that's how Emacs fits into this. 00:07:52.480 --> 00:07:57.399 So this is where I talk about literate configs 00:07:57.400 --> 00:08:01.919 and how that's helped me. Obviously, I've extolled 00:08:01.920 --> 00:08:04.199 the virtue of literate configs 00:08:04.200 --> 00:08:09.359 to quite an extent right here. It's basically... 00:08:09.360 --> 00:08:15.239 The concept is to have documents, living documents 00:08:15.240 --> 00:08:18.239 and documentation as code. 00:08:18.240 --> 00:08:22.239 So basically, let's go back into my config. 00:08:22.240 --> 00:08:31.279 I talk about what the config file does, have code blocks. 00:08:31.280 --> 00:08:33.599 So this is something that Emacs does. I'm pretty sure 00:08:33.600 --> 00:08:36.639 that there are some resources about that accessible online, 00:08:36.640 --> 00:08:46.439 which are even accessible in the Emacs Gulf. And so, yeah, 00:08:46.440 --> 00:08:50.199 basically just having everything accessible 00:08:50.200 --> 00:08:52.479 in one single source, one single file, 00:08:52.480 --> 00:08:54.879 which allows you to basically put everything down 00:08:54.880 --> 00:09:00.639 and integrate things from your config much much more easily. 00:09:00.640 --> 00:09:05.239 That's something that I found very useful in Emacs 00:09:05.240 --> 00:09:07.599 and which I think everyone can benefit from 00:09:07.600 --> 00:09:11.279 or the idea of it, like having everything stored centrally. 00:09:11.280 --> 00:09:14.999 It doesn't have to be used just for Emacs. 00:09:15.000 --> 00:09:21.999 It can be used also, it can be used also for, for example, 00:09:22.000 --> 00:09:26.679 a Qt browser or for other window manager configs. 00:09:26.680 --> 00:09:28.239 That kind of thing. 00:09:28.240 --> 00:09:32.919 And it's not been very easy to set a place. 00:09:32.920 --> 00:09:37.639 So I haven't done that just yet, but that's the plan. NOTE Org Mode 00:09:37.640 --> 00:09:41.479 Basically, this is all thanks to Org mode. 00:09:41.480 --> 00:09:45.639 So, small presentation of what Org mode is. Org mode 00:09:45.640 --> 00:09:49.599 is basically a project / task management, 00:09:49.600 --> 00:09:52.479 past management and task management, 00:09:52.480 --> 00:09:54.319 and writing mode for Emacs. 00:09:54.320 --> 00:10:00.039 So I can just put in a heading to do Hello World, 00:10:00.040 --> 00:10:10.319 send a message to Rosie tomorrow about the shoot space MDS-- 00:10:10.320 --> 00:10:15.399 that's thanks to wonderful Doom Emacs--and schedule it. 00:10:15.400 --> 00:10:21.799 I don't know. It's tomorrow. Let's go and set it to 9am. 00:10:21.800 --> 00:10:28.759 And say, maybe it's it's tomorrow already. I've done it. 00:10:28.760 --> 00:10:31.439 I've sent a message. Perfect. It's done. 00:10:31.440 --> 00:10:33.679 And it also allows you to have an agenda view. 00:10:33.680 --> 00:10:37.719 So I hope there's nothing too compromising right here. 00:10:37.720 --> 00:10:41.879 Whatever. It's fine. So it allows you 00:10:41.880 --> 00:10:45.199 to basically manage your agenda from there. 00:10:45.200 --> 00:10:54.439 And you might have seen me doing my little space nrf 00:10:54.440 --> 00:10:58.359 and wonderful key binding by Org Roam. So this 00:10:58.360 --> 00:11:01.039 is also another thing which is quite quite nice 00:11:01.040 --> 00:11:06.079 with Emacs is that you can you can have Org Roam, which 00:11:06.080 --> 00:11:09.079 is basically a database management program. 00:11:09.080 --> 00:11:12.959 So I can have documentary ideas 00:11:12.960 --> 00:11:21.799 and have basically my ideas which link up to another file. 00:11:21.800 --> 00:11:25.839 So for example, this one, which I have nothing for, 00:11:25.840 --> 00:11:29.239 but you get the idea. So it allows you to apps 00:11:29.240 --> 00:11:33.719 to link up with different files and to manage your thoughts. 00:11:33.720 --> 00:11:37.959 And this gets back into the workflow part of my talk, 00:11:37.960 --> 00:11:41.879 which is, well, this, this is a way 00:11:41.880 --> 00:11:44.319 to control what your workflow 00:11:44.320 --> 00:11:49.759 is control what the tools you're using are and to control, 00:11:49.760 --> 00:11:52.079 basically the way in which you interact 00:11:52.080 --> 00:11:52.959 with your technology. NOTE Collaborating with Pandoc 00:11:52.960 --> 00:11:59.799 So I am getting back into the way that I collaborate. 00:11:59.800 --> 00:12:02.799 Because obviously it's no good having just 00:12:02.800 --> 00:12:07.919 one Emacs user who's trying to share to share things 00:12:07.920 --> 00:12:11.159 with his editor. So I use pandoc. 00:12:11.160 --> 00:12:17.479 For example, let's go back into my file right here. 00:12:17.480 --> 00:12:24.359 Obviously, I don't spend much time inside of tables. 00:12:24.360 --> 00:12:29.199 But if I select this one, that's "SPC m e". 00:12:29.200 --> 00:12:32.079 Thank you, Doom Emacs for the for the keybindings. 00:12:32.080 --> 00:12:38.239 And I can just export it via pandoc right here, So "p". 00:12:38.240 --> 00:12:50.719 And I can just export it to doc, docx, or export it to ODT. 00:12:50.720 --> 00:12:55.119 So as an ODT file, which is typically what I do. 00:12:55.120 --> 00:12:57.119 And then I just send it through WeChat, 00:12:57.120 --> 00:13:00.359 which is not optimal, but I'm not allowed 00:13:00.360 --> 00:13:04.079 to do anything else. So it is what it is. 00:13:04.080 --> 00:13:12.759 Basically, this is how I export my files. And I re-import, 00:13:12.760 --> 00:13:15.519 I re-import them with pandoc as well. 00:13:15.520 --> 00:13:19.799 So I convert my Pages files, which I receive 00:13:19.800 --> 00:13:22.879 through an ICS plugin. It's not quite finalized, 00:13:22.880 --> 00:13:24.119 so I'm not ready to show it, 00:13:24.120 --> 00:13:26.359 but there's a link that I'll be putting 00:13:26.360 --> 00:13:29.479 in the description which talks about this. 00:13:29.480 --> 00:13:32.959 So this is my sharing part. 00:13:32.960 --> 00:13:35.439 It's nothing very special, honestly. 00:13:35.440 --> 00:13:38.319 It's just making sure that your documents 00:13:38.320 --> 00:13:41.479 are able to be shared. NOTE My own 00:13:41.480 --> 00:13:44.079 I have certain things. So for example, 00:13:44.080 --> 00:13:47.839 if I go into retro gaming in Hong Kong, 00:13:47.840 --> 00:13:53.919 if I go into my scripts, there are certain headings 00:13:53.920 --> 00:13:55.519 which I have. So for example, they ignore... 00:13:55.520 --> 00:13:58.759 My editor doesn't like to have some headings. 00:13:58.760 --> 00:14:02.599 But when I have a video script that I'm preparing, 00:14:02.600 --> 00:14:05.519 I like to have them for my own organization 00:14:05.520 --> 00:14:09.399 and for my thinking. So I keep them in right there 00:14:09.400 --> 00:14:11.760 and put in ignore. This is the advantage 00:14:11.761 --> 00:14:17.280 of the Emacs because you can just SPC m e o o, 00:14:17.281 --> 00:14:20.479 and this is ready to send, basically. 00:14:20.480 --> 00:14:24.039 There are ways to have export presets, 00:14:24.040 --> 00:14:26.959 but I'm not quite there yet. It's a lot of work. NOTE You don't have to get lost in the weeds 00:14:26.960 --> 00:14:30.119 So, getting back to my presentation. 00:14:30.120 --> 00:14:36.719 This all goes into basically other packages, 00:14:36.720 --> 00:14:39.319 which I want to implement, but I haven't been able to. 00:14:39.320 --> 00:14:43.839 My main conclusion: you don't have to get lost in the weeds. 00:14:43.840 --> 00:14:48.279 I kind of did that while preparing this talk. 00:14:48.280 --> 00:14:51.719 So basically, you don't have to do it all at once. 00:14:51.720 --> 00:14:55.639 Don't let it consume your life. 00:14:55.640 --> 00:14:57.319 I probably should have done this earlier. 00:14:57.320 --> 00:15:02.119 But Emacs configs are forever work in progress. 00:15:02.120 --> 00:15:04.919 So there are lots of features which you can add, 00:15:04.920 --> 00:15:08.119 a lot of things which you can implement if you only had, 00:15:08.120 --> 00:15:11.639 I don't know, five weeks to be able to implement them. 00:15:11.640 --> 00:15:12.959 But you're working right now. 00:15:12.960 --> 00:15:16.319 And this is a message to me five months ago. 00:15:16.320 --> 00:15:19.639 Don't do it. Just keep working 00:15:19.640 --> 00:15:23.639 and don't get lost in configuration all day. 00:15:23.640 --> 00:15:27.559 So yeah, basically the aim is to use software that you love, 00:15:27.560 --> 00:15:29.439 but not die in the process. 00:15:29.440 --> 00:15:34.719 And yeah, basically just using it as much as you can 00:15:34.720 --> 00:15:36.519 using fast software as much as you can. 00:15:36.520 --> 00:15:39.839 I'm doing that as well for... 00:15:39.840 --> 00:15:46.679 I have certain software such as storyboarder or bit tags, 00:15:46.680 --> 00:15:50.159 that kind of thing, which I try to use as much as possible, 00:15:50.160 --> 00:15:51.839 even outside of Emacs. 00:15:51.840 --> 00:15:56.279 And the aim is to get the work done in the end. 00:15:56.280 --> 00:16:00.679 I'm not an absolutist on this. So yeah, basically, 00:16:00.680 --> 00:16:03.919 let's keep modding our configs and having fun. 00:16:03.920 --> 00:16:06.479 If you've got any questions about the talk, 00:16:06.480 --> 00:16:10.439 I'm happy to answer. I am a novice at this, 00:16:10.440 --> 00:16:12.959 both presenting in front of camera 00:16:12.960 --> 00:16:15.719 and at talking about Emacs. 00:16:15.720 --> 00:16:18.679 I'm sure I've gotten a few things wrong, 00:16:18.680 --> 00:16:23.719 and it's not been the smoothest talk, but it's 10pm, almost. 00:16:23.720 --> 00:16:28.759 I need to get back home. Yeah, take care, everyone. 00:16:28.760 --> 00:16:32.719 Thanks again to the organizers. Here's my contact info. 00:16:32.720 --> 00:16:36.199 And I'll be in touch with the questions. 00:16:36.200 --> 00:16:38.319 I don't think I'll be able to do the live answers, 00:16:38.320 --> 00:16:41.879 but that's more or less it. Thanks so much for listening, 00:16:41.880 --> 00:16:44.400 if you've been listening, and take care.