WEBVTT Kind: captions Language: en-GB 00:00:00.000 --> 00:00:03.000 Hi! My name is Eduardo Ochs. I'm the author of 00:00:03.000 --> 00:00:07.000 an obscure package called eev and I 00:00:07.000 --> 00:00:08.000 think that it's better to start this 00:00:08.000 --> 00:00:10.000 presentation by the middle of the story - 00:00:10.000 --> 00:00:12.000 by this word here: Maxima. 00:00:12.000 --> 00:00:15.000 Maxima is a computer algebra system 00:00:15.000 --> 00:00:17.000 that has several interfaces. One 00:00:17.000 --> 00:00:20.000 of them is WxMaxima, that looks very 00:00:20.000 --> 00:00:24.000 modern and is very pretty, and it 00:00:24.000 --> 00:00:26.000 looks like this... 00:00:26.000 --> 00:00:30.000 it's a cell based interface. We can type 00:00:30.000 --> 00:00:32.000 an expression here and execute it... 00:00:32.000 --> 00:00:35.000 here's the result. 00:00:35.000 --> 00:00:38.000 But I don't like that interface 00:00:38.000 --> 00:00:40.000 because my memory is very bad, and I type 00:00:40.000 --> 00:00:42.000 very slowly and with lots of mistakes... 00:00:42.000 --> 00:00:46.000 so for me this ugly interface that 00:00:46.000 --> 00:00:49.000 I'm going to show now is much better - 00:00:49.000 --> 00:00:51.000 and here I'm going to show how I am teaching 00:00:51.000 --> 00:00:54.000 that ugly interface to beginners. 00:00:54.000 --> 00:00:58.000 If I type f8 on these three lines here 00:00:58.000 --> 00:01:00.000 it creates a Maxima running inside Emacs - 00:01:00.000 --> 00:01:04.000 I mean, using a terminal and running inside 00:01:04.000 --> 00:01:06.000 a shell buffer in Emacs... 00:01:06.000 --> 00:01:09.000 and if I type f8 on this other the lines here 00:01:09.000 --> 00:01:15.000 the `f8's send lines to Maxima, and, ta-daaa, 00:01:15.000 --> 00:01:20.000 this small program drew this. 00:01:20.000 --> 00:01:23.000 I live in Brazil and people in 00:01:23.000 --> 00:01:26.000 developed countries cannot imagine 00:01:26.000 --> 00:01:29.000 how are the beginners that we have here... 00:01:29.000 --> 00:01:32.000 in a sense Brazil is another planet. 00:01:32.000 --> 00:01:35.000 Let me explain why, and also let me 00:01:35.000 --> 00:01:37.000 explain why Maxima, why Emacs... because 00:01:37.000 --> 00:01:39.000 people always say "you should use 00:01:39.000 --> 00:01:41.000 programs that everyone finds intuitive, 00:01:41.000 --> 00:01:43.000 like VSCode"... 00:01:43.000 --> 00:01:45.000 well, I teach Calculus in a bad Campus 00:01:45.000 --> 00:01:47.000 of a good Federal University in Brazil. 00:01:47.000 --> 00:01:50.000 My university is called UFF, for 00:01:50.000 --> 00:01:53.000 Universidade Federal Fluminense. 00:01:53.000 --> 00:01:56.000 The main campus of UFF is in Niterói, 00:01:56.000 --> 00:02:00.000 that is a big city near Rio de Janeiro, 00:02:00.000 --> 00:02:03.000 and I work in a city called Rio das Ostras, 00:02:03.000 --> 00:02:03.000 that is is a small city 200 Kms away 00:02:03.000 --> 00:02:07.000 from Rio de Janeiro. 00:02:07.000 --> 00:02:09.000 I started working there in 2009. 00:02:09.000 --> 00:02:13.000 My campus gets very little funding - 00:02:13.000 --> 00:02:16.000 that's a long story that I don't have time 00:02:16.000 --> 00:02:20.000 to tell now - and we get the 00:02:20.000 --> 00:02:22.000 students that don't get enough marks in 00:02:22.000 --> 00:02:25.000 the admission process to go to better places. 00:02:25.000 --> 00:02:30.000 Also, my campus has two institutes - 00:02:30.000 --> 00:02:33.000 I call them The Institute of Humanities 00:02:33.000 --> 00:02:35.000 and The Institute of Inhumanities. 00:02:35.000 --> 00:02:38.000 Each of our institutes has a small building... 00:02:38.000 --> 00:02:41.000 the Humanities building has lots of plants and 00:02:41.000 --> 00:02:46.000 lots of graffittis - I call it the Good Building - 00:02:46.000 --> 00:02:49.000 and the Inhumanities building has lots 00:02:49.000 --> 00:02:51.000 of rules and prohibitions, and I call it the 00:02:51.000 --> 00:02:51.000 Evil Building. 00:02:51.000 --> 00:02:56.000 I heard that the Inhumanities building 00:02:56.000 --> 00:02:58.000 has a laboratory with computers, and that 00:02:58.000 --> 00:03:00.000 it doesn't have any machine that runs Linux... 00:03:00.000 --> 00:03:05.000 but the Inhumanities building is 00:03:05.000 --> 00:03:07.000 shrouded in mystery, and basically 00:03:07.000 --> 00:03:09.000 humans avoid it - only inhumans go there. 00:03:09.000 --> 00:03:12.000 I only discovered how much "another planet" 00:03:12.000 --> 00:03:15.000 Brazil is a few months ago. In May and June 00:03:15.000 --> 00:03:18.000 of this year the federal universities in Brazil 00:03:18.000 --> 00:03:21.000 paralyzed their activities in a nationwide 00:03:21.000 --> 00:03:23.000 strike for two months, and during the strike 00:03:23.000 --> 00:03:28.000 the humanity students occupied the 00:03:28.000 --> 00:03:31.000 Humanities Building and organized lots 00:03:31.000 --> 00:03:31.000 of activities there. 00:03:31.000 --> 00:03:34.000 They asked me if I could give some workshops 00:03:34.000 --> 00:03:36.000 and I offered two hands-on workshops 00:03:36.000 --> 00:03:40.000 on Free Software for beginners - 00:03:40.000 --> 00:03:45.000 basically on Emacs and eev, with 00:03:45.000 --> 00:03:49.000 tutorials with lots of "try this"s... 00:03:49.000 --> 00:03:54.000 and, as usual, the students of 00:03:54.000 --> 00:03:56.000 Computer Science and Engineering ignored 00:03:56.000 --> 00:03:59.000 the workshop completely, and didn't come... 00:03:59.000 --> 00:04:01.000 but some students of psychology and of 00:04:01.000 --> 00:04:04.000 Producão Cultural, which is basically 00:04:04.000 --> 00:04:08.000 techniques for producing cultural 00:04:08.000 --> 00:04:11.000 activities, came to workshop... and they LOVED 00:04:11.000 --> 00:04:14.000 the workshop - they found it FUN. 00:04:14.000 --> 00:04:17.000 And after the workshop I told the 00:04:17.000 --> 00:04:19.000 students that there are lots of things 00:04:19.000 --> 00:04:22.000 that, uh, "everyone knows and I don't", 00:04:22.000 --> 00:04:24.000 and I would like to learn them, 00:04:24.000 --> 00:04:27.000 but I find them too hard to learn by myself 00:04:27.000 --> 00:04:29.000 because I'm a dinosaur - I'm only used to 00:04:29.000 --> 00:04:31.000 interfaces that are very old, 00:04:31.000 --> 00:04:35.000 and that are not graphical... and one 00:04:35.000 --> 00:04:37.000 of the examples of the things that I 00:04:37.000 --> 00:04:39.000 would like to learn was Canva. 00:04:39.000 --> 00:04:42.000 And then the student of Produção Cultural 00:04:42.000 --> 00:04:45.000 taught me Canva in 10 minutes, 00:04:45.000 --> 00:04:54.000 AND THAT CHANGED MY LIFE. 00:04:54.000 --> 00:04:58.000 Anyway, again, I'm working in that place, 00:04:58.000 --> 00:05:00.000 Rio das Ostras, since 2009, 00:05:00.000 --> 00:05:04.000 and the Computer Science students 00:05:04.000 --> 00:05:06.000 here know lots of programs and languages 00:05:06.000 --> 00:05:08.000 that I would like to learn, but in all 00:05:08.000 --> 00:05:11.000 these 15 years the Computer Science 00:05:11.000 --> 00:05:14.000 students only helped me twice. 00:05:14.000 --> 00:05:17.000 It turns out that our Inhumanities 00:05:17.000 --> 00:05:20.000 students don't have a culture of sharing 00:05:20.000 --> 00:05:26.000 and helping - but our Humanities students do. 00:05:26.000 --> 00:05:29.000 Another detail about how much Brazil 00:05:29.000 --> 00:05:30.000 is another planet... 00:05:30.000 --> 00:05:33.000 well, I only discovered this very 00:05:33.000 --> 00:05:38.000 recently, too... my research is in Logic, 00:05:38.000 --> 00:05:40.000 I sometimes go to conferences, usually in 00:05:40.000 --> 00:05:44.000 Brazil, very rarely outside, and people 00:05:44.000 --> 00:05:46.000 here don't bring their laptops to the 00:05:46.000 --> 00:05:49.000 conferences - we don't have a culture 00:05:49.000 --> 00:05:51.000 of sitting together with friends 00:05:51.000 --> 00:05:54.000 or colleagues to learn with them how to 00:05:54.000 --> 00:05:56.000 use the programs that they use... 00:05:56.000 --> 00:06:01.000 for example, many of my friends 00:06:01.000 --> 00:06:05.000 are logicians, so they have to draw 00:06:05.000 --> 00:06:08.000 lots of diagrams, and I don't know how 00:06:08.000 --> 00:06:13.000 they use their programs to draw diagrams... 00:06:13.000 --> 00:06:15.000 I don't know how things are in 00:06:15.000 --> 00:06:18.000 universities with good computer labs but, 00:06:18.000 --> 00:06:22.000 anyway, consider these sentences 00:06:22.000 --> 00:06:25.000 sentences that sort of everybody says... 00:06:25.000 --> 00:06:25.000 "Everyone knows VSCode", 00:06:25.000 --> 00:06:27.000 "Everyone knows Jupiter Notebooks", 00:06:27.000 --> 00:06:31.000 "Everyone draws diagrams with Quiver"... 00:06:31.000 --> 00:06:34.000 Here these things are not true - 00:06:34.000 --> 00:06:36.000 and they are not relevant - 00:06:36.000 --> 00:06:40.000 here knowledge about programs does not 00:06:40.000 --> 00:06:40.000 propagate... and 00:06:40.000 --> 00:06:43.000 one of my goals in life is 00:06:43.000 --> 00:06:45.000 to become friends with some people who 00:06:45.000 --> 00:06:47.000 know how to use for example, code blocks 00:06:47.000 --> 00:06:50.000 in Org, and JavaScript, and learn some of 00:06:50.000 --> 00:06:55.000 their workflows... or, rather one of my 00:06:55.000 --> 00:06:57.000 goals is to become someone who deserves 00:06:57.000 --> 00:07:02.000 help. 00:07:02.000 --> 00:07:05.000 More on Maxima for students... 00:07:05.000 --> 00:07:08.000 remember: our inhumanities students 00:07:08.000 --> 00:07:10.000 don't have a culture of sharing and helping 00:07:10.000 --> 00:07:13.000 but our humanity students do... 00:07:13.000 --> 00:07:16.000 I've been telling my students - I teach 00:07:16.000 --> 00:07:19.000 Calculus 2 and 3 here -that they will learn 00:07:19.000 --> 00:07:21.000 much faster if they learn Maxima, 00:07:21.000 --> 00:07:24.000 and that people who learn Maxima can take 00:07:24.000 --> 00:07:27.000 an optional test and earn extra marks 00:07:27.000 --> 00:07:31.000 in the course, but if they behave 00:07:31.000 --> 00:07:34.000 as typical inhumanities students - 00:07:34.000 --> 00:07:37.000 I mean, not asking questions and 00:07:37.000 --> 00:07:39.000 not helping their colleagues - 00:07:39.000 --> 00:07:42.000 then I won't help help... 00:07:42.000 --> 00:07:45.000 Actually it's even worse. I've 00:07:45.000 --> 00:07:47.000 told my students that my documentation 00:07:47.000 --> 00:07:50.000 is not good enough yet and every 00:07:50.000 --> 00:07:53.000 question helps me a lot, so PLEASE ask 00:07:53.000 --> 00:07:57.000 questions, and I've bagged on my knees... 00:07:57.000 --> 00:08:01.000 and now I can treat students 00:08:01.000 --> 00:08:02.000 who don't ask questions as people who 00:08:02.000 --> 00:08:05.000 won't help someone that they know 00:08:05.000 --> 00:08:08.000 who is begging on his knees! 00:08:08.000 --> 00:08:12.000 Now let me explain another word of 00:08:12.000 --> 00:08:15.000 the title of this presentation. 00:08:15.000 --> 00:08:17.000 The title of this presentation is 00:08:17.000 --> 00:08:17.000 "Emacs, eev, and Maxima - Now!" 00:08:17.000 --> 00:08:22.000 The "Now!" in the title means: 00:08:22.000 --> 00:08:25.000 in less than one hour and even for people 00:08:25.000 --> 00:08:27.000 who have never seen a terminal in their lives. 00:08:27.000 --> 00:08:32.000 Well, my title is a slight exaggeration... 00:08:32.000 --> 00:08:34.000 it only took less than one hour 00:08:34.000 --> 00:08:37.000 for one person, who is a school kid 00:08:37.000 --> 00:08:40.000 from a small City in the North of Brazil, 00:08:40.000 --> 00:08:42.000 who didn't know anything about programming, 00:08:42.000 --> 00:08:44.000 but who was competing in the local 00:08:44.000 --> 00:08:50.000 Math Olympiads, so not a typical person... 00:08:50.000 --> 00:08:53.000 Now let me tell a story based on 00:08:53.000 --> 00:08:55.000 real events and based on a real student. 00:08:55.000 --> 00:08:58.000 The student said: "I have Linux on my 00:08:58.000 --> 00:09:00.000 laptop, can you help me to do blah1?" 00:09:00.000 --> 00:09:04.000 I answered: "Sure, do blah2 and blah3..." 00:09:04.000 --> 00:09:10.000 this was all by chat, I don't remember if 00:09:10.000 --> 00:09:10.000 by WhatsApp or by Telegram... 00:09:10.000 --> 00:09:13.000 then one week passes, and the student 00:09:13.000 --> 00:09:16.000 talks to me again, and the student says: 00:09:16.000 --> 00:09:19.000 "It doesn't work!", and I answer: 00:09:19.000 --> 00:09:21.000 "What happens when you do blah4 and blah5?" 00:09:21.000 --> 00:09:28.000 another week passes, then the student reappears, 00:09:28.000 --> 00:09:29.000 and he says: "It doesn't work!" 00:09:29.000 --> 00:09:33.000 and I answer: "Type blah6 and blah7 in 00:09:33.000 --> 00:09:36.000 the terminal, press ENTER, take a 00:09:36.000 --> 00:09:38.000 photo of your screen... remember, not a 00:09:38.000 --> 00:09:41.000 screenshot, it's a photo of your screen... 00:09:41.000 --> 00:09:43.000 and send it to me." Then the student 00:09:43.000 --> 00:09:46.000 disappears again, another week passes and 00:09:46.000 --> 00:09:49.000 the student reappears and says: 00:09:49.000 --> 00:09:50.000 "How do I open a terminal?" 00:09:50.000 --> 00:09:52.000 Well, then... 00:09:52.000 --> 00:09:54.000 PLONK. 00:09:54.000 --> 00:09:57.000 According to the Jargon file "plonk" is 00:09:57.000 --> 00:10:00.000 the sound of that a newbie makes as he 00:10:00.000 --> 00:10:02.000 falls to the bottom of a kill file. 00:10:02.000 --> 00:10:03.000 I prefer this simpler definition here... 00:10:03.000 --> 00:10:06.000 for me "plonk" is the sound 00:10:06.000 --> 00:10:08.000 that a person makes when he, or she, or they 00:10:08.000 --> 00:10:15.000 hits the bottom of my list of priorities. 00:10:15.000 --> 00:10:19.000 I've been using this slogan with my 00:10:19.000 --> 00:10:22.000 students - it sounds much better in 00:10:22.000 --> 00:10:25.000 Portuguese, sorry... "I am not a telepath, 00:10:25.000 --> 00:10:27.000 and for me it is 100 times harder to 00:10:27.000 --> 00:10:29.000 discover the doubts of people who don't 00:10:29.000 --> 00:10:32.000 talk to me than to discover the doubts of 00:10:32.000 --> 00:10:38.000 people who do talk to me. 00:10:38.000 --> 00:10:41.000 There's an interesting thing here in 00:10:41.000 --> 00:10:47.000 this presentation by Abelson and Sussman. 00:10:47.000 --> 00:10:51.000 Let me explain now this word of 00:10:51.000 --> 00:10:53.000 my title, "Emacs"... 00:10:53.000 --> 00:10:56.000 and the idea is that learning Emacs can 00:10:56.000 --> 00:10:58.000 mean many things, learning Lisp can mean 00:10:58.000 --> 00:11:03.000 many things, and in this presentation... 00:11:03.000 --> 00:11:07.000 oh no, one second... 00:11:07.000 --> 00:11:09.000 sorry, back. 00:11:09.000 --> 00:11:12.000 In this presentation they say... 00:11:12.000 --> 00:11:16.000 "anyone can learn Lisp in one day, 00:11:16.000 --> 00:11:18.000 except that if they already know Fortran, 00:11:18.000 --> 00:11:20.000 then it will take three days". 00:11:20.000 --> 00:11:24.000 And I would add: and if the person 00:11:24.000 --> 00:11:26.000 is starting with Doom Emacs then it would 00:11:26.000 --> 00:11:28.000 take take five years. 00:11:28.000 --> 00:11:20.000 Why? Because the person is using 00:11:20.000 --> 00:11:32.000 a different notion of Emacs, 00:11:32.000 --> 00:11:35.000 and a different notion of Lisp. 00:11:35.000 --> 00:11:38.000 The person is starting by spending five 00:11:38.000 --> 00:11:41.000 years learning how to configure Emacs, and 00:11:41.000 --> 00:11:43.000 the person is using Lisp as a very weird 00:11:43.000 --> 00:11:46.000 configuration language. 00:11:46.000 --> 00:11:48.000 Usually the people who start by Doom Emacs 00:11:48.000 --> 00:11:51.000 they start by configuring Emacs, 00:11:51.000 --> 00:11:54.000 and only then they learn things like 00:11:54.000 --> 00:11:56.000 defun, etc... 00:11:56.000 --> 00:11:58.000 and another slogan that I use a lot 00:11:58.000 --> 00:12:01.000 with my students is that there are 00:12:01.000 --> 00:12:03.000 many cases in which learning just the 00:12:03.000 --> 00:12:07.000 thing B takes 200 hours but learning 00:12:07.000 --> 00:12:13.000 A and then B takes just 20 hours. 00:12:13.000 --> 00:12:16.000 Here are some kinds of beginners 00:12:16.000 --> 00:12:19.000 that I do not want to help. 00:12:19.000 --> 00:12:21.000 First example: a person who says "I can't 00:12:21.000 --> 00:12:24.000 read that page - it has too many links". 00:12:24.000 --> 00:12:27.000 Second example: a person who says 00:12:27.000 --> 00:12:29.000 "I don't want to read anything and 00:12:29.000 --> 00:12:31.000 I don't want to learn anything, 00:12:31.000 --> 00:12:32.000 I want something that just works". 00:12:32.000 --> 00:12:36.000 And third example: "I don't want to 00:12:36.000 --> 00:12:38.000 look at examples, you need to summarize 00:12:38.000 --> 00:12:40.000 everything to me in one paragraph". 00:12:40.000 --> 00:12:43.000 There are more explanations on 00:12:43.000 --> 00:12:47.000 these kinds of beginners at my page 00:12:47.000 --> 00:12:49.000 about this presentation - here. 00:12:49.000 --> 00:12:53.000 And here is one kind of beginner 00:12:53.000 --> 00:12:54.000 that I really want to help. 00:12:54.000 --> 00:12:57.000 Beginners that are nerdy kids 00:12:57.000 --> 00:13:00.000 who are used to: 00:13:00.000 --> 00:13:03.000 reading materials that are too advanced for them, 00:13:03.000 --> 00:13:05.000 understanding only a few percent of what they read, 00:13:05.000 --> 00:13:10.000 remembering just a tiny fraction of what they read, 00:13:10.000 --> 00:13:14.000 going to back to these materials later, 00:13:14.000 --> 00:13:19.000 and taking notes about what they read... 00:13:19.000 --> 00:13:22.000 and who are also always interested in 00:13:22.000 --> 00:13:25.000 experimenting with new ways of taking notes, 00:13:25.000 --> 00:13:28.000 transcribing, summarizing and saving links 00:13:28.000 --> 00:13:32.000 to primary sources. 00:13:32.000 --> 00:13:36.000 I'd like to say something about how 00:13:36.000 --> 00:13:38.000 I've been plonking the paragraph people... 00:13:38.000 --> 00:13:40.000 who are the people who say: 00:13:40.000 --> 00:13:43.000 "I don't want to look at examples, 00:13:43.000 --> 00:13:45.000 you need to summarize everything to me 00:13:45.000 --> 00:13:45.000 in one paragraph". 00:13:45.000 --> 00:13:48.000 Well, I'm a mathematician... 00:13:48.000 --> 00:13:50.000 I work with lots of things 00:13:50.000 --> 00:13:52.000 that can only be summarized in a paragraph 00:13:52.000 --> 00:13:55.000 if we choose the level of who 00:13:55.000 --> 00:13:57.000 we are talking to... 00:13:57.000 --> 00:13:59.000 so we have many different 00:13:59.000 --> 00:14:02.000 one-paragraph summaries, 00:14:02.000 --> 00:14:04.000 one for each level... 00:14:04.000 --> 00:14:06.000 and in many cases this sentence, 00:14:06.000 --> 00:14:08.000 "you need to summarize it 00:14:08.000 --> 00:14:10.000 in one paragraph", is WRONG - 00:14:10.000 --> 00:14:13.000 the person means I want to learn a lot 00:14:13.000 --> 00:14:15.000 in 10 minutes - and this needs diagrams 00:14:15.000 --> 00:14:18.000 animations, AND EXAMPLES. 00:14:18.000 --> 00:14:21.000 This is an example of something 00:14:21.000 --> 00:14:24.000 in mathematics - in category Theory - 00:14:24.000 --> 00:14:27.000 I only understood after too many time - 00:14:27.000 --> 00:14:29.000 after zillions of years... 00:14:29.000 --> 00:14:30.000 It is called The Yoneda Lemma. 00:14:30.000 --> 00:14:32.000 This is the general case - 00:14:32.000 --> 00:14:35.000 this small thing here... 00:14:35.000 --> 00:14:40.000 but I only understood it after 00:14:40.000 --> 00:14:45.000 understanding many particular cases, and 00:14:45.000 --> 00:14:49.000 then organizing them in a way in which 00:14:49.000 --> 00:14:52.000 different figures had similar shapes... 00:14:52.000 --> 00:14:56.000 and the textual explanations 00:14:56.000 --> 00:14:58.000 for the Yoneda Lemma - the one paragraph 00:14:58.000 --> 00:15:00.000 explanations, or the many paragraph 00:15:00.000 --> 00:15:04.000 explanations - never helped the much... 00:15:04.000 --> 00:15:07.000 they contained formulas... 00:15:07.000 --> 00:15:10.000 in mathematics, but written linearly... 00:15:10.000 --> 00:15:12.000 that had too many symbols... 00:15:12.000 --> 00:15:15.000 and my mental buffer is very small... 00:15:15.000 --> 00:15:18.000 and I had to find several tricks to reduce 00:15:18.000 --> 00:15:21.000 the cognitive overload of all these ideas. 00:15:21.000 --> 00:15:24.000 For example, I had to name the symbols 00:15:24.000 --> 00:15:29.000 consecutively, like A, B, C, 00:15:29.000 --> 00:15:31.000 so there's a kind of a temporal order 00:15:31.000 --> 00:15:34.000 in which the symbols that appear first 00:15:34.000 --> 00:15:37.000 have initial letters... 00:15:37.000 --> 00:15:40.000 I had to find a way to put 00:15:40.000 --> 00:15:42.000 an archetypal case and the general case 00:15:42.000 --> 00:15:43.000 side to side - 00:15:43.000 --> 00:15:45.000 they have the same "shape"... 00:15:45.000 --> 00:15:47.000 I had to find good conventions 00:15:47.000 --> 00:15:49.000 for fonts and types... 00:15:49.000 --> 00:15:51.000 I had to choose good meanings 00:15:51.000 --> 00:15:53.000 for what it means... 00:15:53.000 --> 00:15:57.000 sorry, for what are vertical arrows, 00:15:57.000 --> 00:16:01.000 what are horizontal arrows, and so on... 00:16:01.000 --> 00:16:06.000 and what is "above without an arrow"... 00:16:06.000 --> 00:16:09.000 So, how much detail should we include 00:16:09.000 --> 00:16:12.000 in our technical explanations? 00:16:12.000 --> 00:16:14.000 Well there are many measures 00:16:14.000 --> 00:16:17.000 for cognitive (over)load... 00:16:17.000 --> 00:16:20.000 For example, I asked many technical questions 00:16:20.000 --> 00:16:21.000 on the Maxima mailing list 00:16:21.000 --> 00:16:24.000 that got answers that included 00:16:24.000 --> 00:16:27.000 snippets and names of of Lisp functions... 00:16:27.000 --> 00:16:29.000 in Common Lisp, because Maxima is written 00:16:29.000 --> 00:16:32.000 in Common Lisp... and I liked that... 00:16:32.000 --> 00:16:35.000 and I asked some some technical questions 00:16:35.000 --> 00:16:35.000 on the Org mailing list 00:16:35.000 --> 00:16:37.000 and on the Hyperbole mailing list, 00:16:37.000 --> 00:16:40.000 and usually I got answers 00:16:40.000 --> 00:16:43.000 that avoided the technical details... 00:16:43.000 --> 00:16:45.000 note that I chose the term "avoided" 00:16:45.000 --> 00:16:47.000 to denote frustration... 00:16:47.000 --> 00:16:50.000 by the way, if one of my students panics 00:16:50.000 --> 00:16:54.000 on this part here... 00:16:54.000 --> 00:16:56.000 "After setting the user and password 00:16:56.000 --> 00:16:57.000 you will get a Unix prompt"... 00:16:57.000 --> 00:17:01.000 if the student panics on this 00:17:01.000 --> 00:17:05.000 and does not know what to ask 00:17:05.000 --> 00:17:07.000 and just gives up, then... 00:17:07.000 --> 00:17:09.000 plonk. 00:17:09.000 --> 00:17:13.000 So... I was talking a lot about 00:17:13.000 --> 00:17:15.000 plonking people... 00:17:15.000 --> 00:17:16.000 What's left after plonking many people? 00:17:16.000 --> 00:17:19.000 Well, several kinds of beginners 00:17:19.000 --> 00:17:21.000 that I want to interact with... 00:17:21.000 --> 00:17:26.000 note that "kinds" is plural... 00:17:26.000 --> 00:17:30.000 Also, I get a definition for the term 00:17:30.000 --> 00:17:32.000 "beginners"... think on books... 00:17:32.000 --> 00:17:37.000 technical books, that start with 00:17:37.000 --> 00:17:38.000 "This book is written for the persons 00:17:38.000 --> 00:17:40.000 of the types such and such"... 00:17:40.000 --> 00:17:43.000 Maybe several definitions 00:17:43.000 --> 00:17:47.000 for the term "beginners"... 00:17:47.000 --> 00:17:49.000 also, a metric that lets me choose between 00:17:49.000 --> 00:17:52.000 options A, B and C when I'm trying to 00:17:52.000 --> 00:17:55.000 write material for my beginners... 00:17:55.000 --> 00:18:00.000 for example, here, again... 00:18:00.000 --> 00:18:04.000 should I explain what is a Unix prompt? 00:18:04.000 --> 00:18:07.000 No!!! 00:18:07.000 --> 00:18:09.000 Why "no"? 00:18:09.000 --> 00:18:11.000 Well, let me use another example. 00:18:11.000 --> 00:18:16.000 This one I took from a discussion on IRC... 00:18:16.000 --> 00:18:18.000 we were helping a certain beginner 00:18:18.000 --> 00:18:20.000 that was there... 00:18:20.000 --> 00:18:24.000 and one person suggested to the beginner 00:18:24.000 --> 00:18:27.000 to do this: type M-:, and then this 00:18:27.000 --> 00:18:29.000 thing here, and then ENTER. 00:18:29.000 --> 00:18:33.000 And I suggested this instead. 00:18:33.000 --> 00:18:35.000 Copy this expression to your notes, 00:18:35.000 --> 00:18:38.000 and then type C-e C-x C-e... 00:18:38.000 --> 00:18:42.000 and the mnemonic for C-e C-x C-e is 00:18:42.000 --> 00:18:44.000 C-exe, for "execute". 00:18:44.000 --> 00:18:47.000 And then... for me the option 1, 00:18:47.000 --> 00:18:50.000 this option here, is very costly, 00:18:50.000 --> 00:18:53.000 because the person has to type a lot 00:18:53.000 --> 00:18:55.000 without errors, 00:18:55.000 --> 00:18:59.000 and then after running that 00:18:59.000 --> 00:19:03.000 and reading this page here... 00:19:03.000 --> 00:19:06.000 the way of going back to that page is gone. 00:19:06.000 --> 00:19:08.000 So the person has to commit lots 00:19:08.000 --> 00:19:10.000 of information to memory - 00:19:10.000 --> 00:19:13.000 either the person learns from this page 00:19:13.000 --> 00:19:16.000 everything that she needs or the person 00:19:16.000 --> 00:19:20.000 memorizes how to go there the next time.... 00:19:20.000 --> 00:19:24.000 and for me the option 2 - this one: 00:19:24.000 --> 00:19:27.000 put this in your notes and then 00:19:27.000 --> 00:19:29.000 execute it with C-exe - 00:19:29.000 --> 00:19:32.000 is much better, because the person 00:19:32.000 --> 00:19:34.000 commits information to notes, 00:19:34.000 --> 00:19:36.000 and the person learns a way to return 00:19:36.000 --> 00:19:40.000 to this node of the manual later... 00:19:40.000 --> 00:19:45.000 and with this the person learns 00:19:45.000 --> 00:19:47.000 another way to use her notes. 00:19:47.000 --> 00:19:50.000 I have a lot of material about that... 00:19:50.000 --> 00:19:52.000 see for example this page here - 00:19:52.000 --> 00:19:54.000 there's a link to it 00:19:54.000 --> 00:19:56.000 in my page for this talk... 00:19:56.000 --> 00:19:58.000 also, I live in a place in which 00:19:58.000 --> 00:20:00.000 the people who find my instructions 00:20:00.000 --> 00:20:03.000 too complex or too boring 00:20:03.000 --> 00:20:06.000 disappear - either for months or forever... 00:20:06.000 --> 00:20:08.000 So if I give an instruction 00:20:08.000 --> 00:20:10.000 that the person cannot understand 00:20:10.000 --> 00:20:13.000 and the person gives up 00:20:13.000 --> 00:20:15.000 I lose the person... 00:20:15.000 --> 00:20:18.000 Now let me do some things in a weird order. 00:20:18.000 --> 00:20:20.000 In a normal presentation this would be 00:20:20.000 --> 00:20:22.000 the conclusion, and it would be presented 00:20:22.000 --> 00:20:24.000 at the end... 00:20:24.000 --> 00:20:26.000 but I will present it now, 00:20:26.000 --> 00:20:28.000 before the technical details. 00:20:28.000 --> 00:20:31.000 So, I was teaching Emacs, eev and Maxima 00:20:31.000 --> 00:20:34.000 for students... did it work well? 00:20:34.000 --> 00:20:36.000 Well... sort of, but in a weird way. 00:20:36.000 --> 00:20:39.000 Many students decided to take my test 00:20:39.000 --> 00:20:42.000 on Emacs, eev, and Maxima... 00:20:42.000 --> 00:20:45.000 let me consider only the 35 students 00:20:45.000 --> 00:20:48.000 in the two last semesters that were able 00:20:48.000 --> 00:20:51.000 to do what I asked, that was to use a link 00:20:51.000 --> 00:20:56.000 like this one to go to my notes... 00:20:56.000 --> 00:20:59.000 they had to go to a specific small program 00:20:59.000 --> 00:21:02.000 in Maxima, copy that program to their notes, 00:21:02.000 --> 00:21:04.000 modify it a bit to make it solve 00:21:04.000 --> 00:21:06.000 a slightly different problem, 00:21:06.000 --> 00:21:08.000 and then save the new program. 00:21:08.000 --> 00:21:11.000 So it was mostly a test on the interface, 00:21:11.000 --> 00:21:14.000 and to test if they knew some 00:21:14.000 --> 00:21:16.000 very basic things on Maxima... 00:21:16.000 --> 00:21:19.000 but of these 35 students only 10 students 00:21:19.000 --> 00:21:21.000 asked questions on the Telegram group... 00:21:21.000 --> 00:21:24.000 Mostly they discussed 00:21:24.000 --> 00:21:27.000 with other students... 00:21:27.000 --> 00:21:30.000 sometimes live - they would bring 00:21:30.000 --> 00:21:34.000 their laptops to the university to discuss... 00:21:34.000 --> 00:21:37.000 they only do that very rarely, 00:21:37.000 --> 00:21:40.000 but they brought it... 00:21:40.000 --> 00:21:42.000 other times they would discuss 00:21:42.000 --> 00:21:44.000 with their colleagues on Discord... 00:21:44.000 --> 00:21:47.000 but I got very little feedback 00:21:47.000 --> 00:21:50.000 for my usability test. 00:21:50.000 --> 00:21:52.000 So my experiment failed - in the sense 00:21:52.000 --> 00:21:55.000 that I didn't get the feedback 00:21:55.000 --> 00:21:57.000 that I expected - I only got a fraction 00:21:57.000 --> 00:21:59.000 of the feedback that I expected... 00:21:59.000 --> 00:22:03.000 ...but I learned lots of things. 00:22:03.000 --> 00:22:06.000 Well, I got very angry, very frustrated, 00:22:06.000 --> 00:22:08.000 but I saw that I can't invest a lot of energy 00:22:08.000 --> 00:22:11.000 on students who... how do I say? 00:22:11.000 --> 00:22:13.000 who "won't talk to me". 00:22:13.000 --> 00:22:16.000 then I decided to make contact 00:22:16.000 --> 00:22:19.000 with some schools - secondary schools - 00:22:19.000 --> 00:22:21.000 and to make a long story short... 00:22:21.000 --> 00:22:25.000 in one of the schools I was 00:22:25.000 --> 00:22:27.000 very well received... 00:22:27.000 --> 00:22:29.000 the students asked lots of questions, 00:22:29.000 --> 00:22:31.000 and in the middle of the discussion 00:22:31.000 --> 00:22:35.000 we were discussing this little program here, 00:22:35.000 --> 00:22:37.000 that splits the the frame in two windows 00:22:37.000 --> 00:22:38.000 and displays the file ~/HELP 00:22:38.000 --> 00:22:41.000 in the window at the right... 00:22:41.000 --> 00:22:46.000 and I showed them Elisp tutorial, 00:22:46.000 --> 00:22:50.000 that starts... here... 00:22:50.000 --> 00:22:55.000 and right in its third section 00:22:55.000 --> 00:22:57.000 it explains `quote'. 00:22:57.000 --> 00:23:00.000 So, I had to explain to them 00:23:00.000 --> 00:23:03.000 how we can use quote to pass... 00:23:03.000 --> 00:23:07.000 to avoid evaluating a program... 00:23:07.000 --> 00:23:09.000 we can use quote to pass unevaluated 00:23:09.000 --> 00:23:11.000 programs as arguments... 00:23:11.000 --> 00:23:13.000 and quote blew their minds, 00:23:13.000 --> 00:23:16.000 and I was amazed by their questions, 00:23:16.000 --> 00:23:18.000 and I saw more clearly that the campus 00:23:18.000 --> 00:23:20.000 in which I work is a hole, 00:23:20.000 --> 00:23:22.000 and that I need to do more things outside. 00:23:22.000 --> 00:23:25.000 Now let's see some technical details. 00:23:25.000 --> 00:23:28.000 What exactly am I teaching to 00:23:28.000 --> 00:23:20.000 these students? 00:23:20.000 --> 00:23:32.000 Basically, my old tutorial for eev 00:23:32.000 --> 00:23:36.000 was this one... it started with a 00:23:36.000 --> 00:23:39.000 section on installing eev, and then it 00:23:39.000 --> 00:23:42.000 explained Lisp, and how to use 00:23:42.000 --> 00:23:44.000 elisp hyperlinks... 00:23:44.000 --> 00:23:46.000 and then lots of other things... 00:23:46.000 --> 00:23:49.000 but I'm using this new tutorial here, 00:23:49.000 --> 00:23:51.000 that I am not announcing in many places 00:23:51.000 --> 00:23:54.000 because I wanted to test it a lot 00:23:54.000 --> 00:23:59.000 before making it very public... 00:23:59.000 --> 00:24:04.000 and it starts with other installation 00:24:04.000 --> 00:24:06.000 instructions, that start with 00:24:06.000 --> 00:24:11.000 instructions for installing WSL 00:24:11.000 --> 00:24:13.000 on a machine with Windows, 00:24:13.000 --> 00:24:16.000 and then installing Debian there 00:24:16.000 --> 00:24:19.000 and then after that people have to install 00:24:19.000 --> 00:24:26.000 Emacs, and then they have to install eev... 00:24:26.000 --> 00:24:30.000 And I'm also using this map here, 00:24:30.000 --> 00:24:32.000 that I'm reorganizing, 00:24:32.000 --> 00:24:34.000 so it's going to change a lot 00:24:34.000 --> 00:24:36.000 in the next days... 00:24:36.000 --> 00:24:40.000 it has a 2-dimensional map here, 00:24:40.000 --> 00:24:44.000 and it has lots of things that I'm putting 00:24:44.000 --> 00:24:46.000 in a single place to make it easier 00:24:46.000 --> 00:24:49.000 to answer questions, and to show 00:24:49.000 --> 00:24:51.000 to the students that I have answers 00:24:51.000 --> 00:24:56.000 for the most common questions... 00:24:56.000 --> 00:24:59.000 Remember, my target audience 00:24:59.000 --> 00:25:02.000 is mostly composed of beginners who have 00:25:02.000 --> 00:25:04.000 never seen a terminal in their lives, 00:25:04.000 --> 00:25:06.000 and that get bored very quickly... 00:25:06.000 --> 00:25:10.000 and when they get bored they disappear. 00:25:10.000 --> 00:25:15.000 What are my main goals for the first day? 00:25:15.000 --> 00:25:19.000 I want them to "install everything", 00:25:19.000 --> 00:25:22.000 where "everything" means WSL on their 00:25:22.000 --> 00:25:27.000 Windows machines, then Debian, Emacs, eev, 00:25:27.000 --> 00:25:32.000 lots of Debian packages that they install 00:25:32.000 --> 00:25:44.000 with this block here... 00:25:44.000 --> 00:25:47.000 After that they need to run 00:25:47.000 --> 00:25:51.000 some Maxima programs, and some test blocks... 00:25:51.000 --> 00:25:53.000 and configure Emacs, and create a first set 00:25:53.000 --> 00:25:57.000 of executable notes, and I consider 00:25:57.000 --> 00:25:59.000 that after that the person is 00:25:59.000 --> 00:26:01.000 autonomous. 00:26:01.000 --> 00:26:04.000 I said that the students 00:26:04.000 --> 00:26:05.000 learn how to "Run some Maxima programs". 00:26:05.000 --> 00:26:07.000 Let me be more precise about that. 00:26:07.000 --> 00:26:09.000 The first step is something 00:26:09.000 --> 00:26:14.000 that I call "The 5-minute workshop"... 00:26:14.000 --> 00:26:17.000 it happens in the classroom, 00:26:17.000 --> 00:26:20.000 on my laptop, and I make the students 00:26:20.000 --> 00:26:20.000 run this. 00:26:20.000 --> 00:26:24.000 Actually in a first moment I run 00:26:24.000 --> 00:26:27.000 this thing here, and then I ask them 00:26:27.000 --> 00:26:30.000 to run it themselves. 00:26:30.000 --> 00:26:35.000 So: I type f8 on these three things here, 00:26:35.000 --> 00:26:37.000 we get a target buffer running Maxima, 00:26:37.000 --> 00:26:40.000 then I type f8 several other times here... 00:26:40.000 --> 00:26:42.000 when I type f8 here it opens a GNUPlot 00:26:42.000 --> 00:26:46.000 window, that I have to close 00:26:46.000 --> 00:26:49.000 by typing `q' here... 00:26:49.000 --> 00:26:51.000 and that's it. And then I say: 00:26:51.000 --> 00:26:53.000 now it's your turn. And the students go there, 00:26:53.000 --> 00:26:56.000 they type f8 three times, and then they 00:26:56.000 --> 00:27:03.000 type f8 f8 f8 f8 f8 f8 f8 q f8 q... 00:27:03.000 --> 00:27:07.000 The second step is similar - 00:27:07.000 --> 00:27:09.000 is another individual workshop, 00:27:09.000 --> 00:27:01.000 also just a few minutes long, 00:27:01.000 --> 00:27:15.000 in which they learn how to access my notes. 00:27:15.000 --> 00:27:17.000 My notes on Maxima are here - 00:27:17.000 --> 00:27:21.000 I mean, this is the HTMLized version... 00:27:21.000 --> 00:27:26.000 it starts with a header, then a huge index, 00:27:26.000 --> 00:27:29.000 then many blocks like this... 00:27:29.000 --> 00:27:31.000 and this is a specific block that corresponds 00:27:31.000 --> 00:27:33.000 to the thing that we we ran 00:27:33.000 --> 00:27:37.000 in the first 5-minute workshop. 00:27:37.000 --> 00:27:40.000 And in this second 5-minute workshop 00:27:40.000 --> 00:27:43.000 they run the instructions in this section... 00:27:43.000 --> 00:27:46.000 usually I skip this thing in the first moment, 00:27:46.000 --> 00:27:52.000 then I explain it to them... 00:27:52.000 --> 00:27:56.000 and they run something like this, 00:27:56.000 --> 00:27:58.000 that downloads a copy 00:27:58.000 --> 00:28:02.000 of my notes on Maxima, 00:28:02.000 --> 00:28:04.000 puts that copy in a temporary buffer... 00:28:04.000 --> 00:28:06.000 and they can run the thing here 00:28:06.000 --> 00:28:18.000 exactly in the same way as before... 00:28:18.000 --> 00:28:22.000 And I also ask them to run the small 00:28:22.000 --> 00:28:25.000 Maxim programs in other blocks, 00:28:25.000 --> 00:28:27.000 like this one, for example... 00:28:27.000 --> 00:28:29.000 if we run this it calculates the solution 00:28:29.000 --> 00:28:31.000 of a question that I put in a test 00:28:31.000 --> 00:28:34.000 one or two semesters ago... 00:28:34.000 --> 00:28:38.000 it starts by calculating several integrals 00:28:38.000 --> 00:28:41.000 and then it organizes all the solutions 00:28:41.000 --> 00:28:49.000 in a big Matrix like this... 00:28:49.000 --> 00:28:52.000 I said that at one point the students 00:28:52.000 --> 00:28:55.000 have to install lots of Debian packages. 00:28:55.000 --> 00:28:59.000 This happens after they have installed 00:28:59.000 --> 00:29:05.000 Debian, then Emacs, and eev... 00:29:05.000 --> 00:29:09.000 and they already know a bit about eepitch, 00:29:09.000 --> 00:29:12.000 so they are in this section of the 00:29:12.000 --> 00:29:14.000 instructions, and they just have to type 00:29:14.000 --> 00:29:20.000 f8 here several times and watch what 00:29:20.000 --> 00:29:22.000 happens... 00:29:22.000 --> 00:29:24.000 after that we have many options, 00:29:24.000 --> 00:29:26.000 and I have this map here and I usually 00:29:26.000 --> 00:29:29.000 choose a path according to the interests 00:29:29.000 --> 00:29:32.000 and the questions of the students... 00:29:32.000 --> 00:29:34.000 and there are many things that can go wrong, 00:29:34.000 --> 00:29:37.000 so this page also works as as a place 00:29:37.000 --> 00:29:41.000 in which I put all my troubleshooting 00:29:41.000 --> 00:29:43.000 instructions... 00:29:43.000 --> 00:29:43.000 and if a student has a question... 00:29:43.000 --> 00:29:47.000 I mean, suppose that the student is 00:29:47.000 --> 00:29:50.000 talking to me by WhatsApp or Telegram, 00:29:50.000 --> 00:29:52.000 and the student is saying: 00:29:52.000 --> 00:29:54.000 okay I installed the things such and such, 00:29:54.000 --> 00:29:56.000 and I tried the thing blahblah, and 00:29:56.000 --> 00:29:58.000 something went wrong... 00:29:58.000 --> 00:29:59.000 and I say: ok, can you send me a screenshot 00:29:59.000 --> 00:30:02.000 or a photo of your screen? 00:30:02.000 --> 00:30:04.000 And then we can troubleshoot that 00:30:04.000 --> 00:30:10.000 by using a section of this page here. 00:30:10.000 --> 00:30:11.000 This is a work in progress, 00:30:11.000 --> 00:30:14.000 I'm reorganizing this thing for 00:30:14.000 --> 00:30:15.000 the 10th time... 00:30:15.000 --> 00:30:19.000 and the rest of what can happen 00:30:19.000 --> 00:30:21.000 with these students can't be explained 00:30:21.000 --> 00:30:23.000 clearly in a video... so I'm going 00:30:23.000 --> 00:30:26.000 to put the all the other stuff in the 00:30:26.000 --> 00:30:28.000 page of the video, and I'm going to stop 00:30:28.000 --> 00:30:30.000 the video here. 00:30:30.000 --> 00:07:12.000 So: thanks, and bye!