summaryrefslogtreecommitdiffstats
path: root/2020/subtitles/emacsconf-2020--07-beyond-vim-and-emacs-a-scalable-ui-paradigm--sid-kasivajhu...
diff options
context:
space:
mode:
authorSacha Chua <sacha@sachachua.com>2020-12-13 01:35:03 -0500
committerSacha Chua <sacha@sachachua.com>2020-12-13 01:35:03 -0500
commita835a2b017829395cba32e3fc2dc19a51f32cf69 (patch)
tree6c767ef050f8fedcec59cd8ab0fcb84bc96a16f0 /2020/subtitles/emacsconf-2020--07-beyond-vim-and-emacs-a-scalable-ui-paradigm--sid-kasivajhula.vtt
parent72e48bc52524672fc6179d1f45f091df76cd2e02 (diff)
downloademacsconf-wiki-a835a2b017829395cba32e3fc2dc19a51f32cf69.tar.xz
emacsconf-wiki-a835a2b017829395cba32e3fc2dc19a51f32cf69.zip
Add subtitles for talk07
Diffstat (limited to '2020/subtitles/emacsconf-2020--07-beyond-vim-and-emacs-a-scalable-ui-paradigm--sid-kasivajhula.vtt')
-rw-r--r--2020/subtitles/emacsconf-2020--07-beyond-vim-and-emacs-a-scalable-ui-paradigm--sid-kasivajhula.vtt1285
1 files changed, 1285 insertions, 0 deletions
diff --git a/2020/subtitles/emacsconf-2020--07-beyond-vim-and-emacs-a-scalable-ui-paradigm--sid-kasivajhula.vtt b/2020/subtitles/emacsconf-2020--07-beyond-vim-and-emacs-a-scalable-ui-paradigm--sid-kasivajhula.vtt
new file mode 100644
index 00000000..14913a32
--- /dev/null
+++ b/2020/subtitles/emacsconf-2020--07-beyond-vim-and-emacs-a-scalable-ui-paradigm--sid-kasivajhula.vtt
@@ -0,0 +1,1285 @@
+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
+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 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: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. 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
+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.
+
+00:03:08.319 --> 00:03:11.120
+They compete for space on the
+
+00:03:11.120 --> 00:03:12.720
+keyboard.
+
+00:03:12.720 --> 00:03:15.760
+An alternative
+
+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
+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
+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
+It's the same keystrokes, different
+
+00:03:57.519 --> 00:03:59.120
+contexts.
+
+00:03:59.120 --> 00:04:01.360
+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:15.439
+mode 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
+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. 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... 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. 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 lines
+
+00:04:54.240 --> 00:04:57.520
+up and down left and right and so on.
+
+00:04:59.120 --> 00:05:00.880
+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. You can
+
+00:05:12.400 --> 00:05:15.759
+move spatially amongst the windows or
+
+00:05:15.759 --> 00:05:17.520
+do transformations on the windows
+
+00:05:17.520 --> 00:05:20.850
+using the same keystrokes.
+
+00:05:25.360 --> 00:05:28.720
+So let's go to...
+
+00:05:28.720 --> 00:05:32.800
+Right. One of the things,
+
+00:05:32.800 --> 00:05:35.280
+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.
+
+00:05:40.720 --> 00:05:42.320
+If you can name something, then
+
+00:05:43.759 --> 00:05:46.720
+you have power over it. 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:55.360 --> 00:05:56.960
+in your editing language. 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. 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. In fact,
+
+00:06:10.800 --> 00:06:14.240
+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
+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
+
+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
+present in the buffer,
+
+00:06:40.960 --> 00:06:44.880
+which we knew about 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 to.
+
+00:06:53.039 --> 00:06:57.280
+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. 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 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:24.240 --> 00:07:27.360
+Lisp code (or code in general, but
+
+00:07:27.360 --> 00:07:30.880
+Lisp 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. For Lisp code in particular,
+
+00:07:37.599 --> 00:07:40.960
+we have a mode called symex-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: hjkl
+
+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
+You can run the code.
+
+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
+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
+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, symex-mode.
+
+00:08:28.960 --> 00:08:31.039
+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 symex
+
+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
+symex-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 symex-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. Now you find symex is
+
+00:09:03.760 --> 00:09:05.600
+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 symex.
+
+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:21.519 --> 00:09:23.839
+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
+symex, it 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 symex, escape to window.
+
+00:09:33.600 --> 00:09:37.600
+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,
+
+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
+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 hit Escape, it's still in line mode.
+
+00:10:05.120 --> 00:10:07.200
+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
+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
+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
+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 rows. 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:40.959 --> 00:10:44.160
+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 Lisp tower.
+
+00:10:53.680 --> 00:10:56.959
+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
+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
+The way we go to tower mode is
+
+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
+We see that there are many towers
+
+00:11:27.440 --> 00:11:29.279
+available. We're now...
+
+00:11:29.279 --> 00:11:32.640
+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
+to be available and for use in
+
+00:11:39.120 --> 00:11:41.440
+different buffers. 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:48.000 --> 00:11:49.920
+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
+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, and
+
+00:12:09.839 --> 00:12:13.040
+so on. 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 enter,
+
+00:12:29.440 --> 00:12:33.360
+that you alternate between.
+
+00:12:33.360 --> 00:12:36.639
+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
+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
+In any case, you can see that we're in
+
+00:13:00.959 --> 00:13:03.120
+buffer mode. 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 see where we're
+
+00:13:26.000 --> 00:13:26.320
+at.
+
+00:13:26.320 --> 00:13:28.240
+Rumpelstiltskin principle... We talked
+
+00:13:28.240 --> 00:13:30.160
+about mode mode.
+
+00:13:30.160 --> 00:13:32.240
+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:39.600 --> 00:13:42.240
+We saw the different towers, and
+
+00:13:42.240 --> 00:13:43.199
+in fact,
+
+00:13:43.199 --> 00:13:46.639
+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. 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 Emacs
+
+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:13.360 --> 00:14:15.360
+So there's... 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 direction is--and we'll
+
+00:14:25.120 --> 00:14:33.760
+visualize it 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
+
+00:14:49.120 --> 00:14:51.680
+ground editing experience.
+
+00:14:51.680 --> 00:14:53.040
+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
+and so on.
+
+00:15:07.040 --> 00:15:10.800
+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
+That is the great power of
+
+00:15:52.000 --> 00:15:55.440
+this approach: that
+
+00:15:55.440 --> 00:15:58.720
+all of the different levels are the
+
+00:15:58.720 --> 00:16:00.880
+same.
+
+00:16:00.880 --> 00:16:03.839
+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: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
+
+00:16:36.880 --> 00:16:40.079
+at this repo on github.
+
+00:16:40.079 --> 00:16:44.079
+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
+helpful. You can learn more about
+
+00:16:49.199 --> 00:16:50.560
+this at
+
+00:16:50.560 --> 00:16:53.920
+drym.org, which is where I house
+
+00:16:53.920 --> 00:16:55.920
+the research that I work on. 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
+You can follow me on
+
+00:17:22.799 --> 00:17:26.319
+Twitter at @countvajhula.
+
+00:17:26.319 --> 00:17:31.919
+That's it! Thank you.