0:00:02.960,0:00:06.560 far away in the heavenly abode of the 0:00:04.960,0:00:08.320 great god indra 0:00:06.560,0:00:10.160 there is a wonderful net which has been 0:00:08.320,0:00:12.080 hung by some cunning artificer 0:00:10.160,0:00:14.320 in such a manner that it stretches out 0:00:12.080,0:00:15.920 infinitely in all directions 0:00:14.320,0:00:18.240 in accordance with the extravagant 0:00:15.920,0:00:20.960 tastes of deities the artificer has hung 0:00:18.240,0:00:22.080 a single glittering jewel in each eye of 0:00:20.960,0:00:24.000 the net 0:00:22.080,0:00:26.480 and since the net itself is infinite the 0:00:24.000,0:00:28.400 jewels are infinite in number 0:00:26.480,0:00:30.480 there hang the jewels glittering like 0:00:28.400,0:00:33.440 stars in the first magnitude 0:00:30.480,0:00:34.800 a wonderful sight to behold were we to 0:00:33.440,0:00:35.680 select one of these jewels for 0:00:34.800,0:00:37.760 inspection 0:00:35.680,0:00:39.520 we would discover that in its polished 0:00:37.760,0:00:41.920 surface there are reflected 0:00:39.520,0:00:43.360 all the other jewels in the net infinite 0:00:41.920,0:00:45.600 in number 0:00:43.360,0:00:47.840 if we look still more closely we would 0:00:45.600,0:00:48.960 see that each of the jewels reflected in 0:00:47.840,0:00:52.239 this one jewel 0:00:48.960,0:00:54.000 reflects all the others this is the 0:00:52.239,0:00:56.840 metaphor of indra's net 0:00:54.000,0:00:59.359 which is told in some schools of 0:00:56.840,0:01:00.160 philosophy let's keep this metaphor in 0:00:59.359,0:01:01.920 mind 0:01:00.160,0:01:03.760 because it'll help us understand the 0:01:01.920,0:01:06.239 Emacs extension that we're about to 0:01:03.760,0:01:06.239 discuss 0:01:06.960,0:01:13.200 so in editing text there's two 0:01:10.080,0:01:16.880 main paradigms one 0:01:13.200,0:01:19.439 is um editing at the ground level 0:01:16.880,0:01:22.159 where the characters that we type 0:01:19.439,0:01:25.960 actually appear on the screen 0:01:22.159,0:01:28.479 the changes we make actually occur 0:01:25.960,0:01:30.720 [Music] 0:01:28.479,0:01:33.439 the other editing paradigm is where we 0:01:30.720,0:01:36.000 escape to a higher level 0:01:33.439,0:01:36.479 and now the characters that we type are 0:01:36.000,0:01:39.040 not 0:01:36.479,0:01:41.600 they don't actually appear on the screen 0:01:39.040,0:01:44.799 because we're not at the ground level 0:01:41.600,0:01:48.479 with the text we are at a higher level 0:01:44.799,0:01:51.920 looking down at the text 0:01:48.479,0:01:54.640 and regarding the text referring to 0:01:51.920,0:01:56.159 this world of text in terms of a 0:01:54.640,0:01:57.920 language 0:01:56.159,0:02:00.640 for instance we could describe this 0:01:57.920,0:02:02.079 world as having words and paragraphs and 0:02:00.640,0:02:04.640 sentences and 0:02:02.079,0:02:05.360 lines and so on and we could reason 0:02:04.640,0:02:08.800 about this 0:02:05.360,0:02:11.440 text in terms of these 0:02:08.800,0:02:13.120 textual entities and this textual 0:02:11.440,0:02:15.920 language 0:02:13.120,0:02:18.319 this is the second paradigm of text 0:02:15.920,0:02:18.319 editing 0:02:18.640,0:02:24.800 and when we're in the second paradigm 0:02:22.800,0:02:26.480 there is a way to go down to ground 0:02:24.800,0:02:28.160 level you hit enter 0:02:26.480,0:02:30.480 now or we'll hit enter to go down to the 0:02:28.160,0:02:33.200 ground level and you can hit escape 0:02:30.480,0:02:35.200 to go back out to the referential level 0:02:33.200,0:02:37.280 enter to go down to ground level 0:02:35.200,0:02:39.599 and escape to go up to the referential 0:02:37.280,0:02:39.599 level 0:02:40.160,0:02:48.239 now in vim the nouns 0:02:44.879,0:02:50.959 in this world of text all 0:02:48.239,0:02:51.519 share the same referential plane which 0:02:50.959,0:02:54.319 we call 0:02:51.519,0:02:54.959 normal mode so in normal mode all of the 0:02:54.319,0:02:57.360 nouns 0:02:54.959,0:02:58.959 of the world of text are available 0:02:57.360,0:03:00.959 whether it's words or sentences or 0:02:58.959,0:03:04.400 paragraphs 0:03:00.959,0:03:08.319 and they all share this same 0:03:04.400,0:03:11.120 referential plane and there's uh 0:03:08.319,0:03:12.720 they sort of compete for space on the 0:03:11.120,0:03:15.760 keyboard 0:03:12.720,0:03:17.680 um so an alternative uh 0:03:15.760,0:03:19.280 way to structure these modes is instead 0:03:17.680,0:03:21.840 of having a single mode where all the 0:03:19.280,0:03:24.959 nouns coexist 0:03:21.840,0:03:30.400 peacefully or otherwise you instead 0:03:24.959,0:03:33.040 have a dedicated mode for every noun 0:03:30.400,0:03:35.440 so in that case what happens is because 0:03:33.040,0:03:37.280 your modal spaces are now much smaller 0:03:35.440,0:03:38.720 you're just talking about words or 0:03:37.280,0:03:42.560 paragraphs or 0:03:38.720,0:03:45.760 lines or something the keys that you use 0:03:42.560,0:03:48.560 can be much more targeted 0:03:45.760,0:03:50.400 and you can use the same keystrokes in 0:03:48.560,0:03:52.000 in all of your modes and they would have 0:03:50.400,0:03:53.280 the same ideas behind them but 0:03:52.000,0:03:55.519 they would have different effects 0:03:53.280,0:03:57.519 depending on which context you're using 0:03:55.519,0:03:59.120 so it's the same keystrokes different 0:03:57.519,0:04:01.360 contexts 0:03:59.120,0:04:02.480 and the advantage of that is it's often 0:04:01.360,0:04:05.519 easier 0:04:02.480,0:04:09.040 to change context than it is to 0:04:05.519,0:04:12.080 learn new key bindings so let's see 0:04:09.040,0:04:13.680 an example of how that works we go into 0:04:12.080,0:04:14.000 character mode and if you look at the 0:04:13.680,0:04:15.439 mode 0:04:14.000,0:04:18.720 line at the bottom of the screen there 0:04:15.439,0:04:21.519 you'll see that we're in character mode 0:04:18.720,0:04:23.919 and now when we move up down left and 0:04:21.519,0:04:28.479 right we're moving by character 0:04:23.919,0:04:30.240 we can also transform the text and 0:04:28.479,0:04:32.400 the transformations occur in terms of 0:04:30.240,0:04:34.320 character 0:04:32.400,0:04:35.520 you can also go into word mode and in 0:04:34.320,0:04:38.560 word mode 0:04:35.520,0:04:40.000 the transformations that you do are on 0:04:38.560,0:04:42.320 words 0:04:40.000,0:04:43.440 and you try you your movement is also in 0:04:42.320,0:04:45.600 terms of words 0:04:43.440,0:04:46.560 so that's the level of granularity that 0:04:45.600,0:04:49.520 you have 0:04:46.560,0:04:50.720 you could also go to line mode and when 0:04:49.520,0:04:53.759 you're in line mode 0:04:50.720,0:04:54.240 you go up and down by line and you can 0:04:53.759,0:04:57.520 move 0:04:54.240,0:04:59.120 lines up and down left and right and so 0:04:57.520,0:05:00.880 on 0:04:59.120,0:05:02.800 and the transformations you do are in 0:05:00.880,0:05:07.600 terms of lines 0:05:02.800,0:05:07.600 you could also go to window mode where 0:05:08.400,0:05:12.400 now the objects that you're referring to 0:05:10.639,0:05:15.759 are windows and you can 0:05:12.400,0:05:17.520 move spatially amongst the windows or 0:05:15.759,0:05:20.850 make do transformations on the windows 0:05:17.520,0:05:22.840 using the same keystrokes 0:05:20.850,0:05:25.360 [Music] 0:05:22.840,0:05:28.720 um 0:05:25.360,0:05:32.800 so let's go to 0:05:28.720,0:05:35.280 um right and so um the one of the things 0:05:32.800,0:05:36.880 the the principles that play here is 0:05:35.280,0:05:38.000 something called the rumpelstiltskin 0:05:36.880,0:05:40.720 principle which is something 0:05:38.000,0:05:42.320 that's known in computer science which 0:05:40.720,0:05:43.759 is that if you can name something then 0:05:42.320,0:05:46.720 you have that you have power 0:05:43.759,0:05:48.560 then you have power over it so this is 0:05:46.720,0:05:50.479 kind of an adaptation of that principle 0:05:48.560,0:05:52.320 which says that if you can 0:05:50.479,0:05:54.000 name something and if you can talk about 0:05:52.320,0:05:55.360 it then it's a noun 0:05:54.000,0:05:56.960 [Music] 0:05:55.360,0:05:58.960 in your editing language and if it's a 0:05:56.960,0:06:01.520 noun then it has 0:05:58.960,0:06:02.319 it's a mode so if we can talk about it 0:06:01.520,0:06:05.039 it's a noun 0:06:02.319,0:06:06.479 if it's a noun then it's a mode and one 0:06:05.039,0:06:07.039 of the things we've been talking a lot 0:06:06.479,0:06:10.800 about 0:06:07.039,0:06:14.240 is modes so in fact 0:06:10.800,0:06:17.280 uh by this principle modes also 0:06:14.240,0:06:19.039 should be a mode 0:06:17.280,0:06:21.120 you should have a mode that can reason 0:06:19.039,0:06:22.080 in terms of modes as objects just like 0:06:21.120,0:06:23.759 you have 0:06:22.080,0:06:26.560 modes where you can reason in terms of 0:06:23.759,0:06:28.800 words or lines as objects 0:06:26.560,0:06:30.479 and so let's do that let's go to mode 0:06:28.800,0:06:34.000 mode 0:06:30.479,0:06:36.080 when you go to mode mode you see that uh 0:06:34.000,0:06:37.919 the objects that are depicted here are 0:06:36.080,0:06:40.960 the modes that are 0:06:37.919,0:06:44.880 that are present in the buffer 0:06:40.960,0:06:46.400 which we knew about um because the 0:06:44.880,0:06:48.720 style of editing that we had in this 0:06:46.400,0:06:50.479 buffer was the vim style of editing 0:06:48.720,0:06:52.400 where there's an insert mode at the 0:06:50.479,0:06:53.039 ground level and a normal mode that you 0:06:52.400,0:06:57.280 can escape 0:06:53.039,0:07:00.479 to you insert enter the ground level 0:06:57.280,0:07:02.880 enter to the insert mode and escape to 0:07:00.479,0:07:03.680 normal mode and when you look at the 0:07:02.880,0:07:06.160 mode mode 0:07:03.680,0:07:09.680 representation you see that in fact that 0:07:06.160,0:07:09.680 is the structure that's depicted 0:07:10.479,0:07:14.080 but in different situations you might 0:07:12.720,0:07:16.080 find 0:07:14.080,0:07:17.680 that you that these modes are not the 0:07:16.080,0:07:19.360 ones that you want you want something 0:07:17.680,0:07:20.880 more tailored for the specific 0:07:19.360,0:07:23.050 application 0:07:20.880,0:07:24.240 for instance if you're editing 0:07:23.050,0:07:27.360 [Music] 0:07:24.240,0:07:30.880 lisp code uh or or code in general but 0:07:27.360,0:07:32.960 list code is a particular example 0:07:30.880,0:07:34.000 you might want to take advantage of the 0:07:32.960,0:07:37.599 structure of 0:07:34.000,0:07:40.960 the code and for lisp code in particular 0:07:37.599,0:07:44.240 we have a mode called symax mode 0:07:40.960,0:07:46.720 which is able to reason 0:07:44.240,0:07:47.919 about your code in terms of its tree 0:07:46.720,0:07:50.560 structure 0:07:47.919,0:07:51.120 so you can use the same keystrokes hkl 0:07:50.560,0:07:53.440 goes 0:07:51.120,0:07:54.960 left right up and down but you also have 0:07:53.440,0:07:58.080 other keystrokes that are more 0:07:54.960,0:08:01.520 specialized to the application 0:07:58.080,0:08:06.160 and you can run the code and 0:08:01.520,0:08:06.160 we'll see that happen here in a minute 0:08:06.960,0:08:12.240 and you can make changes to it really 0:08:10.080,0:08:16.080 quickly 0:08:12.240,0:08:16.080 and see the effects of those changes 0:08:18.000,0:08:21.360 and you're doing this all in a mode 0:08:19.440,0:08:23.199 that's convenient for 0:08:21.360,0:08:25.039 this particular application which is 0:08:23.199,0:08:28.960 editing lisp code 0:08:25.039,0:08:31.039 and that is in this case symmex mode 0:08:28.960,0:08:32.640 so typically when you're editing code 0:08:31.039,0:08:34.800 like this you'd want to be 0:08:32.640,0:08:36.640 in insert mode actually typing out the 0:08:34.800,0:08:38.320 code 0:08:36.640,0:08:40.959 and then you'd want to escape to simex 0:08:38.320,0:08:42.159 mode rather than normal mode 0:08:40.959,0:08:44.080 and then you could escape again and 0:08:42.159,0:08:46.720 you'd end up in normal mode 0:08:44.080,0:08:48.000 so this if we go to mode mode we see is 0:08:46.720,0:08:51.040 depicted 0:08:48.000,0:08:52.800 as this tower where insert is at the 0:08:51.040,0:08:54.800 bottom and normal is at the top but 0:08:52.800,0:08:57.200 symmex mode is in between 0:08:54.800,0:08:58.800 the two you could also change that if 0:08:57.200,0:09:00.640 you like if you don't want cmx mode to 0:08:58.800,0:09:03.760 be there you could just 0:09:00.640,0:09:05.600 move it to the top and now you find some 0:09:03.760,0:09:06.160 mixes at the top and you enter down to 0:09:05.600,0:09:07.600 normal 0:09:06.160,0:09:10.480 you can see it on the status bar at the 0:09:07.600,0:09:13.839 bottom there enter to insert 0:09:10.480,0:09:16.480 escape to normal escape to symmex and 0:09:13.839,0:09:19.380 in fact you can even add more modes if 0:09:16.480,0:09:21.519 you don't like the existing ones 0:09:19.380,0:09:23.839 [Music] 0:09:21.519,0:09:25.440 and now we have an additional mode here 0:09:23.839,0:09:27.519 we have window mode it goes down to 0:09:25.440,0:09:30.320 symmex goes down to normal 0:09:27.519,0:09:33.600 enter the insert escape to normal escape 0:09:30.320,0:09:37.600 to smx escape the window 0:09:33.600,0:09:41.760 um so we've talked okay so another thing 0:09:37.600,0:09:45.360 actually to note here is that in editing 0:09:41.760,0:09:46.720 modes um 0:09:45.360,0:09:48.399 if you look at the mode line at the 0:09:46.720,0:09:50.640 bottom of the screen 0:09:48.399,0:09:51.519 you'll see that we are currently in this 0:09:50.640,0:09:54.560 buffer 0:09:51.519,0:09:57.600 we are currently in line mode 0:09:54.560,0:09:58.720 and I'm going to hit enter now and 0:09:57.600,0:10:01.519 you'll see that when I hit 0:09:58.720,0:10:02.160 enter nothing is happening it's still in 0:10:01.519,0:10:05.120 line mode 0:10:02.160,0:10:07.200 if you'd escape it's still in line mode 0:10:05.120,0:10:10.640 and you can find out the reason for that 0:10:07.200,0:10:12.800 by taking another meta jump out of this 0:10:10.640,0:10:15.279 and you'll see that in fact the reason 0:10:12.800,0:10:17.360 is that we're currently in line mode 0:10:15.279,0:10:19.519 and line mode is the only one available 0:10:17.360,0:10:21.760 in this tower 0:10:19.519,0:10:24.880 for editing the modes that are in 0:10:21.760,0:10:26.560 operation in your ground level 0:10:24.880,0:10:28.320 and in fact line mode is all you need 0:10:26.560,0:10:30.320 here because this is just 0:10:28.320,0:10:32.079 uh the nature of how these modes are 0:10:30.320,0:10:35.040 laid out is 0:10:32.079,0:10:36.399 in in rows and so line mode is the most 0:10:35.040,0:10:37.680 appropriate thing here 0:10:36.399,0:10:39.740 but you could change it to something 0:10:37.680,0:10:40.959 else if you like 0:10:39.740,0:10:44.160 [Music] 0:10:40.959,0:10:44.560 and then now we've seen two towers we've 0:10:44.160,0:10:48.079 seen 0:10:44.560,0:10:53.680 the vim tower and we've seen 0:10:48.079,0:10:56.959 also the symex tower the the lisp tower 0:10:53.680,0:10:58.880 and it turns out that because we've been 0:10:56.959,0:11:01.519 talking about towers now 0:10:58.880,0:11:02.800 by the rumpelstiltskin principle towers 0:11:01.519,0:11:06.399 also 0:11:02.800,0:11:09.279 um can be talked about 0:11:06.399,0:11:11.200 and therefore they also are a mode so 0:11:09.279,0:11:14.640 how do we go to tower mode 0:11:11.200,0:11:18.560 and the way we go tower mode is we do 0:11:14.640,0:11:18.560 we go in a slightly different direction 0:11:19.200,0:11:23.120 and we find that we are now in tower 0:11:20.800,0:11:23.120 mode 0:11:23.360,0:11:29.279 and we see that there are many towers 0:11:27.440,0:11:32.640 available so we're now 0:11:29.279,0:11:36.240 we're we're seeing several possible 0:11:32.640,0:11:39.120 towers that we have written 0:11:36.240,0:11:41.440 um to be available and for use in 0:11:39.120,0:11:44.000 different buffers and you can edit them 0:11:41.440,0:11:46.320 on the fly for instance let's enter this 0:11:44.000,0:11:46.320 tower 0:11:46.630,0:11:49.920 [Music] 0:11:48.000,0:11:51.519 and now you see that in the bottom of 0:11:49.920,0:11:52.480 the in the mode line you see that we're 0:11:51.519,0:11:54.240 going 0:11:52.480,0:11:56.480 across all of these different modes that 0:11:54.240,0:11:58.800 were in the tower 0:11:56.480,0:12:00.399 and you could escape and you could even 0:11:58.800,0:12:00.880 move things around you could put window 0:12:00.399,0:12:02.399 mode 0:12:00.880,0:12:04.079 all the way at the bottom right above 0:12:02.399,0:12:06.880 insert mode 0:12:04.079,0:12:09.839 let's see that happen there it is window 0:12:06.880,0:12:13.040 is right above insert 0:12:09.839,0:12:14.240 so on and the tower always reflects your 0:12:13.040,0:12:15.760 current position 0:12:14.240,0:12:17.600 so if you're in buffer mode here and you 0:12:15.760,0:12:19.120 go down to line mode 0:12:17.600,0:12:22.240 when you go back to mode mode you see 0:12:19.120,0:12:22.240 that we are in line mode 0:12:22.480,0:12:26.160 but in practice you wouldn't have a 0:12:24.000,0:12:28.959 tower this elaborate because 0:12:26.160,0:12:29.440 you'd rather have several smaller towers 0:12:28.959,0:12:33.360 you 0:12:29.440,0:12:36.639 enter that you alternate between 0:12:33.360,0:12:39.839 um okay so one 0:12:36.639,0:12:42.240 other thing of interest here is that 0:12:39.839,0:12:43.839 when you're in tower mode 0:12:42.240,0:12:45.920 if you look at the status line at the 0:12:43.839,0:12:49.200 bottom there we are currently 0:12:45.920,0:12:49.839 in buffer mode while we are in tower 0:12:49.200,0:12:51.600 mode 0:12:49.839,0:12:53.519 and tower mode actually isn't a mode 0:12:51.600,0:12:53.920 really neither is mode mode they're 0:12:53.519,0:12:58.000 really 0:12:53.920,0:13:00.959 referential planes or meta planes 0:12:58.000,0:13:03.120 um in any case you can see that we're in 0:13:00.959,0:13:04.560 buffer mode and we can take a meta jump 0:13:03.120,0:13:07.120 out of this to confirm 0:13:04.560,0:13:08.000 that buffer mode is the only mode 0:13:07.120,0:13:10.560 available 0:13:08.000,0:13:11.200 when we're editing towers because that's 0:13:10.560,0:13:14.240 the one 0:13:11.200,0:13:15.200 we need given that our towers are 0:13:14.240,0:13:21.839 represented 0:13:15.200,0:13:21.839 in individual buffers 0:13:23.200,0:13:26.320 right so let's uh let's see where we're 0:13:26.000,0:13:28.240 at 0:13:26.320,0:13:30.160 trump's still skin principle we talked 0:13:28.240,0:13:32.240 about mode mode 0:13:30.160,0:13:33.920 um we talked about the strange loop 0:13:32.240,0:13:37.820 application of 0:13:33.920,0:13:39.600 ground level modes in meta levels 0:13:37.820,0:13:42.240 [Music] 0:13:39.600,0:13:43.199 and yeah we saw the different towers and 0:13:42.240,0:13:46.639 in fact 0:13:43.199,0:13:49.839 you can we're currently in 0:13:46.639,0:13:49.839 vim tower 0:13:50.720,0:13:54.720 where you can go to Emacs tower and now 0:13:53.120,0:13:55.760 with a single keystroke you can 0:13:54.720,0:13:59.040 alternate 0:13:55.760,0:14:02.399 between e-max 0:13:59.040,0:14:05.519 and vim which are represented which are 0:14:02.399,0:14:07.839 modeled as towers 0:14:05.519,0:14:07.839 um 0:14:09.279,0:14:11.920 okay so 0:14:13.360,0:14:17.040 so there's uh the one thing that we've 0:14:15.360,0:14:18.160 sort of alluded to is that there are two 0:14:17.040,0:14:20.480 directions 0:14:18.160,0:14:22.399 that you can travel in when you're going 0:14:20.480,0:14:25.120 through this framework 0:14:22.399,0:14:32.560 one lev one direction is uh and we'll 0:14:25.120,0:14:32.560 visualize it with uh like so 0:14:33.760,0:14:37.040 there's two directions you can travel 0:14:35.120,0:14:38.399 and you can either go sideways or you 0:14:37.040,0:14:40.399 can go up and down 0:14:38.399,0:14:41.680 if you go sideways you're changing your 0:14:40.399,0:14:45.440 perspective 0:14:41.680,0:14:47.360 so normal mode word mode line mode 0:14:45.440,0:14:49.120 window mode and so on are all different 0:14:47.360,0:14:51.680 perspectives on your under on your 0:14:49.120,0:14:53.040 ground editing experience 0:14:51.680,0:14:55.519 and the other direction you can travel 0:14:53.040,0:14:57.920 in is up or down which takes you 0:14:55.519,0:14:59.600 through meta levels so you go from the 0:14:57.920,0:15:01.920 ground level editing experience 0:14:59.600,0:15:03.440 up to mode mode and then up to the tower 0:15:01.920,0:15:07.040 plane and so on 0:15:03.440,0:15:10.800 or uh yeah and so on 0:15:07.040,0:15:14.880 um yeah so this all sounds 0:15:10.800,0:15:18.160 very complex but the truth is 0:15:14.880,0:15:21.519 it's not really that complicated 0:15:18.160,0:15:22.959 even though it feels that way the reason 0:15:21.519,0:15:26.480 it isn't that complicated 0:15:22.959,0:15:28.800 is because no matter how many levels 0:15:26.480,0:15:30.160 up or down you go and no matter where 0:15:28.800,0:15:32.399 you are 0:15:30.160,0:15:34.079 whether you're in at the ground level 0:15:32.399,0:15:36.000 editing the actual text 0:15:34.079,0:15:37.600 or whether you're at a meta level some 0:15:36.000,0:15:39.279 unknown meta level and you don't know 0:15:37.600,0:15:42.320 where you are 0:15:39.279,0:15:44.399 no matter where you are the way in which 0:15:42.320,0:15:47.519 you interact with it 0:15:44.399,0:15:52.000 is the same at every level 0:15:47.519,0:15:55.440 and that is the great power of um 0:15:52.000,0:15:58.720 this approach is that 0:15:55.440,0:16:00.880 all of the different levels um are the 0:15:58.720,0:16:03.839 same 0:16:00.880,0:16:05.759 and in fact the complexity of the whole 0:16:03.839,0:16:08.720 is exactly identical to the 0:16:05.759,0:16:10.000 complexity of each part so if you know 0:16:08.720,0:16:12.959 how to edit words 0:16:10.000,0:16:13.440 in the ground level buffer and you know 0:16:12.959,0:16:15.839 how to move 0:16:13.440,0:16:16.720 lines around using line mode then you 0:16:15.839,0:16:19.519 know how to edit 0:16:16.720,0:16:22.800 any aspect of your editing experience at 0:16:19.519,0:16:23.310 any level 0:16:22.800,0:16:26.240 so 0:16:23.310,0:16:28.480 [Music] 0:16:26.240,0:16:28.480 um 0:16:30.079,0:16:33.839 so this is a pre-release demo this 0:16:32.000,0:16:36.880 doesn't exist on melpa 0:16:33.839,0:16:40.079 yet but you can follow updates um 0:16:36.880,0:16:44.079 at this repo on github 0:16:40.079,0:16:45.199 and if you can also be a beta tester or 0:16:44.079,0:16:46.000 something like that if you like that 0:16:45.199,0:16:49.199 would be very 0:16:46.000,0:16:50.560 uh helpful and you can learn more about 0:16:49.199,0:16:53.920 this at 0:16:50.560,0:16:55.920 dream.org which is where I house 0:16:53.920,0:16:57.279 the research that I work on and in 0:16:55.920,0:17:00.800 particular 0:16:57.279,0:17:03.600 the research on epistemic levels is what 0:17:00.800,0:17:06.480 inspired this particular Emacs extension 0:17:03.600,0:17:08.480 you can also learn about dialectical 0:17:06.480,0:17:10.880 inheritance attribution which is the 0:17:08.480,0:17:14.559 basis of 0:17:10.880,0:17:16.959 a new economic system that could be fair 0:17:14.559,0:17:19.439 and could lead to a prosperous and happy 0:17:16.959,0:17:22.799 world 0:17:19.439,0:17:26.319 and um yeah you can follow me on 0:17:22.799,0:17:31.919 twitter at countwajoula and 0:17:26.319,0:17:31.919 that's it thank you