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