WEBVTT 00:01.040 --> 00:03.520 Welcome to this EmacsConf 2021 talk 00:03.520 --> 00:06.160 on Emacs as Design Pattern Learning. 00:06.160 --> 00:08.400 I'm Greta Goetz, and this talk 00:08.400 --> 00:10.080 is for people who are interested 00:10.080 --> 00:11.679 in thinking about Emacs 00:11.679 --> 00:13.840 as a tool that's sophisticated enough 00:13.840 --> 00:17.680 not only to cope with activities and tasks, 00:17.680 --> 00:19.760 but also sophisticated enough 00:19.760 --> 00:22.560 to cater to a complex assemblage 00:22.560 --> 00:24.000 of [not just] tasks and activities, 00:24.000 --> 00:26.160 but also people, outcomes, 00:26.160 --> 00:27.760 as well as tools. 00:27.760 --> 00:31.039 This is a definition of epistemic fluency 00:31.039 --> 00:33.440 from a work by Markauskaite and Goodyear 00:33.440 --> 00:35.040 that is relevant to us 00:35.040 --> 00:36.320 if we're interested in 00:36.320 --> 00:37.600 learning how to learn [and] 00:37.600 --> 00:39.840 how to continuously iterate knowledge 00:39.840 --> 00:44.480 to fit changing complex specific contexts. 00:44.480 --> 00:46.719 Some software oversimplifies. 00:46.719 --> 00:49.039 Emacs both helps users 00:49.039 --> 00:50.559 implement design pattern learning 00:50.559 --> 00:53.360 that can cope with complexity, 00:53.360 --> 00:57.360 and it models complex design pattern learning. 00:57.360 --> 00:59.920 So, what do we mean by design patterns? 00:59.920 --> 01:03.120 The term comes from design theorist and 01:03.120 --> 01:05.199 architect Christopher Alexander, 01:05.199 --> 01:06.400 whose work influenced 01:06.400 --> 01:08.479 a broad variety of disciplines. 01:08.479 --> 01:11.680 I'll be drawing on a work in programming 01:11.680 --> 01:14.240 by Richard Gabriel, and in pedagogy, 01:14.240 --> 01:16.239 by Peter Goodyear. 01:16.240 --> 01:17.920 What are design patterns? 01:17.920 --> 01:20.159 They are patterns of micro solutions 01:20.159 --> 01:22.560 combining method and artifact, 01:22.560 --> 01:24.080 and macro solutions 01:24.080 --> 01:25.680 of these micro patterns 01:25.680 --> 01:27.680 when viewed together. 01:27.680 --> 01:29.280 This approach allows for the 01:29.280 --> 01:31.840 specialization, customization, 01:31.840 --> 01:35.600 extension, and reuse of patterns. 01:35.600 --> 01:37.360 This is useful if we're seeking to 01:37.360 --> 01:40.079 deal with complexity. It helps extend 01:40.079 --> 01:42.560 the assemblage of learning components 01:42.560 --> 01:45.040 that we have, without having to build 01:45.040 --> 01:46.640 from scratch. 01:46.640 --> 01:48.320 Another important feature 01:48.320 --> 01:49.520 of design patterns 01:49.520 --> 01:51.759 and their relevance to Emacs 01:51.759 --> 01:54.799 is the human-centeredness. 01:54.799 --> 01:57.360 Christopher Alexander critiqued 01:57.360 --> 01:58.320 the mechanical 01:58.320 --> 02:00.880 and championed the human place. 02:00.880 --> 02:03.439 Emacs, too, champions the human place. 02:03.439 --> 02:06.079 So why Emacs and design learning? 02:06.079 --> 02:09.679 One reason is indeed this extensibility 02:09.679 --> 02:13.360 through Emacs, which allows a person 02:13.360 --> 02:16.720 to extend their learning and use of Emacs 02:16.720 --> 02:18.800 as far as they wish to take it. 02:18.800 --> 02:22.959 This is thanks to its free software core, 02:22.959 --> 02:24.720 and this permits what we call 02:24.720 --> 02:25.843 in networked learning 02:25.843 --> 02:27.040 'e-quality' [cf. Beaty et al.], 02:27.040 --> 02:28.160 which is to say, 02:28.160 --> 02:31.120 the opportunity to co-create knowledge. 02:31.120 --> 02:32.959 So if one wishes to extend 02:32.959 --> 02:35.120 their learning trajectory with Emacs 02:35.120 --> 02:37.120 such that they're able to 02:37.120 --> 02:38.560 write packages for Emacs, 02:38.560 --> 02:41.040 if these packages become part of the core, 02:41.040 --> 02:43.440 they're really co-creating knowledge 02:43.440 --> 02:44.879 within the community 02:44.879 --> 02:48.800 and extending the capabilities of Emacs. 02:48.800 --> 02:50.480 Emacs can also be considered 02:50.480 --> 02:52.319 in terms of design pattern learning, 02:52.319 --> 02:53.440 because it can be used 02:53.440 --> 02:54.800 for different purposes. 02:54.800 --> 02:57.280 This is true even at the very basic level 02:57.280 --> 02:58.959 of Emacs functionalities, 02:58.959 --> 02:59.920 which is a point 02:59.920 --> 03:01.280 that should really be stressed. 03:01.280 --> 03:03.680 So even newcomers coming to Emacs 03:03.680 --> 03:04.879 who don't know programming 03:04.879 --> 03:07.040 can do a very broad variety 03:07.040 --> 03:09.040 of different things with their Emacs, 03:09.040 --> 03:11.760 using these basic functionalities: 03:11.760 --> 03:14.800 for example, simply by customizing 03:14.800 --> 03:15.840 the language variable 03:15.840 --> 03:17.923 in the initialization file. 03:17.923 --> 03:20.879 This, thanks to the powerful Emacs Lisp 03:20.879 --> 03:22.640 interpreter, makes it possible for one 03:22.640 --> 03:24.640 to do a wide variety of different things 03:24.640 --> 03:26.560 within Emacs: from making graphs 03:26.560 --> 03:29.360 to exporting in LaTeX. 03:29.360 --> 03:32.000 And also part of the Emacs basic 03:32.000 --> 03:34.239 functionalities are 03:34.239 --> 03:36.159 how we can cycle through 03:36.159 --> 03:38.400 different tasks and texts very easily 03:38.400 --> 03:40.000 through buffer cycling, 03:40.000 --> 03:44.640 or how within Org we can use tree outlines 03:44.640 --> 03:48.159 that can hierarchize the material 03:48.159 --> 03:49.519 that we're working with 03:49.519 --> 03:52.080 and even change a headline 03:52.080 --> 03:54.799 into a to-do. So we see this extensibility, 03:54.799 --> 03:57.280 this flexibility. Also, within Org, 03:57.280 --> 03:58.799 we can see how by writing 03:58.799 --> 04:00.159 just a few lines of code 04:00.159 --> 04:02.239 such as through header arguments 04:02.239 --> 04:04.879 or code blocks, we can change the way 04:04.879 --> 04:06.159 in which a file, 04:06.159 --> 04:08.480 or part of a file, is executed. 04:08.480 --> 04:10.239 An illustration of what this means 04:10.239 --> 04:12.720 to the beginner would be how easy it is 04:12.720 --> 04:15.280 to export a LaTeX file, 04:15.280 --> 04:17.040 so one doesn't even need to know 04:17.040 --> 04:19.199 all of LaTeX to be able to implement 04:19.199 --> 04:23.360 parts of LaTeX within Org. So this 04:23.360 --> 04:25.280 variety of different purposes, then, 04:25.280 --> 04:27.600 can be experienced by the beginner. 04:27.600 --> 04:30.400 Emacs is also an example 04:30.400 --> 04:32.080 of design pattern learning 04:32.080 --> 04:34.320 because it is a design pattern 04:34.320 --> 04:35.919 of learning itself. 04:35.919 --> 04:39.040 Here we're thinking about design patterns 04:39.040 --> 04:41.919 as a visual representation. 04:41.919 --> 04:44.320 We can think of how systems of systems, 04:44.320 --> 04:47.680 which Emacs is an example of, 04:47.680 --> 04:50.560 stem from a successful center, 04:50.560 --> 04:53.280 and 'this center is surrounded 04:53.280 --> 04:55.440 by a boundary which is itself 04:55.440 --> 04:57.040 made up of centers' [Gabriel]. 04:57.040 --> 04:59.440 So, where we have Emacs at the center, 04:59.440 --> 05:02.720 we also have packages such as Magit. 05:02.720 --> 05:04.800 Magit can be viewed as a center 05:04.800 --> 05:07.120 unto itself. However, this center 05:07.120 --> 05:09.520 only exists thanks to the center 05:09.520 --> 05:11.759 of the center, which is Emacs. 05:11.759 --> 05:14.320 And thus we speak of Emacs 05:14.320 --> 05:17.039 as being a successful design pattern 05:17.039 --> 00:05:18.799 implementation [cf. Gabriel]. 00:05:18.800 --> 00:05:20.880 And why do we care about 05:20.880 --> 05:25.500 design pattern approaches? Here, well, 05:25.520 --> 05:28.560 what I'm trying to say is that 05:28.560 --> 05:30.080 this is useful to the person 05:30.080 --> 05:32.240 who is interested in being able to 05:32.240 --> 05:34.000 more efficiently cope with 05:34.000 --> 05:36.639 complex and specific situations, 05:36.639 --> 05:40.240 and this design pattern allows for this 05:40.240 --> 05:43.039 because of its extensibility, 05:43.039 --> 05:46.400 because we can find these specializations 05:46.400 --> 05:50.000 or customizations that are able to reach 05:50.000 --> 05:52.880 these changing contexts [that we seek to interact with]. 05:52.880 --> 05:55.039 This can be compared with 05:55.039 --> 05:56.479 other software applications 05:56.479 --> 05:58.000 that are prefabricated 05:58.000 --> 05:59.680 so they already decide 05:59.680 --> 06:01.600 what it is a person is going to do 06:01.600 --> 06:02.800 when they use them. 06:02.800 --> 06:04.319 This also means that what they're doing 06:04.319 --> 06:05.520 within these applications 06:05.520 --> 06:06.639 can get stranded there, 06:06.639 --> 06:08.479 that it's harder to integrate 06:08.479 --> 06:10.319 their knowledge or their texts 06:10.319 --> 06:12.240 or their activities 06:12.240 --> 06:13.440 with each other. 06:13.440 --> 06:15.759 A lot of software also makes assumptions 06:15.759 --> 06:18.240 on who their users are. We know that 06:18.240 --> 06:20.160 we speak in user experience design 06:20.160 --> 06:23.120 of the 'customer journey' or of 'personas', 06:23.120 --> 06:24.720 and very often, then, 06:24.720 --> 06:27.840 the customer journey is pre-designed. 06:27.840 --> 06:29.680 But within Emacs, we can be 06:29.680 --> 06:32.079 our own persona. 06:32.079 --> 06:33.440 Practical use of Emacs 06:33.440 --> 06:35.680 can also make non-programmers 06:35.680 --> 06:36.720 into programmers. 06:36.720 --> 06:38.400 So this is to say that 06:38.400 --> 06:40.240 as we are using Emacs, 06:40.240 --> 06:41.840 we can continue to develop 06:41.840 --> 06:44.479 as far as we wish. 06:44.479 --> 06:46.240 Therefore we are not only users 06:46.240 --> 06:48.720 within Emacs, but we are also 06:48.720 --> 06:51.280 creative persons and producers. 06:51.280 --> 06:54.400 So here I am citing work by ivan Illich. 06:54.400 --> 06:56.079 We can further contribute 06:56.079 --> 06:58.880 to the evolution of the rules of Emacs. 06:58.880 --> 07:01.680 To draw on Bernard Stiegler, 07:01.680 --> 07:04.880 if I may also make an analogy, 07:04.880 --> 07:07.520 within our inits, we contribute to 07:07.520 --> 07:08.800 the evolution of the rules 07:08.800 --> 07:11.759 according to which our Emacs works for us. 07:11.759 --> 07:13.120 But again, if we're extending 07:13.120 --> 07:14.560 our learning trajectory, 07:14.560 --> 07:16.319 and if we write a package, 07:16.319 --> 07:18.400 and the package becomes part of the core, 07:18.400 --> 07:21.440 we do indeed contribute to the evolution 07:21.440 --> 07:23.840 of the rules of Emacs. 07:23.840 --> 07:25.359 But because it stems 07:25.359 --> 07:26.560 from our personal use 07:26.560 --> 07:28.479 and our personal customizations, 07:28.479 --> 07:30.000 we can think of it as being 07:30.000 --> 07:31.600 a personal toolkit [cf. Stallman]. 07:31.600 --> 07:35.840 So this design pattern iteration approach 07:35.840 --> 07:39.680 to Emacs is the very reason 07:39.680 --> 07:41.840 why it is that we can customize it 07:41.840 --> 07:43.440 to our own liking, 07:43.440 --> 07:46.160 and using Emacs to extend our freedom 07:46.160 --> 07:48.720 then helps us to develop heuristics. 07:48.720 --> 07:51.919 It helps us develop our decision-making, 07:51.919 --> 07:54.719 our problem-solving 07:54.719 --> 07:57.839 and responsibility for what it is 07:57.839 --> 07:58.880 that we're doing, 07:58.880 --> 08:00.640 and these skill sets 08:00.640 --> 08:02.480 are extensible beyond Emacs. 08:02.480 --> 08:04.240 These can be considered as life skills 08:04.240 --> 08:05.839 that have relevance beyond. 08:05.839 --> 08:07.520 This is a very good example 08:07.520 --> 08:10.560 of why it is that being exposed 08:10.560 --> 08:12.480 to complex assemblages 08:12.480 --> 08:14.320 matter to us as human beings. 08:14.320 --> 08:17.120 It's good training ground for life. 08:17.120 --> 08:19.680 But it's also important 08:19.680 --> 08:22.719 for a very basic pedagogical point. 08:22.719 --> 08:24.160 So now I'm going to draw on work 08:24.160 --> 08:26.560 by Hélène Trocmé-Fabre, 08:26.560 --> 08:27.839 who explains that 08:27.839 --> 08:30.719 reduced and poor contextualizations 08:30.719 --> 08:32.800 flatten communication. 08:32.800 --> 08:33.760 So, for example, 08:33.760 --> 08:35.279 within the field of software, 08:35.279 --> 08:37.680 if we are using an application 08:37.680 --> 08:40.640 that only asks us to swipe left or right, 08:40.640 --> 08:42.880 this deprives us of our ability 08:42.880 --> 08:45.600 to respond in a more sophisticated way. 08:45.600 --> 08:48.640 By contrast, by being exposed 08:48.640 --> 08:51.600 to a rich contextualization within Emacs, 08:51.600 --> 08:53.839 we are learning to contextualize, 08:53.839 --> 08:57.040 which Trocmé-Fabre says is the first step 08:57.040 --> 08:58.719 in learning how to learn. 08:58.719 --> 08:59.920 So we can understand 08:59.920 --> 09:01.760 just how important it is 09:01.760 --> 09:03.520 to be exposed to complexity. 09:03.520 --> 09:05.440 It's not just a mere 09:05.440 --> 09:06.719 intellectual exercise, 09:06.719 --> 09:08.719 but it is indeed how it is 09:08.719 --> 09:12.239 that we begin to learn. 09:12.240 --> 09:13.760 If this sounds too abstract, 09:13.760 --> 09:15.520 maybe we can step back for a moment 09:15.520 --> 09:17.520 and think about visualizing Emacs 09:17.520 --> 09:19.600 as a mental map. So here, too, 09:19.600 --> 09:21.839 I'm going to draw on Trocmé-Fabre, 09:21.839 --> 09:24.560 and she is building her ideas 09:24.560 --> 09:26.240 on those of Tony Buzan, 09:26.240 --> 09:29.120 who was the popularizer of the mind map. 09:29.120 --> 09:31.519 So mind maps begin with a core, 09:31.519 --> 09:33.760 which with Emacs is the Emacs core, 09:33.760 --> 09:36.320 which now includes Org. 09:36.320 --> 09:38.719 They extend outwards from the core 09:38.719 --> 09:40.800 through relational codes. 09:40.800 --> 09:44.399 And then through keywords and cycling, 09:44.399 --> 09:46.240 mind maps function to bring out 09:46.240 --> 09:48.320 further ideas, and this may be 09:48.320 --> 09:49.760 the experience you've already had 09:49.760 --> 09:52.640 with your Emacs. Then finally, 09:52.640 --> 09:54.800 these mind maps extend outwards 09:54.800 --> 09:56.480 at the periphery. 09:56.480 --> 10:00.240 In thinking about how this applies to Emacs, 10:00.240 --> 10:02.320 we can think about how yes, indeed, 10:02.320 --> 10:04.240 we all share the same core, 10:04.240 --> 10:07.360 but then we extend this core outwards 10:07.360 --> 10:09.680 into our personal configurations. 10:09.680 --> 10:11.360 So this is the social moment, 10:11.360 --> 10:12.480 but this social moment 10:12.480 --> 10:13.839 is integral to Emacs 10:13.839 --> 10:16.800 because Emacs fully achieves its meaning 10:16.800 --> 10:18.959 when it is being applied, extended, 10:18.959 --> 10:20.880 and customized in this way. 10:20.880 --> 10:23.279 Further, these social branches 10:23.279 --> 10:25.839 are relevant to the continuation 10:25.839 --> 10:28.560 of learning how to learn how to use Emacs. 10:28.560 --> 10:30.800 So for example, we may have 10:30.800 --> 10:33.279 our first configuration file, 10:33.279 --> 10:35.040 and then we might want to compare it 10:35.040 --> 10:37.440 with other people's configuration files, 10:37.440 --> 10:40.240 not only to see what code they're using, 10:40.240 --> 10:42.480 but also to see how it is that they are 10:42.480 --> 10:44.240 implementing certain functionalities 10:44.240 --> 10:46.000 within their workflow. 10:46.000 --> 10:48.080 So along these lines, then, 10:48.080 --> 10:50.160 descriptive configuration files 10:50.160 --> 10:53.360 are extremely helpful. 10:53.360 --> 10:56.160 This map, then, of Emacs 10:56.160 --> 10:57.519 can be considered as a 10:57.519 --> 11:00.399 frontierless heuristic schema, 11:00.399 --> 11:02.000 borrowing from Trocmé-Fabre. 11:02.000 --> 11:04.080 Frontierless, because we can extend 11:04.080 --> 11:06.320 our use of Emacs as far as we want. 11:06.320 --> 11:08.399 Heuristic, again, because we're using it 11:08.399 --> 11:10.640 to solve problems, etc. 11:10.640 --> 11:13.360 This is a free system that extends 11:13.360 --> 11:15.920 following our own 'paths of desire', 11:15.920 --> 11:18.640 if I can use that phrase from design. 11:18.640 --> 11:20.640 So it's following our own 'paths of desire', 11:20.640 --> 11:22.480 but yet it is a shared tool, 11:22.480 --> 11:26.880 so this is an idea of the convivial tool 11:26.880 --> 11:29.999 to draw on Ivan Illich. 11:30.000 --> 11:31.760 Emacs is itself 11:31.760 --> 11:33.440 a design pattern framework, 11:33.440 --> 11:35.279 so we can visualize this 11:35.279 --> 11:36.640 through the mind map, 11:36.640 --> 11:40.160 but we can also go back to thinking about 11:40.160 --> 11:42.399 how Christopher Alexander's work 11:42.399 --> 11:44.240 inspired Richard Gabriel 11:44.240 --> 11:46.640 to think about systems of systems 11:46.640 --> 11:49.040 within software. And he, 11:49.040 --> 11:50.240 drawing on Alexander, 11:50.240 --> 11:52.240 says, well, there is such a thing 11:52.240 --> 11:55.600 as a "being" of successful software, 11:55.600 --> 11:59.519 if it succeeds in being 11:59.519 --> 12:00.640 a center of centers, 12:00.640 --> 12:02.240 as we saw before. 12:02.240 --> 12:04.480 So in Emacs, then, we have a system 12:04.480 --> 12:06.880 that's made up of other systems 12:06.880 --> 12:08.719 of 'communicating components 12:08.719 --> 12:09.839 that work together 12:09.839 --> 12:11.600 to provide a comprehensive set 12:11.600 --> 12:14.399 of capabilities that can be customized, 12:14.399 --> 12:16.000 specialized, and extended 12:16.000 --> 12:16.959 to provide more 12:16.959 --> 12:18.959 or slightly different capabilities' [Gabriel]. 12:18.959 --> 12:21.200 So if we're not finding what we need 12:21.200 --> 12:25.120 within the core, we can look for packages 12:25.120 --> 12:27.519 that allow us to extend in a certain way, 12:27.519 --> 12:28.560 or we write our own, 12:28.560 --> 12:31.680 or we begin to write in Emacs Lisp. 12:31.680 --> 12:34.800 And speaking of personal customizations, 12:34.800 --> 12:37.839 Emacs can be considered as an extension 12:37.839 --> 12:40.079 of the as yet unfulfilled promise of 12:40.079 --> 12:41.600 general computing. 12:41.600 --> 12:44.000 In the 1980s, Michael Crichton wrote 12:44.000 --> 12:46.320 that it's easy to use computers, which is 12:46.320 --> 12:48.000 fortunate because everyone's going to 12:48.000 --> 12:49.040 have to learn. 12:49.040 --> 12:51.440 It's not easy to use computers wisely, 12:51.440 --> 12:52.880 which is unfortunate because 12:52.880 --> 12:54.719 everyone's going to have to learn. 12:54.719 --> 12:56.639 Emacs is wise computing 12:56.639 --> 12:59.600 because everyone's Emacs is their own. 12:59.600 --> 13:01.680 We see that it is an exercise 13:01.680 --> 13:05.760 in heuristics, but while it is complex, 13:05.760 --> 13:08.000 at on some level, we want to remember 13:08.000 --> 13:10.240 that it can be used easily by anybody, 13:10.240 --> 13:12.560 as often or as seldom as they want, 13:12.560 --> 13:15.200 for the purpose that they are choosing, 13:15.200 --> 13:17.519 and shaped according to their own taste. 13:17.519 --> 13:20.480 So again I'm drawing on Ivan Illich here. 13:20.480 --> 13:24.880 Emacs then champions the human place 13:24.880 --> 13:28.800 and is a support in our learning 13:28.800 --> 00:13:30.638 how to learn. 00:13:30.639 --> 00:13:32.000 So now I want to think about 13:32.000 --> 13:34.959 being inspired by the Emacs design pattern 13:34.959 --> 13:37.040 and comparing what I think 13:37.040 --> 13:40.480 I've learned about how Emacs works 13:40.480 --> 13:43.600 with some research that has been done 13:43.600 --> 13:46.240 by Philip Guo and his colleagues 13:46.240 --> 13:47.920 about how technology is being used 13:47.920 --> 13:51.120 in certain online teaching contexts. 13:51.120 --> 13:52.800 Researchers continue to note 13:52.800 --> 13:55.200 how the modes of delivery of content 13:55.200 --> 13:56.880 continue to change in terms of 13:56.880 --> 13:58.240 what is considered effective 13:58.240 --> 13:59.600 and what is not. 13:59.600 --> 14:02.000 The talking head was considered effective, 14:02.000 --> 14:05.360 for example. Lectures needed to be 14:05.360 --> 14:07.760 broken down into shorter segments. 14:07.760 --> 14:11.360 But I would say that by using Emacs 14:11.360 --> 14:14.320 and by working within the Emacs ecosystem, 14:14.320 --> 14:16.519 one is already used to 14:16.519 --> 14:18.959 're-presenting' one's knowledge 14:18.959 --> 14:20.800 in a variety of different ways. 14:20.800 --> 14:22.320 So if we are called tomorrow 14:22.320 --> 14:24.240 to deliver in a different way, 14:24.240 --> 14:26.240 we're already used to 14:26.240 --> 14:28.399 thinking about this within Emacs. 14:28.399 --> 14:30.639 So, for example, 14:30.639 --> 14:32.399 merely by changing a header argument, 14:32.399 --> 14:34.880 one can change the way in which 14:34.880 --> 14:36.480 text in a file is executed, 14:36.480 --> 14:39.600 so we see then this easy iteration 14:39.600 --> 14:42.160 within Emacs. We can also think about 14:42.160 --> 14:45.760 how Emacs can be considered in terms of 14:45.760 --> 14:49.839 a help for developing rhetorical 'topoi', 14:49.839 --> 14:52.240 'topoi' being places where we find things, 14:52.240 --> 14:54.480 places where we find ideas, 14:54.480 --> 14:56.320 because we can circulate 14:56.320 --> 14:58.959 among the different tasks and texts 14:58.959 --> 14:59.920 that we are working on 14:59.920 --> 15:01.920 within Emacs seamlessly. 15:01.920 --> 15:04.000 This increases the likelihood 15:04.000 --> 15:07.519 that we can gain inspiration 15:07.519 --> 15:11.440 from the collage of different ideas 15:11.440 --> 15:14.079 that bring out new ideas. 15:14.079 --> 15:14.959 At least this is how 15:14.959 --> 15:16.160 I've experienced Emacs, 15:16.160 --> 15:19.279 if I may add that anecdotal observation. 15:19.279 --> 15:22.480 And speaking of bringing out ideas, 15:22.480 --> 15:26.079 we see how changing Emacs functionalities 15:26.079 --> 15:27.680 can help us bring out ideas 15:27.680 --> 15:30.079 for example, through how we can 15:30.079 --> 15:32.000 use PlantUML easier today 15:32.000 --> 15:35.519 than ever before, so we can now include 15:35.519 --> 15:38.880 mental maps within our Emacs files 15:38.880 --> 15:40.800 if we want to, but also 15:40.800 --> 15:45.120 if we're thinking about Emacs helping us 15:45.120 --> 15:47.600 both remember the material 15:47.600 --> 15:48.719 that we're working with 15:48.719 --> 15:50.000 and 're-present' it, 15:50.000 --> 15:51.040 we can think of it 15:51.040 --> 15:53.120 in terms of its archival functions, 15:53.120 --> 15:54.880 So we can see an example of this 15:54.880 --> 15:57.040 in Sacha Chua's init, 15:57.040 --> 15:59.120 where she is using Emacs 15:59.120 --> 16:02.399 to manage her recent sketches. 16:02.399 --> 16:03.839 This would be really useful 16:03.839 --> 16:06.000 for implementation 16:06.000 --> 16:08.160 in terms of what the researchers 16:08.160 --> 16:10.480 (Philip Guo and his colleagues) discovered 16:10.480 --> 16:12.656 with regards to how today 16:12.656 --> 16:14.880 Khan-style slides are considered 16:14.880 --> 16:17.920 more effective than traditional slides, 16:17.920 --> 16:20.160 because if one is able to integrate 16:20.160 --> 16:21.519 the other kinds of sketches 16:21.519 --> 16:23.680 that one has been doing within Emacs - 16:23.680 --> 16:25.999 and therefore have them at hand 16:25.999 --> 16:27.999 more easily, it would be easier to 16:27.999 --> 16:30.800 're-present' this material as needed 16:30.800 --> 16:33.600 in the ever-changing context of the classroom. 16:33.600 --> 16:35.519 We can see from this example 16:35.519 --> 16:38.320 of Sacha Chua's init that we learn 16:38.320 --> 16:39.999 by following the traces 16:39.999 --> 16:41.998 left by others in the community. 16:41.999 --> 16:43.279 So we were saying then that 16:43.279 --> 16:45.040 Emacs extends outwards 16:45.040 --> 16:46.479 through these social branches, 16:46.479 --> 16:48.560 and indeed we can speak 16:48.560 --> 16:50.640 of the grammar of interaction, 16:50.640 --> 16:52.320 that we benefit from by being 16:52.320 --> 16:54.720 a member of the Emacs community. 16:54.720 --> 16:56.960 And this wonderful phrase comes to us 16:56.960 --> 16:58.880 from a book that was co-edited 16:58.880 --> 17:01.736 by our very own former Org father, 17:01.736 --> 17:03.680 Bastien Guerry, in an interview 17:03.680 --> 17:05.359 that he led with Nicolas Gaume [Andler & Guerry]. 17:05.359 --> 17:07.040 Nicolas Gaume was explaining 17:07.040 --> 17:10.640 how in video games, we see our character 17:10.640 --> 17:12.160 and compare our character 17:12.160 --> 17:14.160 to other characters, 17:14.160 --> 17:16.080 and we watch how other characters 17:16.080 --> 17:17.040 make decisions, 17:17.040 --> 17:19.040 and the outcomes of these decisions, 17:19.040 --> 17:21.440 and their trajectories in the game, 17:21.440 --> 17:23.119 and then we compare where we are 17:23.119 --> 17:24.720 with respect to this, 17:24.720 --> 17:27.119 and by having this comparison, 17:27.119 --> 17:29.840 it helps us chart out our own path. 17:29.840 --> 17:31.280 So we can experience 17:31.280 --> 17:32.800 this grammar of interaction 17:32.800 --> 17:35.200 within Emacs every time we compare 17:35.200 --> 17:38.720 our config with that of others. 17:38.720 --> 17:41.760 Emacs further champions the social element 17:41.760 --> 17:43.920 through co-individuation, which is 17:43.920 --> 17:46.880 a term coined by Bernard Stiegler. 17:46.880 --> 17:48.720 This means the meaning that is known 17:48.720 --> 17:50.960 and shared by other individuals. 17:50.960 --> 17:52.560 What is it that we know and share 17:52.560 --> 17:54.560 within Emacs? It is how to 17:54.560 --> 17:55.600 improve our lives 17:55.600 --> 17:57.280 through customizing Emacs 17:57.280 --> 18:00.479 in specific ways. So if one person 18:00.479 --> 18:03.040 reaches the apotheosis 18:03.040 --> 18:04.239 of individuation, 18:04.239 --> 18:05.920 and they're living the life 18:05.920 --> 18:07.760 they dreamed of 18:07.760 --> 18:08.960 through their Emacs use, 18:08.960 --> 18:10.720 they can share this information 18:10.720 --> 18:11.680 with somebody else 18:11.680 --> 18:14.320 who too can come to realize themselves 18:14.320 --> 18:15.920 in this way. 18:15.920 --> 18:17.280 Without the social milieu, 18:17.280 --> 18:18.880 without this attention 18:18.880 --> 18:21.040 to the human element, 18:21.040 --> 18:23.600 the technical milieu inevitably becomes 18:23.600 --> 18:24.414 a negative externality 18:24.414 --> 18:25.760 [which is a philosophical problem]. 18:25.760 --> 18:27.840 Here I'm drawing on Bernard Stiegler. 18:27.840 --> 18:29.680 What does this mean? This means 18:29.680 --> 18:32.400 where knowledge becomes automaticized, 18:32.400 --> 18:33.760 it becomes a closed 18:33.760 --> 18:36.560 and self-referential system. 18:36.560 --> 18:39.520 Because it's self-referential and closed, 18:39.520 --> 18:41.999 there is no need for any human input, 18:41.999 --> 18:43.600 so the human within this system 18:43.600 --> 18:46.080 turns into a servant. 18:46.080 --> 18:50.800 By contrast, by using human-centered Emacs, 18:50.800 --> 18:53.520 we are able to take care of our neighbors. 18:53.520 --> 18:55.840 We can write extensions for them. 18:55.840 --> 18:58.560 We can help each other on the forums. 18:58.560 --> 19:00.800 We can even teach just one more person 19:00.800 --> 19:02.640 how to use Emacs. 19:02.640 --> 19:04.880 And this idea comes from Ivan Illich 19:04.880 --> 19:06.800 who extends it to say 19:06.800 --> 19:08.880 that by taking care of our neighbors 19:08.880 --> 19:09.680 in this way, 19:09.680 --> 19:11.840 this enables us to excel 19:11.840 --> 19:13.999 at using the best available tools. 19:13.999 --> 19:16.239 The tool here being Emacs. 19:16.239 --> 19:19.200 The community aspect of Emacs 19:19.200 --> 19:20.320 can also be seen 19:20.320 --> 19:22.720 in how the core of Emacs itself 19:22.720 --> 19:25.040 is evolving. So just like we are 19:25.040 --> 19:27.119 configuring and programming Emacs 19:27.119 --> 19:28.720 while we are using it, 19:28.720 --> 19:32.239 Emacs, too, continues to develop 19:32.239 --> 19:34.560 as the core expands. 19:34.560 --> 19:36.880 So in this, too, we see how Emacs 19:36.880 --> 19:39.680 is a model of design pattern learning 19:39.680 --> 19:42.320 that we can be inspired from, 19:42.320 --> 19:44.960 and the fact that people 19:44.960 --> 19:46.320 from the Emacs community 19:46.320 --> 19:49.280 are able to contribute to the core 19:49.280 --> 19:52.720 brings emphasis to the community role 19:52.720 --> 19:53.999 in this design pattern. 19:53.999 --> 19:55.440 So at the beginning, we were saying 19:55.440 --> 19:56.239 we're interested 19:56.239 --> 19:57.680 in the complex assemblage, 19:57.680 --> 19:59.520 not just of activities and tools, 19:59.520 --> 20:00.960 but also of people. 20:00.960 --> 20:03.119 So here we are talking about 20:03.119 --> 20:04.720 an 'Emacs community'. 20:04.720 --> 20:06.880 This is also thanks to 20:06.880 --> 20:08.560 the selfless work of people 20:08.560 --> 20:11.999 like Sacha Chua, or blog rings 20:11.999 --> 20:13.760 such as Planet Emacs Life 20:13.760 --> 20:14.960 that bring us together 20:14.960 --> 20:16.880 so that we truly can say 20:16.880 --> 20:18.479 that there is a community. 20:18.479 --> 20:20.080 This conference is an example of this: 20:20.080 --> 20:23.440 and thank you to the conference organizers. 20:23.440 --> 20:24.880 But this community, 20:24.880 --> 20:28.640 because of the free core, 20:28.640 --> 20:30.160 allows for there to be 20:30.160 --> 20:31.119 different viewpoints 20:31.119 --> 20:32.320 within the community. 20:32.320 --> 20:33.440 One thing that I've noticed 20:33.440 --> 20:34.880 about the Emacs community 20:34.880 --> 20:36.320 is that there are sometimes even 20:36.320 --> 20:38.880 competing views within the community. 20:38.880 --> 20:40.160 This can be considered 20:40.160 --> 20:42.239 proof of concept of systems thinker 20:42.239 --> 20:44.479 and philosopher Edgar Morin's idea 20:44.479 --> 20:46.720 of a 'cognitive democracy', 20:46.720 --> 20:48.160 which is to say, 20:48.160 --> 20:50.880 a community that is nourished 20:50.880 --> 20:52.320 by antagonisms 20:52.320 --> 20:55.840 while also regulating them. 20:55.840 --> 20:57.280 The "being" of this 20:57.280 --> 20:58.560 very special community, 20:58.560 --> 21:01.119 then, very importantly, 21:01.119 --> 21:03.920 stems from how at the center, 21:03.920 --> 21:05.999 we have free software 21:05.999 --> 21:08.720 that allows for this range of difference 21:08.720 --> 21:11.440 and range of extensibility to exist 21:11.440 --> 21:13.599 even within the community. 21:13.599 --> 21:16.880 So, by way of a conclusion, 21:16.880 --> 21:18.080 we can think of Emacs 21:18.080 --> 21:21.359 as the center of centers that expands, 21:21.359 --> 21:24.160 that is relational and free. 21:24.160 --> 21:27.280 Only in some systems, we should add, 21:27.280 --> 21:28.720 does this "being" emerge. 21:28.720 --> 21:31.040 So going back to Richard Gabriel, 21:31.040 --> 21:32.960 just to champion Emacs one more time 21:32.960 --> 21:34.400 before we say goodbye: 21:34.400 --> 21:35.599 only in some systems, 21:35.599 --> 21:36.640 some software systems, 21:36.640 --> 21:38.960 does a system succeed 21:38.960 --> 21:40.080 in becoming the center 21:40.080 --> 21:41.680 of all of the other centers 21:41.680 --> 21:43.920 and become a framework 21:43.920 --> 21:45.520 that can be used and reused, 21:45.520 --> 21:47.840 which gives systems and objects 21:47.840 --> 21:48.720 their spirit. 21:48.720 --> 21:51.520 So Emacs is being used and reused 21:51.520 --> 21:53.599 through these packages, 21:53.599 --> 21:55.119 and it gives to them their spirit. 21:55.119 --> 21:56.320 The spirit, I would argue, 21:56.320 --> 21:59.040 is in part this extensibility, 21:59.040 --> 22:01.520 and sometimes even difference. 22:01.520 --> 22:03.120 Emacs values the value [cf. Stiegler] 22:03.120 --> 22:04.240 of the freedom to create, 22:04.240 --> 22:05.680 use, and share [cf. Illich], 22:05.680 --> 22:06.960 so we can be inspired 22:06.960 --> 22:09.119 by this design pattern. 22:09.119 --> 22:11.359 It is... It rallies 22:11.359 --> 22:14.320 an autonomous designer mindset 22:14.320 --> 22:16.800 and encourages and supports us 22:16.800 --> 22:18.400 on our path towards 22:18.400 --> 22:20.960 design pattern iteration. 22:20.960 --> 22:23.359 It is not a 'flattened' contextualization. 22:23.359 --> 22:25.359 It permits ongoing learning, 22:25.359 --> 22:27.040 reassembling contexts, 22:27.040 --> 22:29.520 and an adaptable design pattern 22:29.520 --> 22:31.520 extensibility. 22:31.520 --> 22:33.200 Ultimately, it helps us create 22:33.200 --> 22:35.520 circumstances where learning is coherent 22:35.520 --> 22:37.920 with what is valued in the rest of life: 22:37.920 --> 22:41.520 pleasure, growth, and transformation. 22:41.520 --> 22:43.200 So thank you, on that note, 22:43.200 --> 22:45.280 to all of the developers, maintainers, 22:45.280 --> 22:47.119 contributors, and community 22:47.119 --> 22:48.560 for championing our freedom 22:48.560 --> 22:51.760 to co-individuate complex design patterns 22:51.760 --> 22:54.320 the way we want to, so we, too, 22:54.320 --> 22:57.359 can leave original traces, if we want to. 22:57.359 --> 23:00.003 Thank you very much. 23:00.003 --> 23:00.920 [captions by sachac]