summaryrefslogtreecommitdiffstats
path: root/2020/info/07.md
diff options
context:
space:
mode:
Diffstat (limited to '2020/info/07.md')
-rw-r--r--2020/info/07.md325
1 files changed, 323 insertions, 2 deletions
diff --git a/2020/info/07.md b/2020/info/07.md
index f4f793e..1b9e093 100644
--- a/2020/info/07.md
+++ b/2020/info/07.md
@@ -1,8 +1,9 @@
# Beyond Vim and Emacs: A Scalable UI Paradigm
Sid Kasivajhula
-[[!template id=vid src="https://mirror.csclub.uwaterloo.ca/emacsconf/2020/emacsconf-2020--07-beyond-vim-and-emacs-a-scalable-ui-paradigm--sid-kasivajhula.webm" subtitles="/2020/subtitles/emacsconf-2020--07-beyond-vim-and-emacs-a-scalable-ui-paradigm--sid-kasivajhula.vtt" size="161MB"]]
-[Download compressed .webm video (45.1M)](https://mirror.csclub.uwaterloo.ca/emacsconf/2020/smaller/emacsconf-2020--07-beyond-vim-and-emacs-a-scalable-ui-paradigm--sid-kasivajhula--vp9-q56-video-original-audio.webm)
+[[!template id=vid vidid="mainVideo" src="https://mirror.csclub.uwaterloo.ca/emacsconf/2020/emacsconf-2020--07-beyond-vim-and-emacs-a-scalable-ui-paradigm--sid-kasivajhula.webm" subtitles="/2020/subtitles/emacsconf-2020--07-beyond-vim-and-emacs-a-scalable-ui-paradigm--sid-kasivajhula.vtt" size="161MB"]]
+[Download compressed .webm video (45.1M)](https://mirror.csclub.uwaterloo.ca/emacsconf/2020/smaller/emacsconf-2020--07-beyond-vim-and-emacs-a-scalable-ui-paradigm--sid-kasivajhula--vp9-q56-video-original-audio.webm)
+[View transcript](#transcript)
[[!template id=vid src="https://mirror.csclub.uwaterloo.ca/emacsconf/2020/emacsconf-2020--07-beyond-vim-and-emacs-a-scalable-ui-paradigm--questions--sid-kasivajhula.webm" subtitles="/2020/subtitles/emacsconf-2020--07-beyond-vim-and-emacs-a-scalable-ui-paradigm--questions--sid-kasivajhula.vtt" size="40MB"]]
[Download compressed .webm video (5M)](https://mirror.csclub.uwaterloo.ca/emacsconf/2020/smaller/emacsconf-2020--07-beyond-vim-and-emacs-a-scalable-ui-paradigm--questions--sid-kasivajhula--vp9-q56-video-original-audio.webm)
@@ -196,3 +197,323 @@ green phosphor.
epistemic-mode, now called rigpa (concept in Tibetan Buddhism, in
Dzogchen teaching, or the great completion).
- Similar idea from <http://emacs-versor.sourceforge.net>
+
+<a name="transcript"></a>
+# Transcript
+
+[[!template new="1" text="&quot;Far away in the heavenly abode" start="00:00:02.960" video="mainVideo" id=subtitle]]
+[[!template text="of the great god Indra," start="00:00:04.644" video="mainVideo" id=subtitle]]
+[[!template text="there is a wonderful net" start="00:00:06.560" video="mainVideo" id=subtitle]]
+[[!template text="which has been hung by some cunning artificer" start="00:00:07.688" video="mainVideo" id=subtitle]]
+[[!template text="in such a manner that it stretches out" start="00:00:10.160" video="mainVideo" id=subtitle]]
+[[!template text="infinitely in all directions." start="00:00:12.080" video="mainVideo" id=subtitle]]
+[[!template text="In accordance with the extravagant tastes of deities," start="00:00:14.320" video="mainVideo" id=subtitle]]
+[[!template text="the artificer has hung" start="00:00:16.938" video="mainVideo" id=subtitle]]
+[[!template text="a single glittering jewel" start="00:00:18.240" video="mainVideo" id=subtitle]]
+[[!template text="in each eye of the net," start="00:00:20.277" video="mainVideo" id=subtitle]]
+[[!template text="and since the net itself is infinite," start="00:00:22.080" video="mainVideo" id=subtitle]]
+[[!template text="the jewels are infinite in number." start="00:00:23.859" video="mainVideo" id=subtitle]]
+[[!template text="There hang the jewels," start="00:00:26.480" video="mainVideo" id=subtitle]]
+[[!template text="glittering like stars in the first magnitude," start="00:00:27.642" video="mainVideo" id=subtitle]]
+[[!template text="a wonderful sight to behold." start="00:00:30.480" video="mainVideo" id=subtitle]]
+[[!template text="Were we to select one of these jewels for inspection," start="00:00:32.681" video="mainVideo" id=subtitle]]
+[[!template text="we would discover that in its polished surface" start="00:00:35.680" video="mainVideo" id=subtitle]]
+[[!template text="there are reflected" start="00:00:38.216" video="mainVideo" id=subtitle]]
+[[!template text="all the other jewels in the net," start="00:00:39.520" video="mainVideo" id=subtitle]]
+[[!template text="infinite in number." start="00:00:41.451" video="mainVideo" id=subtitle]]
+[[!template text="If we look still more closely," start="00:00:43.360" video="mainVideo" id=subtitle]]
+[[!template text="we would see that each of the jewels reflected in this one jewel" start="00:00:45.140" video="mainVideo" id=subtitle]]
+[[!template text="reflects all the others.&quot;" start="00:00:48.960" video="mainVideo" id=subtitle]]
+[[!template text="This is the metaphor of Indra's Net," start="00:00:51.264" video="mainVideo" id=subtitle]]
+[[!template text="which is told in some schools of philosophy." start="00:00:54.000" video="mainVideo" id=subtitle]]
+[[!template text="Let's keep this metaphor in mind," start="00:00:57.615" video="mainVideo" id=subtitle]]
+[[!template text="because it'll help us understand" start="00:01:00.160" video="mainVideo" id=subtitle]]
+[[!template text="the Emacs extension that we're about to discuss." start="00:01:01.773" video="mainVideo" id=subtitle]]
+[[!template new="1" text="In editing text, there's two main paradigms:" start="00:01:06.960" video="mainVideo" id=subtitle]]
+[[!template text="one is editing at the ground level," start="00:01:12.810" video="mainVideo" id=subtitle]]
+[[!template text="where the characters that we type" start="00:01:16.880" video="mainVideo" id=subtitle]]
+[[!template text="actually appear on the screen," start="00:01:19.439" video="mainVideo" id=subtitle]]
+[[!template text="the changes we make actually occur." start="00:01:22.159" video="mainVideo" id=subtitle]]
+[[!template text="The other editing paradigm" start="00:01:28.479" video="mainVideo" id=subtitle]]
+[[!template text="is where we escape to a higher level" start="00:01:30.126" video="mainVideo" id=subtitle]]
+[[!template text="and now the characters that we type are not..." start="00:01:33.439" video="mainVideo" id=subtitle]]
+[[!template text="They don't actually appear on the screen" start="00:01:36.479" video="mainVideo" id=subtitle]]
+[[!template text="because we're not at the ground level with the text," start="00:01:39.040" video="mainVideo" id=subtitle]]
+[[!template text="we are at a higher level" start="00:01:42.748" video="mainVideo" id=subtitle]]
+[[!template text="looking down at the text" start="00:01:44.799" video="mainVideo" id=subtitle]]
+[[!template text="and regarding the text," start="00:01:48.479" video="mainVideo" id=subtitle]]
+[[!template text="referring to this world of text in terms of a language." start="00:01:50.773" video="mainVideo" id=subtitle]]
+[[!template new="1" text="For instance, we could describe this" start="00:01:56.159" video="mainVideo" id=subtitle]]
+[[!template text="world as having words and paragraphs and sentences and lines and so on." start="00:01:57.920" video="mainVideo" id=subtitle]]
+[[!template text="We could reason about this text" start="00:02:03.404" video="mainVideo" id=subtitle]]
+[[!template text="in terms of these textual entities and this textual language." start="00:02:05.985" video="mainVideo" id=subtitle]]
+[[!template text="This is the second paradigm of text editing." start="00:02:13.120" video="mainVideo" id=subtitle]]
+[[!template text="When we're in the second paradigm," start="00:02:18.640" video="mainVideo" id=subtitle]]
+[[!template text="there is a way to go down to ground level." start="00:02:22.800" video="mainVideo" id=subtitle]]
+[[!template text="You hit Enter now--or we'll hit Enter to go down to the ground level," start="00:02:25.304" video="mainVideo" id=subtitle]]
+[[!template text="and you can hit Escape" start="00:02:28.997" video="mainVideo" id=subtitle]]
+[[!template text="to go back out to the referential level." start="00:02:30.480" video="mainVideo" id=subtitle]]
+[[!template text="Enter to go down to ground level" start="00:02:33.200" video="mainVideo" id=subtitle]]
+[[!template text="and Escape to go up to the referential level." start="00:02:35.200" video="mainVideo" id=subtitle]]
+[[!template new="1" text="Now, in Vim, the nouns in this world of text" start="00:02:40.160" video="mainVideo" id=subtitle]]
+[[!template text="all share the same referential plane which we call normal mode." start="00:02:47.565" video="mainVideo" id=subtitle]]
+[[!template text="So in normal mode, all of the nouns" start="00:02:52.319" video="mainVideo" id=subtitle]]
+[[!template text="of the world of text are available," start="00:02:54.959" video="mainVideo" id=subtitle]]
+[[!template text="whether it's words or sentences or paragraphs," start="00:02:57.360" video="mainVideo" id=subtitle]]
+[[!template text="and they all share this same referential plane." start="00:03:00.959" video="mainVideo" id=subtitle]]
+[[!template text="They compete for space on the keyboard." start="00:03:08.319" video="mainVideo" id=subtitle]]
+[[!template new="1" text="An alternative way to structure these modes is" start="00:03:12.720" video="mainVideo" id=subtitle]]
+[[!template text="instead of having a single mode where all the nouns coexist," start="00:03:17.037" video="mainVideo" id=subtitle]]
+[[!template text="peacefully or otherwise," start="00:03:21.840" video="mainVideo" id=subtitle]]
+[[!template text="you instead have a dedicated mode for every noun." start="00:03:24.005" video="mainVideo" id=subtitle]]
+[[!template text="In that case, what happens is" start="00:03:30.400" video="mainVideo" id=subtitle]]
+[[!template text="because your modal spaces are now much smaller," start="00:03:32.540" video="mainVideo" id=subtitle]]
+[[!template text="you're just talking about words or paragraphs or lines or something," start="00:03:35.440" video="mainVideo" id=subtitle]]
+[[!template text="the keys that you use" start="00:03:40.593" video="mainVideo" id=subtitle]]
+[[!template text="can be much more targeted." start="00:03:42.560" video="mainVideo" id=subtitle]]
+[[!template text="You can use the same keystrokes" start="00:03:45.760" video="mainVideo" id=subtitle]]
+[[!template text="in all of your modes and they would have" start="00:03:48.560" video="mainVideo" id=subtitle]]
+[[!template text="the same ideas behind them," start="00:03:50.400" video="mainVideo" id=subtitle]]
+[[!template text="but they would have different effects" start="00:03:51.845" video="mainVideo" id=subtitle]]
+[[!template text="depending on which context you're using." start="00:03:53.280" video="mainVideo" id=subtitle]]
+[[!template text="It's the same keystrokes, different contexts." start="00:03:55.519" video="mainVideo" id=subtitle]]
+[[!template text="The advantage of that is it's often easier to change context" start="00:03:59.120" video="mainVideo" id=subtitle]]
+[[!template text="than it is to learn new key bindings." start="00:04:04.244" video="mainVideo" id=subtitle]]
+[[!template new="1" text="So let's see an example of how that works." start="00:04:07.888" video="mainVideo" id=subtitle]]
+[[!template text="We go into character mode, and if you look at the mode line" start="00:04:11.289" video="mainVideo" id=subtitle]]
+[[!template text="at the bottom of the screen there," start="00:04:14.039" video="mainVideo" id=subtitle]]
+[[!template text="you'll see that we're in character mode." start="00:04:15.439" video="mainVideo" id=subtitle]]
+[[!template text="Now, when we move up, down, left, and right," start="00:04:18.720" video="mainVideo" id=subtitle]]
+[[!template text="we're moving by character." start="00:04:21.955" video="mainVideo" id=subtitle]]
+[[!template text="We can also transform the text," start="00:04:23.919" video="mainVideo" id=subtitle]]
+[[!template text="and the transformations occur in terms of character." start="00:04:28.088" video="mainVideo" id=subtitle]]
+[[!template text="You can also go into word mode." start="00:04:32.400" video="mainVideo" id=subtitle]]
+[[!template text="In word mode, the transformations that you do are on words." start="00:04:34.207" video="mainVideo" id=subtitle]]
+[[!template text="and you try... Your movement is also in terms of words." start="00:04:40.000" video="mainVideo" id=subtitle]]
+[[!template text="So that's the level of granularity that you have." start="00:04:43.440" video="mainVideo" id=subtitle]]
+[[!template text="You could also go to line mode." start="00:04:46.560" video="mainVideo" id=subtitle]]
+[[!template text="When you're in line mode," start="00:04:49.191" video="mainVideo" id=subtitle]]
+[[!template text="you go up and down by line," start="00:04:50.720" video="mainVideo" id=subtitle]]
+[[!template text="and you can move lines" start="00:04:52.901" video="mainVideo" id=subtitle]]
+[[!template text="up and down left and right and so on." start="00:04:54.240" video="mainVideo" id=subtitle]]
+[[!template text="The transformations you do are in" start="00:04:59.120" video="mainVideo" id=subtitle]]
+[[!template text="terms of lines." start="00:05:00.880" video="mainVideo" id=subtitle]]
+[[!template text="You could also go to window mode," start="00:05:02.800" video="mainVideo" id=subtitle]]
+[[!template text="where now the objects that you're referring to are windows." start="00:05:07.682" video="mainVideo" id=subtitle]]
+[[!template text="You can move spatially amongst the windows" start="00:05:11.695" video="mainVideo" id=subtitle]]
+[[!template text="or do transformations on the windows" start="00:05:15.578" video="mainVideo" id=subtitle]]
+[[!template text="using the same keystrokes." start="00:05:17.520" video="mainVideo" id=subtitle]]
+[[!template text="So let's go to..." start="00:05:25.360" video="mainVideo" id=subtitle]]
+[[!template new="1" text="Right. One of the things," start="00:05:28.720" video="mainVideo" id=subtitle]]
+[[!template text="the principles at play here" start="00:05:32.800" video="mainVideo" id=subtitle]]
+[[!template text="is something called the Rumpelstiltskin principle," start="00:05:35.114" video="mainVideo" id=subtitle]]
+[[!template text="which is something that's known in computer science." start="00:05:37.266" video="mainVideo" id=subtitle]]
+[[!template text="If you can name something," start="00:05:40.720" video="mainVideo" id=subtitle]]
+[[!template text="then you have power over it." start="00:05:42.113" video="mainVideo" id=subtitle]]
+[[!template text="This is kind of an adaptation of that principle" start="00:05:45.824" video="mainVideo" id=subtitle]]
+[[!template text="which says that if you can name something" start="00:05:48.560" video="mainVideo" id=subtitle]]
+[[!template text="and if you can talk about it," start="00:05:51.123" video="mainVideo" id=subtitle]]
+[[!template text="then it's a noun in your editing language." start="00:05:52.572" video="mainVideo" id=subtitle]]
+[[!template text="If it's a noun, then it has..." start="00:05:56.334" video="mainVideo" id=subtitle]]
+[[!template text="It's a mode. So if we can talk about it, it's a noun." start="00:05:58.960" video="mainVideo" id=subtitle]]
+[[!template text="If it's a noun, then it's a mode." start="00:06:02.319" video="mainVideo" id=subtitle]]
+[[!template new="1" text="One of the things we've been talking a lot about is modes." start="00:06:04.818" video="mainVideo" id=subtitle]]
+[[!template text="In fact, by this principle," start="00:06:08.919" video="mainVideo" id=subtitle]]
+[[!template text="modes also should be a mode." start="00:06:12.699" video="mainVideo" id=subtitle]]
+[[!template text="You should have a mode that can reason" start="00:06:17.280" video="mainVideo" id=subtitle]]
+[[!template text="in terms of modes as objects," start="00:06:19.039" video="mainVideo" id=subtitle]]
+[[!template text="just like you have modes" start="00:06:20.639" video="mainVideo" id=subtitle]]
+[[!template text="where you can reason in terms of" start="00:06:22.300" video="mainVideo" id=subtitle]]
+[[!template text="words or lines as objects." start="00:06:23.759" video="mainVideo" id=subtitle]]
+[[!template new="1" text="So let's do that. Let's go to mode mode." start="00:06:26.560" video="mainVideo" id=subtitle]]
+[[!template text="When you go to mode mode, you see that" start="00:06:30.479" video="mainVideo" id=subtitle]]
+[[!template text="the objects that are depicted here" start="00:06:34.000" video="mainVideo" id=subtitle]]
+[[!template text="are the modes that are present in the buffer," start="00:06:35.915" video="mainVideo" id=subtitle]]
+[[!template text="which we knew about because" start="00:06:40.960" video="mainVideo" id=subtitle]]
+[[!template text="the style of editing that we had in this buffer" start="00:06:44.500" video="mainVideo" id=subtitle]]
+[[!template text="was the Vim style of editing" start="00:06:46.797" video="mainVideo" id=subtitle]]
+[[!template text="where there's an insert mode at the ground level" start="00:06:48.720" video="mainVideo" id=subtitle]]
+[[!template text="and a normal mode that you can escape to." start="00:06:51.143" video="mainVideo" id=subtitle]]
+[[!template text="You insert, enter the ground level." start="00:06:53.039" video="mainVideo" id=subtitle]]
+[[!template text="Enter to the insert mode and escape to normal mode." start="00:06:57.280" video="mainVideo" id=subtitle]]
+[[!template text="When you look at the mode mode representation," start="00:07:01.352" video="mainVideo" id=subtitle]]
+[[!template text="you see that in fact that" start="00:07:04.647" video="mainVideo" id=subtitle]]
+[[!template text="is the structure that's depicted." start="00:07:06.160" video="mainVideo" id=subtitle]]
+[[!template text="But in different situations, you might find" start="00:07:10.479" video="mainVideo" id=subtitle]]
+[[!template text="that these modes are not the" start="00:07:14.080" video="mainVideo" id=subtitle]]
+[[!template text="ones that you want." start="00:07:16.080" video="mainVideo" id=subtitle]]
+[[!template text="You want something more tailored for the specific application." start="00:07:16.922" video="mainVideo" id=subtitle]]
+[[!template text="For instance, if you're editing Lisp code" start="00:07:20.880" video="mainVideo" id=subtitle]]
+[[!template text="(or code in general, but" start="00:07:25.065" video="mainVideo" id=subtitle]]
+[[!template text="Lisp code is a particular example)," start="00:07:27.360" video="mainVideo" id=subtitle]]
+[[!template text="you might want to take advantage" start="00:07:30.880" video="mainVideo" id=subtitle]]
+[[!template text="of the structure of the code." start="00:07:32.640" video="mainVideo" id=subtitle]]
+[[!template text="For Lisp code in particular," start="00:07:34.852" video="mainVideo" id=subtitle]]
+[[!template text="we have a mode called symex-mode" start="00:07:37.599" video="mainVideo" id=subtitle]]
+[[!template text="which is able to reason about your code" start="00:07:40.960" video="mainVideo" id=subtitle]]
+[[!template text="in terms of its tree structure." start="00:07:45.414" video="mainVideo" id=subtitle]]
+[[!template text="So you can use the same keystrokes: hjkl goes left, right, up, and down," start="00:07:47.919" video="mainVideo" id=subtitle]]
+[[!template text="but you also have other keystrokes that are more specialized to the application." start="00:07:52.397" video="mainVideo" id=subtitle]]
+[[!template text="You can run the code." start="00:07:58.080" video="mainVideo" id=subtitle]]
+[[!template text="We'll see that happen here in a minute." start="00:08:01.520" video="mainVideo" id=subtitle]]
+[[!template text="You can make changes to it really quickly" start="00:08:06.960" video="mainVideo" id=subtitle]]
+[[!template text="and see the effects of those changes." start="00:08:12.240" video="mainVideo" id=subtitle]]
+[[!template text="You're doing this all in a mode" start="00:08:18.000" video="mainVideo" id=subtitle]]
+[[!template text="that's convenient for this particular application," start="00:08:19.440" video="mainVideo" id=subtitle]]
+[[!template text="which is editing Lisp code," start="00:08:22.625" video="mainVideo" id=subtitle]]
+[[!template text="and that is, in this case, symex-mode." start="00:08:25.039" video="mainVideo" id=subtitle]]
+[[!template new="1" text="Typically, when you're editing code like this," start="00:08:28.960" video="mainVideo" id=subtitle]]
+[[!template text="you'd want to be in insert mode" start="00:08:31.631" video="mainVideo" id=subtitle]]
+[[!template text="actually typing out the code," start="00:08:33.435" video="mainVideo" id=subtitle]]
+[[!template text="and then you'd want to escape to symex mode rather than normal mode," start="00:08:36.640" video="mainVideo" id=subtitle]]
+[[!template text="and then you could escape again" start="00:08:40.959" video="mainVideo" id=subtitle]]
+[[!template text="and you'd end up in normal mode." start="00:08:42.021" video="mainVideo" id=subtitle]]
+[[!template text="So this, if we go to mode mode, we see is depicted" start="00:08:44.080" video="mainVideo" id=subtitle]]
+[[!template text="as this tower where insert is at the" start="00:08:48.000" video="mainVideo" id=subtitle]]
+[[!template text="bottom and normal is at the top," start="00:08:51.040" video="mainVideo" id=subtitle]]
+[[!template text="but symex-mode is in between the two." start="00:08:52.604" video="mainVideo" id=subtitle]]
+[[!template text="You could also change that if you like." start="00:08:55.305" video="mainVideo" id=subtitle]]
+[[!template text="If you don't want symex-mode to be there," start="00:08:57.551" video="mainVideo" id=subtitle]]
+[[!template text="you could just move it to the top." start="00:08:59.566" video="mainVideo" id=subtitle]]
+[[!template text="Now you find symex is at the top" start="00:09:02.187" video="mainVideo" id=subtitle]]
+[[!template text="and you enter down to normal." start="00:09:04.392" video="mainVideo" id=subtitle]]
+[[!template text="You can see it on the status bar at the bottom there." start="00:09:06.160" video="mainVideo" id=subtitle]]
+[[!template text="Enter to insert, escape to normal, escape to symex." start="00:09:08.848" video="mainVideo" id=subtitle]]
+[[!template text="In fact, you can even add more modes" start="00:09:13.839" video="mainVideo" id=subtitle]]
+[[!template text="if you don't like the existing ones." start="00:09:16.344" video="mainVideo" id=subtitle]]
+[[!template text="Now we have an additional mode here." start="00:09:21.519" video="mainVideo" id=subtitle]]
+[[!template text="We have window mode. It goes down to symex," start="00:09:23.839" video="mainVideo" id=subtitle]]
+[[!template text="it goes down to normal." start="00:09:25.855" video="mainVideo" id=subtitle]]
+[[!template text="Enter the insert, escape to normal," start="00:09:27.519" video="mainVideo" id=subtitle]]
+[[!template text="escape to symex, escape to window." start="00:09:29.919" video="mainVideo" id=subtitle]]
+[[!template new="1" text="So we've talked... Okay, so another thing actually to note here" start="00:09:33.600" video="mainVideo" id=subtitle]]
+[[!template text="is that in editing modes," start="00:09:41.232" video="mainVideo" id=subtitle]]
+[[!template text="if you look at the mode line" start="00:09:45.360" video="mainVideo" id=subtitle]]
+[[!template text="at the bottom of the screen," start="00:09:46.486" video="mainVideo" id=subtitle]]
+[[!template text="you'll see that we are currently," start="00:09:48.399" video="mainVideo" id=subtitle]]
+[[!template text="in this buffer," start="00:09:50.257" video="mainVideo" id=subtitle]]
+[[!template text="we are currently in line mode." start="00:09:51.519" video="mainVideo" id=subtitle]]
+[[!template text="I'm going to hit Enter now" start="00:09:54.560" video="mainVideo" id=subtitle]]
+[[!template text="and you'll see that when I hit Enter," start="00:09:57.296" video="mainVideo" id=subtitle]]
+[[!template text="nothing is happening." start="00:09:59.119" video="mainVideo" id=subtitle]]
+[[!template text="It's still in line mode." start="00:10:00.627" video="mainVideo" id=subtitle]]
+[[!template text="If you hit Escape, it's still in line mode." start="00:10:02.160" video="mainVideo" id=subtitle]]
+[[!template text="You can find out the reason for that" start="00:10:05.120" video="mainVideo" id=subtitle]]
+[[!template text="by taking another meta jump out of this." start="00:10:07.200" video="mainVideo" id=subtitle]]
+[[!template text="You'll see that, in fact, the reason" start="00:10:10.640" video="mainVideo" id=subtitle]]
+[[!template text="is that we're currently in line mode," start="00:10:12.800" video="mainVideo" id=subtitle]]
+[[!template text="and line mode is the only one available" start="00:10:15.279" video="mainVideo" id=subtitle]]
+[[!template text="in this tower" start="00:10:17.360" video="mainVideo" id=subtitle]]
+[[!template text="for editing the modes that are" start="00:10:19.519" video="mainVideo" id=subtitle]]
+[[!template text="in operation in your ground level." start="00:10:21.556" video="mainVideo" id=subtitle]]
+[[!template text="In fact, line mode is all you need here," start="00:10:24.880" video="mainVideo" id=subtitle]]
+[[!template text="because this is just the nature of how these modes are laid out is in rows." start="00:10:26.898" video="mainVideo" id=subtitle]]
+[[!template text="So line mode is the most appropriate thing here." start="00:10:32.796" video="mainVideo" id=subtitle]]
+[[!template text="But you could change it to something else if you like." start="00:10:36.399" video="mainVideo" id=subtitle]]
+[[!template new="1" text="Now we've seen two towers." start="00:10:40.959" video="mainVideo" id=subtitle]]
+[[!template text="We've seen the Vim tower and we've seen also the symex tower, the Lisp tower." start="00:10:43.659" video="mainVideo" id=subtitle]]
+[[!template text="It turns out that, because we've been talking about towers now," start="00:10:53.680" video="mainVideo" id=subtitle]]
+[[!template text="by the Rumpelstiltskin principle, towers also can be talked about," start="00:10:58.880" video="mainVideo" id=subtitle]]
+[[!template text="and therefore they also are a mode." start="00:11:06.399" video="mainVideo" id=subtitle]]
+[[!template text="So how do we go to tower mode?" start="00:11:09.127" video="mainVideo" id=subtitle]]
+[[!template text="The way we go to tower mode is" start="00:11:11.200" video="mainVideo" id=subtitle]]
+[[!template text="we go in a slightly different direction," start="00:11:14.640" video="mainVideo" id=subtitle]]
+[[!template text="and we find that we are now in tower mode." start="00:11:19.200" video="mainVideo" id=subtitle]]
+[[!template text="We see that there are many towers available. We're now..." start="00:11:23.360" video="mainVideo" id=subtitle]]
+[[!template text="We're seeing several possible towers" start="00:11:29.279" video="mainVideo" id=subtitle]]
+[[!template text="that we have written to be available and for use in different buffers." start="00:11:33.440" video="mainVideo" id=subtitle]]
+[[!template text="You can edit them on the fly." start="00:11:40.344" video="mainVideo" id=subtitle]]
+[[!template text="For instance, let's enter this tower." start="00:11:42.110" video="mainVideo" id=subtitle]]
+[[!template text="Now you see that in the bottom of the..." start="00:11:48.000" video="mainVideo" id=subtitle]]
+[[!template text="In the mode line, you see that we're" start="00:11:50.180" video="mainVideo" id=subtitle]]
+[[!template text="going across all of these different modes" start="00:11:51.519" video="mainVideo" id=subtitle]]
+[[!template text="that were in the tower." start="00:11:53.944" video="mainVideo" id=subtitle]]
+[[!template text="You could escape and you could even move things around." start="00:11:56.480" video="mainVideo" id=subtitle]]
+[[!template text="You could put window mode" start="00:11:59.724" video="mainVideo" id=subtitle]]
+[[!template text="all the way at the bottom," start="00:12:00.880" video="mainVideo" id=subtitle]]
+[[!template text="right above insert mode." start="00:12:02.573" video="mainVideo" id=subtitle]]
+[[!template text="Let's see that happen. There it is," start="00:12:04.079" video="mainVideo" id=subtitle]]
+[[!template text="window is right above insert, and so on." start="00:12:06.479" video="mainVideo" id=subtitle]]
+[[!template text="The tower always reflects your current position," start="00:12:10.444" video="mainVideo" id=subtitle]]
+[[!template text="so if you're in buffer mode here and you go down to line mode," start="00:12:14.240" video="mainVideo" id=subtitle]]
+[[!template text="when you go back to mode mode, you see that we are in line mode." start="00:12:17.600" video="mainVideo" id=subtitle]]
+[[!template text="But in practice, you wouldn't have a tower this elaborate" start="00:12:22.480" video="mainVideo" id=subtitle]]
+[[!template text="because you'd rather have several smaller towers you enter," start="00:12:25.620" video="mainVideo" id=subtitle]]
+[[!template text="that you alternate between." start="00:12:29.440" video="mainVideo" id=subtitle]]
+[[!template new="1" text="Okay. So one other thing of interest here is that" start="00:12:33.360" video="mainVideo" id=subtitle]]
+[[!template text="when you're in tower mode," start="00:12:39.839" video="mainVideo" id=subtitle]]
+[[!template text="if you look at the status line at the bottom there," start="00:12:42.240" video="mainVideo" id=subtitle]]
+[[!template text="we are currently in buffer mode while we are in tower mode." start="00:12:44.740" video="mainVideo" id=subtitle]]
+[[!template text="Tower mode actually isn't a mode really. Neither is mode mode." start="00:12:49.839" video="mainVideo" id=subtitle]]
+[[!template text="They're really referential planes or meta planes." start="00:12:53.151" video="mainVideo" id=subtitle]]
+[[!template text="In any case, you can see that we're in buffer mode." start="00:12:58.000" video="mainVideo" id=subtitle]]
+[[!template text="We can take a meta jump out of this" start="00:13:01.679" video="mainVideo" id=subtitle]]
+[[!template text="to confirm that buffer mode is the only mode available" start="00:13:03.840" video="mainVideo" id=subtitle]]
+[[!template text="when we're editing towers" start="00:13:08.000" video="mainVideo" id=subtitle]]
+[[!template text="because that's the one we need," start="00:13:09.664" video="mainVideo" id=subtitle]]
+[[!template text="given that our towers are represented in individual buffers." start="00:13:11.915" video="mainVideo" id=subtitle]]
+[[!template new="1" text="Right. So let's see where we're at." start="00:13:23.200" video="mainVideo" id=subtitle]]
+[[!template text="Rumpelstiltskin principle..." start="00:13:26.320" video="mainVideo" id=subtitle]]
+[[!template text="We talked about mode mode." start="00:13:27.785" video="mainVideo" id=subtitle]]
+[[!template text="We talked about the strange loop" start="00:13:30.160" video="mainVideo" id=subtitle]]
+[[!template text="application of ground level modes in meta levels." start="00:13:32.240" video="mainVideo" id=subtitle]]
+[[!template text="We saw the different towers," start="00:13:39.600" video="mainVideo" id=subtitle]]
+[[!template text="and in fact, we're currently in Vim tower," start="00:13:41.992" video="mainVideo" id=subtitle]]
+[[!template text="where you can go to Emacs tower." start="00:13:50.720" video="mainVideo" id=subtitle]]
+[[!template text="Now, with a single keystroke, you can" start="00:13:52.860" video="mainVideo" id=subtitle]]
+[[!template text="alternate between Emacs and Vim," start="00:13:54.720" video="mainVideo" id=subtitle]]
+[[!template text="which are represented--" start="00:13:59.695" video="mainVideo" id=subtitle]]
+[[!template text="which are modeled as towers." start="00:14:01.638" video="mainVideo" id=subtitle]]
+[[!template new="1" text="So there's... One thing" start="00:14:13.360" video="mainVideo" id=subtitle]]
+[[!template text="that we've sort of alluded to is that there are two directions" start="00:14:14.760" video="mainVideo" id=subtitle]]
+[[!template text="that you can travel in" start="00:14:18.160" video="mainVideo" id=subtitle]]
+[[!template text="when you're going through this framework." start="00:14:19.494" video="mainVideo" id=subtitle]]
+[[!template text="One direction is--and we'll visualize it like so..." start="00:14:22.399" video="mainVideo" id=subtitle]]
+[[!template text="There's two directions you can travel," start="00:14:33.760" video="mainVideo" id=subtitle]]
+[[!template text="and you can either go sideways or you" start="00:14:35.120" video="mainVideo" id=subtitle]]
+[[!template text="can go up and down." start="00:14:37.040" video="mainVideo" id=subtitle]]
+[[!template text="If you go sideways, you're changing your perspective." start="00:14:38.399" video="mainVideo" id=subtitle]]
+[[!template text="So normal mode, word mode, line mode," start="00:14:41.680" video="mainVideo" id=subtitle]]
+[[!template text="window mode, and so on" start="00:14:45.440" video="mainVideo" id=subtitle]]
+[[!template text="are all different perspectives on your ground editing experience." start="00:14:46.544" video="mainVideo" id=subtitle]]
+[[!template text="The other direction you can travel in" start="00:14:51.680" video="mainVideo" id=subtitle]]
+[[!template text="is up or down, which takes you through meta levels." start="00:14:53.265" video="mainVideo" id=subtitle]]
+[[!template text="So you go from the ground level editing experience," start="00:14:56.811" video="mainVideo" id=subtitle]]
+[[!template text="up to mode mode, and then up to the tower plane, and so on, and so on." start="00:14:59.600" video="mainVideo" id=subtitle]]
+[[!template new="1" text="So this all sounds very complex," start="00:15:07.040" video="mainVideo" id=subtitle]]
+[[!template text="but the truth is it's not really that complicated," start="00:15:12.568" video="mainVideo" id=subtitle]]
+[[!template text="even though it feels that way." start="00:15:18.160" video="mainVideo" id=subtitle]]
+[[!template text="The reason it isn't that complicated" start="00:15:20.699" video="mainVideo" id=subtitle]]
+[[!template text="is because no matter how many levels" start="00:15:22.959" video="mainVideo" id=subtitle]]
+[[!template text="up or down you go and no matter where you are," start="00:15:26.480" video="mainVideo" id=subtitle]]
+[[!template text="whether you're in at the ground level" start="00:15:30.160" video="mainVideo" id=subtitle]]
+[[!template text="editing the actual text" start="00:15:32.399" video="mainVideo" id=subtitle]]
+[[!template text="or whether you're at a meta level," start="00:15:34.079" video="mainVideo" id=subtitle]]
+[[!template text="some unknown meta level and you don't know where you are," start="00:15:35.802" video="mainVideo" id=subtitle]]
+[[!template text="no matter where you are," start="00:15:39.279" video="mainVideo" id=subtitle]]
+[[!template text="the way in which you interact with it" start="00:15:41.133" video="mainVideo" id=subtitle]]
+[[!template text="is the same at every level." start="00:15:44.399" video="mainVideo" id=subtitle]]
+[[!template text="That is the great power of this approach:" start="00:15:47.519" video="mainVideo" id=subtitle]]
+[[!template text="that all of the different levels are the same." start="00:15:54.751" video="mainVideo" id=subtitle]]
+[[!template text="In fact, the complexity of the whole" start="00:16:00.880" video="mainVideo" id=subtitle]]
+[[!template text="is exactly identical to" start="00:16:03.839" video="mainVideo" id=subtitle]]
+[[!template text="the complexity of each part," start="00:16:05.545" video="mainVideo" id=subtitle]]
+[[!template text="so if you know how to edit words" start="00:16:07.657" video="mainVideo" id=subtitle]]
+[[!template text="in the ground level buffer" start="00:16:10.000" video="mainVideo" id=subtitle]]
+[[!template text="and you know how to move lines around using line mode," start="00:16:12.048" video="mainVideo" id=subtitle]]
+[[!template text="then you know how to edit any aspect of your editing experience at any level." start="00:16:15.378" video="mainVideo" id=subtitle]]
+[[!template new="1" text="So this is a pre-release demo." start="00:16:30.079" video="mainVideo" id=subtitle]]
+[[!template text="This doesn't exist on MELPA yet, but you can follow updates at this repo on github." start="00:16:31.780" video="mainVideo" id=subtitle]]
+[[!template text="If you can also be a beta tester" start="00:16:40.079" video="mainVideo" id=subtitle]]
+[[!template text="or something like that, if you like, that would be very helpful." start="00:16:43.850" video="mainVideo" id=subtitle]]
+[[!template text="You can learn more about this at" start="00:16:46.775" video="mainVideo" id=subtitle]]
+[[!template text="drym.org, which is where I house" start="00:16:50.560" video="mainVideo" id=subtitle]]
+[[!template text="the research that I work on." start="00:16:53.920" video="mainVideo" id=subtitle]]
+[[!template text="In particular, the research on epistemic levels" start="00:16:55.726" video="mainVideo" id=subtitle]]
+[[!template text="is what inspired this particular Emacs extension." start="00:17:00.154" video="mainVideo" id=subtitle]]
+[[!template text="You can also learn about" start="00:17:03.600" video="mainVideo" id=subtitle]]
+[[!template text="dialectical inheritance attribution, which is the basis of" start="00:17:05.600" video="mainVideo" id=subtitle]]
+[[!template text="a new economic system that could be fair" start="00:17:10.880" video="mainVideo" id=subtitle]]
+[[!template text="and could lead to a prosperous and happy world." start="00:17:14.559" video="mainVideo" id=subtitle]]
+[[!template text="You can follow me on Twitter at @countvajhula." start="00:17:19.439" video="mainVideo" id=subtitle]]
+[[!template text="That's it! Thank you." start="00:17:26.319" video="mainVideo" id=subtitle]]