WEBVTT 00:00.880 --> 00:02.720 [Raymond Puzio]: Hello, I'm Raymond Puzio. 00:02.720 --> 00:04.799 I first learned about Emacs and Lisp 00:04.799 --> 00:05.920 at an enrichment program 00:05.920 --> 00:07.200 for high school students. 00:07.200 --> 00:09.120 When I studied physics at the university, 00:09.120 --> 00:10.400 I used Emacs and Tex 00:10.400 --> 00:12.320 to write mathematical documents. 00:12.320 --> 00:13.920 Later on, I became active 00:13.920 --> 00:16.480 in Emacs and Lisp user groups where, 00:16.480 --> 00:18.160 among other things, I learned about 00:18.160 --> 00:20.400 Org mode for reproducible research. 00:20.400 --> 00:21.680 Nowadays, I am working on 00:21.680 --> 00:24.080 synthesizing Emacs and other programs 00:24.080 --> 00:25.599 into an end-to-end platform 00:25.599 --> 00:30.560 for scientific research and collaboration. 00:30.560 --> 00:31.519 [Joe Corneli]: I'm Joe Corneli. 00:31.519 --> 00:33.920 I also started using Emacs in high school 00:33.920 --> 00:35.440 in a course on C programming, 00:35.440 --> 00:36.800 and now I'm technically 00:36.800 --> 00:38.239 a computer scientist. 00:38.239 --> 00:39.280 My research background 00:39.280 --> 00:43.120 is in mathematics and online communities. 00:43.120 --> 00:45.039 [Noorah Alhasan]: Hi, I'm Noorah Alhasan. 00:45.039 --> 00:46.719 I'm a member of the ERG group 00:46.719 --> 00:49.600 and a PhD student at UT Austin 00:49.600 --> 00:51.760 studying climate policy. 00:51.760 --> 00:54.239 So for this talk, the four of us 00:54.239 --> 00:56.640 met at EmacsConf 2020 last year 00:56.640 --> 00:57.760 with a common interest 00:57.760 --> 00:59.520 in Emacs and research. 00:59.520 --> 01:01.760 we've met almost every week since then 01:01.760 --> 01:02.640 because we wanted to 01:02.640 --> 01:04.479 keep the conversation going. 01:04.479 --> 01:05.519 In this short talk, 01:05.519 --> 01:06.560 we share information 01:06.560 --> 01:08.240 about the methods we use. 01:08.240 --> 01:09.680 Here's the outline of our talk. 01:09.680 --> 01:10.560 First, we'll tell you 01:10.560 --> 01:12.320 about the technologies we use 01:12.320 --> 01:13.840 and show a short demo video 01:13.840 --> 01:15.360 from one of the meetings. 01:15.360 --> 01:16.320 We'll then focus on 01:16.320 --> 01:18.880 the time and content structuring methods 01:18.880 --> 01:21.040 we use in our live sessions. 01:21.040 --> 01:22.240 Finally, we'll talk about 01:22.240 --> 01:24.320 what came out of all this work. 01:24.320 --> 01:28.159 For example, we wrote a paper for the 01:28.159 --> 01:30.400 Pattern Languages of Programs conference, 01:30.400 --> 01:31.759 and we designed a workshop 01:31.759 --> 01:33.920 using the knowledge we created together. 01:33.920 --> 01:35.600 Very practically, 01:35.600 --> 01:37.119 this has improved the quality 01:37.119 --> 01:38.640 of our own collaboration 01:38.640 --> 01:39.680 and we have some lessons 01:39.680 --> 01:41.360 about how you can create 01:41.360 --> 00:01:45.999 a research community similar to ours. 01:46.000 --> 01:48.399 [Joe]: You'll have noticed that we all have 01:48.399 --> 01:50.159 different research backgrounds 01:50.159 --> 01:52.640 and we do think that transdisciplinarity 01:52.640 --> 01:54.960 is important for solving big problems. 01:54.960 --> 01:56.719 However, if you have people 01:56.719 --> 01:58.000 from different research backgrounds 01:58.000 --> 01:58.560 working together, 01:58.560 --> 01:59.680 they need some scaffolding, 01:59.680 --> 02:01.360 both in terms of tools and methods, 02:01.360 --> 02:02.880 to have good conversations. 02:02.880 --> 02:04.320 And of course, as Emacs users, 02:04.320 --> 02:05.439 we wanted to have Emacs 02:05.439 --> 02:07.360 at the center of that. 02:07.360 --> 02:08.640 Being in a meeting, 02:08.640 --> 02:10.720 taking real-time notes 02:10.720 --> 02:11.920 collaboratively with Emacs 02:11.920 --> 02:13.440 realizes a dream that some of us 02:13.440 --> 02:14.480 have been entertaining 02:14.480 --> 02:15.520 (and experimenting with) 02:15.520 --> 02:18.800 for a while. The package crdt.el 02:18.800 --> 02:21.440 by Qiantan Hong makes this easy. 02:21.440 --> 02:22.959 We take notes in our meetings 02:22.959 --> 02:24.239 using Org Mode. 02:24.239 --> 02:25.520 Since we've seen this before 02:25.520 --> 02:27.040 in talks on reproducible research, 02:27.040 --> 02:29.920 and since Leo is the maintainer of org-roam, 02:29.920 --> 02:31.680 it was a natural choice for us. 02:31.680 --> 02:32.400 It allows us to 02:32.400 --> 02:34.080 put our notes online using git 02:34.080 --> 02:36.080 and the static state generator Firn. 02:36.080 --> 02:37.599 And lastly, of course, we need 02:37.599 --> 02:38.720 a real-time meeting tool. 02:38.720 --> 02:39.519 For that purpose, 02:39.519 --> 02:41.920 we use BBB in our weekly sessions 02:41.920 --> 02:43.519 (in fact, we use the same server 02:43.519 --> 02:44.879 that's used by EmacsConf, 02:44.879 --> 02:46.720 thanks again to Leo). 02:46.720 --> 02:48.000 All of these tools are 02:48.000 --> 02:49.380 free/libre/open source. 02:49.380 --> 02:50.720 However, BBB does have 02:50.720 --> 00:02:53.679 some intensive hardware requirements. 02:53.680 --> 02:54.800 Next up, here's a 02:54.800 --> 02:56.239 short pre-recorded snippet 02:56.239 --> 02:57.680 from one of our recent meetings 02:57.680 --> 03:01.840 so you can get a sense of how they go. 03:01.840 --> 03:02.640 [Demo - Leo Vivier]: Are we okay 03:02.640 --> 03:04.159 pushing the demo to the end? 03:04.159 --> 03:05.440 That kind of presupposes 03:05.440 --> 03:07.120 a different structure 03:07.120 --> 03:08.080 that you would usually have 03:08.080 --> 03:08.800 in a presentation. 03:08.800 --> 03:09.760 Generally you have... 03:09.760 --> 03:12.800 You introduce the demo, you do the demo, 03:12.800 --> 03:14.720 and then you do the conclusions, 03:14.720 --> 03:16.560 or what was good about the demo. 03:16.560 --> 03:18.159 Does that make sense to everyone? 03:18.159 --> 03:18.560 [Ray]: Let's see. 03:18.560 --> 03:19.599 When you usually do that, 03:19.599 --> 03:21.760 that's because whatever you're demonstrating 03:21.760 --> 03:23.840 is the main point of your talk, 03:23.840 --> 03:25.840 so if this was a talk about action reviews, 03:25.840 --> 03:29.760 that would make sense, but isn't it not ERG? 03:29.760 --> 03:32.319 [Leo]: But it's because we are telling... 03:32.319 --> 03:34.400 For me, I think it's a compound element. 03:34.400 --> 03:36.640 Yes, we are demonstrating the power, 03:36.640 --> 03:37.840 but we are also demonstrating 03:37.840 --> 03:39.680 how we're working together by... 03:39.680 --> 03:42.000 Yes, we might have introduced CRDT before 03:42.000 --> 03:43.840 in the presentation itself, 03:43.840 --> 03:46.959 but if we need to be doing the power, 03:46.959 --> 03:49.360 and also showing tools like CRDT, 03:49.360 --> 03:50.879 obviously, we're not... probably not going 03:50.879 --> 03:52.959 to be talking about... oh by the way, 03:52.959 --> 03:54.239 here we are using CRDT 03:54.239 --> 03:54.879 and stuff like this. 03:54.879 --> 03:57.280 It feels like cramming a lot of stuff 03:57.280 --> 03:58.720 into this demo at the end. 03:58.720 --> 04:00.159 [Joe]: So I think demo to me 04:00.159 --> 04:02.159 is less about demoing one of the methods, 04:02.159 --> 04:02.879 because then people will get 04:02.879 --> 04:05.439 a bit hung up on that. 04:05.439 --> 04:07.360 I think the demo... 04:07.360 --> 04:08.080 You know, to be honest, 04:08.080 --> 04:09.200 here's another thing. 04:09.200 --> 04:09.920 What we could do-- 04:09.920 --> 04:10.959 this would be very clever-- 04:10.959 --> 04:12.400 we could make this the demo, 04:12.400 --> 04:13.920 what we're doing right now, 04:13.920 --> 04:15.519 writing this talk is the demo, 04:15.519 --> 04:18.560 and just go back into the video 04:18.560 --> 04:20.160 and just get out a two-minute section, 04:20.160 --> 04:22.479 so we say, look we tried to write this talk, 04:22.479 --> 04:23.680 we went around, had a discussion, 04:23.680 --> 04:25.040 we had these things and then we just take... 04:25.040 --> 04:26.240 We're going to pick two minutes 04:26.240 --> 04:26.880 out of this video 04:26.880 --> 04:27.440 and show you that 04:27.440 --> 04:29.280 as a demo of how we actually work 04:29.280 --> 04:30.320 and then we'll go back to the talk. 04:30.320 --> 04:31.199 I mean, it'd be very funny, 04:31.199 --> 04:32.880 and then we've already done the demo. 04:32.880 --> 04:34.560 It's just, like... uh yeah, 04:34.560 --> 04:35.280 then we're good to go. 04:35.280 --> 04:37.120 And it's got neural lines on the floor. 04:37.120 --> 04:39.199 It's like a perfect writer's room. 04:39.199 --> 04:41.199 It's a total amazing writer's room scenario, 04:41.199 --> 04:43.120 specifically because she's lying on her back 04:43.120 --> 04:45.360 on the floor. Anyway. I mean, 04:45.360 --> 04:47.680 I think this would be fine. 04:47.680 --> 04:49.520 [Leo]: I think I particularly like the idea 04:49.520 --> 04:52.080 of taking the snippet, 04:52.080 --> 04:54.000 the two minutes before the realization 04:54.000 --> 04:56.400 that we could be using this as the demo, 04:56.400 --> 05:00.240 and then seeing the... well my face light up 05:00.240 --> 05:01.680 because it feels like a good idea, 05:01.680 --> 05:03.360 and Joe gets excited about this. 05:03.360 --> 05:04.720 I think this could be a good demo, 05:04.720 --> 05:07.120 and I think this would be 05:07.120 --> 05:08.479 a very genuine demonstration 05:08.479 --> 05:09.360 of how we work here 05:09.360 --> 05:10.400 and how we get excited about 05:10.400 --> 00:05:13.599 some of our ideas sometimes. 05:13.600 --> 05:14.639 [Noorah]: In the demo, 05:14.639 --> 05:16.240 you saw a very improvised 05:16.240 --> 05:18.000 free-flowing conversation. 05:18.000 --> 05:19.840 In order to have this kind of conversation 05:19.840 --> 05:20.960 and still get things done, 05:20.960 --> 05:23.520 we need a pretty rigorous structure in place 05:23.520 --> 05:26.000 at the bigger scale of the meetings. 05:26.000 --> 05:27.120 This involves both 05:27.120 --> 05:31.280 a timetable for the meetings 05:31.280 --> 00:05:35.119 and some review and planning processes. 05:35.120 --> 05:36.320 [Joe]: Just to say a little bit more 05:36.320 --> 05:40.160 about the timetable, if you could go back, 05:40.160 --> 05:42.320 the meetings are generally following 05:42.320 --> 05:45.199 a structure as we have up on the screen 05:45.199 --> 05:46.479 of informal check-ins 05:46.479 --> 05:48.400 followed by any announcements, 05:48.400 --> 05:50.960 and then two topics, at most two topics, 05:50.960 --> 05:52.560 with a break in the middle. 05:52.560 --> 05:54.800 The whole thing takes about two hours, 05:54.800 --> 05:56.400 and we meet weekly. 05:56.400 --> 05:58.160 The consistency of these meetings 05:58.160 --> 05:58.800 is really important 05:58.800 --> 00:06:00.719 for how the group works. 06:00.720 --> 06:02.560 [Ray]: At at the end of every meeting, 06:02.560 --> 06:03.600 we ask and answer 06:03.600 --> 06:04.800 a series of questions 06:04.800 --> 06:07.120 adapted from the ‘After Action Review’ 06:07.120 --> 06:08.880 developed by the United States Army 06:08.880 --> 06:10.800 in their training programs, 06:10.800 --> 06:13.840 and also used in some business contexts. 06:13.840 --> 06:15.759 The adaptation we use here 06:15.759 --> 06:17.440 came out of the Peeragogy project, 06:17.440 --> 06:19.600 which some of us have been involved with 06:19.600 --> 06:22.160 since 2012, and it's designed to be 06:22.160 --> 06:24.560 less hierarchical than the army's review. 06:24.560 --> 06:26.960 By writing down and sharing these reviews, 06:26.960 --> 06:28.240 we create a resource 06:28.240 --> 06:29.600 for further peer learning 06:29.600 --> 00:06:32.239 later down the line. 06:32.240 --> 06:33.280 [Joe]: So, specifically, 06:33.280 --> 06:34.560 every six weeks or so, 06:34.560 --> 06:35.840 we look at the transcripts 06:35.840 --> 06:37.360 from the previous action reviews 06:37.360 --> 06:39.120 using a four-layered framework 06:39.120 --> 06:41.199 that comes from future studies, 06:41.199 --> 06:42.560 and we use this to better understand 06:42.560 --> 06:43.759 the underlying themes 06:43.759 --> 06:44.880 that surface in the reviews 06:44.880 --> 06:46.479 and to develop the deeper motivations 06:46.479 --> 06:48.160 for ongoing work together. 06:48.160 --> 06:49.680 This helps us get a big-picture sense 06:49.680 --> 06:50.720 of where we're going, 06:50.720 --> 06:51.840 and we can keep that up to date 06:51.840 --> 06:52.720 at a slower pace 06:52.720 --> 06:54.479 than we do in the weekly meetings. 06:54.479 --> 06:55.759 This also helps us tie our work 06:55.759 --> 06:56.880 into a broader context 06:56.880 --> 06:57.759 and gives us some hope 06:57.759 --> 06:59.919 that over time we can contribute to 06:59.919 --> 00:07:02.318 solving big problems. 07:02.319 --> 07:02.880 [Ray]: Going back 07:02.880 --> 07:04.880 to solving larger problems. 07:04.880 --> 07:06.560 When we carry out the analysis, 07:06.560 --> 07:08.400 we don't just think about what happened 07:08.400 --> 07:09.440 at previous meetings, 07:09.440 --> 07:11.520 but we also take a longer view, 07:11.520 --> 07:12.960 thinking about things such as 07:12.960 --> 07:15.680 structuring a community of collaborators, 07:15.680 --> 07:16.960 or building platforms 07:16.960 --> 07:18.720 for scientific research. 07:18.720 --> 07:20.080 We want to think about how 07:20.080 --> 07:21.120 what we have been doing 07:21.120 --> 07:23.599 fits into broader historical patterns 07:23.599 --> 07:24.720 and trends. 07:24.720 --> 07:27.120 In the past, the pattern is a 07:27.120 --> 07:28.240 historical pattern; 07:28.240 --> 07:30.000 in the present, we contextualize 07:30.000 --> 07:32.400 what we learned about designed futures; 07:32.400 --> 07:34.639 towards the future, we use these patterns 07:34.639 --> 07:37.440 to augment our big-picture analysis 07:37.440 --> 07:38.800 with the next steps. 07:38.800 --> 00:07:42.879 This helps keep us on track. 07:42.880 --> 07:44.720 [Noorah]: Okay. So we have been working on 07:44.720 --> 07:46.160 several projects: a paper 07:46.160 --> 07:47.280 for the pattern conference 07:47.280 --> 07:48.240 mentioned earlier, 07:48.240 --> 07:50.080 a workshop, and a user study, 07:50.080 --> 07:51.280 and we'll say a little bit more 07:51.280 --> 00:07:53.598 about these. 07:53.599 --> 07:56.319 We co-authored a paper 07:56.319 --> 07:57.919 that touches on all of the topics 07:57.919 --> 07:58.960 we mentioned earlier 07:58.960 --> 08:01.120 and presented it at the leading conference 08:01.120 --> 08:02.080 on Design Patterns 08:02.080 --> 08:04.000 for programs and programming. 08:04.000 --> 08:09.520 One of the case studies in the paper 08:09.520 --> 08:12.960 sums up the way we work in ERG. 08:12.960 --> 08:16.000 The paper puts ERG in context 08:16.000 --> 08:17.520 with other peer learning communities, 08:17.520 --> 08:18.960 and we aim to describe 08:18.960 --> 08:20.160 our way of working 08:20.160 --> 08:22.720 in a way that others would find accessible 08:22.720 --> 00:08:24.559 and potentially useful. 08:24.560 --> 08:25.680 We are also developing 08:25.680 --> 08:27.039 an interactive workshop 08:27.039 --> 08:28.800 based on the ideas in the paper, 08:28.800 --> 08:31.039 which we piloted at the PLoP conference. 08:31.039 --> 08:32.479 Our intent with the workshop 08:32.479 --> 08:34.800 was to build a method 08:34.800 --> 08:36.240 for rapid problem solving, 08:36.240 --> 08:37.839 which could, at least in principle, 08:37.839 --> 08:40.159 expand beyond the workshop setting 08:40.159 --> 08:41.839 to distributed networks. 08:41.839 --> 08:44.080 The workshop involves made-up roles, 08:44.080 --> 08:45.440 like a kaiju communicator 08:45.440 --> 08:46.800 who helps understand problems 08:46.800 --> 08:47.839 as they arise. 08:47.839 --> 08:49.760 We also realize that it has given us 08:49.760 --> 08:51.279 a lot of wealth for thinking about 08:51.279 --> 00:08:57.518 the roles we take on in our weekly meetings. 08:57.519 --> 08:59.920 [Ray]: Free software may be lacking 08:59.920 --> 09:01.200 on ‘user’ aspects. 09:01.200 --> 09:02.720 People too often program 09:02.720 --> 09:04.320 to scratch their own itches, 09:04.320 --> 09:06.720 and assume others will do the same. 09:06.720 --> 09:09.360 To deal with this, we did several things. 09:09.360 --> 09:11.040 We looked at user experience 09:11.040 --> 09:12.160 and development together 09:12.160 --> 09:13.760 to see how the process went 09:13.760 --> 09:15.440 and where the gaps might be. 09:15.440 --> 09:17.600 We compared Emacs with other platforms, 09:17.600 --> 09:19.279 not just a technical level, 09:19.279 --> 09:21.440 but also at the user experience level. 09:21.440 --> 09:22.640 We had guest sessions, 09:22.640 --> 09:25.440 where we've started to gather user stories. 09:25.440 --> 09:26.880 Building on these conversations, 09:26.880 --> 09:28.480 we would like to do more research 09:28.480 --> 09:29.839 in all these topics, 09:29.839 --> 09:30.959 and eventually be able to 09:30.959 --> 09:32.160 say something like: 09:32.160 --> 09:34.160 ‘If you are someone who does X, 09:34.160 --> 09:35.279 these are the packages 09:35.279 --> 00:09:38.479 that would work for you.’ 09:38.480 --> 09:40.640 [Joe]: Putting these ideas into practice, 09:40.640 --> 09:42.880 our PLoP paper and the plans it contains 09:42.880 --> 09:43.680 become a /template/ 09:43.680 --> 09:44.720 for some of the other things 09:44.720 --> 09:45.600 we want to work on 09:45.600 --> 09:46.880 as we go forward. 09:46.880 --> 09:49.120 If we imagine things in 2-3 years, 09:49.120 --> 09:49.920 what would it actually take 09:49.920 --> 09:52.240 to realize the vision from that paper? 09:52.240 --> 09:53.200 Thinking about the future: 09:53.200 --> 09:54.480 this is one of the main reasons why 09:54.480 --> 09:55.839 we want to share these ideas 09:55.839 --> 09:56.800 and invite other people 09:56.800 --> 09:58.160 into this way of working. 09:58.160 --> 09:59.600 There's no way we can actually achieve 09:59.600 --> 10:00.560 everything in our vision 10:00.560 --> 10:02.160 if we work all by ourselves. 10:02.160 --> 10:03.200 What we've been focusing on 10:03.200 --> 10:05.120 in Season Zero of the Emacs Research Group 10:05.120 --> 10:06.640 is methods that people can use 10:06.640 --> 00:10:08.559 to organize their own research groups. 10:08.560 --> 10:10.000 We decided to share this talk 10:10.000 --> 10:12.079 so that folks can learn from our community. 10:12.079 --> 10:13.040 Our goal has been to share 10:13.040 --> 10:14.000 how we've been doing things, 10:14.000 --> 10:14.959 and we hope this information 10:14.959 --> 10:16.079 is useful for you 10:16.079 --> 10:18.800 in your own communities and collaborations. 10:18.800 --> 10:19.262 Thank you. 10:19.262 --> 10:20.279 [captions by speakers and sachac]