summaryrefslogtreecommitdiffstats
path: root/2023/info
diff options
context:
space:
mode:
Diffstat (limited to '2023/info')
-rw-r--r--2023/info/adventure-after.md115
-rw-r--r--2023/info/adventure-before.md14
-rw-r--r--2023/info/adventure-nav.md2
-rw-r--r--2023/info/collab-after.md403
-rw-r--r--2023/info/collab-before.md15
-rw-r--r--2023/info/collab-nav.md2
-rw-r--r--2023/info/core-after.md1564
-rw-r--r--2023/info/core-before.md12
-rw-r--r--2023/info/core-nav.md7
-rw-r--r--2023/info/cubing-after.md280
-rw-r--r--2023/info/cubing-before.md20
-rw-r--r--2023/info/cubing-nav.md4
-rw-r--r--2023/info/devel-after.md555
-rw-r--r--2023/info/devel-before.md6
-rw-r--r--2023/info/devel-nav.md6
-rw-r--r--2023/info/doc-after.md1141
-rw-r--r--2023/info/doc-before.md45
-rw-r--r--2023/info/doc-nav.md7
-rw-r--r--2023/info/eat-after.md89
-rw-r--r--2023/info/eat-before.md6
-rw-r--r--2023/info/eat-nav.md6
-rw-r--r--2023/info/emacsconf-after.md3129
-rw-r--r--2023/info/emacsconf-before.md31
-rw-r--r--2023/info/emacsconf-nav.md6
-rw-r--r--2023/info/emacsen-after.md1642
-rw-r--r--2023/info/emacsen-before.md25
-rw-r--r--2023/info/emacsen-nav.md6
-rw-r--r--2023/info/emms-after.md1312
-rw-r--r--2023/info/emms-before.md40
-rw-r--r--2023/info/emms-nav.md6
-rw-r--r--2023/info/eval-after.md213
-rw-r--r--2023/info/eval-before.md14
-rw-r--r--2023/info/eval-nav.md4
-rw-r--r--2023/info/extending-nav.md4
-rw-r--r--2023/info/flat-after.md256
-rw-r--r--2023/info/flat-before.md6
-rw-r--r--2023/info/flat-nav.md6
-rw-r--r--2023/info/gc-after.md599
-rw-r--r--2023/info/gc-before.md6
-rw-r--r--2023/info/gc-nav.md6
-rw-r--r--2023/info/hn-before.md8
-rw-r--r--2023/info/hn-nav.md4
-rw-r--r--2023/info/hyperamp-after.md1345
-rw-r--r--2023/info/hyperamp-before.md12
-rw-r--r--2023/info/hyperamp-nav.md4
-rw-r--r--2023/info/hyperdrive-after.md1305
-rw-r--r--2023/info/hyperdrive-before.md29
-rw-r--r--2023/info/hyperdrive-nav.md6
-rw-r--r--2023/info/koutline-after.md122
-rw-r--r--2023/info/koutline-before.md6
-rw-r--r--2023/info/koutline-nav.md4
-rw-r--r--2023/info/llm-after.md1111
-rw-r--r--2023/info/llm-before.md27
-rw-r--r--2023/info/llm-nav.md6
-rw-r--r--2023/info/lspocaml-after.md750
-rw-r--r--2023/info/lspocaml-before.md32
-rw-r--r--2023/info/lspocaml-nav.md6
-rw-r--r--2023/info/matplotllm-after.md211
-rw-r--r--2023/info/matplotllm-before.md13
-rw-r--r--2023/info/matplotllm-nav.md4
-rw-r--r--2023/info/mentor-after.md1745
-rw-r--r--2023/info/mentor-before.md12
-rw-r--r--2023/info/mentor-nav.md6
-rw-r--r--2023/info/nabokov-after.md495
-rw-r--r--2023/info/nabokov-before.md19
-rw-r--r--2023/info/nabokov-nav.md2
-rw-r--r--2023/info/one-after.md873
-rw-r--r--2023/info/one-before.md28
-rw-r--r--2023/info/one-nav.md4
-rw-r--r--2023/info/overlay-after.md672
-rw-r--r--2023/info/overlay-before.md40
-rw-r--r--2023/info/overlay-nav.md2
-rw-r--r--2023/info/parallel-after.md592
-rw-r--r--2023/info/parallel-before.md30
-rw-r--r--2023/info/parallel-nav.md4
-rw-r--r--2023/info/poltys-after.md2
-rw-r--r--2023/info/poltys-before.md6
-rw-r--r--2023/info/poltys-nav.md4
-rw-r--r--2023/info/ref-after.md280
-rw-r--r--2023/info/ref-before.md14
-rw-r--r--2023/info/ref-nav.md6
-rw-r--r--2023/info/repl-after.md1116
-rw-r--r--2023/info/repl-before.md22
-rw-r--r--2023/info/repl-nav.md4
-rw-r--r--2023/info/sat-close-after.md172
-rw-r--r--2023/info/sat-close-before.md12
-rw-r--r--2023/info/sat-close-nav.md2
-rw-r--r--2023/info/sat-open-after.md126
-rw-r--r--2023/info/sat-open-before.md6
-rw-r--r--2023/info/sat-open-nav.md4
-rw-r--r--2023/info/scheme-after.md365
-rw-r--r--2023/info/scheme-before.md30
-rw-r--r--2023/info/scheme-nav.md6
-rw-r--r--2023/info/sharing-after.md1024
-rw-r--r--2023/info/sharing-before.md22
-rw-r--r--2023/info/sharing-nav.md4
-rw-r--r--2023/info/solo-after.md728
-rw-r--r--2023/info/solo-before.md27
-rw-r--r--2023/info/solo-nav.md4
-rw-r--r--2023/info/steno-after.md353
-rw-r--r--2023/info/steno-before.md6
-rw-r--r--2023/info/steno-nav.md6
-rw-r--r--2023/info/sun-close-after.md2
-rw-r--r--2023/info/sun-close-before.md6
-rw-r--r--2023/info/sun-close-nav.md2
-rw-r--r--2023/info/sun-open-after.md123
-rw-r--r--2023/info/sun-open-before.md6
-rw-r--r--2023/info/sun-open-nav.md2
-rw-r--r--2023/info/table-after.md228
-rw-r--r--2023/info/table-before.md6
-rw-r--r--2023/info/table-nav.md6
-rw-r--r--2023/info/taming-before.md10
-rw-r--r--2023/info/taming-nav.md4
-rw-r--r--2023/info/teaching-after.md1304
-rw-r--r--2023/info/teaching-before.md37
-rw-r--r--2023/info/teaching-nav.md7
-rw-r--r--2023/info/test-after.md940
-rw-r--r--2023/info/test-before.md36
-rw-r--r--2023/info/test-nav.md6
-rw-r--r--2023/info/unentangling-after.md275
-rw-r--r--2023/info/unentangling-before.md16
-rw-r--r--2023/info/unentangling-nav.md6
-rw-r--r--2023/info/uni-after.md932
-rw-r--r--2023/info/uni-before.md29
-rw-r--r--2023/info/uni-nav.md4
-rw-r--r--2023/info/voice-after.md1430
-rw-r--r--2023/info/voice-before.md31
-rw-r--r--2023/info/voice-nav.md2
-rw-r--r--2023/info/web-after.md819
-rw-r--r--2023/info/web-before.md26
-rw-r--r--2023/info/web-nav.md4
-rw-r--r--2023/info/windows-after.md1253
-rw-r--r--2023/info/windows-before.md12
-rw-r--r--2023/info/windows-nav.md6
-rw-r--r--2023/info/world-after.md236
-rw-r--r--2023/info/world-before.md32
-rw-r--r--2023/info/world-nav.md7
-rw-r--r--2023/info/writing-after.md497
-rw-r--r--2023/info/writing-before.md22
-rw-r--r--2023/info/writing-nav.md2
140 files changed, 33588 insertions, 268 deletions
diff --git a/2023/info/adventure-after.md b/2023/info/adventure-after.md
index 8136a697..f9d69acc 100644
--- a/2023/info/adventure-after.md
+++ b/2023/info/adventure-after.md
@@ -1,7 +1,120 @@
<!-- Automatically generated by emacsconf-publish-after-page -->
-Questions or comments? Please e-mail [emacsconf-org-private@gnu.org](mailto:emacsconf-org-private@gnu.org?subject=Comment%20for%20EmacsConf%202022%20adventure%3A%20An%20Org-Mode%20based%20text%20adventure%20game%20for%20learning%20the%20basics%20of%20Emacs%2C%20inside%20Emacs%2C%20written%20in%20Emacs%20Lisp)
+<div class="transcript transcript-mainVideo"><a name="adventure-mainVideo-transcript"></a><h1>Transcript</h1>
+
+
+<div class="transcript-heading">[[!template new="1" text="""Introduction""" start="00:00:00.000" video="mainVideo-adventure" id="subtitle"]]</div>[[!template text="""Hi, I'm going to give you a little demo""" start="00:00:00.000" video="mainVideo-adventure" id="subtitle"]]
+[[!template text="""of a project that I'm working on""" start="00:00:04.040" video="mainVideo-adventure" id="subtitle"]]
+[[!template text="""which is called the `orgdungeon`.""" start="00:00:06.440" video="mainVideo-adventure" id="subtitle"]]
+[[!template text="""As you can see here, they are just a bunch of Org files""" start="00:00:09.840" video="mainVideo-adventure" id="subtitle"]]
+[[!template text="""and also an Emacs Lisp file.""" start="00:00:16.040" video="mainVideo-adventure" id="subtitle"]]
+[[!template text="""What I found is that if you have these Org files""" start="00:00:20.560" video="mainVideo-adventure" id="subtitle"]]
+[[!template text="""and then you have an Emacs Lisp file as a source""" start="00:00:26.800" video="mainVideo-adventure" id="subtitle"]]
+[[!template text="""to control how to progress from one file to another,""" start="00:00:30.920" video="mainVideo-adventure" id="subtitle"]]
+[[!template text="""it will give you a game-like experience.""" start="00:00:36.880" video="mainVideo-adventure" id="subtitle"]]
+[[!template text="""It's like the old game Myst.""" start="00:00:40.520" video="mainVideo-adventure" id="subtitle"]]
+[[!template text="""It was developed with the technology""" start="00:00:43.480" video="mainVideo-adventure" id="subtitle"]]
+[[!template text="""HyperCard for the Macintosh.""" start="00:00:46.120" video="mainVideo-adventure" id="subtitle"]]
+[[!template text="""Basically, it uses a similar technology,""" start="00:00:48.760" video="mainVideo-adventure" id="subtitle"]]
+[[!template text="""so a similar interface to the developer""" start="00:00:53.200" video="mainVideo-adventure" id="subtitle"]]
+[[!template text="""who was using that technology to develop the game.""" start="00:00:57.560" video="mainVideo-adventure" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Demo""" start="00:01:01.200" video="mainVideo-adventure" id="subtitle"]]</div>[[!template text="""Concretely, I'm going to give you""" start="00:01:01.200" video="mainVideo-adventure" id="subtitle"]]
+[[!template text="""a demo of how the game looks like.""" start="00:01:03.800" video="mainVideo-adventure" id="subtitle"]]
+[[!template text="""So, this is a very vanilla Emacs setup.""" start="00:01:08.880" video="mainVideo-adventure" id="subtitle"]]
+[[!template text="""Then I open up the first Org file.""" start="00:01:14.840" video="mainVideo-adventure" id="subtitle"]]
+[[!template text="""The Org file is just a bunch of text,""" start="00:01:18.640" video="mainVideo-adventure" id="subtitle"]]
+[[!template text="""but it tells you a story.""" start="00:01:22.840" video="mainVideo-adventure" id="subtitle"]]
+[[!template text="""So you wake up somewhere,""" start="00:01:25.520" video="mainVideo-adventure" id="subtitle"]]
+[[!template text="""and then there is a dog-like robot called Emi around you.""" start="00:01:27.360" video="mainVideo-adventure" id="subtitle"]]
+[[!template text="""And then it tells you what you should do.""" start="00:01:32.600" video="mainVideo-adventure" id="subtitle"]]
+[[!template text="""Following the instructions...""" start="00:01:37.760" video="mainVideo-adventure" id="subtitle"]]
+[[!template text="""For example, here it tells you""" start="00:01:40.800" video="mainVideo-adventure" id="subtitle"]]
+[[!template text="""down there is one thing called &quot;code block,&quot;""" start="00:01:42.720" video="mainVideo-adventure" id="subtitle"]]
+[[!template text="""and then you can evaluate it by pressing `C-c C-c`.""" start="00:01:46.240" video="mainVideo-adventure" id="subtitle"]]
+[[!template text="""Then we can just go there""" start="00:01:51.360" video="mainVideo-adventure" id="subtitle"]]
+[[!template text="""and then just evaluate the code block.""" start="00:01:53.640" video="mainVideo-adventure" id="subtitle"]]
+[[!template text="""So technically it just runs the Emacs Lisp file,""" start="00:01:55.240" video="mainVideo-adventure" id="subtitle"]]
+[[!template text="""because you can see here, if you load Emacs Lisp...""" start="00:02:00.240" video="mainVideo-adventure" id="subtitle"]]
+[[!template text="""It just evaluates that Emacs Lisp file.""" start="00:02:05.000" video="mainVideo-adventure" id="subtitle"]]
+[[!template text="""I can just say `C-c C-c`.""" start="00:02:07.160" video="mainVideo-adventure" id="subtitle"]]
+[[!template text="""Then for this one, I just say yes,""" start="00:02:09.800" video="mainVideo-adventure" id="subtitle"]]
+[[!template text="""and then it will jump to another file.""" start="00:02:12.320" video="mainVideo-adventure" id="subtitle"]]
+[[!template text="""But in the game, I call it the plane.""" start="00:02:16.520" video="mainVideo-adventure" id="subtitle"]]
+[[!template text="""So it jumps to another plane.""" start="00:02:18.760" video="mainVideo-adventure" id="subtitle"]]
+[[!template text="""Yeah, so...""" start="00:02:21.040" video="mainVideo-adventure" id="subtitle"]]
+[[!template text="""In the other one, it's just saying that""" start="00:02:24.040" video="mainVideo-adventure" id="subtitle"]]
+[[!template text="""there is a function called `emi-escape-10`.""" start="00:02:26.400" video="mainVideo-adventure" id="subtitle"]]
+[[!template text="""Assuming that you don't have any experience""" start="00:02:29.880" video="mainVideo-adventure" id="subtitle"]]
+[[!template text="""how to use Emacs,""" start="00:02:33.480" video="mainVideo-adventure" id="subtitle"]]
+[[!template text="""so you have no idea how to do that,""" start="00:02:34.760" video="mainVideo-adventure" id="subtitle"]]
+[[!template text="""but down there, it's saying that""" start="00:02:38.760" video="mainVideo-adventure" id="subtitle"]]
+[[!template text="""there is a key combination called `C-h f`,""" start="00:02:41.320" video="mainVideo-adventure" id="subtitle"]]
+[[!template text="""and it will bring up the help system.""" start="00:02:44.320" video="mainVideo-adventure" id="subtitle"]]
+[[!template text="""Then you can read the help file of `emi-escape-10`.""" start="00:02:48.400" video="mainVideo-adventure" id="subtitle"]]
+[[!template text="""So you can just do that. For example, `C-h f`""" start="00:02:52.560" video="mainVideo-adventure" id="subtitle"]]
+[[!template text="""and then `describe-function` `emi-escape-10` here.""" start="00:02:55.740" video="mainVideo-adventure" id="subtitle"]]
+[[!template text="""It will show you the help file.""" start="00:03:03.000" video="mainVideo-adventure" id="subtitle"]]
+[[!template text="""Then it's just saying that you can press `M-x`,""" start="00:03:06.320" video="mainVideo-adventure" id="subtitle"]]
+[[!template text="""and Meta usually mapped to Alt,""" start="00:03:10.920" video="mainVideo-adventure" id="subtitle"]]
+[[!template text="""and then yeah.""" start="00:03:13.520" video="mainVideo-adventure" id="subtitle"]]
+[[!template text="""Then you can just close this help file using `C-x 1`.""" start="00:03:15.080" video="mainVideo-adventure" id="subtitle"]]
+[[!template text="""I'm just going to do that. And then yeah...""" start="00:03:18.720" video="mainVideo-adventure" id="subtitle"]]
+[[!template text="""I'm just try that. `M-x` and then `emi-escape-10`.""" start="00:03:21.400" video="mainVideo-adventure" id="subtitle"]]
+[[!template text="""All right.""" start="00:03:31.480" video="mainVideo-adventure" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""emi-escape-12""" start="00:03:33.360" video="mainVideo-adventure" id="subtitle"]]</div>[[!template text="""So I will jump to another file.""" start="00:03:33.360" video="mainVideo-adventure" id="subtitle"]]
+[[!template text="""Or in the game, you jump to another plane.""" start="00:03:36.040" video="mainVideo-adventure" id="subtitle"]]
+[[!template text="""And now you know that""" start="00:03:39.360" video="mainVideo-adventure" id="subtitle"]]
+[[!template text="""there is a function called `emi-escape-12`.""" start="00:03:40.339" video="mainVideo-adventure" id="subtitle"]]
+[[!template text="""And yeah, you can just do that `emi`,""" start="00:03:44.840" video="mainVideo-adventure" id="subtitle"]]
+[[!template text="""because you learned it previously, right.""" start="00:03:47.639" video="mainVideo-adventure" id="subtitle"]]
+[[!template text="""`emi-escape-12`.""" start="00:03:50.400" video="mainVideo-adventure" id="subtitle"]]
+[[!template text="""But this time, it asks you for a password,""" start="00:03:52.080" video="mainVideo-adventure" id="subtitle"]]
+[[!template text="""which you probably don't know, right?""" start="00:03:55.120" video="mainVideo-adventure" id="subtitle"]]
+[[!template text="""If you just type in anything,""" start="00:03:57.800" video="mainVideo-adventure" id="subtitle"]]
+[[!template text="""it will just say incorrect password.""" start="00:03:59.840" video="mainVideo-adventure" id="subtitle"]]
+[[!template text="""But yeah, it's part of the learning experience""" start="00:04:02.720" video="mainVideo-adventure" id="subtitle"]]
+[[!template text="""because previously you learned""" start="00:04:06.360" video="mainVideo-adventure" id="subtitle"]]
+[[!template text="""that you should use the help file,""" start="00:04:07.280" video="mainVideo-adventure" id="subtitle"]]
+[[!template text="""help system to read the help file of a function,""" start="00:04:10.320" video="mainVideo-adventure" id="subtitle"]]
+[[!template text="""so you can just use the help file""" start="00:04:16.200" video="mainVideo-adventure" id="subtitle"]]
+[[!template text="""to look for the help of `emi-escape-12`.""" start="00:04:18.320" video="mainVideo-adventure" id="subtitle"]]
+[[!template text="""Then, yeah, the help file will say that""" start="00:04:25.840" video="mainVideo-adventure" id="subtitle"]]
+[[!template text="""you should enter a password,""" start="00:04:29.520" video="mainVideo-adventure" id="subtitle"]]
+[[!template text="""and the password is `emi`.""" start="00:04:31.240" video="mainVideo-adventure" id="subtitle"]]
+[[!template text="""Right. So you can just do that.""" start="00:04:34.160" video="mainVideo-adventure" id="subtitle"]]
+[[!template text="""Write `emi-escape-12`,""" start="00:04:36.440" video="mainVideo-adventure" id="subtitle"]]
+[[!template text="""and then now you know the password is `emi`. Right.""" start="00:04:42.240" video="mainVideo-adventure" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""The rest of the game""" start="00:04:47.040" video="mainVideo-adventure" id="subtitle"]]</div>[[!template text="""So you can progress along these different files,""" start="00:04:47.040" video="mainVideo-adventure" id="subtitle"]]
+[[!template text="""and then if you...""" start="00:04:51.840" video="mainVideo-adventure" id="subtitle"]]
+[[!template text="""Okay, it's like a game,""" start="00:04:53.520" video="mainVideo-adventure" id="subtitle"]]
+[[!template text="""but at the same time, it also teaches you""" start="00:04:54.640" video="mainVideo-adventure" id="subtitle"]]
+[[!template text="""something about how Emacs works.""" start="00:04:57.280" video="mainVideo-adventure" id="subtitle"]]
+[[!template text="""For example, like the previous one,""" start="00:05:01.680" video="mainVideo-adventure" id="subtitle"]]
+[[!template text="""you know how to use the help file, for example,""" start="00:05:04.600" video="mainVideo-adventure" id="subtitle"]]
+[[!template text="""but in the later part, you will learn how to""" start="00:05:07.280" video="mainVideo-adventure" id="subtitle"]]
+[[!template text="""evaluate some Emacs Lisp code""" start="00:05:11.520" video="mainVideo-adventure" id="subtitle"]]
+[[!template text="""and also how to write some Emacs Lisp code""" start="00:05:14.280" video="mainVideo-adventure" id="subtitle"]]
+[[!template text="""as well, and then you will learn""" start="00:05:17.160" video="mainVideo-adventure" id="subtitle"]]
+[[!template text="""the difference between interactive commands""" start="00:05:19.560" video="mainVideo-adventure" id="subtitle"]]
+[[!template text="""and also just ordinary functions, for example.""" start="00:05:23.400" video="mainVideo-adventure" id="subtitle"]]
+[[!template text="""Now, I just created a few Org files,""" start="00:05:27.240" video="mainVideo-adventure" id="subtitle"]]
+[[!template text="""but I'm actively adding more Org files""" start="00:05:31.400" video="mainVideo-adventure" id="subtitle"]]
+[[!template text="""so that we can have a complete kind of""" start="00:05:36.440" video="mainVideo-adventure" id="subtitle"]]
+[[!template text="""educational experience.""" start="00:05:39.600" video="mainVideo-adventure" id="subtitle"]]
+[[!template text="""If you want to follow along [with] this project,""" start="00:05:42.560" video="mainVideo-adventure" id="subtitle"]]
+[[!template text="""you can just go to my Github repository.""" start="00:05:45.640" video="mainVideo-adventure" id="subtitle"]]
+[[!template text="""I hope you enjoyed this little demo.""" start="00:05:51.360" video="mainVideo-adventure" id="subtitle"]]
+[[!template text="""Thank you.""" start="00:05:56.540" video="mainVideo-adventure" id="subtitle"]]
+
+</div>
+
+Captioner: sachac
+
+Questions or comments? Please e-mail [emacsconf-org-private@gnu.org](mailto:emacsconf-org-private@gnu.org?subject=Comment%20for%20EmacsConf%202023%20adventure%3A%20An%20Org-Mode%20based%20text%20adventure%20game%20for%20learning%20the%20basics%20of%20Emacs%2C%20inside%20Emacs%2C%20written%20in%20Emacs%20Lisp)
<!-- End of emacsconf-publish-after-page -->
diff --git a/2023/info/adventure-before.md b/2023/info/adventure-before.md
index c1644817..7c9dda68 100644
--- a/2023/info/adventure-before.md
+++ b/2023/info/adventure-before.md
@@ -1,14 +1,18 @@
<!-- Automatically generated by emacsconf-publish-before-page -->
-In this talk, Dr. Chung-hong Chan will demonstrate a text adventure game for learning the basics of Emacs. He is a senior researcher at GESIS Leibniz Institute for the Social Sciences, Germany.
-
[[!toc ]]
-Format: 10-min talk followed by Pad / e-mail Q&A
-Discuss on IRC: [#emacsconf](https://chat.emacsconf.org/?join=emacsconf)
-Status: Waiting for video from speaker
+Format: 6-min talk ; Q&A: Etherpad
+Status: All done
+
+<div class="vid mainVideo"><video controls preload="none" id="mainVideo-adventure"><source src="https://media.emacsconf.org/2023/emacsconf-2023-adventure--an-orgmode-based-text-adventure-game-for-learning-the-basics-of-emacs-inside-emacs-written-in-emacs-lisp--chunghong-chan--main.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2023/captions/emacsconf-2023-adventure--an-orgmode-based-text-adventure-game-for-learning-the-basics-of-emacs-inside-emacs-written-in-emacs-lisp--chunghong-chan--main.vtt" default />"""<track kind="chapters" label="Chapters" src="/2023/captions/emacsconf-2023-adventure--an-orgmode-based-text-adventure-game-for-learning-the-basics-of-emacs-inside-emacs-written-in-emacs-lisp--chunghong-chan--main--chapters.vtt" /><p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video>[[!template id="chapters" vidid="mainVideo-adventure" data="""
+00:00.000 Introduction
+01:01.200 Demo
+03:33.360 emi-escape-12
+04:47.040 The rest of the game
+"""]]<div></div>Duration: 05:58 minutes<div class="files resources"><ul><li><a href="https://pad.emacsconf.org/2023-adventure">Open Etherpad</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-adventure--an-orgmode-based-text-adventure-game-for-learning-the-basics-of-emacs-inside-emacs-written-in-emacs-lisp--chunghong-chan--intro.vtt">Download --intro.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-adventure--an-orgmode-based-text-adventure-game-for-learning-the-basics-of-emacs-inside-emacs-written-in-emacs-lisp--chunghong-chan--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-adventure--an-orgmode-based-text-adventure-game-for-learning-the-basics-of-emacs-inside-emacs-written-in-emacs-lisp--chunghong-chan--main--chapters.vtt">Download --main--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-adventure--an-orgmode-based-text-adventure-game-for-learning-the-basics-of-emacs-inside-emacs-written-in-emacs-lisp--chunghong-chan--main.opus">Download --main.opus (3.3MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-adventure--an-orgmode-based-text-adventure-game-for-learning-the-basics-of-emacs-inside-emacs-written-in-emacs-lisp--chunghong-chan--main.vtt">Download --main.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-adventure--an-orgmode-based-text-adventure-game-for-learning-the-basics-of-emacs-inside-emacs-written-in-emacs-lisp--chunghong-chan--main.webm">Download --main.webm (19MB)</a></li><li><a href="https://toobnix.org/w/2oqbPJB8Wm3QSo4HCKAyVn">View on Toobnix</a></li><li><a href="https://youtu.be/7R0yA0R1jsk">View on Youtube</a></li></ul></div></div>
# Description
<!-- End of emacsconf-publish-before-page --> \ No newline at end of file
diff --git a/2023/info/adventure-nav.md b/2023/info/adventure-nav.md
index 95382fff..d50bda6c 100644
--- a/2023/info/adventure-nav.md
+++ b/2023/info/adventure-nav.md
@@ -2,5 +2,5 @@
<div class="talk-nav">
Back to the [[talks]]
Next by track: <a href="/2023/talks/uni">Authoring and presenting university courses with Emacs and a full libre software stack</a>
-Track: <span class="sched-track General">General</span>
+Track: <span class="sched-track General">General</span> - <strong><a href="https://emacsconf.org/2023/watch/gen">Watch</a></strong>
</div>
diff --git a/2023/info/collab-after.md b/2023/info/collab-after.md
index 1e42d375..06ebf8d4 100644
--- a/2023/info/collab-after.md
+++ b/2023/info/collab-after.md
@@ -1,7 +1,408 @@
<!-- Automatically generated by emacsconf-publish-after-page -->
-Questions or comments? Please e-mail [hartman@itc.rwth-aachen.de, bossert@itc.rwth-aachen.de](mailto:hartman@itc.rwth-aachen.de, bossert@itc.rwth-aachen.de?subject=Comment%20for%20EmacsConf%202022%20collab%3A%20Collaborative%20data%20processing%20and%20documenting%20using%20org-babel)
+<div class="transcript transcript-mainVideo"><a name="collab-mainVideo-transcript"></a><h1>Transcript</h1>
+
+
+<div class="transcript-heading">[[!template new="1" text="""Introduction""" start="00:00:00.000" video="mainVideo-collab" id="subtitle"]]</div>[[!template text="""[Lukas]: Welcome to our presentation,""" start="00:00:00.000" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""Collaborative Data Processing""" start="00:00:01.875" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""and Documenting using org-babel.""" start="00:00:03.600" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""My name is Lukas Bossert, and I'm""" start="00:00:06.040" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""from the RWTH Aachen University""" start="00:00:07.760" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""in the city of Aachen, Germany.""" start="00:00:09.741" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""[Jonathan]: And my name is Jonathan Hartmann.""" start="00:00:12.520" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""I'm also from the IT Center here at RWTH Aachen.""" start="00:00:14.840" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""[Lukas]: Great.""" start="00:00:18.720" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""And we will show you today how you""" start="00:00:19.240" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""can use Org Mode for data processing.""" start="00:00:21.680" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""So you see a little workflow what we are going to do.""" start="00:00:25.400" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""First, we will give you a slight introduction to Org Mode.""" start="00:00:28.000" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""Then we will dive into the part of data preparing.""" start="00:00:31.200" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""First, you're going to query the data using the language SPARQL.""" start="00:00:34.640" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""Then we're going to clean it using a different language.""" start="00:00:38.680" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""And in the main part of our presentation,""" start="00:00:41.760" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""we're going to do the data processing, first aggregating""" start="00:00:44.280" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""using Python, later on counting items using Org,""" start="00:00:48.120" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""and even visualizing it using R. At the end,""" start="00:00:52.520" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""we're going to show you how to preserve""" start="00:00:56.400" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""the data and the document and its documentation,""" start="00:00:58.960" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""first doing in plain exporting, then adding some metadata,""" start="00:01:01.760" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""and showing you two different ways, first a manual export,""" start="00:01:06.600" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""and also then a batch-processed export.""" start="00:01:09.760" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""All right.""" start="00:01:13.360" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""Let's dive in to that.""" start="00:01:14.240" video="mainVideo-collab" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Org Mode""" start="00:01:16.080" video="mainVideo-collab" id="subtitle"]]</div>[[!template text="""Jonathan, can you give us an introduction about Org Mode?""" start="00:01:16.080" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""[Jonathan]: Of course.""" start="00:01:19.920" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""So in case anyone isn't familiar with it,""" start="00:01:20.440" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""Org Mode, in the words of Carsten Dominik,""" start="00:01:23.080" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""is back to the future for plain text.""" start="00:01:25.880" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""So this is just a module available for Emacs,""" start="00:01:28.560" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""plain-text base.""" start="00:01:31.440" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""It's been around since 2003, which""" start="00:01:32.520" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""makes it about 20 years old.""" start="00:01:34.920" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""And it's extensible and fully customizable.""" start="00:01:36.800" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""And especially, it's very convenient, very good""" start="00:01:40.160" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""for scientific text production and organization.""" start="00:01:44.000" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""So for example, you can do project management, agenda,""" start="00:01:46.720" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""diary, journaling, personal knowledge management,""" start="00:01:49.440" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""presentation.""" start="00:01:52.560" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""Even this is written in Org Mode.""" start="00:01:53.360" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""It's an Org Mode presentation.""" start="00:01:55.560" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""You can do single source publishing,""" start="00:01:57.440" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""which we will do later on, and also""" start="00:01:59.200" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""literate programming, which is the core of our talk.""" start="00:02:01.680" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""OK.""" start="00:02:06.480" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""[Lukas]: So let me stop this presentation here.""" start="00:02:07.000" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""So what you see here is the plain text underneath it.""" start="00:02:10.800" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""So this is Org Mode.""" start="00:02:14.720" video="mainVideo-collab" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Working together""" start="00:02:18.960" video="mainVideo-collab" id="subtitle"]]</div>[[!template text="""And Jonathan, since we kind of already""" start="00:02:18.960" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""did the introduction together, should we""" start="00:02:21.920" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""also do the working part together?""" start="00:02:26.120" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""[Jonathan]: Of course.""" start="00:02:28.761" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""So you see on the screen there on the right,""" start="00:02:29.701" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""that's my screen in Emacs.""" start="00:02:33.120" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""And Lukas, why don't you host a session using CRDT,""" start="00:02:35.061" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""and I'll connect to your buffer.""" start="00:02:39.521" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""[Lukas]: OK. Great.""" start="00:02:41.201" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""I do that.""" start="00:02:42.561" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""So what I do, I'm using Doom Emacs.""" start="00:02:43.281" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""And I can use the `SPC` and then the `l`""" start="00:02:46.181" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""for the live share/collab part.""" start="00:02:49.308" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""I can use the `s` for share current buffer.""" start="00:02:52.141" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""So when I do this, I'm getting asked for some settings.""" start="00:02:58.000" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""I'm going with the default settings here.""" start="00:03:01.560" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""So default port, no password, and my display name.""" start="00:03:04.440" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""And now Emacs is connecting.""" start="00:03:08.341" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""And once it's connected, which just takes a couple of seconds,""" start="00:03:11.941" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""I can get the URL.""" start="00:03:15.180" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""So I'm going back to this menu and using `y`""" start="00:03:17.240" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""for copying the URL of the current session.""" start="00:03:21.160" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""And this is the URL I'm going to send over to you, Jonathan,""" start="00:03:24.000" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""to pick that up.""" start="00:03:27.800" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""[Jonathan]: Right.""" start="00:03:29.080" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""OK.""" start="00:03:29.600" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""And now on my screen, I'm going to do a `SPC l c` for connect.""" start="00:03:30.080" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""And I'm going to paste the URL""" start="00:03:37.000" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""that Lukas just sent me in here.""" start="00:03:38.741" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""Default port, no password.""" start="00:03:40.980" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""And we're connecting now.""" start="00:03:43.720" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""So this takes a second just to get us synced up.""" start="00:03:45.700" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""So we can work on the same document at the same time.""" start="00:03:51.600" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""We can follow each other's cursors around.""" start="00:03:54.161" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""We can have multiple buffers open and work on them""" start="00:03:56.640" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""at the same time.""" start="00:03:58.840" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""And so here you see that we are both in the same document.""" start="00:04:01.000" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""You can see my cursor popping around.""" start="00:04:04.720" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""And you can see we're both editing the same item.""" start="00:04:09.040" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""Great.""" start="00:04:13.280" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""[Lukas]: So we also see who else is currently in our buffer""" start="00:04:14.040" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""with the user overview.""" start="00:04:18.040" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""So let me just delete that window.""" start="00:04:20.200" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""And that's going to work in our main one.""" start="00:04:23.560" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""So we said first part is about data retrieval.""" start="00:04:26.080" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""So we should give it a headline.""" start="00:04:29.600" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""We said prepare stage.""" start="00:04:37.080" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""So what are we going to do first, Jonathan?""" start="00:04:39.240" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""[Jonathan]: So what we're going to do,""" start="00:04:42.320" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""what this whole document is based upon,""" start="00:04:43.941" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""is we're going to pull data from Wikidata using a SPARQL query.""" start="00:04:45.400" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""The data we're going to pull is related to the NFDIs,""" start="00:04:50.120" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""which here in Germany is the National Forschungsdaten""" start="00:04:53.520" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""Infrastructure, which is a sort of collection of universities""" start="00:04:55.640" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""that work together on various research projects.""" start="00:05:00.680" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""And this is emblematic of the kind of data""" start="00:05:03.400" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""that we would be interested in working with here.""" start="00:05:05.600" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""So I'm going to paste a--forgive the pre-written code--""" start="00:05:09.240" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""I'm going to paste some text in here.""" start="00:05:13.360" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""[Lukas]: And while you are talking, I just""" start="00:05:20.040" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""keep on documenting what we do""" start="00:05:21.408" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""so we can split the work.""" start="00:05:23.360" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""[Jonathan]: In here, after a minor technical upset,""" start="00:05:27.360" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""is the raw dataset cell.""" start="00:05:29.680" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""And it's going to use SPARQL,""" start="00:05:32.560" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""which is how we have the syntax highlighting""" start="00:05:34.741" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""in our code here.""" start="00:05:37.175" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""It's going to go to the URL endpoint""" start="00:05:37.941" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""query.wikidata.org/sparql ,""" start="00:05:40.640" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""and it's going to return the data as a text CSV,""" start="00:05:43.640" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""and it's going to cache that data""" start="00:05:46.800" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""so that we don't constantly hammer the API every time""" start="00:05:49.280" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""we run this notebook.""" start="00:05:51.440" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""So I'm going to run that there.""" start="00:05:54.240" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""You can see down at the bottom of my screen,""" start="00:05:57.361" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""we're contacting the host query.wikidata.org .""" start="00:05:58.800" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""[Lukas]: And there's the result.""" start="00:06:05.720" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""[Jonathan]: Yeah, except I think that for our purposes here,""" start="00:06:07.320" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""we're just going to limit this to 50 results.""" start="00:06:11.800" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""[Lukas]: Oh, yeah.""" start="00:06:15.280" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""[Jonathan]: Just so it's a little easier for us to manage.""" start="00:06:16.280" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""I'm going to run that again.""" start="00:06:18.680" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""There we go.""" start="00:06:20.720" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""That looks a little better.""" start="00:06:21.520" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""[Lukas]: I think that's fine.""" start="00:06:22.320" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""50 items is fine.""" start="00:06:23.160" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""So what do we see here, Jonathan?""" start="00:06:25.360" video="mainVideo-collab" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Data cleaning""" start="00:06:27.840" video="mainVideo-collab" id="subtitle"]]</div>[[!template text="""[Jonathan]: Right.""" start="00:06:27.840" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""So the first thing we see when we look at this""" start="00:06:28.320" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""is a couple of Q codes at the top,""" start="00:06:31.240" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""which are an artifact of Wikidata.""" start="00:06:33.308" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""So these are pages which don't have""" start="00:06:36.080" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""the label for whichever institution they happen to be.""" start="00:06:39.520" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""For our purposes here, we're just going to exclude them.""" start="00:06:42.520" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""We could just go on Wikidata and edit them ourselves.""" start="00:06:45.920" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""But for now, it's a little more interesting""" start="00:06:48.200" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""if we go and remove them.""" start="00:06:50.400" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""So I'm going to create a new cell.""" start="00:06:52.520" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""Lukas, if you don't mind starting one for data cleaning.""" start="00:06:55.160" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""[Lukas]: Oh, yeah.""" start="00:06:58.280" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""Good point.""" start="00:06:58.880" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""Yeah, data cleaning.""" start="00:06:59.480" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""OK.""" start="00:07:02.040" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""How do you want to do that, Jonathan?""" start="00:07:03.440" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""[Jonathan]: I'm going to use a shell command.""" start="00:07:05.500" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""So let's see.""" start="00:07:09.760" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""There we go.""" start="00:07:11.120" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""And so you can see, here is another cell,""" start="00:07:13.000" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""that the cell is now using a shell,""" start="00:07:15.160" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""and that we have this thing `:var input=raw-dataset`,""" start="00:07:20.040" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""which is the name of the cell above""" start="00:07:23.800" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""where we got our data from Wikidata.""" start="00:07:25.841" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""This is going to run just a simple shell command.""" start="00:07:28.440" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""It's going to take the input and then run `sed` on it""" start="00:07:31.680" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""and exclude any records which have a Q""" start="00:07:33.960" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""followed by one or more digits afterwards.""" start="00:07:37.040" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""That should remove those from our data set.""" start="00:07:41.280" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""So I'm going to run that.""" start="00:07:44.000" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""That seems to have done the trick.""" start="00:07:48.640" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""[Lukas]: Great, yeah.""" start="00:07:51.040" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""That's really good.""" start="00:07:51.880" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""We got rid of all the Q items.""" start="00:07:52.920" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""Very good.""" start="00:07:55.400" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""So we just have two-column table: institutions""" start="00:07:55.920" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""and consortia.""" start="00:07:59.960" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""Very nice.""" start="00:08:02.760" video="mainVideo-collab" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Processing""" start="00:08:04.040" video="mainVideo-collab" id="subtitle"]]</div>[[!template text="""So let's come to our main part, doing some processing.""" start="00:08:04.040" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""Let me give you a headline here, process the data.""" start="00:08:08.720" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""What do you want to do first?""" start="00:08:13.640" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""[Jonathan]: This is not a very complicated data set,""" start="00:08:15.520" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""but let's just do some simple counts first.""" start="00:08:17.600" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""I'm going to start with Python,""" start="00:08:19.440" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""and we're just going to do some aggregation with Python.""" start="00:08:22.200" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""Again, I've got some pre-written code here.""" start="00:08:25.240" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""You can see that we've started a cell using Python.""" start="00:08:30.040" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""The variable `clean_df` now is equal to `clean-dataset`.""" start="00:08:35.000" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""So we're going to take that data""" start="00:08:37.880" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""that we retrieved from the SPARQL query,""" start="00:08:39.708" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""we're going to run it through the cleaning cell,""" start="00:08:41.040" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""and then we're going to import it into this cell.""" start="00:08:42.720" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""This is just going to do some simple Python aggregation.""" start="00:08:45.240" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""We're going to import `pandas`,""" start="00:08:47.840" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""which is the Python data science library,""" start="00:08:49.008" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""create a data frame out of our input,""" start="00:08:51.308" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""and then aggregate it, grouping on `wLabel`,""" start="00:08:54.840" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""and getting a count from that and returning it.""" start="00:08:57.480" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""So if we execute that cell...""" start="00:08:59.960" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""[Lukas]: Nice, we get institutions and a count.""" start="00:09:05.040" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""But what about not ordering it by the alphabet,""" start="00:09:08.880" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""but more like ordering by counts?""" start="00:09:14.120" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""[Jonathan]: Sure.""" start="00:09:17.080" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""So let's do this... `sort_values()`, I think, as the Python.""" start="00:09:18.440" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""How does that look?""" start="00:09:22.840" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""[Lukas]: Better, but I would like to""" start="00:09:24.920" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""have the highest number first""" start="00:09:27.641" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""and then ascending.""" start="00:09:29.240" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""Well, not ascending, descending.""" start="00:09:32.240" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""[Jonathan]: Right, so we can do `ascending=False`.""" start="00:09:34.720" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""[Lukas]: This is perfect, I'd say.""" start="00:09:39.880" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""[Jonathan]: Great.""" start="00:09:42.560" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""[Lukas]: Very good.""" start="00:09:43.080" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""OK, that's nice.""" start="00:09:44.080" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""We get a good overview here.""" start="00:09:46.800" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""But can we also do something else,""" start="00:09:48.000" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""like counting how many institutions are""" start="00:09:50.080" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""involved in one consortium?""" start="00:09:56.080" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""And also using this later on in the text?""" start="00:09:57.800" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""[Jonathan]: Sure, so I'm going to put a new...""" start="00:10:00.880" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""If you give me another heading down here""" start="00:10:00.881" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""for institutions per consortium...""" start="00:10:05.041" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""And here we're going to use awk code just to spice things up""" start="00:10:12.080" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""and add yet another language in here.""" start="00:10:16.800" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""So you can see this is awk.""" start="00:10:18.960" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""We're using standard in instead of defining a variable.""" start="00:10:22.440" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""But the really interesting thing about this cell""" start="00:10:26.280" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""is that we have this `:var consortium=&quot;NFDI4Memory&quot;`.""" start="00:10:28.360" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""And what this code is doing is""" start="00:10:33.400" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""it's counting any time it sees""" start="00:10:35.641" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""that particular consortium name""" start="00:10:38.041" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""and keeping track of that.""" start="00:10:40.280" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""So if we execute this,""" start="00:10:41.760" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""Lukas, why don't you execute this one?""" start="00:10:43.908" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""[Lukas]: OK, I'm going to enter it.""" start="00:10:45.920" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""And I get a result, NFDI4Memory,""" start="00:10:49.400" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""because this is our default value for this variable.""" start="00:10:52.440" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""And we get the count.""" start="00:10:58.240" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""So it's five institutions are involved""" start="00:10:59.440" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""in the NFDI4memory consortium.""" start="00:11:01.641" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""Great, but the very nice thing, what I think,""" start="00:11:04.640" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""is here that we can use this code snippet within our text.""" start="00:11:07.840" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""So, blended in seamlessly.""" start="00:11:12.520" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""Let me give you an example.""" start="00:11:14.280" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""I'm writing out the text.""" start="00:11:16.200" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""Now we know how many institutions are in...""" start="00:11:18.920" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""Give me an example.""" start="00:11:27.600" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""I would like to know how many institutions are""" start="00:11:29.240" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""involved in NFDI4Objects, which is a consortium.""" start="00:11:31.560" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""So I'm writing `call_` and using""" start="00:11:35.080" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""the name of this snippet here, of this cell,""" start="00:11:39.240" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""which is `inst-count(`,""" start="00:11:42.608" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""and writing my value, `NFDI4Objects`.""" start="00:11:46.608" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""As soon as I evaluate this using `C-c C-c`,""" start="00:11:51.720" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""I get the result back here.""" start="00:11:58.000" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""I can do this even for more.""" start="00:12:00.280" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""Or in writing, `call_inst-count`, go with `NFDI4Earth`,""" start="00:12:05.160" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""which is another consortium.""" start="00:12:14.040" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""`C-c C-c`, it's three institutions.""" start="00:12:16.800" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""This can be used throughout your text,""" start="00:12:20.560" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""and as soon as the data set changes from in the beginning,""" start="00:12:23.440" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""maybe different results requiring Wikidata,""" start="00:12:26.640" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""this also will be updated once it's exported.""" start="00:12:30.400" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""Very nice, Jonathan.""" start="00:12:35.080" video="mainVideo-collab" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Visualization""" start="00:12:36.040" video="mainVideo-collab" id="subtitle"]]</div>[[!template text="""But I think we did a lot of analysis""" start="00:12:36.040" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""on text and counting things.""" start="00:12:38.975" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""Can we also do something more visual?""" start="00:12:41.080" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""Show me something.""" start="00:12:43.680" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""[Jonathan]: Sure.""" start="00:12:45.200" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""So what we can do with this, because we just""" start="00:12:45.760" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""have two columns here that are sort of related,""" start="00:12:48.640" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""we can build a little network plot out of it.""" start="00:12:51.400" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""So let's make a network visualization.""" start="00:12:53.760" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""We're going to use the `igraph` library from R""" start="00:12:57.000" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""and just plot the edges that we see here.""" start="00:12:59.600" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""There we go.""" start="00:13:02.560" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""There's my little heading and space.""" start="00:13:04.240" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""Here is our code.""" start="00:13:11.880" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""Again, just to be fancy and keep using""" start="00:13:13.480" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""different languages in here, we set a variable called""" start="00:13:16.040" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""`NFDI_edges` equal to `clean-dataset`.""" start="00:13:19.720" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""So this, again, is sort of cascading""" start="00:13:21.600" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""through the original data""" start="00:13:23.400" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""that we pulled from the Wikidata endpoint,""" start="00:13:25.741" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""cleaning that data, and now it's being inserted""" start="00:13:28.808" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""into this cell as well.""" start="00:13:30.960" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""But you see the difference here.""" start="00:13:32.960" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""Instead of exporting a table, what we're saying""" start="00:13:34.240" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""is that there will be a graphics file,""" start="00:13:36.840" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""and it will be called network-plot.png.""" start="00:13:39.240" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""All right.""" start="00:13:44.640" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""And so Lukas, why don't you execute this one?""" start="00:13:45.120" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""[Lukas]: There you go.""" start="00:13:47.960" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""I can click `C-c C-c`""" start="00:13:48.760" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""and I get a nice plot of the network below our cell.""" start="00:13:52.920" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""So this is very nice indeed.""" start="00:13:59.160" video="mainVideo-collab" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Preserve""" start="00:14:01.760" video="mainVideo-collab" id="subtitle"]]</div>[[!template text="""So I think it's about time to wrap it up and to export""" start="00:14:01.760" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""and to preserve the data and the documentation""" start="00:14:05.200" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""that we have in our very last step, calling preserve.""" start="00:14:07.960" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""So I would like to do it in two steps.""" start="00:14:13.080" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""First, maybe manually exporting it,""" start="00:14:16.240" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""but then also doing it in a batch process.""" start="00:14:18.800" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""Giving you some insights how to do that manual export.""" start="00:14:22.240" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""For example, you can do a LaTeX export.""" start="00:14:27.120" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""Let me write down the key combination to do that here.""" start="00:14:30.560" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""So you press `SPC m e l o`.""" start="00:14:34.280" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""Let me show you how this is done.""" start="00:14:44.600" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""So I'm pressing `SPC`.""" start="00:14:49.160" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""I'm pressing `m`, which is my local leader.""" start="00:14:51.440" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""I'm pressing `e`, which is now the `org-export-dispatch`.""" start="00:14:55.680" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""And now I have different options I can choose from.""" start="00:15:01.280" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""I want to do a LaTeX export because I want to get in PDF.""" start="00:15:03.520" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""So I'm pressing `l`.""" start="00:15:07.120" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""Now I've got different options available.""" start="00:15:08.675" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""So I'm pressing `o` for a PDF file and open that.""" start="00:15:11.480" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""Let's see now the code.""" start="00:15:17.400" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""Now this is exporting document.""" start="00:15:21.120" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""And what we have here is PDF,""" start="00:15:25.640" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""which contains our workflow in the beginning,""" start="00:15:29.675" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""our bullet points we have here,""" start="00:15:31.975" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""and also the code snippet""" start="00:15:35.708" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""that we use for querying the data.""" start="00:15:37.920" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""And we have the result below that.""" start="00:15:41.280" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""So this is our table with all the data sets.""" start="00:15:43.600" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""But as you can see, this is running out of the page.""" start="00:15:47.000" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""So this is not very nice using the default settings.""" start="00:15:51.880" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""But everything is in this PDF.""" start="00:15:55.680" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""I guess we can now show you a way""" start="00:16:00.240" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""how to improve this result.""" start="00:16:02.760" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""[Jonathan]: Right.""" start="00:16:06.520" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""So we have, of course, a version of this""" start="00:16:07.040" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""that we prepared ahead of time,""" start="00:16:09.400" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""which is more or less identical to the one we just made,""" start="00:16:10.775" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""but it has a little more text, a little more explanation,""" start="00:16:14.280" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""a little more documentation along with the code.""" start="00:16:17.840" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""You can see we have some metadata up at the top,""" start="00:16:20.560" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""the title, the authors, a bibliography,""" start="00:16:23.880" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""and most importantly, the `custom-export.setup` file,""" start="00:16:26.880" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""which lists specifically the sort of LaTeX commands""" start="00:16:31.680" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""that we're using and the HTML styles that we're going to use.""" start="00:16:36.880" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""And then down at the bottom of this file,""" start="00:16:43.600" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""we have our automatic batch process.""" start="00:16:45.920" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""Here is one more language we're including in here.""" start="00:16:49.120" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""So this is Lisp.""" start="00:16:51.720" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""And you can see here we are exporting to HTML, ASCII,""" start="00:16:53.440" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""and PDF.""" start="00:16:57.360" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""The nice thing about this is that this is a document.""" start="00:16:58.080" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""It's a sort of document that we have a couple of""" start="00:17:01.360" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""that we can have running automatically and building.""" start="00:17:03.308" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""It will export a HTML, an ASCII file, and a PDF file""" start="00:17:08.640" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""every time it's run based off of""" start="00:17:12.920" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""the most recent data available on Wikidata.""" start="00:17:14.675" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""So it's self-documenting.""" start="00:17:17.320" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""We have, of course, our data retrieval steps,""" start="00:17:19.720" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""our data cleaning steps, our data preparation steps,""" start="00:17:22.441" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""and our preservation steps all listed at the same time.""" start="00:17:25.160" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""And then you can see over on the right,""" start="00:17:28.360" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""there's an example of the HTML file that we get out of this.""" start="00:17:30.240" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""We also get a very nicely formatted PDF file,""" start="00:17:34.360" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""which doesn't have that little issue""" start="00:17:37.640" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""with the overflow of the table.""" start="00:17:39.240" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""It's very nicely put together.""" start="00:17:41.720" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""And we even have an ASCII file.""" start="00:17:43.560" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""And I should also point out very quickly,""" start="00:17:46.200" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""while you have this one up, Lukas, after the awk code,""" start="00:17:47.880" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""you can see the text for the number of consortia,""" start="00:17:51.800" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""or the number of institutions per consortia""" start="00:17:56.080" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""is actually printed inline.""" start="00:17:57.840" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""[Lukas]: Yeah, you're very right.""" start="00:18:00.520" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""So this is what we had as code,""" start="00:18:01.800" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""and now this is nicely integrated into our text.""" start="00:18:06.120" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""So we got the consortium and number of institutions.""" start="00:18:10.720" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""You can't tell a difference between code and text.""" start="00:18:15.280" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""[Jonathan]: And those are automatically updated.""" start="00:18:19.200" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""So if another institution joins NFDI4Earth,""" start="00:18:20.720" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""then the next time this runs, we update the text right here.""" start="00:18:23.880" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""It's nothing we have to worry about.""" start="00:18:26.320" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""We just pull it directly out of Wikidata.""" start="00:18:28.520" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""[Lukas]: And for the sake of completeness,""" start="00:18:31.840" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""this is the ASCII file.""" start="00:18:34.680" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""That's in the export format.""" start="00:18:37.880" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""It contains also everything, code and data.""" start="00:18:42.760" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""Yeah, so this is what we wanted to show you,""" start="00:18:48.360" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""how to do some data processing,""" start="00:18:53.240" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""some collaborative work,""" start="00:18:56.640" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""documenting using org-babel.""" start="00:18:58.680" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""Thanks for listening.""" start="00:19:01.120" video="mainVideo-collab" id="subtitle"]]
+[[!template text="""[Jonathan]: Thank you all, have a good day.""" start="00:19:05.720" video="mainVideo-collab" id="subtitle"]]
+
+</div>
+
+Captioner: amine
+
+Questions or comments? Please e-mail [hartman@itc.rwth-aachen.de, bossert@itc.rwth-aachen.de](mailto:hartman@itc.rwth-aachen.de, bossert@itc.rwth-aachen.de?subject=Comment%20for%20EmacsConf%202023%20collab%3A%20Collaborative%20data%20processing%20and%20documenting%20using%20org-babel)
<!-- End of emacsconf-publish-after-page -->
diff --git a/2023/info/collab-before.md b/2023/info/collab-before.md
index 3476d0d6..a4d8979c 100644
--- a/2023/info/collab-before.md
+++ b/2023/info/collab-before.md
@@ -1,12 +1,21 @@
<!-- Automatically generated by emacsconf-publish-before-page -->
[[!toc ]]
-Format: 20-min talk followed by email after the event, wiki Q&A
-Discuss on IRC: [#emacsconf](https://chat.emacsconf.org/?join=emacsconf)
-Status: Waiting for video from speaker
+Format: 20-min talk ; Q&A: ask questions via Etherpad/IRC; we'll e-mail the speaker and post answers on this wiki page after the conference
+Status: All done
+<div class="vid mainVideo"><video controls preload="none" id="mainVideo-collab"><source src="https://media.emacsconf.org/2023/emacsconf-2023-collab--collaborative-data-processing-and-documenting-using-orgbabel--jonathan-hartman-lukas-c-bossert--main.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2023/captions/emacsconf-2023-collab--collaborative-data-processing-and-documenting-using-orgbabel--jonathan-hartman-lukas-c-bossert--main.vtt" default />"""<track kind="chapters" label="Chapters" src="/2023/captions/emacsconf-2023-collab--collaborative-data-processing-and-documenting-using-orgbabel--jonathan-hartman-lukas-c-bossert--main--chapters.vtt" /><p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video>[[!template id="chapters" vidid="mainVideo-collab" data="""
+00:00.000 Introduction
+01:16.080 Org Mode
+02:18.960 Working together
+06:27.840 Data cleaning
+08:04.040 Processing
+12:36.040 Visualization
+14:01.760 Preserve
+
+"""]]<div></div>Duration: 19:16 minutes<div class="files resources"><ul><li><a href="https://pad.emacsconf.org/2023-collab">Open Etherpad</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-collab--collaborative-data-processing-and-documenting-using-orgbabel--jonathan-hartman-lukas-c-bossert--intro.vtt">Download --intro.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-collab--collaborative-data-processing-and-documenting-using-orgbabel--jonathan-hartman-lukas-c-bossert--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-collab--collaborative-data-processing-and-documenting-using-orgbabel--jonathan-hartman-lukas-c-bossert--main--chapters.vtt">Download --main--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-collab--collaborative-data-processing-and-documenting-using-orgbabel--jonathan-hartman-lukas-c-bossert--main.opus">Download --main.opus (11MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-collab--collaborative-data-processing-and-documenting-using-orgbabel--jonathan-hartman-lukas-c-bossert--main.vtt">Download --main.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-collab--collaborative-data-processing-and-documenting-using-orgbabel--jonathan-hartman-lukas-c-bossert--main.webm">Download --main.webm (62MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-collab--collaborative-data-processing-and-documenting-using-orgbabel--jonathan-hartman-lukas-c-bossert--room-noise.webm">Download --room-noise.webm</a></li><li><a href="https://toobnix.org/w/7AAwoawr5MXNSrqiHJQoak">View on Toobnix</a></li><li><a href="https://www.youtube.com/watch?v=fz7-Kd83IjM">View on Youtube</a></li></ul></div></div>
# Description
<!-- End of emacsconf-publish-before-page --> \ No newline at end of file
diff --git a/2023/info/collab-nav.md b/2023/info/collab-nav.md
index 55c61f3f..66f593f6 100644
--- a/2023/info/collab-nav.md
+++ b/2023/info/collab-nav.md
@@ -3,5 +3,5 @@
Back to the [[talks]]
Previous by track: <a href="/2023/talks/nabokov">Why Nabokov would use Org-Mode if he were writing today</a>
Next by track: <a href="/2023/talks/solo">How I play TTRPGs in Emacs</a>
-Track: <span class="sched-track General">General</span>
+Track: <span class="sched-track General">General</span> - <strong><a href="https://emacsconf.org/2023/watch/gen">Watch</a></strong>
</div>
diff --git a/2023/info/core-after.md b/2023/info/core-after.md
new file mode 100644
index 00000000..6a24fa1c
--- /dev/null
+++ b/2023/info/core-after.md
@@ -0,0 +1,1564 @@
+<!-- Automatically generated by emacsconf-publish-after-page -->
+
+
+<div class="transcript transcript-mainVideo"><a name="core-mainVideo-transcript"></a><h1>Transcript (unedited)</h1>
+
+[[!template text="""All right. Hi again, everyone.""" start="00:00:02.540" video="mainVideo-core" id="subtitle"]]
+[[!template text="""It's been a while. Well,""" start="00:00:03.840" video="mainVideo-core" id="subtitle"]]
+[[!template text="""actually, it's been like 2 minutes tops.""" start="00:00:04.839" video="mainVideo-core" id="subtitle"]]
+[[!template text="""We were just with John Wheatley,""" start="00:00:07.819" video="mainVideo-core" id="subtitle"]]
+[[!template text="""and now we are with Stefan Krangas.""" start="00:00:09.099" video="mainVideo-core" id="subtitle"]]
+[[!template text="""Hi. Hi. So as we said before,""" start="00:00:11.120" video="mainVideo-core" id="subtitle"]]
+[[!template text="""Stefan is co-maintainer now of Is it the""" start="00:00:16.160" video="mainVideo-core" id="subtitle"]]
+[[!template text="""entire Emacs project? How do you describe""" start="00:00:20.600" video="mainVideo-core" id="subtitle"]]
+[[!template text="""this? Yeah, co-maintainer of GNU Emacs.""" start="00:00:22.920" video="mainVideo-core" id="subtitle"]]
+[[!template text="""Right, perfect. So you know what?""" start="00:00:27.439" video="mainVideo-core" id="subtitle"]]
+[[!template text="""Because I'm sure everyone is dying to hear""" start="00:00:29.380" video="mainVideo-core" id="subtitle"]]
+[[!template text="""everything you've got to say in your""" start="00:00:32.420" video="mainVideo-core" id="subtitle"]]
+[[!template text="""presentation I'm just going to shut up now""" start="00:00:33.840" video="mainVideo-core" id="subtitle"]]
+[[!template text="""and leave the floor to you.""" start="00:00:36.040" video="mainVideo-core" id="subtitle"]]
+[[!template text="""Do you need to share your screen or anything?""" start="00:00:37.640" video="mainVideo-core" id="subtitle"]]
+[[!template text="""No. Okay great well I'll just cut my webcam""" start="00:00:40.080" video="mainVideo-core" id="subtitle"]]
+[[!template text="""off I'll still be in the background so do not""" start="00:00:45.239" video="mainVideo-core" id="subtitle"]]
+[[!template text="""hesitate if you've got any problem I'm still""" start="00:00:47.059" video="mainVideo-core" id="subtitle"]]
+[[!template text="""around And I'll see you just beacon whenever""" start="00:00:48.940" video="mainVideo-core" id="subtitle"]]
+[[!template text="""you're done. And I'll show up with the""" start="00:00:52.560" video="mainVideo-core" id="subtitle"]]
+[[!template text="""questions. All right? Thank you,""" start="00:00:53.940" video="mainVideo-core" id="subtitle"]]
+[[!template text="""Leo. And thank you, everyone,""" start="00:00:56.120" video="mainVideo-core" id="subtitle"]]
+[[!template text="""for being here. I'm Stefan Kangas.""" start="00:00:58.739" video="mainVideo-core" id="subtitle"]]
+[[!template text="""So as Leo explained, I am recently appointed""" start="00:01:02.739" video="mainVideo-core" id="subtitle"]]
+[[!template text="""as a co-maintainer of GNU Emacs,""" start="00:01:06.680" video="mainVideo-core" id="subtitle"]]
+[[!template text="""which a role that I'm fulfilling currently""" start="00:01:10.960" video="mainVideo-core" id="subtitle"]]
+[[!template text="""with Eli Sretsky, who's been co-maintainer""" start="00:01:13.780" video="mainVideo-core" id="subtitle"]]
+[[!template text="""for quite some time. So I got the question to""" start="00:01:18.840" video="mainVideo-core" id="subtitle"]]
+[[!template text="""be a co-maintainer from Richard in August""" start="00:01:23.320" video="mainVideo-core" id="subtitle"]]
+[[!template text="""this year. And of course,""" start="00:01:26.780" video="mainVideo-core" id="subtitle"]]
+[[!template text="""when you get a question like that,""" start="00:01:29.600" video="mainVideo-core" id="subtitle"]]
+[[!template text="""I couldn't not say yes.""" start="00:01:31.840" video="mainVideo-core" id="subtitle"]]
+[[!template text="""So here we are. I can't tell you how excited""" start="00:01:34.360" video="mainVideo-core" id="subtitle"]]
+[[!template text="""I am to have this opportunity to address the""" start="00:01:39.920" video="mainVideo-core" id="subtitle"]]
+[[!template text="""community in this way.""" start="00:01:45.060" video="mainVideo-core" id="subtitle"]]
+[[!template text="""I'm really humbled, of course,""" start="00:01:47.640" video="mainVideo-core" id="subtitle"]]
+[[!template text="""to be part of it, and to be able to serve the""" start="00:01:50.380" video="mainVideo-core" id="subtitle"]]
+[[!template text="""community in this capacity.""" start="00:01:55.040" video="mainVideo-core" id="subtitle"]]
+[[!template text="""I've used Emacs, I think many of you might""" start="00:02:00.080" video="mainVideo-core" id="subtitle"]]
+[[!template text="""also have used Emacs for quite some time,""" start="00:02:04.080" video="mainVideo-core" id="subtitle"]]
+[[!template text="""but I'm going on 2 decades as an Emacs user.""" start="00:02:06.820" video="mainVideo-core" id="subtitle"]]
+[[!template text="""My involvement in Emacs Lisp development is,""" start="00:02:11.120" video="mainVideo-core" id="subtitle"]]
+[[!template text="""I mean, almost as long,""" start="00:02:14.280" video="mainVideo-core" id="subtitle"]]
+[[!template text="""but my core development goes back only 4,""" start="00:02:16.660" video="mainVideo-core" id="subtitle"]]
+[[!template text="""5 years. I have to also thank the EmacsConf""" start="00:02:19.960" video="mainVideo-core" id="subtitle"]]
+[[!template text="""organizers who are doing,""" start="00:02:27.180" video="mainVideo-core" id="subtitle"]]
+[[!template text="""I think, a tremendous job and have done a""" start="00:02:29.100" video="mainVideo-core" id="subtitle"]]
+[[!template text="""tremendous job over the years in really""" start="00:02:31.960" video="mainVideo-core" id="subtitle"]]
+[[!template text="""building and strengthening what I think is""" start="00:02:34.820" video="mainVideo-core" id="subtitle"]]
+[[!template text="""this fantastic community of users and""" start="00:02:38.300" video="mainVideo-core" id="subtitle"]]
+[[!template text="""developers and people interested in Emacs.""" start="00:02:42.180" video="mainVideo-core" id="subtitle"]]
+[[!template text="""I actually had the chance to meet up with Eli""" start="00:02:46.620" video="mainVideo-core" id="subtitle"]]
+[[!template text="""Sretzky, as well as another Emacs hacker,""" start="00:02:50.100" video="mainVideo-core" id="subtitle"]]
+[[!template text="""Andrea Corallo, when I was at the GNU""" start="00:02:53.960" video="mainVideo-core" id="subtitle"]]
+[[!template text="""project's 40 years celebration,""" start="00:02:57.980" video="mainVideo-core" id="subtitle"]]
+[[!template text="""40 years since the GNU project was announced.""" start="00:03:00.800" video="mainVideo-core" id="subtitle"]]
+[[!template text="""And it was very inspiring in general to meet""" start="00:03:05.280" video="mainVideo-core" id="subtitle"]]
+[[!template text="""people. And I think EmacsConf should also,""" start="00:03:09.660" video="mainVideo-core" id="subtitle"]]
+[[!template text="""I think, serve to inspire and sort of help""" start="00:03:12.980" video="mainVideo-core" id="subtitle"]]
+[[!template text="""bring something to the type of work that many""" start="00:03:19.020" video="mainVideo-core" id="subtitle"]]
+[[!template text="""of us are doing to improve Emacs,""" start="00:03:22.120" video="mainVideo-core" id="subtitle"]]
+[[!template text="""whether it's in package development or in""" start="00:03:24.340" video="mainVideo-core" id="subtitle"]]
+[[!template text="""core, to bring out the new and exciting ideas""" start="00:03:26.200" video="mainVideo-core" id="subtitle"]]
+[[!template text="""and get people enthusiastic about Emacs,""" start="00:03:29.800" video="mainVideo-core" id="subtitle"]]
+[[!template text="""about hacking on Emacs.""" start="00:03:34.080" video="mainVideo-core" id="subtitle"]]
+[[!template text="""This is my little attempt to contribute with""" start="00:03:38.560" video="mainVideo-core" id="subtitle"]]
+[[!template text="""let's say 2 things. I will first try to""" start="00:03:45.600" video="mainVideo-core" id="subtitle"]]
+[[!template text="""present how we do Emacs core development and""" start="00:03:49.600" video="mainVideo-core" id="subtitle"]]
+[[!template text="""why we've done some of the choices that we""" start="00:03:54.400" video="mainVideo-core" id="subtitle"]]
+[[!template text="""have, because We have seen at times that""" start="00:03:58.360" video="mainVideo-core" id="subtitle"]]
+[[!template text="""perhaps people aren't always clear on this or""" start="00:04:02.280" video="mainVideo-core" id="subtitle"]]
+[[!template text="""that aspect. So maybe this will be""" start="00:04:06.500" video="mainVideo-core" id="subtitle"]]
+[[!template text="""enlightening. I will also try to present some""" start="00:04:08.960" video="mainVideo-core" id="subtitle"]]
+[[!template text="""kind of vision for what Emacs could be with""" start="00:04:12.260" video="mainVideo-core" id="subtitle"]]
+[[!template text="""your help. Emacs is already very good,""" start="00:04:18.060" video="mainVideo-core" id="subtitle"]]
+[[!template text="""as we all know, but we could be even better.""" start="00:04:21.820" video="mainVideo-core" id="subtitle"]]
+[[!template text="""That's the reality of any type of software""" start="00:04:27.040" video="mainVideo-core" id="subtitle"]]
+[[!template text="""development. So the overall idea of this talk""" start="00:04:30.060" video="mainVideo-core" id="subtitle"]]
+[[!template text="""is to tell you, if you're an Emacs list""" start="00:04:35.220" video="mainVideo-core" id="subtitle"]]
+[[!template text="""package developer today,""" start="00:04:38.380" video="mainVideo-core" id="subtitle"]]
+[[!template text="""why you should become an Emacs core""" start="00:04:40.760" video="mainVideo-core" id="subtitle"]]
+[[!template text="""developer, and the sort of steps that you""" start="00:04:44.440" video="mainVideo-core" id="subtitle"]]
+[[!template text="""might want to take to do that,""" start="00:04:47.300" video="mainVideo-core" id="subtitle"]]
+[[!template text="""or how you can help Emacs core development.""" start="00:04:49.340" video="mainVideo-core" id="subtitle"]]
+[[!template text="""Even if you're just a user and you found a""" start="00:04:52.120" video="mainVideo-core" id="subtitle"]]
+[[!template text="""bug, report it. Perhaps you have a feature""" start="00:04:54.320" video="mainVideo-core" id="subtitle"]]
+[[!template text="""request that you'd like to discuss.""" start="00:04:57.340" video="mainVideo-core" id="subtitle"]]
+[[!template text="""I think we need more interaction in general""" start="00:04:58.820" video="mainVideo-core" id="subtitle"]]
+[[!template text="""between Emacs core developers,""" start="00:05:02.900" video="mainVideo-core" id="subtitle"]]
+[[!template text="""typically on emacsdevil.gnu.org,""" start="00:05:05.080" video="mainVideo-core" id="subtitle"]]
+[[!template text="""the mailing list that we use to coordinate""" start="00:05:08.440" video="mainVideo-core" id="subtitle"]]
+[[!template text="""our development efforts,""" start="00:05:12.840" video="mainVideo-core" id="subtitle"]]
+[[!template text="""between Emacs devil package developers and""" start="00:05:15.860" video="mainVideo-core" id="subtitle"]]
+[[!template text="""users, Because there is so much great stuff""" start="00:05:19.520" video="mainVideo-core" id="subtitle"]]
+[[!template text="""really going on in the community.""" start="00:05:22.500" video="mainVideo-core" id="subtitle"]]
+[[!template text="""But I think sometimes the step to core""" start="00:05:25.520" video="mainVideo-core" id="subtitle"]]
+[[!template text="""development seems big and perhaps even a""" start="00:05:28.740" video="mainVideo-core" id="subtitle"]]
+[[!template text="""little bit scary. So I'm hoping to be able to""" start="00:05:32.500" video="mainVideo-core" id="subtitle"]]
+[[!template text="""help bridge that gap, even if just a little""" start="00:05:35.440" video="mainVideo-core" id="subtitle"]]
+[[!template text="""bit. We need more people contributing to""" start="00:05:38.720" video="mainVideo-core" id="subtitle"]]
+[[!template text="""Emacs itself. And also a small disclaimer""" start="00:05:43.000" video="mainVideo-core" id="subtitle"]]
+[[!template text="""here, in this talk I will only be able to""" start="00:05:46.840" video="mainVideo-core" id="subtitle"]]
+[[!template text="""speak for myself, not for GNU or the Emacs""" start="00:05:49.920" video="mainVideo-core" id="subtitle"]]
+[[!template text="""project, even if it's like a little bit more""" start="00:05:53.760" video="mainVideo-core" id="subtitle"]]
+[[!template text="""official, but I will also try to give the""" start="00:05:56.500" video="mainVideo-core" id="subtitle"]]
+[[!template text="""view of the project where it makes sense to""" start="00:05:58.780" video="mainVideo-core" id="subtitle"]]
+[[!template text="""do so. Keep in mind, I'm only 1 of the""" start="00:06:01.720" video="mainVideo-core" id="subtitle"]]
+[[!template text="""maintainers, the co-maintainer together with""" start="00:06:04.200" video="mainVideo-core" id="subtitle"]]
+[[!template text="""Eli, and I can't just make decisions""" start="00:06:06.820" video="mainVideo-core" id="subtitle"]]
+[[!template text="""arbitrarily. In a sense,""" start="00:06:09.880" video="mainVideo-core" id="subtitle"]]
+[[!template text="""I'm as a co-maintainer and trusted as a""" start="00:06:11.680" video="mainVideo-core" id="subtitle"]]
+[[!template text="""steward and trusted by,""" start="00:06:14.180" video="mainVideo-core" id="subtitle"]]
+[[!template text="""of course, the GNU project,""" start="00:06:15.420" video="mainVideo-core" id="subtitle"]]
+[[!template text="""but also by the community That we really""" start="00:06:16.680" video="mainVideo-core" id="subtitle"]]
+[[!template text="""can't just take decisions,""" start="00:06:22.580" video="mainVideo-core" id="subtitle"]]
+[[!template text="""I think, arbitrarily. Even if it sometimes""" start="00:06:24.440" video="mainVideo-core" id="subtitle"]]
+[[!template text="""perhaps may seem so, or it may feel that way,""" start="00:06:27.380" video="mainVideo-core" id="subtitle"]]
+[[!template text="""we really have to realize that we can't just""" start="00:06:31.100" video="mainVideo-core" id="subtitle"]]
+[[!template text="""push too much of just a personal agenda to""" start="00:06:35.080" video="mainVideo-core" id="subtitle"]]
+[[!template text="""the extent that it doesn't line up with what""" start="00:06:39.200" video="mainVideo-core" id="subtitle"]]
+[[!template text="""is best for eMacs going forward,""" start="00:06:41.520" video="mainVideo-core" id="subtitle"]]
+[[!template text="""and the more overall picture of that.""" start="00:06:47.500" video="mainVideo-core" id="subtitle"]]
+[[!template text="""So there are limitations that come with the""" start="00:06:50.320" video="mainVideo-core" id="subtitle"]]
+[[!template text="""job, if you like. So 1 question I often,""" start="00:06:52.640" video="mainVideo-core" id="subtitle"]]
+[[!template text="""I actually got this week when I started a new""" start="00:07:00.040" video="mainVideo-core" id="subtitle"]]
+[[!template text="""assignment at work, and I got the question""" start="00:07:02.280" video="mainVideo-core" id="subtitle"]]
+[[!template text="""when I said I'm involved in Emacs""" start="00:07:06.280" video="mainVideo-core" id="subtitle"]]
+[[!template text="""development. And then someone asked,""" start="00:07:08.720" video="mainVideo-core" id="subtitle"]]
+[[!template text="""oh, is Emacs still developed?""" start="00:07:10.400" video="mainVideo-core" id="subtitle"]]
+[[!template text="""Isn't it done almost? And I answered to that,""" start="00:07:12.720" video="mainVideo-core" id="subtitle"]]
+[[!template text="""yes, we are still around.""" start="00:07:16.400" video="mainVideo-core" id="subtitle"]]
+[[!template text="""We're going on 40 years now as a software""" start="00:07:17.880" video="mainVideo-core" id="subtitle"]]
+[[!template text="""project. Not many projects actually can claim""" start="00:07:21.940" video="mainVideo-core" id="subtitle"]]
+[[!template text="""that type of longevity.""" start="00:07:26.120" video="mainVideo-core" id="subtitle"]]
+[[!template text="""But Emacs is among those few that can.""" start="00:07:29.540" video="mainVideo-core" id="subtitle"]]
+[[!template text="""And of course, we have had some very exciting""" start="00:07:33.900" video="mainVideo-core" id="subtitle"]]
+[[!template text="""developments in recent versions.""" start="00:07:36.340" video="mainVideo-core" id="subtitle"]]
+[[!template text="""I think John just gave you an update on that.""" start="00:07:38.000" video="mainVideo-core" id="subtitle"]]
+[[!template text="""But we had just some highlights out of many""" start="00:07:41.980" video="mainVideo-core" id="subtitle"]]
+[[!template text="""highlights that you could give,""" start="00:07:46.160" video="mainVideo-core" id="subtitle"]]
+[[!template text="""really, we got the TreeSetter support in""" start="00:07:48.580" video="mainVideo-core" id="subtitle"]]
+[[!template text="""Emacs 29 that we now need to sort of extend""" start="00:07:50.920" video="mainVideo-core" id="subtitle"]]
+[[!template text="""and develop. We have merged EGLOT,""" start="00:07:54.320" video="mainVideo-core" id="subtitle"]]
+[[!template text="""so we have LSP support out of the box,""" start="00:07:56.380" video="mainVideo-core" id="subtitle"]]
+[[!template text="""I think is a huge improvement.""" start="00:07:59.440" video="mainVideo-core" id="subtitle"]]
+[[!template text="""Native compilation, of course,""" start="00:08:01.400" video="mainVideo-core" id="subtitle"]]
+[[!template text="""a big feature. I mean,""" start="00:08:02.960" video="mainVideo-core" id="subtitle"]]
+[[!template text="""that was Andrea's job,""" start="00:08:06.580" video="mainVideo-core" id="subtitle"]]
+[[!template text="""really, for performance.""" start="00:08:08.900" video="mainVideo-core" id="subtitle"]]
+[[!template text="""And it turns out that in many types of""" start="00:08:11.460" video="mainVideo-core" id="subtitle"]]
+[[!template text="""workloads and the types of stuff that people""" start="00:08:14.020" video="mainVideo-core" id="subtitle"]]
+[[!template text="""are doing, it often matters.""" start="00:08:15.720" video="mainVideo-core" id="subtitle"]]
+[[!template text="""And we're hoping to make that the default,""" start="00:08:18.080" video="mainVideo-core" id="subtitle"]]
+[[!template text="""perhaps already in Emacs 30.""" start="00:08:21.480" video="mainVideo-core" id="subtitle"]]
+[[!template text="""So there are things that are happening that""" start="00:08:24.960" video="mainVideo-core" id="subtitle"]]
+[[!template text="""fundamentally make Emacs better at a very""" start="00:08:26.840" video="mainVideo-core" id="subtitle"]]
+[[!template text="""core level. So, of course,""" start="00:08:32.200" video="mainVideo-core" id="subtitle"]]
+[[!template text="""why wouldn't you want to be involved in such""" start="00:08:37.360" video="mainVideo-core" id="subtitle"]]
+[[!template text="""an exciting and, I think,""" start="00:08:41.679" video="mainVideo-core" id="subtitle"]]
+[[!template text="""dynamic project? How is Emacs developed?""" start="00:08:43.440" video="mainVideo-core" id="subtitle"]]
+[[!template text="""Well, this is, I think,""" start="00:08:51.660" video="mainVideo-core" id="subtitle"]]
+[[!template text="""perhaps to some people,""" start="00:08:53.000" video="mainVideo-core" id="subtitle"]]
+[[!template text="""a little bit more of a threshold,""" start="00:08:54.200" video="mainVideo-core" id="subtitle"]]
+[[!template text="""if you like, because I think all of us know""" start="00:08:56.520" video="mainVideo-core" id="subtitle"]]
+[[!template text="""really that there is exciting and cool stuff""" start="00:08:59.100" video="mainVideo-core" id="subtitle"]]
+[[!template text="""that is going on in Emacs and has been going""" start="00:09:02.980" video="mainVideo-core" id="subtitle"]]
+[[!template text="""on over the last couple of years and we'll""" start="00:09:06.560" video="mainVideo-core" id="subtitle"]]
+[[!template text="""see even more of that,""" start="00:09:08.260" video="mainVideo-core" id="subtitle"]]
+[[!template text="""I think, going forward.""" start="00:09:10.040" video="mainVideo-core" id="subtitle"]]
+[[!template text="""1 thing is that communication still takes""" start="00:09:12.600" video="mainVideo-core" id="subtitle"]]
+[[!template text="""place over a mailing list in 2023.""" start="00:09:16.580" video="mainVideo-core" id="subtitle"]]
+[[!template text="""So we have emacsdevil at gnu.org,""" start="00:09:21.240" video="mainVideo-core" id="subtitle"]]
+[[!template text="""and that's where we develop Emacs.""" start="00:09:24.440" video="mainVideo-core" id="subtitle"]]
+[[!template text="""We use, we send patches back and forth,""" start="00:09:26.680" video="mainVideo-core" id="subtitle"]]
+[[!template text="""we comment on patches.""" start="00:09:30.140" video="mainVideo-core" id="subtitle"]]
+[[!template text="""And actually this workflow is very good,""" start="00:09:32.700" video="mainVideo-core" id="subtitle"]]
+[[!template text="""if you're used to it. Because guess what?""" start="00:09:36.700" video="mainVideo-core" id="subtitle"]]
+[[!template text="""As Emacs users, we like doing everything we""" start="00:09:39.580" video="mainVideo-core" id="subtitle"]]
+[[!template text="""can in Emacs, especially the core tasks that""" start="00:09:42.200" video="mainVideo-core" id="subtitle"]]
+[[!template text="""we're doing, such as developing Emacs itself.""" start="00:09:45.220" video="mainVideo-core" id="subtitle"]]
+[[!template text="""Of course, you want to do that fully within""" start="00:09:50.140" video="mainVideo-core" id="subtitle"]]
+[[!template text="""Emacs. So we hack Emacs Lisp in Emacs,""" start="00:09:52.960" video="mainVideo-core" id="subtitle"]]
+[[!template text="""we hack C in Emacs, we respond to emails also""" start="00:09:55.440" video="mainVideo-core" id="subtitle"]]
+[[!template text="""from Emacs, respond to bug reports,""" start="00:10:00.240" video="mainVideo-core" id="subtitle"]]
+[[!template text="""manage bug reports. We do all that stuff""" start="00:10:02.700" video="mainVideo-core" id="subtitle"]]
+[[!template text="""very, very smoothly. And it doesn't really""" start="00:10:05.460" video="mainVideo-core" id="subtitle"]]
+[[!template text="""matter in a sense, what is the medium?""" start="00:10:07.840" video="mainVideo-core" id="subtitle"]]
+[[!template text="""It happens to be email.""" start="00:10:10.560" video="mainVideo-core" id="subtitle"]]
+[[!template text="""Technically it could be anything,""" start="00:10:12.180" video="mainVideo-core" id="subtitle"]]
+[[!template text="""but email really has that type of staying""" start="00:10:14.440" video="mainVideo-core" id="subtitle"]]
+[[!template text="""power where we've been able to use it for a""" start="00:10:16.720" video="mainVideo-core" id="subtitle"]]
+[[!template text="""long time. And this is how,""" start="00:10:19.640" video="mainVideo-core" id="subtitle"]]
+[[!template text="""and we're still able to use it.""" start="00:10:22.360" video="mainVideo-core" id="subtitle"]]
+[[!template text="""And this is how free software was always""" start="00:10:24.000" video="mainVideo-core" id="subtitle"]]
+[[!template text="""developed in the past.""" start="00:10:25.800" video="mainVideo-core" id="subtitle"]]
+[[!template text="""Only in the last, let's say 10,""" start="00:10:26.640" video="mainVideo-core" id="subtitle"]]
+[[!template text="""15 years, We've had more development taking""" start="00:10:28.380" video="mainVideo-core" id="subtitle"]]
+[[!template text="""place perhaps on forges like GitHub,""" start="00:10:32.440" video="mainVideo-core" id="subtitle"]]
+[[!template text="""GitLab, whatever. But we are 1 of the""" start="00:10:35.580" video="mainVideo-core" id="subtitle"]]
+[[!template text="""holdouts. I mean, there are others,""" start="00:10:39.160" video="mainVideo-core" id="subtitle"]]
+[[!template text="""of course, like the Linux kernel has mailing""" start="00:10:40.680" video="mainVideo-core" id="subtitle"]]
+[[!template text="""lists. They're not trying to do that scale""" start="00:10:42.560" video="mainVideo-core" id="subtitle"]]
+[[!template text="""development on GitHub.""" start="00:10:44.340" video="mainVideo-core" id="subtitle"]]
+[[!template text="""And this is not just because we're Luddites""" start="00:10:49.280" video="mainVideo-core" id="subtitle"]]
+[[!template text="""that refuse to change.""" start="00:10:51.760" video="mainVideo-core" id="subtitle"]]
+[[!template text="""We just have to do it in the old way,""" start="00:10:53.560" video="mainVideo-core" id="subtitle"]]
+[[!template text="""because it is the old way,""" start="00:10:55.380" video="mainVideo-core" id="subtitle"]]
+[[!template text="""and that's the way it should be.""" start="00:10:57.120" video="mainVideo-core" id="subtitle"]]
+[[!template text="""No, it's actually because we,""" start="00:10:58.780" video="mainVideo-core" id="subtitle"]]
+[[!template text="""as core developers, the core development team""" start="00:11:01.220" video="mainVideo-core" id="subtitle"]]
+[[!template text="""and the people already involved and doing""" start="00:11:03.460" video="mainVideo-core" id="subtitle"]]
+[[!template text="""tremendous, I mean large amounts of work in""" start="00:11:05.460" video="mainVideo-core" id="subtitle"]]
+[[!template text="""Emacs has very efficient workflows built up""" start="00:11:08.560" video="mainVideo-core" id="subtitle"]]
+[[!template text="""based on this. So of course,""" start="00:11:12.720" video="mainVideo-core" id="subtitle"]]
+[[!template text="""I mean moving to something else is something""" start="00:11:15.620" video="mainVideo-core" id="subtitle"]]
+[[!template text="""that we might like to do,""" start="00:11:18.320" video="mainVideo-core" id="subtitle"]]
+[[!template text="""but we're not yet clear on how to do it""" start="00:11:20.580" video="mainVideo-core" id="subtitle"]]
+[[!template text="""exactly and what to move to.""" start="00:11:24.400" video="mainVideo-core" id="subtitle"]]
+[[!template text="""So these are the types of discussions that""" start="00:11:26.320" video="mainVideo-core" id="subtitle"]]
+[[!template text="""we're looking at. Can we still support a""" start="00:11:28.380" video="mainVideo-core" id="subtitle"]]
+[[!template text="""mailing, an email type workflow while moving""" start="00:11:30.280" video="mainVideo-core" id="subtitle"]]
+[[!template text="""to something else? That would be 1 of the big""" start="00:11:34.040" video="mainVideo-core" id="subtitle"]]
+[[!template text="""ones. I think another thing that trips people""" start="00:11:36.100" video="mainVideo-core" id="subtitle"]]
+[[!template text="""up is that we used a bug tracker that,""" start="00:11:38.400" video="mainVideo-core" id="subtitle"]]
+[[!template text="""I mean, maybe some people,""" start="00:11:40.840" video="mainVideo-core" id="subtitle"]]
+[[!template text="""I've heard people say it's archaic.""" start="00:11:42.620" video="mainVideo-core" id="subtitle"]]
+[[!template text="""It's called Debugs. I think maybe Debugs gets""" start="00:11:47.020" video="mainVideo-core" id="subtitle"]]
+[[!template text="""a bit of a bad rap. I think that bugs is a""" start="00:11:49.900" video="mainVideo-core" id="subtitle"]]
+[[!template text="""good piece of software.""" start="00:11:52.000" video="mainVideo-core" id="subtitle"]]
+[[!template text="""It wasn't developed in 2023.""" start="00:11:53.520" video="mainVideo-core" id="subtitle"]]
+[[!template text="""I mean, that's much as clear.""" start="00:11:55.580" video="mainVideo-core" id="subtitle"]]
+[[!template text="""It's a little bit older,""" start="00:11:57.660" video="mainVideo-core" id="subtitle"]]
+[[!template text="""but it really is a workhorse of the Debian""" start="00:11:59.060" video="mainVideo-core" id="subtitle"]]
+[[!template text="""project, which is obviously a project that's""" start="00:12:01.320" video="mainVideo-core" id="subtitle"]]
+[[!template text="""developed in a very different way than Emacs""" start="00:12:03.960" video="mainVideo-core" id="subtitle"]]
+[[!template text="""is. It's on a completely different scale,""" start="00:12:09.400" video="mainVideo-core" id="subtitle"]]
+[[!template text="""of course, much bigger,""" start="00:12:11.880" video="mainVideo-core" id="subtitle"]]
+[[!template text="""many more developers, and so on.""" start="00:12:12.840" video="mainVideo-core" id="subtitle"]]
+[[!template text="""But I think the developers did a good job for""" start="00:12:15.040" video="mainVideo-core" id="subtitle"]]
+[[!template text="""the time. But it might be showing its age,""" start="00:12:17.800" video="mainVideo-core" id="subtitle"]]
+[[!template text="""perhaps, in places. Perhaps,""" start="00:12:20.920" video="mainVideo-core" id="subtitle"]]
+[[!template text="""again, it's the email workflow.""" start="00:12:23.440" video="mainVideo-core" id="subtitle"]]
+[[!template text="""And people see that as a little bit of a""" start="00:12:25.260" video="mainVideo-core" id="subtitle"]]
+[[!template text="""threshold. It seems alien.""" start="00:12:27.720" video="mainVideo-core" id="subtitle"]]
+[[!template text="""It's a little bit strange,""" start="00:12:30.180" video="mainVideo-core" id="subtitle"]]
+[[!template text="""the types of workflows that you have there.""" start="00:12:32.220" video="mainVideo-core" id="subtitle"]]
+[[!template text="""So we are seeing some limitations with that""" start="00:12:35.220" video="mainVideo-core" id="subtitle"]]
+[[!template text="""box. And again, how do you report bugs?""" start="00:12:38.860" video="mainVideo-core" id="subtitle"]]
+[[!template text="""Well, in a sense, it's easy.""" start="00:12:41.020" video="mainVideo-core" id="subtitle"]]
+[[!template text="""You send an email to bug-gnu-emacs at gnu.org""" start="00:12:42.600" video="mainVideo-core" id="subtitle"]]
+[[!template text="""and you copy in whatever you get from,""" start="00:12:47.620" video="mainVideo-core" id="subtitle"]]
+[[!template text="""you know, report the EMAX bug or if you have,""" start="00:12:51.340" video="mainVideo-core" id="subtitle"]]
+[[!template text="""you know, send mail set up locally,""" start="00:12:53.300" video="mainVideo-core" id="subtitle"]]
+[[!template text="""just hit control C, control C and it's sent""" start="00:12:55.580" video="mainVideo-core" id="subtitle"]]
+[[!template text="""to the bug tracker and that's fine.""" start="00:12:58.700" video="mainVideo-core" id="subtitle"]]
+[[!template text="""But also I have to mention that there is this""" start="00:13:03.840" video="mainVideo-core" id="subtitle"]]
+[[!template text="""very good package on GNU Elpas.""" start="00:13:08.680" video="mainVideo-core" id="subtitle"]]
+[[!template text="""If you're ever trying to read the Emacs bug""" start="00:13:10.600" video="mainVideo-core" id="subtitle"]]
+[[!template text="""tracker or following along in Emacs""" start="00:13:13.540" video="mainVideo-core" id="subtitle"]]
+[[!template text="""development, I really recommend install the""" start="00:13:16.500" video="mainVideo-core" id="subtitle"]]
+[[!template text="""package devbugs from GNU Elpa.""" start="00:13:19.000" video="mainVideo-core" id="subtitle"]]
+[[!template text="""It's so good. And again,""" start="00:13:22.120" video="mainVideo-core" id="subtitle"]]
+[[!template text="""it's built on GNU, it's all integrated in""" start="00:13:24.140" video="mainVideo-core" id="subtitle"]]
+[[!template text="""Emacs, it's so much better than using the web""" start="00:13:26.580" video="mainVideo-core" id="subtitle"]]
+[[!template text="""and so on. And if you really want to get into""" start="00:13:30.660" video="mainVideo-core" id="subtitle"]]
+[[!template text="""it, you can download the bug tracker archives""" start="00:13:33.220" video="mainVideo-core" id="subtitle"]]
+[[!template text="""and the mailing list archives,""" start="00:13:38.140" video="mainVideo-core" id="subtitle"]]
+[[!template text="""and you can put them locally,""" start="00:13:39.720" video="mainVideo-core" id="subtitle"]]
+[[!template text="""you can have them searchable,""" start="00:13:41.260" video="mainVideo-core" id="subtitle"]]
+[[!template text="""and you can have whatever experience you""" start="00:13:42.740" video="mainVideo-core" id="subtitle"]]
+[[!template text="""like. So, I mean, it's really a flexible""" start="00:13:44.440" video="mainVideo-core" id="subtitle"]]
+[[!template text="""workflow, but it's a bit strange,""" start="00:13:48.240" video="mainVideo-core" id="subtitle"]]
+[[!template text="""perhaps, to some people.""" start="00:13:51.260" video="mainVideo-core" id="subtitle"]]
+[[!template text="""So we also think supporting only this""" start="00:13:53.460" video="mainVideo-core" id="subtitle"]]
+[[!template text="""workflow might be a little bit too limiting.""" start="00:13:58.120" video="mainVideo-core" id="subtitle"]]
+[[!template text="""So we do want to move over to something like""" start="00:14:00.660" video="mainVideo-core" id="subtitle"]]
+[[!template text="""GitLab, perhaps Sourcehat or something""" start="00:14:04.440" video="mainVideo-core" id="subtitle"]]
+[[!template text="""similar. We've had a couple of discussions""" start="00:14:06.760" video="mainVideo-core" id="subtitle"]]
+[[!template text="""about that over the last couple of years.""" start="00:14:10.760" video="mainVideo-core" id="subtitle"]]
+[[!template text="""I think even before that,""" start="00:14:14.480" video="mainVideo-core" id="subtitle"]]
+[[!template text="""but that's how far back I've been involved,""" start="00:14:15.820" video="mainVideo-core" id="subtitle"]]
+[[!template text="""and definitely it's come up occasionally.""" start="00:14:18.940" video="mainVideo-core" id="subtitle"]]
+[[!template text="""I think we are less far away than perhaps""" start="00:14:23.100" video="mainVideo-core" id="subtitle"]]
+[[!template text="""ever is how I would express that,""" start="00:14:27.940" video="mainVideo-core" id="subtitle"]]
+[[!template text="""and in the sense that the remaining blockers""" start="00:14:30.720" video="mainVideo-core" id="subtitle"]]
+[[!template text="""for just making the shift,""" start="00:14:36.960" video="mainVideo-core" id="subtitle"]]
+[[!template text="""let's say, are I think,""" start="00:14:38.640" video="mainVideo-core" id="subtitle"]]
+[[!template text="""I mean, first of all, we're talking about""" start="00:14:40.200" video="mainVideo-core" id="subtitle"]]
+[[!template text="""limitations, perhaps in the software,""" start="00:14:42.120" video="mainVideo-core" id="subtitle"]]
+[[!template text="""they're well defined, and they're not as""" start="00:14:44.020" video="mainVideo-core" id="subtitle"]]
+[[!template text="""amountable. I don't think they have to be in""" start="00:14:46.420" video="mainVideo-core" id="subtitle"]]
+[[!template text="""any case. We should be able to make some""" start="00:14:49.060" video="mainVideo-core" id="subtitle"]]
+[[!template text="""progress. The main thing that we're lacking""" start="00:14:50.840" video="mainVideo-core" id="subtitle"]]
+[[!template text="""now is not more discussion or more people""" start="00:14:54.720" video="mainVideo-core" id="subtitle"]]
+[[!template text="""prodding us to just please switch over.""" start="00:15:00.800" video="mainVideo-core" id="subtitle"]]
+[[!template text="""No, we're looking for volunteers.""" start="00:15:03.120" video="mainVideo-core" id="subtitle"]]
+[[!template text="""If you think that you,""" start="00:15:05.980" video="mainVideo-core" id="subtitle"]]
+[[!template text="""you know, have what it takes to sort of come""" start="00:15:08.400" video="mainVideo-core" id="subtitle"]]
+[[!template text="""in and help us do something like that and""" start="00:15:10.960" video="mainVideo-core" id="subtitle"]]
+[[!template text="""work together with us,""" start="00:15:14.060" video="mainVideo-core" id="subtitle"]]
+[[!template text="""you know, to see what can be done,""" start="00:15:15.040" video="mainVideo-core" id="subtitle"]]
+[[!template text="""perhaps some, a few things would need to be""" start="00:15:16.840" video="mainVideo-core" id="subtitle"]]
+[[!template text="""changed in GitLab. I don't think anything""" start="00:15:20.200" video="mainVideo-core" id="subtitle"]]
+[[!template text="""huge, but maybe there are some patches to be""" start="00:15:23.220" video="mainVideo-core" id="subtitle"]]
+[[!template text="""written and sent upstream,""" start="00:15:26.120" video="mainVideo-core" id="subtitle"]]
+[[!template text="""or maybe we need to do some local hacks or""" start="00:15:27.980" video="mainVideo-core" id="subtitle"]]
+[[!template text="""whatever. If you wanna do that,""" start="00:15:30.280" video="mainVideo-core" id="subtitle"]]
+[[!template text="""please contact us, emacsdevil.""" start="00:15:33.140" video="mainVideo-core" id="subtitle"]]
+[[!template text="""We'll be very happy to talk to you.""" start="00:15:35.460" video="mainVideo-core" id="subtitle"]]
+[[!template text="""And then we can start making progress.""" start="00:15:38.940" video="mainVideo-core" id="subtitle"]]
+[[!template text="""So I'm really hoping that that sound like""" start="00:15:40.520" video="mainVideo-core" id="subtitle"]]
+[[!template text="""will come into place. But we need to,""" start="00:15:42.740" video="mainVideo-core" id="subtitle"]]
+[[!template text="""if we do switch over, we need to preserve the""" start="00:15:46.780" video="mainVideo-core" id="subtitle"]]
+[[!template text="""good parts of our email-based workflows.""" start="00:15:52.340" video="mainVideo-core" id="subtitle"]]
+[[!template text="""So there are requirements there so that we""" start="00:15:54.820" video="mainVideo-core" id="subtitle"]]
+[[!template text="""can continue to do our job as maintainers,""" start="00:15:57.140" video="mainVideo-core" id="subtitle"]]
+[[!template text="""if you like. Another thing is that we've""" start="00:16:01.720" video="mainVideo-core" id="subtitle"]]
+[[!template text="""sometimes seen that there's a bit of a""" start="00:16:04.900" video="mainVideo-core" id="subtitle"]]
+[[!template text="""different culture perhaps on mailing lists""" start="00:16:08.340" video="mainVideo-core" id="subtitle"]]
+[[!template text="""and on Emacs devil than what many people are""" start="00:16:11.380" video="mainVideo-core" id="subtitle"]]
+[[!template text="""used to, especially like you've used perhaps,""" start="00:16:15.060" video="mainVideo-core" id="subtitle"]]
+[[!template text="""many people might be in university and""" start="00:16:17.800" video="mainVideo-core" id="subtitle"]]
+[[!template text="""they've started using Emacs,""" start="00:16:20.540" video="mainVideo-core" id="subtitle"]]
+[[!template text="""maybe got into a little bit of package""" start="00:16:23.720" video="mainVideo-core" id="subtitle"]]
+[[!template text="""development and starting to get the ropes of""" start="00:16:25.840" video="mainVideo-core" id="subtitle"]]
+[[!template text="""that and are very used to working on places""" start="00:16:29.060" video="mainVideo-core" id="subtitle"]]
+[[!template text="""like GitLab or something like that,""" start="00:16:32.560" video="mainVideo-core" id="subtitle"]]
+[[!template text="""then the type of culture and way of""" start="00:16:35.460" video="mainVideo-core" id="subtitle"]]
+[[!template text="""communicating that we use in Emacs might be a""" start="00:16:38.000" video="mainVideo-core" id="subtitle"]]
+[[!template text="""little bit different. And of course,""" start="00:16:42.040" video="mainVideo-core" id="subtitle"]]
+[[!template text="""it's different in the sense that mailing""" start="00:16:44.540" video="mainVideo-core" id="subtitle"]]
+[[!template text="""lists have always, I mean,""" start="00:16:47.380" video="mainVideo-core" id="subtitle"]]
+[[!template text="""let's say hacker culture,""" start="00:16:49.900" video="mainVideo-core" id="subtitle"]]
+[[!template text="""whatever you want to call it,""" start="00:16:51.060" video="mainVideo-core" id="subtitle"]]
+[[!template text="""have always communicated in a particular way""" start="00:16:52.120" video="mainVideo-core" id="subtitle"]]
+[[!template text="""using mailing lists. So it's like succinct to""" start="00:16:54.720" video="mainVideo-core" id="subtitle"]]
+[[!template text="""the point, perhaps I'm skipping a few""" start="00:16:58.340" video="mainVideo-core" id="subtitle"]]
+[[!template text="""pleasantries. And the idea is that you should""" start="00:17:00.320" video="mainVideo-core" id="subtitle"]]
+[[!template text="""just use it in as effective way as possible,""" start="00:17:03.340" video="mainVideo-core" id="subtitle"]]
+[[!template text="""so that also the archives are usable.""" start="00:17:08.359" video="mainVideo-core" id="subtitle"]]
+[[!template text="""And the other thing is that generally people""" start="00:17:11.319" video="mainVideo-core" id="subtitle"]]
+[[!template text="""involved in developing free software has to""" start="00:17:13.660" video="mainVideo-core" id="subtitle"]]
+[[!template text="""deal with a lot of incoming traffic,""" start="00:17:16.500" video="mainVideo-core" id="subtitle"]]
+[[!template text="""emails. They don't have the bandwidth if it's""" start="00:17:19.780" video="mainVideo-core" id="subtitle"]]
+[[!template text="""too much noise. You really need to be strict""" start="00:17:25.900" video="mainVideo-core" id="subtitle"]]
+[[!template text="""to keep the signal to noise ratio high.""" start="00:17:28.220" video="mainVideo-core" id="subtitle"]]
+[[!template text="""We have some weird terminology on the Emacs""" start="00:17:31.840" video="mainVideo-core" id="subtitle"]]
+[[!template text="""devil. People tell us,""" start="00:17:35.280" video="mainVideo-core" id="subtitle"]]
+[[!template text="""we say sometimes install patches which""" start="00:17:38.200" video="mainVideo-core" id="subtitle"]]
+[[!template text="""basically means push to master or merge pull""" start="00:17:40.680" video="mainVideo-core" id="subtitle"]]
+[[!template text="""requests because we've used other version""" start="00:17:44.180" video="mainVideo-core" id="subtitle"]]
+[[!template text="""control systems in the past where it might""" start="00:17:46.720" video="mainVideo-core" id="subtitle"]]
+[[!template text="""have made more sense to say install patches.""" start="00:17:48.600" video="mainVideo-core" id="subtitle"]]
+[[!template text="""And then you sort of, I don't know,""" start="00:17:51.000" video="mainVideo-core" id="subtitle"]]
+[[!template text="""I say it. Don't ask me why.""" start="00:17:52.540" video="mainVideo-core" id="subtitle"]]
+[[!template text="""But it feels natural after a while.""" start="00:17:54.380" video="mainVideo-core" id="subtitle"]]
+[[!template text="""You install a patch. It's clear what you""" start="00:17:56.040" video="mainVideo-core" id="subtitle"]]
+[[!template text="""mean. You don't have to worry about which""" start="00:17:57.720" video="mainVideo-core" id="subtitle"]]
+[[!template text="""branch it's on. So it's a little bit""" start="00:18:02.280" video="mainVideo-core" id="subtitle"]]
+[[!template text="""historical there. So there is some of that""" start="00:18:06.600" video="mainVideo-core" id="subtitle"]]
+[[!template text="""culture going on. It might be different.""" start="00:18:10.120" video="mainVideo-core" id="subtitle"]]
+[[!template text="""We don't use emojis that much.""" start="00:18:11.960" video="mainVideo-core" id="subtitle"]]
+[[!template text="""That's another thing. There is no like,""" start="00:18:14.220" video="mainVideo-core" id="subtitle"]]
+[[!template text="""you can click the little like button at the""" start="00:18:16.840" video="mainVideo-core" id="subtitle"]]
+[[!template text="""bottom of a comment or an email as you could""" start="00:18:20.900" video="mainVideo-core" id="subtitle"]]
+[[!template text="""on GitHub. But there are exceptions and it's""" start="00:18:25.080" video="mainVideo-core" id="subtitle"]]
+[[!template text="""not like someone will send you angry emails""" start="00:18:27.740" video="mainVideo-core" id="subtitle"]]
+[[!template text="""if you use an emoji or something like that.""" start="00:18:29.600" video="mainVideo-core" id="subtitle"]]
+[[!template text="""But it can come off as perhaps Because people""" start="00:18:31.480" video="mainVideo-core" id="subtitle"]]
+[[!template text="""are pressed for time also when replying to""" start="00:18:34.200" video="mainVideo-core" id="subtitle"]]
+[[!template text="""all these emails. So it might come off as a""" start="00:18:37.260" video="mainVideo-core" id="subtitle"]]
+[[!template text="""little bit short, but that's just how it is.""" start="00:18:39.400" video="mainVideo-core" id="subtitle"]]
+[[!template text="""And I think We have heard this comment before""" start="00:18:43.440" video="mainVideo-core" id="subtitle"]]
+[[!template text="""that mailing lists are scary or Emacs devil""" start="00:18:46.880" video="mainVideo-core" id="subtitle"]]
+[[!template text="""is scary or core development is scary.""" start="00:18:50.720" video="mainVideo-core" id="subtitle"]]
+[[!template text="""And I've touched a few of these points a""" start="00:18:54.780" video="mainVideo-core" id="subtitle"]]
+[[!template text="""little bit already. I think,""" start="00:18:58.180" video="mainVideo-core" id="subtitle"]]
+[[!template text="""yeah, maybe a little bit.""" start="00:18:59.620" video="mainVideo-core" id="subtitle"]]
+[[!template text="""For example, we don't use emojis very short""" start="00:19:02.320" video="mainVideo-core" id="subtitle"]]
+[[!template text="""in the communication. And we always use""" start="00:19:06.820" video="mainVideo-core" id="subtitle"]]
+[[!template text="""correct grammar and spelling.""" start="00:19:10.940" video="mainVideo-core" id="subtitle"]]
+[[!template text="""We take that seriously because it's important""" start="00:19:13.380" video="mainVideo-core" id="subtitle"]]
+[[!template text="""for being clear in your written communication""" start="00:19:15.920" video="mainVideo-core" id="subtitle"]]
+[[!template text="""when all you have is written communication.""" start="00:19:19.200" video="mainVideo-core" id="subtitle"]]
+[[!template text="""It's really important.""" start="00:19:22.680" video="mainVideo-core" id="subtitle"]]
+[[!template text="""But it's not like If you come in there and""" start="00:19:26.760" video="mainVideo-core" id="subtitle"]]
+[[!template text="""you don't know all these cultural rules and""" start="00:19:31.400" video="mainVideo-core" id="subtitle"]]
+[[!template text="""all these patterns, then you know you will We""" start="00:19:33.580" video="mainVideo-core" id="subtitle"]]
+[[!template text="""won't talk to you No Actually,""" start="00:19:36.380" video="mainVideo-core" id="subtitle"]]
+[[!template text="""we try to be as welcoming as we can and and""" start="00:19:37.900" video="mainVideo-core" id="subtitle"]]
+[[!template text="""be mindful and you know people not Everyone""" start="00:19:41.100" video="mainVideo-core" id="subtitle"]]
+[[!template text="""has English as their native language,""" start="00:19:44.600" video="mainVideo-core" id="subtitle"]]
+[[!template text="""for example. So perhaps someone says""" start="00:19:47.080" video="mainVideo-core" id="subtitle"]]
+[[!template text="""something, and it might come off as rude,""" start="00:19:49.200" video="mainVideo-core" id="subtitle"]]
+[[!template text="""but maybe it's just a direct translation.""" start="00:19:51.360" video="mainVideo-core" id="subtitle"]]
+[[!template text="""So we're trying to give a lot of whatever the""" start="00:19:53.200" video="mainVideo-core" id="subtitle"]]
+[[!template text="""native language is. So we try to give a lot""" start="00:19:56.520" video="mainVideo-core" id="subtitle"]]
+[[!template text="""of leeway and just be a little bit,""" start="00:19:59.760" video="mainVideo-core" id="subtitle"]]
+[[!template text="""you know, flexible and focus on,""" start="00:20:01.780" video="mainVideo-core" id="subtitle"]]
+[[!template text="""you know, the key, key points,""" start="00:20:03.580" video="mainVideo-core" id="subtitle"]]
+[[!template text="""which are the technical things,""" start="00:20:04.920" video="mainVideo-core" id="subtitle"]]
+[[!template text="""the technical decisions,""" start="00:20:06.580" video="mainVideo-core" id="subtitle"]]
+[[!template text="""technical arguments, rather than,""" start="00:20:07.840" video="mainVideo-core" id="subtitle"]]
+[[!template text="""you know, getting bogged down in a lot of,""" start="00:20:09.280" video="mainVideo-core" id="subtitle"]]
+[[!template text="""you know, personal, you know,""" start="00:20:11.920" video="mainVideo-core" id="subtitle"]]
+[[!template text="""discussions and flame wars.""" start="00:20:15.360" video="mainVideo-core" id="subtitle"]]
+[[!template text="""So, I mean, there are these things to be""" start="00:20:19.300" video="mainVideo-core" id="subtitle"]]
+[[!template text="""aware of, you know, it's just a little bit""" start="00:20:21.260" video="mainVideo-core" id="subtitle"]]
+[[!template text="""different. I don't think it's anything huge.""" start="00:20:23.160" video="mainVideo-core" id="subtitle"]]
+[[!template text="""And I wouldn't be, you know,""" start="00:20:25.080" video="mainVideo-core" id="subtitle"]]
+[[!template text="""I think it would be sad if people felt too""" start="00:20:28.440" video="mainVideo-core" id="subtitle"]]
+[[!template text="""intimidated by that. It just is what it is.""" start="00:20:30.480" video="mainVideo-core" id="subtitle"]]
+[[!template text="""And if you spend some time there,""" start="00:20:32.320" video="mainVideo-core" id="subtitle"]]
+[[!template text="""you'll see how people generally communicate.""" start="00:20:33.540" video="mainVideo-core" id="subtitle"]]
+[[!template text="""Sometimes, there are a lot of people on""" start="00:20:38.400" video="mainVideo-core" id="subtitle"]]
+[[!template text="""EmacsDevil. It's a public mailing list.""" start="00:20:41.260" video="mainVideo-core" id="subtitle"]]
+[[!template text="""A lot of people just sign up to follow Emacs""" start="00:20:43.660" video="mainVideo-core" id="subtitle"]]
+[[!template text="""development. Sometimes they chime in.""" start="00:20:46.240" video="mainVideo-core" id="subtitle"]]
+[[!template text="""And I think this is in general a good thing.""" start="00:20:48.940" video="mainVideo-core" id="subtitle"]]
+[[!template text="""I think it should be a public mailing list.""" start="00:20:50.820" video="mainVideo-core" id="subtitle"]]
+[[!template text="""Sometimes this leads to weird situations from""" start="00:20:53.680" video="mainVideo-core" id="subtitle"]]
+[[!template text="""just a point of view as an Emacs maintainer,""" start="00:21:00.480" video="mainVideo-core" id="subtitle"]]
+[[!template text="""right? I mean, I try to say something and it""" start="00:21:03.480" video="mainVideo-core" id="subtitle"]]
+[[!template text="""doesn't always say, oh,""" start="00:21:07.080" video="mainVideo-core" id="subtitle"]]
+[[!template text="""he's the maintainer or whatever.""" start="00:21:08.240" video="mainVideo-core" id="subtitle"]]
+[[!template text="""So when I say something,""" start="00:21:10.080" video="mainVideo-core" id="subtitle"]]
+[[!template text="""it should carry a little bit more weight than""" start="00:21:11.200" video="mainVideo-core" id="subtitle"]]
+[[!template text="""some unknown person from the internet who has""" start="00:21:13.380" video="mainVideo-core" id="subtitle"]]
+[[!template text="""an opinion and decided to send it to""" start="00:21:16.160" video="mainVideo-core" id="subtitle"]]
+[[!template text="""EmacsDevil. So it's good to be a little bit""" start="00:21:18.740" video="mainVideo-core" id="subtitle"]]
+[[!template text="""aware of who is a little bit more involved""" start="00:21:21.020" video="mainVideo-core" id="subtitle"]]
+[[!template text="""with the project. I would check out the""" start="00:21:23.160" video="mainVideo-core" id="subtitle"]]
+[[!template text="""maintainers file. I would check,""" start="00:21:25.280" video="mainVideo-core" id="subtitle"]]
+[[!template text="""see in the Git log, do these people actually""" start="00:21:27.380" video="mainVideo-core" id="subtitle"]]
+[[!template text="""have any anything in core?""" start="00:21:31.000" video="mainVideo-core" id="subtitle"]]
+[[!template text="""And if not, maybe, you know,""" start="00:21:33.580" video="mainVideo-core" id="subtitle"]]
+[[!template text="""there, we won't really,""" start="00:21:35.860" video="mainVideo-core" id="subtitle"]]
+[[!template text="""even if they express an opinion very""" start="00:21:39.100" video="mainVideo-core" id="subtitle"]]
+[[!template text="""strongly, even if they're a little bit rude,""" start="00:21:41.000" video="mainVideo-core" id="subtitle"]]
+[[!template text="""maybe they're not even involved in Emacs""" start="00:21:42.720" video="mainVideo-core" id="subtitle"]]
+[[!template text="""development. I mean, often,""" start="00:21:44.760" video="mainVideo-core" id="subtitle"]]
+[[!template text="""that's the case we have some people,""" start="00:21:46.680" video="mainVideo-core" id="subtitle"]]
+[[!template text="""unfortunately, at times,""" start="00:21:48.460" video="mainVideo-core" id="subtitle"]]
+[[!template text="""we have random people from the internet come""" start="00:21:50.340" video="mainVideo-core" id="subtitle"]]
+[[!template text="""in on the mailing list and they're just a""" start="00:21:52.720" video="mainVideo-core" id="subtitle"]]
+[[!template text="""little bit rude, or they say an opinion""" start="00:21:54.720" video="mainVideo-core" id="subtitle"]]
+[[!template text="""that's not exactly helpful.""" start="00:21:57.740" video="mainVideo-core" id="subtitle"]]
+[[!template text="""And I think you need to be aware.""" start="00:22:00.060" video="mainVideo-core" id="subtitle"]]
+[[!template text="""I mean, these things happen in any forum,""" start="00:22:02.320" video="mainVideo-core" id="subtitle"]]
+[[!template text="""but it happens on EmacsDevO as well.""" start="00:22:04.340" video="mainVideo-core" id="subtitle"]]
+[[!template text="""So just be a little bit aware of who you're""" start="00:22:07.800" video="mainVideo-core" id="subtitle"]]
+[[!template text="""talking to, what people are doing.""" start="00:22:10.680" video="mainVideo-core" id="subtitle"]]
+[[!template text="""It can help to Check the archives,""" start="00:22:13.700" video="mainVideo-core" id="subtitle"]]
+[[!template text="""see who writes what, and so on.""" start="00:22:16.240" video="mainVideo-core" id="subtitle"]]
+[[!template text="""But it's not something that I think is a huge""" start="00:22:20.320" video="mainVideo-core" id="subtitle"]]
+[[!template text="""problem. It is just, again,""" start="00:22:23.080" video="mainVideo-core" id="subtitle"]]
+[[!template text="""something to be aware of.""" start="00:22:24.220" video="mainVideo-core" id="subtitle"]]
+[[!template text="""We have the new kind of communication""" start="00:22:25.900" video="mainVideo-core" id="subtitle"]]
+[[!template text="""guidelines in place, which basically says""" start="00:22:28.180" video="mainVideo-core" id="subtitle"]]
+[[!template text="""that you should be nice to people and stay""" start="00:22:30.820" video="mainVideo-core" id="subtitle"]]
+[[!template text="""focused on the technical problem,""" start="00:22:33.740" video="mainVideo-core" id="subtitle"]]
+[[!template text="""try to see things from another person's point""" start="00:22:36.060" video="mainVideo-core" id="subtitle"]]
+[[!template text="""of view, this kind of stuff.""" start="00:22:38.300" video="mainVideo-core" id="subtitle"]]
+[[!template text="""So we're really trying to be as inclusive as""" start="00:22:39.360" video="mainVideo-core" id="subtitle"]]
+[[!template text="""possible and just stay correct in general.""" start="00:22:42.140" video="mainVideo-core" id="subtitle"]]
+[[!template text="""And sometimes, I mean,""" start="00:22:46.820" video="mainVideo-core" id="subtitle"]]
+[[!template text="""not everyone, it's a public list.""" start="00:22:48.380" video="mainVideo-core" id="subtitle"]]
+[[!template text="""We moderate it, but not to a huge extent,""" start="00:22:50.060" video="mainVideo-core" id="subtitle"]]
+[[!template text="""right? So sometimes people get away with a""" start="00:22:52.440" video="mainVideo-core" id="subtitle"]]
+[[!template text="""little bit of perhaps stretching the""" start="00:22:57.840" video="mainVideo-core" id="subtitle"]]
+[[!template text="""boundaries of what might be included in the""" start="00:23:02.260" video="mainVideo-core" id="subtitle"]]
+[[!template text="""kind communication guidelines,""" start="00:23:04.700" video="mainVideo-core" id="subtitle"]]
+[[!template text="""sort of the fences and limitations of that.""" start="00:23:08.040" video="mainVideo-core" id="subtitle"]]
+[[!template text="""But I would just ignore that.""" start="00:23:11.460" video="mainVideo-core" id="subtitle"]]
+[[!template text="""Sometimes it happens that we,""" start="00:23:13.940" video="mainVideo-core" id="subtitle"]]
+[[!template text="""as happens in any forum,""" start="00:23:15.860" video="mainVideo-core" id="subtitle"]]
+[[!template text="""by the way, you just, we have these very big""" start="00:23:17.160" video="mainVideo-core" id="subtitle"]]
+[[!template text="""threads. We start discussing something else.""" start="00:23:19.440" video="mainVideo-core" id="subtitle"]]
+[[!template text="""Perhaps you send us a patch and it just""" start="00:23:21.760" video="mainVideo-core" id="subtitle"]]
+[[!template text="""devolves into us discussing something""" start="00:23:24.320" video="mainVideo-core" id="subtitle"]]
+[[!template text="""completely different. And of course I partake""" start="00:23:26.360" video="mainVideo-core" id="subtitle"]]
+[[!template text="""in that, not better than anyone else,""" start="00:23:28.680" video="mainVideo-core" id="subtitle"]]
+[[!template text="""but it just happens. I mean,""" start="00:23:30.440" video="mainVideo-core" id="subtitle"]]
+[[!template text="""it's not your fault. It's just what happens""" start="00:23:32.960" video="mainVideo-core" id="subtitle"]]
+[[!template text="""sometimes in forums, and don't mind that.""" start="00:23:34.800" video="mainVideo-core" id="subtitle"]]
+[[!template text="""And it's a little bit easier to do that in""" start="00:23:37.200" video="mainVideo-core" id="subtitle"]]
+[[!template text="""emails, because you just change the subject,""" start="00:23:39.120" video="mainVideo-core" id="subtitle"]]
+[[!template text="""and now it's supposed to be a different""" start="00:23:41.680" video="mainVideo-core" id="subtitle"]]
+[[!template text="""thread, but it comes as replies usually to""" start="00:23:43.580" video="mainVideo-core" id="subtitle"]]
+[[!template text="""you, which wouldn't happen perhaps in a""" start="00:23:45.780" video="mainVideo-core" id="subtitle"]]
+[[!template text="""different workflow. So it's something to be""" start="00:23:48.480" video="mainVideo-core" id="subtitle"]]
+[[!template text="""aware of as well. Another thing is that,""" start="00:23:49.960" video="mainVideo-core" id="subtitle"]]
+[[!template text="""of course, in written communication,""" start="00:23:53.300" video="mainVideo-core" id="subtitle"]]
+[[!template text="""tone doesn't always come across.""" start="00:23:55.080" video="mainVideo-core" id="subtitle"]]
+[[!template text="""If someone sounds negative,""" start="00:23:57.980" video="mainVideo-core" id="subtitle"]]
+[[!template text="""sometimes it's just them being neutral.""" start="00:23:59.240" video="mainVideo-core" id="subtitle"]]
+[[!template text="""Sometimes you get no replies.""" start="00:24:01.460" video="mainVideo-core" id="subtitle"]]
+[[!template text="""You send something, you get no replies.""" start="00:24:05.500" video="mainVideo-core" id="subtitle"]]
+[[!template text="""And this could mean, actually it could mean,""" start="00:24:07.120" video="mainVideo-core" id="subtitle"]]
+[[!template text="""yeah, what you said was uncontroversial.""" start="00:24:09.880" video="mainVideo-core" id="subtitle"]]
+[[!template text="""We think it was a good idea.""" start="00:24:11.720" video="mainVideo-core" id="subtitle"]]
+[[!template text="""No 1 replied to it because either someone""" start="00:24:13.660" video="mainVideo-core" id="subtitle"]]
+[[!template text="""else would reply or just there was no need to""" start="00:24:16.360" video="mainVideo-core" id="subtitle"]]
+[[!template text="""reply because, yeah, why not?""" start="00:24:18.960" video="mainVideo-core" id="subtitle"]]
+[[!template text="""So but if you do send a patch and you don't""" start="00:24:21.580" video="mainVideo-core" id="subtitle"]]
+[[!template text="""get an answer, wait. I mean,""" start="00:24:24.060" video="mainVideo-core" id="subtitle"]]
+[[!template text="""don't wait 1, 2 days. Maybe we're busy or""" start="00:24:26.280" video="mainVideo-core" id="subtitle"]]
+[[!template text="""we're sick or whatever.""" start="00:24:29.380" video="mainVideo-core" id="subtitle"]]
+[[!template text="""Wait 2 weeks. It's fine to just send it""" start="00:24:30.840" video="mainVideo-core" id="subtitle"]]
+[[!template text="""again. If you send the patch to EmacsDevil,""" start="00:24:32.800" video="mainVideo-core" id="subtitle"]]
+[[!template text="""send it to the bug mailing list,""" start="00:24:35.660" video="mainVideo-core" id="subtitle"]]
+[[!template text="""because we lose track of stuff on EmacsDevil.""" start="00:24:37.040" video="mainVideo-core" id="subtitle"]]
+[[!template text="""That's just the reality of it.""" start="00:24:39.800" video="mainVideo-core" id="subtitle"]]
+[[!template text="""So if you propose making a change and no 1""" start="00:24:43.440" video="mainVideo-core" id="subtitle"]]
+[[!template text="""commented, feel free to ask us again if a""" start="00:24:46.080" video="mainVideo-core" id="subtitle"]]
+[[!template text="""patch would be welcome and we will clarify.""" start="00:24:48.340" video="mainVideo-core" id="subtitle"]]
+[[!template text="""Bug reports, unfortunately,""" start="00:24:53.480" video="mainVideo-core" id="subtitle"]]
+[[!template text="""if you get no answer, I mean,""" start="00:24:54.780" video="mainVideo-core" id="subtitle"]]
+[[!template text="""we do have a limited amount of time to work""" start="00:24:56.280" video="mainVideo-core" id="subtitle"]]
+[[!template text="""on bugs. If you're looking to get started in""" start="00:24:59.860" video="mainVideo-core" id="subtitle"]]
+[[!template text="""Emacs development, this is an excellent way""" start="00:25:02.360" video="mainVideo-core" id="subtitle"]]
+[[!template text="""to start getting involved.""" start="00:25:05.740" video="mainVideo-core" id="subtitle"]]
+[[!template text="""What I'd recommend is start looking into""" start="00:25:07.480" video="mainVideo-core" id="subtitle"]]
+[[!template text="""bugs. I'd install that bug,""" start="00:25:09.960" video="mainVideo-core" id="subtitle"]]
+[[!template text="""I'd see about the mailing workflow and set""" start="00:25:11.420" video="mainVideo-core" id="subtitle"]]
+[[!template text="""that up a little bit, or not.""" start="00:25:13.860" video="mainVideo-core" id="subtitle"]]
+[[!template text="""It's up to you. You can reply to an email""" start="00:25:16.160" video="mainVideo-core" id="subtitle"]]
+[[!template text="""without setting any of that stuff up.""" start="00:25:17.960" video="mainVideo-core" id="subtitle"]]
+[[!template text="""But just help us try out your bugs,""" start="00:25:20.600" video="mainVideo-core" id="subtitle"]]
+[[!template text="""send patches, do that type of stuff.""" start="00:25:22.540" video="mainVideo-core" id="subtitle"]]
+[[!template text="""I mean, that's an excellent way,""" start="00:25:24.720" video="mainVideo-core" id="subtitle"]]
+[[!template text="""and extremely welcome.""" start="00:25:26.280" video="mainVideo-core" id="subtitle"]]
+[[!template text="""We're so happy to see when people pick up bug""" start="00:25:27.740" video="mainVideo-core" id="subtitle"]]
+[[!template text="""reports that have been left by the wayside""" start="00:25:30.360" video="mainVideo-core" id="subtitle"]]
+[[!template text="""and just fix them, send us a patch,""" start="00:25:32.640" video="mainVideo-core" id="subtitle"]]
+[[!template text="""and we can just apply it.""" start="00:25:36.040" video="mainVideo-core" id="subtitle"]]
+[[!template text="""So that's really your starting point if you""" start="00:25:37.920" video="mainVideo-core" id="subtitle"]]
+[[!template text="""want to get involved in Emacs core""" start="00:25:40.360" video="mainVideo-core" id="subtitle"]]
+[[!template text="""development. I also want to say that be aware""" start="00:25:44.440" video="mainVideo-core" id="subtitle"]]
+[[!template text="""that you know Emacs is the editor of the GNU""" start="00:25:50.580" video="mainVideo-core" id="subtitle"]]
+[[!template text="""operating system and this makes the project""" start="00:25:54.280" video="mainVideo-core" id="subtitle"]]
+[[!template text="""political a little bit whether you like it or""" start="00:25:56.820" video="mainVideo-core" id="subtitle"]]
+[[!template text="""not. Luckily the you know the politics are""" start="00:25:58.700" video="mainVideo-core" id="subtitle"]]
+[[!template text="""limited enough that we can find broad""" start="00:26:01.560" video="mainVideo-core" id="subtitle"]]
+[[!template text="""agreement on it. So we want to promote,""" start="00:26:03.400" video="mainVideo-core" id="subtitle"]]
+[[!template text="""we want to create free software.""" start="00:26:05.780" video="mainVideo-core" id="subtitle"]]
+[[!template text="""That's sort of it. That's it.""" start="00:26:08.860" video="mainVideo-core" id="subtitle"]]
+[[!template text="""And there shouldn't be too much more to it,""" start="00:26:11.400" video="mainVideo-core" id="subtitle"]]
+[[!template text="""right? We want to rid the world of""" start="00:26:13.740" video="mainVideo-core" id="subtitle"]]
+[[!template text="""proprietary software as an evil thing.""" start="00:26:15.600" video="mainVideo-core" id="subtitle"]]
+[[!template text="""Ideally, all software should be free.""" start="00:26:19.700" video="mainVideo-core" id="subtitle"]]
+[[!template text="""But these are just the goals of the free""" start="00:26:23.000" video="mainVideo-core" id="subtitle"]]
+[[!template text="""software movement. So we're very strict with""" start="00:26:25.160" video="mainVideo-core" id="subtitle"]]
+[[!template text="""some things. We don't recommend non-free""" start="00:26:27.440" video="mainVideo-core" id="subtitle"]]
+[[!template text="""proprietary software. Of course,""" start="00:26:30.060" video="mainVideo-core" id="subtitle"]]
+[[!template text="""we have no problem mentioning Microsoft""" start="00:26:31.320" video="mainVideo-core" id="subtitle"]]
+[[!template text="""Windows because everyone knows that there's""" start="00:26:33.260" video="mainVideo-core" id="subtitle"]]
+[[!template text="""this obscure operating system developed in""" start="00:26:35.140" video="mainVideo-core" id="subtitle"]]
+[[!template text="""California that some people insist on using.""" start="00:26:39.280" video="mainVideo-core" id="subtitle"]]
+[[!template text="""We use, many of us use GNU plus Linux.""" start="00:26:42.040" video="mainVideo-core" id="subtitle"]]
+[[!template text="""Actually, some core developers happen to use""" start="00:26:45.060" video="mainVideo-core" id="subtitle"]]
+[[!template text="""exactly, you know, not GNU plus Linux,""" start="00:26:47.440" video="mainVideo-core" id="subtitle"]]
+[[!template text="""but that's fine as well,""" start="00:26:50.820" video="mainVideo-core" id="subtitle"]]
+[[!template text="""right? We take a little bit of a pragmatic""" start="00:26:52.600" video="mainVideo-core" id="subtitle"]]
+[[!template text="""view, but we don't wanna do,""" start="00:26:54.860" video="mainVideo-core" id="subtitle"]]
+[[!template text="""what we don't wanna do is promote like this""" start="00:26:56.840" video="mainVideo-core" id="subtitle"]]
+[[!template text="""small, unknown piece of non-free software and""" start="00:26:59.020" video="mainVideo-core" id="subtitle"]]
+[[!template text="""sort of help the non-free software in that""" start="00:27:04.780" video="mainVideo-core" id="subtitle"]]
+[[!template text="""way. That's where we try to draw the line,""" start="00:27:08.400" video="mainVideo-core" id="subtitle"]]
+[[!template text="""you know, in just expressing just a few""" start="00:27:12.440" video="mainVideo-core" id="subtitle"]]
+[[!template text="""words. So that's 1 thing.""" start="00:27:15.760" video="mainVideo-core" id="subtitle"]]
+[[!template text="""We're, I think, very pragmatic on this point,""" start="00:27:18.200" video="mainVideo-core" id="subtitle"]]
+[[!template text="""but we do try to follow the principle.""" start="00:27:21.620" video="mainVideo-core" id="subtitle"]]
+[[!template text="""We also require copyright assignment.""" start="00:27:25.240" video="mainVideo-core" id="subtitle"]]
+[[!template text="""And I think in general,""" start="00:27:27.700" video="mainVideo-core" id="subtitle"]]
+[[!template text="""the argument is that we require a copyright""" start="00:27:30.620" video="mainVideo-core" id="subtitle"]]
+[[!template text="""assignment, because that makes it easier to""" start="00:27:34.780" video="mainVideo-core" id="subtitle"]]
+[[!template text="""defend the legal status of the GNU Emacs""" start="00:27:39.280" video="mainVideo-core" id="subtitle"]]
+[[!template text="""source code. So if there's ever a legal""" start="00:27:43.640" video="mainVideo-core" id="subtitle"]]
+[[!template text="""battle, the idea is that if it's only 1""" start="00:27:45.920" video="mainVideo-core" id="subtitle"]]
+[[!template text="""copyright holder and you have a GPL""" start="00:27:48.280" video="mainVideo-core" id="subtitle"]]
+[[!template text="""violation, i.e. Someone might change Emacs""" start="00:27:50.320" video="mainVideo-core" id="subtitle"]]
+[[!template text="""and then distribute it as proprietary""" start="00:27:54.140" video="mainVideo-core" id="subtitle"]]
+[[!template text="""software or something nasty like that,""" start="00:27:56.100" video="mainVideo-core" id="subtitle"]]
+[[!template text="""then we have an easier way of defending it in""" start="00:27:58.040" video="mainVideo-core" id="subtitle"]]
+[[!template text="""court if there is only 1 copyright holder.""" start="00:28:00.620" video="mainVideo-core" id="subtitle"]]
+[[!template text="""So we assigned copyright to the Free Software""" start="00:28:02.780" video="mainVideo-core" id="subtitle"]]
+[[!template text="""Foundation. And I think there,""" start="00:28:04.840" video="mainVideo-core" id="subtitle"]]
+[[!template text="""I mean, sometimes people oppose this for""" start="00:28:09.720" video="mainVideo-core" id="subtitle"]]
+[[!template text="""various reasons, you know,""" start="00:28:12.600" video="mainVideo-core" id="subtitle"]]
+[[!template text="""people see it as, you know,""" start="00:28:13.660" video="mainVideo-core" id="subtitle"]]
+[[!template text="""maybe some people might say,""" start="00:28:15.720" video="mainVideo-core" id="subtitle"]]
+[[!template text="""you know, it's ideological,""" start="00:28:16.880" video="mainVideo-core" id="subtitle"]]
+[[!template text="""you know, who goes, you know,""" start="00:28:18.040" video="mainVideo-core" id="subtitle"]]
+[[!template text="""the FSF goes too far with this.""" start="00:28:19.340" video="mainVideo-core" id="subtitle"]]
+[[!template text="""And, and, I mean, that's fine.""" start="00:28:21.700" video="mainVideo-core" id="subtitle"]]
+[[!template text="""You that's, that's an opinion.""" start="00:28:23.860" video="mainVideo-core" id="subtitle"]]
+[[!template text="""And the there, then other people are more""" start="00:28:25.640" video="mainVideo-core" id="subtitle"]]
+[[!template text="""practical, you know, it's just,""" start="00:28:28.320" video="mainVideo-core" id="subtitle"]]
+[[!template text="""It's a hassle, basically,""" start="00:28:30.040" video="mainVideo-core" id="subtitle"]]
+[[!template text="""we don't want to sign these papers.""" start="00:28:31.360" video="mainVideo-core" id="subtitle"]]
+[[!template text="""And I'm not really here to tell anyone that""" start="00:28:33.640" video="mainVideo-core" id="subtitle"]]
+[[!template text="""they're wrong. I've expressed my views on""" start="00:28:35.580" video="mainVideo-core" id="subtitle"]]
+[[!template text="""this in the past. But just for now,""" start="00:28:37.160" video="mainVideo-core" id="subtitle"]]
+[[!template text="""I'm just very practical for the purposes of""" start="00:28:40.960" video="mainVideo-core" id="subtitle"]]
+[[!template text="""this talk. So I signed the papers.""" start="00:28:43.660" video="mainVideo-core" id="subtitle"]]
+[[!template text="""It's Maybe it didn't take me many minutes.""" start="00:28:46.580" video="mainVideo-core" id="subtitle"]]
+[[!template text="""And in most cases, it shouldn't really.""" start="00:28:49.280" video="mainVideo-core" id="subtitle"]]
+[[!template text="""And it's something that I found worth doing,""" start="00:28:52.580" video="mainVideo-core" id="subtitle"]]
+[[!template text="""because that way I could focus on continuing""" start="00:28:55.000" video="mainVideo-core" id="subtitle"]]
+[[!template text="""to improve Emacs instead of discussing the""" start="00:28:58.580" video="mainVideo-core" id="subtitle"]]
+[[!template text="""finer points of copyright law.""" start="00:29:01.360" video="mainVideo-core" id="subtitle"]]
+[[!template text="""You could write patches and stuff,""" start="00:29:03.480" video="mainVideo-core" id="subtitle"]]
+[[!template text="""that kind of thing. So,""" start="00:29:05.280" video="mainVideo-core" id="subtitle"]]
+[[!template text="""I mean, this is something that trips people""" start="00:29:06.680" video="mainVideo-core" id="subtitle"]]
+[[!template text="""up and, you know, it's fine that people have""" start="00:29:08.480" video="mainVideo-core" id="subtitle"]]
+[[!template text="""different opinions on it and so on,""" start="00:29:11.320" video="mainVideo-core" id="subtitle"]]
+[[!template text="""but I think for now that's just something to""" start="00:29:14.200" video="mainVideo-core" id="subtitle"]]
+[[!template text="""be aware of. So that's,""" start="00:29:19.280" video="mainVideo-core" id="subtitle"]]
+[[!template text="""I think, I mean, there's much more that could""" start="00:29:23.000" video="mainVideo-core" id="subtitle"]]
+[[!template text="""be said. Ideally, I would like to have a""" start="00:29:26.120" video="mainVideo-core" id="subtitle"]]
+[[!template text="""practical part to this talk as well.""" start="00:29:27.880" video="mainVideo-core" id="subtitle"]]
+[[!template text="""But I wanted to say something about the""" start="00:29:32.020" video="mainVideo-core" id="subtitle"]]
+[[!template text="""packages in Emacs. Because as we know,""" start="00:29:34.440" video="mainVideo-core" id="subtitle"]]
+[[!template text="""I mean, Emacs is the, I can't remember what""" start="00:29:37.159" video="mainVideo-core" id="subtitle"]]
+[[!template text="""it says, it's like a visual,""" start="00:29:40.440" video="mainVideo-core" id="subtitle"]]
+[[!template text="""there's in the manual it says,""" start="00:29:42.260" video="mainVideo-core" id="subtitle"]]
+[[!template text="""oh, Emacs is an advanced text editor.""" start="00:29:43.780" video="mainVideo-core" id="subtitle"]]
+[[!template text="""It's visual, which, I mean,""" start="00:29:46.180" video="mainVideo-core" id="subtitle"]]
+[[!template text="""it's not ed, the whole Unix ed,""" start="00:29:47.980" video="mainVideo-core" id="subtitle"]]
+[[!template text="""so that's cool. It's also customizable,""" start="00:29:50.280" video="mainVideo-core" id="subtitle"]]
+[[!template text="""right? So that's always been a thing.""" start="00:29:53.300" video="mainVideo-core" id="subtitle"]]
+[[!template text="""And what makes Emacs so amazing.""" start="00:29:57.800" video="mainVideo-core" id="subtitle"]]
+[[!template text="""And some people described it as,""" start="00:30:00.040" video="mainVideo-core" id="subtitle"]]
+[[!template text="""I can't remember who said that there has been""" start="00:30:01.920" video="mainVideo-core" id="subtitle"]]
+[[!template text="""a Cambrian explosion of packages in Emacs.""" start="00:30:03.880" video="mainVideo-core" id="subtitle"]]
+[[!template text="""And I think that's true.""" start="00:30:09.440" video="mainVideo-core" id="subtitle"]]
+[[!template text="""I mean, if you look at something like Melpa,""" start="00:30:10.440" video="mainVideo-core" id="subtitle"]]
+[[!template text="""I think they have over 5,000""" start="00:30:12.400" video="mainVideo-core" id="subtitle"]]
+[[!template text="""packages now. It's like truly impressive,""" start="00:30:13.940" video="mainVideo-core" id="subtitle"]]
+[[!template text="""just an immense amount of work and immense""" start="00:30:16.460" video="mainVideo-core" id="subtitle"]]
+[[!template text="""amount of packages. And really,""" start="00:30:18.760" video="mainVideo-core" id="subtitle"]]
+[[!template text="""this shows the strength,""" start="00:30:22.860" video="mainVideo-core" id="subtitle"]]
+[[!template text="""I think, of the Emacs community,""" start="00:30:24.340" video="mainVideo-core" id="subtitle"]]
+[[!template text="""of Emacs itself as an idea.""" start="00:30:26.680" video="mainVideo-core" id="subtitle"]]
+[[!template text="""And I think it's also just tremendous work""" start="00:30:29.060" video="mainVideo-core" id="subtitle"]]
+[[!template text="""that's been done by the maintainers.""" start="00:30:31.240" video="mainVideo-core" id="subtitle"]]
+[[!template text="""And they do get a lot of recognition for""" start="00:30:33.960" video="mainVideo-core" id="subtitle"]]
+[[!template text="""that. And rightly so, in my opinion.""" start="00:30:36.040" video="mainVideo-core" id="subtitle"]]
+[[!template text="""It's done so much, I think,""" start="00:30:39.620" video="mainVideo-core" id="subtitle"]]
+[[!template text="""for our community. The other package archive""" start="00:30:41.920" video="mainVideo-core" id="subtitle"]]
+[[!template text="""that we have is GNU-ELPA.""" start="00:30:44.260" video="mainVideo-core" id="subtitle"]]
+[[!template text="""And that's been enabled since when packages""" start="00:30:46.620" video="mainVideo-core" id="subtitle"]]
+[[!template text="""first got introduced back in,""" start="00:30:49.640" video="mainVideo-core" id="subtitle"]]
+[[!template text="""I think, Emacs, was it 23?""" start="00:30:51.000" video="mainVideo-core" id="subtitle"]]
+[[!template text="""And probably, I mean, the main thing why a""" start="00:30:55.520" video="mainVideo-core" id="subtitle"]]
+[[!template text="""package goes onto GNU Elpa is,""" start="00:30:59.200" video="mainVideo-core" id="subtitle"]]
+[[!template text="""you know, it should be installable out of the""" start="00:31:01.860" video="mainVideo-core" id="subtitle"]]
+[[!template text="""box. So, I mean, that's a big benefit in a""" start="00:31:04.040" video="mainVideo-core" id="subtitle"]]
+[[!template text="""sense. It's also a requirement for GNU Alpa""" start="00:31:07.580" video="mainVideo-core" id="subtitle"]]
+[[!template text="""that the copyright, again,""" start="00:31:10.960" video="mainVideo-core" id="subtitle"]]
+[[!template text="""just as GNU Emacs, the copyright is assigned""" start="00:31:12.240" video="mainVideo-core" id="subtitle"]]
+[[!template text="""to the Free Software Foundation.""" start="00:31:15.480" video="mainVideo-core" id="subtitle"]]
+[[!template text="""And some very hugely popular packages,""" start="00:31:17.080" video="mainVideo-core" id="subtitle"]]
+[[!template text="""like YaSnippet, for example,""" start="00:31:20.020" video="mainVideo-core" id="subtitle"]]
+[[!template text="""is on GNU Alpa. And we were discussing this""" start="00:31:21.420" video="mainVideo-core" id="subtitle"]]
+[[!template text="""just 2 months back. And Joe Tavora,""" start="00:31:25.160" video="mainVideo-core" id="subtitle"]]
+[[!template text="""I can't say his name, G-O-A-O,""" start="00:31:30.060" video="mainVideo-core" id="subtitle"]]
+[[!template text="""Tavora. He made the point that he's never""" start="00:31:33.280" video="mainVideo-core" id="subtitle"]]
+[[!template text="""seen a problem in any of his packages with""" start="00:31:36.140" video="mainVideo-core" id="subtitle"]]
+[[!template text="""copyright assignment in particular.""" start="00:31:40.280" video="mainVideo-core" id="subtitle"]]
+[[!template text="""It's never been a problem to get people to be""" start="00:31:42.100" video="mainVideo-core" id="subtitle"]]
+[[!template text="""involved in the development of those packages""" start="00:31:44.540" video="mainVideo-core" id="subtitle"]]
+[[!template text="""just because of the copyright assignment""" start="00:31:46.560" video="mainVideo-core" id="subtitle"]]
+[[!template text="""requirements. So I mean,""" start="00:31:49.160" video="mainVideo-core" id="subtitle"]]
+[[!template text="""that's his perspective on that.""" start="00:31:51.180" video="mainVideo-core" id="subtitle"]]
+[[!template text="""And I think it was worth relating his""" start="00:31:54.320" video="mainVideo-core" id="subtitle"]]
+[[!template text="""experience here. So we also have this new""" start="00:32:00.480" video="mainVideo-core" id="subtitle"]]
+[[!template text="""package archive called non-GNU-alpha,""" start="00:32:06.500" video="mainVideo-core" id="subtitle"]]
+[[!template text="""which is now enabled by default as well.""" start="00:32:08.920" video="mainVideo-core" id="subtitle"]]
+[[!template text="""I think for practical purposes,""" start="00:32:12.920" video="mainVideo-core" id="subtitle"]]
+[[!template text="""you could get into it a little bit more,""" start="00:32:14.540" video="mainVideo-core" id="subtitle"]]
+[[!template text="""you know, why we created non-NUELPA,""" start="00:32:16.960" video="mainVideo-core" id="subtitle"]]
+[[!template text="""and perhaps that's something we can discuss""" start="00:32:19.940" video="mainVideo-core" id="subtitle"]]
+[[!template text="""in the Q&A section. For practical purposes,""" start="00:32:23.360" video="mainVideo-core" id="subtitle"]]
+[[!template text="""the main thing to be aware of is,""" start="00:32:26.380" video="mainVideo-core" id="subtitle"]]
+[[!template text="""yes, we don't promote non-free software on""" start="00:32:28.280" video="mainVideo-core" id="subtitle"]]
+[[!template text="""there, And we also don't have the copyright""" start="00:32:30.980" video="mainVideo-core" id="subtitle"]]
+[[!template text="""assignment requirement.""" start="00:32:36.780" video="mainVideo-core" id="subtitle"]]
+[[!template text="""I think this is probably for new packages.""" start="00:32:41.400" video="mainVideo-core" id="subtitle"]]
+[[!template text="""It's generally better if they go to GNU Elpa,""" start="00:32:43.940" video="mainVideo-core" id="subtitle"]]
+[[!template text="""if there is any type of idea or ambition""" start="00:32:48.180" video="mainVideo-core" id="subtitle"]]
+[[!template text="""that, you know, at some point it would be""" start="00:32:51.280" video="mainVideo-core" id="subtitle"]]
+[[!template text="""good or it might be good to eventually have""" start="00:32:53.460" video="mainVideo-core" id="subtitle"]]
+[[!template text="""some type of functionality like this shipped""" start="00:32:56.740" video="mainVideo-core" id="subtitle"]]
+[[!template text="""with Emacs itself. So I think this is""" start="00:32:58.900" video="mainVideo-core" id="subtitle"]]
+[[!template text="""something that perhaps package authors could""" start="00:33:01.200" video="mainVideo-core" id="subtitle"]]
+[[!template text="""also be aware of, that occasionally we do""" start="00:33:04.020" video="mainVideo-core" id="subtitle"]]
+[[!template text="""bring in functionality from GNU Elpa into""" start="00:33:07.340" video="mainVideo-core" id="subtitle"]]
+[[!template text="""core Emacs because we feel that it should be""" start="00:33:09.780" video="mainVideo-core" id="subtitle"]]
+[[!template text="""better integrated with Emacs itself.""" start="00:33:12.440" video="mainVideo-core" id="subtitle"]]
+[[!template text="""So if I could give any type of""" start="00:33:16.420" video="mainVideo-core" id="subtitle"]]
+[[!template text="""recommendation, of course,""" start="00:33:18.480" video="mainVideo-core" id="subtitle"]]
+[[!template text="""you do. These are your packages,""" start="00:33:19.400" video="mainVideo-core" id="subtitle"]]
+[[!template text="""right? In an ideal world,""" start="00:33:22.120" video="mainVideo-core" id="subtitle"]]
+[[!template text="""we would only use this for legacy packages""" start="00:33:25.520" video="mainVideo-core" id="subtitle"]]
+[[!template text="""where people contributed in the past,""" start="00:33:28.680" video="mainVideo-core" id="subtitle"]]
+[[!template text="""but you didn't worry about the copyright""" start="00:33:30.240" video="mainVideo-core" id="subtitle"]]
+[[!template text="""assignment. But where possible,""" start="00:33:32.120" video="mainVideo-core" id="subtitle"]]
+[[!template text="""I think there is benefit in putting it on GNU""" start="00:33:34.200" video="mainVideo-core" id="subtitle"]]
+[[!template text="""Elpa. And I wanted to end a little bit on a""" start="00:33:37.540" video="mainVideo-core" id="subtitle"]]
+[[!template text="""more, you know, the more opinionated perhaps""" start="00:33:42.900" video="mainVideo-core" id="subtitle"]]
+[[!template text="""part of my talk and not just talk about""" start="00:33:45.380" video="mainVideo-core" id="subtitle"]]
+[[!template text="""processes. I see that I'm running out of""" start="00:33:47.260" video="mainVideo-core" id="subtitle"]]
+[[!template text="""time. So I will say Emacs is hackable.""" start="00:33:49.160" video="mainVideo-core" id="subtitle"]]
+[[!template text="""And I think that's a blessing and a curse.""" start="00:33:51.760" video="mainVideo-core" id="subtitle"]]
+[[!template text="""And if you think about something like,""" start="00:33:54.520" video="mainVideo-core" id="subtitle"]]
+[[!template text="""the types of choices that you can make,""" start="00:33:59.060" video="mainVideo-core" id="subtitle"]]
+[[!template text="""perhaps when you implement something,""" start="00:34:01.100" video="mainVideo-core" id="subtitle"]]
+[[!template text="""There are choices, different choices between""" start="00:34:03.160" video="mainVideo-core" id="subtitle"]]
+[[!template text="""something like common list,""" start="00:34:06.680" video="mainVideo-core" id="subtitle"]]
+[[!template text="""which is like bigger, more batteries""" start="00:34:07.740" video="mainVideo-core" id="subtitle"]]
+[[!template text="""included, and something like scheme,""" start="00:34:09.440" video="mainVideo-core" id="subtitle"]]
+[[!template text="""which is more minimal.""" start="00:34:11.320" video="mainVideo-core" id="subtitle"]]
+[[!template text="""And I think we have some of those,""" start="00:34:12.239" video="mainVideo-core" id="subtitle"]]
+[[!template text="""you know, this kind of tension also in the""" start="00:34:13.679" video="mainVideo-core" id="subtitle"]]
+[[!template text="""Emacs itself. What should be in Emacs core?""" start="00:34:16.280" video="mainVideo-core" id="subtitle"]]
+[[!template text="""Should we have a lean Emacs core?""" start="00:34:18.159" video="mainVideo-core" id="subtitle"]]
+[[!template text="""Should we have more stuff in Emacs core?""" start="00:34:19.699" video="mainVideo-core" id="subtitle"]]
+[[!template text="""And I think these are good discussions to""" start="00:34:22.360" video="mainVideo-core" id="subtitle"]]
+[[!template text="""have. And there are various challenges that""" start="00:34:26.320" video="mainVideo-core" id="subtitle"]]
+[[!template text="""are associated with each of those choices.""" start="00:34:29.380" video="mainVideo-core" id="subtitle"]]
+[[!template text="""I think what will never change is that Emacs""" start="00:34:32.540" video="mainVideo-core" id="subtitle"]]
+[[!template text="""is hackable. Emacs is customizable.""" start="00:34:35.320" video="mainVideo-core" id="subtitle"]]
+[[!template text="""This is the key strength.""" start="00:34:37.500" video="mainVideo-core" id="subtitle"]]
+[[!template text="""This is why we love and use Emacs.""" start="00:34:38.860" video="mainVideo-core" id="subtitle"]]
+[[!template text="""I think fundamentally,""" start="00:34:40.960" video="mainVideo-core" id="subtitle"]]
+[[!template text="""whether you do it a lot or not,""" start="00:34:42.380" video="mainVideo-core" id="subtitle"]]
+[[!template text="""this is what at core is bringing you that""" start="00:34:44.380" video="mainVideo-core" id="subtitle"]]
+[[!template text="""amazing user experience.""" start="00:34:47.320" video="mainVideo-core" id="subtitle"]]
+[[!template text="""However, the flip side of that sometimes is""" start="00:34:50.739" video="mainVideo-core" id="subtitle"]]
+[[!template text="""that it's so easy to hack Emacs so that we""" start="00:34:53.199" video="mainVideo-core" id="subtitle"]]
+[[!template text="""hack around bugs instead of fixing them.""" start="00:34:56.280" video="mainVideo-core" id="subtitle"]]
+[[!template text="""We do some tweak and our customers say,""" start="00:34:58.520" video="mainVideo-core" id="subtitle"]]
+[[!template text="""okay, this is a little bit broken,""" start="00:35:00.540" video="mainVideo-core" id="subtitle"]]
+[[!template text="""Let me just fix it. I'll put an advice on""" start="00:35:01.720" video="mainVideo-core" id="subtitle"]]
+[[!template text="""this function. I'll do this customization.""" start="00:35:03.560" video="mainVideo-core" id="subtitle"]]
+[[!template text="""Or we accept limitations in Emacs core.""" start="00:35:06.500" video="mainVideo-core" id="subtitle"]]
+[[!template text="""And I think it's fine.""" start="00:35:09.340" video="mainVideo-core" id="subtitle"]]
+[[!template text="""I mean, this will never change.""" start="00:35:12.380" video="mainVideo-core" id="subtitle"]]
+[[!template text="""That will always be core to what Emacs is,""" start="00:35:13.760" video="mainVideo-core" id="subtitle"]]
+[[!template text="""right? However, I think that the flip side of""" start="00:35:16.560" video="mainVideo-core" id="subtitle"]]
+[[!template text="""that is that I think sometimes we could be""" start="00:35:20.140" video="mainVideo-core" id="subtitle"]]
+[[!template text="""better at just taking those few extra steps""" start="00:35:22.500" video="mainVideo-core" id="subtitle"]]
+[[!template text="""to also make Emacs better itself and solve""" start="00:35:26.820" video="mainVideo-core" id="subtitle"]]
+[[!template text="""this for all users. And I think if we can""" start="00:35:29.260" video="mainVideo-core" id="subtitle"]]
+[[!template text="""build a little bit more of a culture like""" start="00:35:31.680" video="mainVideo-core" id="subtitle"]]
+[[!template text="""that, I mean, we already have that culture to""" start="00:35:33.680" video="mainVideo-core" id="subtitle"]]
+[[!template text="""a large extent, don't get me wrong,""" start="00:35:35.460" video="mainVideo-core" id="subtitle"]]
+[[!template text="""we do, but if we can get a little bit more of""" start="00:35:37.200" video="mainVideo-core" id="subtitle"]]
+[[!template text="""that culture, let's get that into core,""" start="00:35:39.620" video="mainVideo-core" id="subtitle"]]
+[[!template text="""let's get that problem fixed,""" start="00:35:41.320" video="mainVideo-core" id="subtitle"]]
+[[!template text="""that frustration. I can tell you that,""" start="00:35:43.980" video="mainVideo-core" id="subtitle"]]
+[[!template text="""I just started a new assignment at work,""" start="00:35:47.040" video="mainVideo-core" id="subtitle"]]
+[[!template text="""I already told you, so I'm going to write a""" start="00:35:48.940" video="mainVideo-core" id="subtitle"]]
+[[!template text="""lot of Python, okay? So I need to keep track""" start="00:35:51.420" video="mainVideo-core" id="subtitle"]]
+[[!template text="""of something called virtual environments,""" start="00:35:54.140" video="mainVideo-core" id="subtitle"]]
+[[!template text="""and that's just a way to install these""" start="00:35:56.040" video="mainVideo-core" id="subtitle"]]
+[[!template text="""dependencies just locally per directory or""" start="00:35:58.440" video="mainVideo-core" id="subtitle"]]
+[[!template text="""per repository kind of thing.""" start="00:36:01.640" video="mainVideo-core" id="subtitle"]]
+[[!template text="""And I've used various packages for that.""" start="00:36:03.900" video="mainVideo-core" id="subtitle"]]
+[[!template text="""There are like 4 packages,""" start="00:36:05.740" video="mainVideo-core" id="subtitle"]]
+[[!template text="""5 packages, maybe. And 1 is called VM,""" start="00:36:07.940" video="mainVideo-core" id="subtitle"]]
+[[!template text="""and 1 is called VirtualM,""" start="00:36:10.560" video="mainVideo-core" id="subtitle"]]
+[[!template text="""and 1 is called Python-VM.""" start="00:36:11.820" video="mainVideo-core" id="subtitle"]]
+[[!template text="""And now I'm using, you know,""" start="00:36:15.420" video="mainVideo-core" id="subtitle"]]
+[[!template text="""I'm using a different 1.""" start="00:36:16.980" video="mainVideo-core" id="subtitle"]]
+[[!template text="""And it's just a little bit,""" start="00:36:18.100" video="mainVideo-core" id="subtitle"]]
+[[!template text="""why doesn't this work out of the box in""" start="00:36:20.080" video="mainVideo-core" id="subtitle"]]
+[[!template text="""Emacs? Why? I don't think there's a really""" start="00:36:22.160" video="mainVideo-core" id="subtitle"]]
+[[!template text="""good fundamental good reason why something""" start="00:36:25.680" video="mainVideo-core" id="subtitle"]]
+[[!template text="""like that doesn't work in Emacs.""" start="00:36:28.640" video="mainVideo-core" id="subtitle"]]
+[[!template text="""So I think that's really,""" start="00:36:30.480" video="mainVideo-core" id="subtitle"]]
+[[!template text="""I mean, I'm sure there are other things like""" start="00:36:32.220" video="mainVideo-core" id="subtitle"]]
+[[!template text="""that, other fundamental features.""" start="00:36:35.220" video="mainVideo-core" id="subtitle"]]
+[[!template text="""Why is it that for the last 20 years,""" start="00:36:37.740" video="mainVideo-core" id="subtitle"]]
+[[!template text="""we've shipped Emacs with no PHP support out""" start="00:36:39.920" video="mainVideo-core" id="subtitle"]]
+[[!template text="""of the box? I mean, I'm not a PHP programmer.""" start="00:36:43.740" video="mainVideo-core" id="subtitle"]]
+[[!template text="""I don't really have a lot of love for PHP,""" start="00:36:47.660" video="mainVideo-core" id="subtitle"]]
+[[!template text="""let's say. To me, it's a very funny-looking""" start="00:36:51.020" video="mainVideo-core" id="subtitle"]]
+[[!template text="""language, but okay, still it's been very""" start="00:36:57.180" video="mainVideo-core" id="subtitle"]]
+[[!template text="""popular. Why haven't we supported it?""" start="00:37:00.060" video="mainVideo-core" id="subtitle"]]
+[[!template text="""I mean, it's just strange.""" start="00:37:02.120" video="mainVideo-core" id="subtitle"]]
+[[!template text="""You install Emacs on some machine,""" start="00:37:03.280" video="mainVideo-core" id="subtitle"]]
+[[!template text="""you open a PHP file, you get fundamental""" start="00:37:05.220" video="mainVideo-core" id="subtitle"]]
+[[!template text="""mode. It's not the best user experience,""" start="00:37:07.280" video="mainVideo-core" id="subtitle"]]
+[[!template text="""in my opinion. So I think there are some""" start="00:37:09.160" video="mainVideo-core" id="subtitle"]]
+[[!template text="""things where we really could do a little bit""" start="00:37:12.600" video="mainVideo-core" id="subtitle"]]
+[[!template text="""better. And I'm seeing this all the time.""" start="00:37:15.480" video="mainVideo-core" id="subtitle"]]
+[[!template text="""Just this week, this new assignment was""" start="00:37:20.200" video="mainVideo-core" id="subtitle"]]
+[[!template text="""interesting. There was this Emacs user.""" start="00:37:22.500" video="mainVideo-core" id="subtitle"]]
+[[!template text="""Turns out we have the exact same hack in both""" start="00:37:24.720" video="mainVideo-core" id="subtitle"]]
+[[!template text="""of our init files. So we had created the""" start="00:37:26.980" video="mainVideo-core" id="subtitle"]]
+[[!template text="""exact same mode for DIRED,""" start="00:37:29.860" video="mainVideo-core" id="subtitle"]]
+[[!template text="""actually, to hide dot files.""" start="00:37:32.140" video="mainVideo-core" id="subtitle"]]
+[[!template text="""You know, dot something is supposed to be""" start="00:37:33.920" video="mainVideo-core" id="subtitle"]]
+[[!template text="""hidden on a Unix system.""" start="00:37:36.720" video="mainVideo-core" id="subtitle"]]
+[[!template text="""So we had DERED hide dot files mode to just""" start="00:37:40.240" video="mainVideo-core" id="subtitle"]]
+[[!template text="""hide them. And why isn't that in DERED?""" start="00:37:43.940" video="mainVideo-core" id="subtitle"]]
+[[!template text="""Or should it be in DERED?""" start="00:37:47.100" video="mainVideo-core" id="subtitle"]]
+[[!template text="""Should it be a package on the new Elpa?""" start="00:37:48.480" video="mainVideo-core" id="subtitle"]]
+[[!template text="""Where should it be? Why is it just local""" start="00:37:51.000" video="mainVideo-core" id="subtitle"]]
+[[!template text="""hack? Should it be on a wiki somewhere?""" start="00:37:53.000" video="mainVideo-core" id="subtitle"]]
+[[!template text="""I mean, sometimes that's the correct answer.""" start="00:37:54.680" video="mainVideo-core" id="subtitle"]]
+[[!template text="""Sometimes the correct answer is,""" start="00:37:56.980" video="mainVideo-core" id="subtitle"]]
+[[!template text="""yes, it should be a package.""" start="00:37:59.060" video="mainVideo-core" id="subtitle"]]
+[[!template text="""Sometimes the correct answer is,""" start="00:38:00.780" video="mainVideo-core" id="subtitle"]]
+[[!template text="""yes, it should really be in core.""" start="00:38:02.360" video="mainVideo-core" id="subtitle"]]
+[[!template text="""So what I want to promote is more like,""" start="00:38:04.280" video="mainVideo-core" id="subtitle"]]
+[[!template text="""let's just take a step back and just ask""" start="00:38:06.480" video="mainVideo-core" id="subtitle"]]
+[[!template text="""yourself, what's the best solution if we look""" start="00:38:08.900" video="mainVideo-core" id="subtitle"]]
+[[!template text="""at the overall picture?""" start="00:38:11.180" video="mainVideo-core" id="subtitle"]]
+[[!template text="""Should I hack this into my configuration?""" start="00:38:12.240" video="mainVideo-core" id="subtitle"]]
+[[!template text="""In many cases, yes, that's the right thing to""" start="00:38:14.600" video="mainVideo-core" id="subtitle"]]
+[[!template text="""do. We don't want to proliferate just random""" start="00:38:16.840" video="mainVideo-core" id="subtitle"]]
+[[!template text="""solutions all over Emacs for no reason.""" start="00:38:19.840" video="mainVideo-core" id="subtitle"]]
+[[!template text="""But sometimes we want to fix it once and for""" start="00:38:22.540" video="mainVideo-core" id="subtitle"]]
+[[!template text="""all. We want to do that in core.""" start="00:38:24.760" video="mainVideo-core" id="subtitle"]]
+[[!template text="""So you could send stuff like that to us as""" start="00:38:27.880" video="mainVideo-core" id="subtitle"]]
+[[!template text="""patches or as packages.""" start="00:38:30.200" video="mainVideo-core" id="subtitle"]]
+[[!template text="""And we can discuss a little bit about where""" start="00:38:31.560" video="mainVideo-core" id="subtitle"]]
+[[!template text="""should we solve this? What's the right level""" start="00:38:34.340" video="mainVideo-core" id="subtitle"]]
+[[!template text="""of abstraction? I'm seeing that I'm running""" start="00:38:37.280" video="mainVideo-core" id="subtitle"]]
+[[!template text="""out of time. I had an Emacs wish list.""" start="00:38:41.100" video="mainVideo-core" id="subtitle"]]
+[[!template text="""Maybe we can take more of that in the Q&A.""" start="00:38:43.620" video="mainVideo-core" id="subtitle"]]
+[[!template text="""But I want to say, like,""" start="00:38:47.170" video="mainVideo-core" id="subtitle"]]
+[[!template text="""in VS Code, you just start VS Code.""" start="00:38:49.226" video="mainVideo-core" id="subtitle"]]
+[[!template text="""You open a Python file,""" start="00:38:50.460" video="mainVideo-core" id="subtitle"]]
+[[!template text="""and you get, like, hey,""" start="00:38:51.660" video="mainVideo-core" id="subtitle"]]
+[[!template text="""are you trying to use Python?""" start="00:38:53.040" video="mainVideo-core" id="subtitle"]]
+[[!template text="""Click here, install Python.""" start="00:38:54.840" video="mainVideo-core" id="subtitle"]]
+[[!template text="""You get all the nice things out of the box.""" start="00:38:56.280" video="mainVideo-core" id="subtitle"]]
+[[!template text="""And my argument is, why can't we have more of""" start="00:38:59.180" video="mainVideo-core" id="subtitle"]]
+[[!template text="""that in Emacs? I don't think it's necessarily""" start="00:39:01.560" video="mainVideo-core" id="subtitle"]]
+[[!template text="""hard, but it does take a little bit of work.""" start="00:39:04.000" video="mainVideo-core" id="subtitle"]]
+[[!template text="""The challenges here are more social,""" start="00:39:06.960" video="mainVideo-core" id="subtitle"]]
+[[!template text="""I think, than technical.""" start="00:39:09.060" video="mainVideo-core" id="subtitle"]]
+[[!template text="""And I think it's worth doing,""" start="00:39:10.900" video="mainVideo-core" id="subtitle"]]
+[[!template text="""because it's not just Python.""" start="00:39:12.780" video="mainVideo-core" id="subtitle"]]
+[[!template text="""It's just There are always these small things""" start="00:39:14.060" video="mainVideo-core" id="subtitle"]]
+[[!template text="""where it just really should work,""" start="00:39:16.640" video="mainVideo-core" id="subtitle"]]
+[[!template text="""and that would be a much better experience.""" start="00:39:18.900" video="mainVideo-core" id="subtitle"]]
+[[!template text="""And then you could customize not that thing""" start="00:39:20.900" video="mainVideo-core" id="subtitle"]]
+[[!template text="""that should just work,""" start="00:39:23.360" video="mainVideo-core" id="subtitle"]]
+[[!template text="""but you could customize more fun and""" start="00:39:24.640" video="mainVideo-core" id="subtitle"]]
+[[!template text="""exploratory things instead of people""" start="00:39:27.140" video="mainVideo-core" id="subtitle"]]
+[[!template text="""reinventing the wheel over and over again.""" start="00:39:29.620" video="mainVideo-core" id="subtitle"]]
+[[!template text="""So I'm very excited about what's happening in""" start="00:39:31.720" video="mainVideo-core" id="subtitle"]]
+[[!template text="""Emacs. I think we should be proud of what""" start="00:39:33.420" video="mainVideo-core" id="subtitle"]]
+[[!template text="""we've accomplished. It's so many things to""" start="00:39:35.280" video="mainVideo-core" id="subtitle"]]
+[[!template text="""many different people,""" start="00:39:37.360" video="mainVideo-core" id="subtitle"]]
+[[!template text="""an environment for hacking,""" start="00:39:38.360" video="mainVideo-core" id="subtitle"]]
+[[!template text="""just a productivity system.""" start="00:39:40.040" video="mainVideo-core" id="subtitle"]]
+[[!template text="""Other sees us as a different way of looking""" start="00:39:41.880" video="mainVideo-core" id="subtitle"]]
+[[!template text="""at computing, you know,""" start="00:39:44.020" video="mainVideo-core" id="subtitle"]]
+[[!template text="""the embodiment of the ideal of the Lisp""" start="00:39:45.360" video="mainVideo-core" id="subtitle"]]
+[[!template text="""machine if you want to talk big words and""" start="00:39:47.440" video="mainVideo-core" id="subtitle"]]
+[[!template text="""stuff like that. And of course,""" start="00:39:49.280" video="mainVideo-core" id="subtitle"]]
+[[!template text="""Emacs are all those things and so many more.""" start="00:39:50.660" video="mainVideo-core" id="subtitle"]]
+[[!template text="""And that's what makes Emacs so amazing.""" start="00:39:53.320" video="mainVideo-core" id="subtitle"]]
+[[!template text="""And in some sense, we should be care that""" start="00:39:56.280" video="mainVideo-core" id="subtitle"]]
+[[!template text="""people are satisfied with using lesser text""" start="00:40:00.780" video="mainVideo-core" id="subtitle"]]
+[[!template text="""editors. How could they be happy running""" start="00:40:03.040" video="mainVideo-core" id="subtitle"]]
+[[!template text="""that? I mean, I'm sure it's fine,""" start="00:40:05.600" video="mainVideo-core" id="subtitle"]]
+[[!template text="""but it sure as hell isn't Emacs.""" start="00:40:07.440" video="mainVideo-core" id="subtitle"]]
+[[!template text="""So don't we owe it to the world and to them""" start="00:40:09.800" video="mainVideo-core" id="subtitle"]]
+[[!template text="""and to ourselves to make a great Emacs.""" start="00:40:12.340" video="mainVideo-core" id="subtitle"]]
+[[!template text="""That will be my ending words.""" start="00:40:14.760" video="mainVideo-core" id="subtitle"]]
+[[!template text="""And I hope to see you all in the Q&A.""" start="00:40:16.120" video="mainVideo-core" id="subtitle"]]
+[[!template text="""Thank you all. And thank you so much,""" start="00:40:18.120" video="mainVideo-core" id="subtitle"]]
+[[!template text="""Stefan. That was a wonderful presentation.""" start="00:40:22.560" video="mainVideo-core" id="subtitle"]]
+[[!template text="""And I just want to give you the opportunity.""" start="00:40:24.800" video="mainVideo-core" id="subtitle"]]
+[[!template text="""You said that you perhaps had,""" start="00:40:27.340" video="mainVideo-core" id="subtitle"]]
+[[!template text="""Not the practical stuff,""" start="00:40:30.480" video="mainVideo-core" id="subtitle"]]
+[[!template text="""but you wanted to do a demo or something like""" start="00:40:31.400" video="mainVideo-core" id="subtitle"]]
+[[!template text="""this? What did you mention exactly?""" start="00:40:33.280" video="mainVideo-core" id="subtitle"]]
+[[!template text="""Yeah, we didn't have time really.""" start="00:40:36.180" video="mainVideo-core" id="subtitle"]]
+[[!template text="""Yes, I'm not sure. I didn't prepare anything""" start="00:40:38.740" video="mainVideo-core" id="subtitle"]]
+[[!template text="""so that we can do it live.""" start="00:40:42.040" video="mainVideo-core" id="subtitle"]]
+[[!template text="""But maybe for next time,""" start="00:40:43.620" video="mainVideo-core" id="subtitle"]]
+[[!template text="""I will do a demo. Don't hold me to it.""" start="00:40:44.800" video="mainVideo-core" id="subtitle"]]
+[[!template text="""Or someone else could.""" start="00:40:49.920" video="mainVideo-core" id="subtitle"]]
+[[!template text="""That would be really amazing.""" start="00:40:51.100" video="mainVideo-core" id="subtitle"]]
+[[!template text="""Right. Well, thank you,""" start="00:40:53.260" video="mainVideo-core" id="subtitle"]]
+[[!template text="""Stéphane. You've been already into so much""" start="00:40:54.020" video="mainVideo-core" id="subtitle"]]
+[[!template text="""detail of so many... So much of the intricacy""" start="00:40:56.820" video="mainVideo-core" id="subtitle"]]
+[[!template text="""of the maintenance. And as someone who's been""" start="00:41:01.780" video="mainVideo-core" id="subtitle"]]
+[[!template text="""95% of the time developing for Melpa,""" start="00:41:05.460" video="mainVideo-core" id="subtitle"]]
+[[!template text="""I feel like this talk was very geared to a""" start="00:41:08.260" video="mainVideo-core" id="subtitle"]]
+[[!template text="""lot of us who tend to experiment in this""" start="00:41:11.040" video="mainVideo-core" id="subtitle"]]
+[[!template text="""Cambrian stage of Emacs evolution,""" start="00:41:13.980" video="mainVideo-core" id="subtitle"]]
+[[!template text="""where we get to deploy a lot of creativity""" start="00:41:16.400" video="mainVideo-core" id="subtitle"]]
+[[!template text="""whilst also feeling pretty agile in a way we""" start="00:41:20.600" video="mainVideo-core" id="subtitle"]]
+[[!template text="""come up with solutions to problems.""" start="00:41:24.020" video="mainVideo-core" id="subtitle"]]
+[[!template text="""But you've won me over with your discussion""" start="00:41:25.640" video="mainVideo-core" id="subtitle"]]
+[[!template text="""about potentially moving some of this stuff""" start="00:41:29.240" video="mainVideo-core" id="subtitle"]]
+[[!template text="""to core. And I think this particularly""" start="00:41:31.360" video="mainVideo-core" id="subtitle"]]
+[[!template text="""resonated at the end with this tension that""" start="00:41:33.280" video="mainVideo-core" id="subtitle"]]
+[[!template text="""you feel about problems that you encounter.""" start="00:41:36.140" video="mainVideo-core" id="subtitle"]]
+[[!template text="""Do you fix them in Melpa?""" start="00:41:39.160" video="mainVideo-core" id="subtitle"]]
+[[!template text="""Do you fix them in core?""" start="00:41:40.760" video="mainVideo-core" id="subtitle"]]
+[[!template text="""Is it not something that is supposed to be an""" start="00:41:42.040" video="mainVideo-core" id="subtitle"]]
+[[!template text="""option? I love this tension and it's""" start="00:41:43.780" video="mainVideo-core" id="subtitle"]]
+[[!template text="""something that we've been exploring for the""" start="00:41:46.560" video="mainVideo-core" id="subtitle"]]
+[[!template text="""last 3 edition of Emacs Cons.""" start="00:41:48.040" video="mainVideo-core" id="subtitle"]]
+[[!template text="""It's really what is to be the interaction""" start="00:41:49.780" video="mainVideo-core" id="subtitle"]]
+[[!template text="""between this pool of very clever developers""" start="00:41:52.600" video="mainVideo-core" id="subtitle"]]
+[[!template text="""who are on Melpa but who are perhaps a little""" start="00:41:55.680" video="mainVideo-core" id="subtitle"]]
+[[!template text="""bit afraid of joining Core and the wonderful""" start="00:41:58.100" video="mainVideo-core" id="subtitle"]]
+[[!template text="""job that you do that, yes,""" start="00:42:00.920" video="mainVideo-core" id="subtitle"]]
+[[!template text="""seems archaic from the outside,""" start="00:42:02.980" video="mainVideo-core" id="subtitle"]]
+[[!template text="""but as you've been at length today in your""" start="00:42:05.860" video="mainVideo-core" id="subtitle"]]
+[[!template text="""presentation, is actually just a better way""" start="00:42:07.840" video="mainVideo-core" id="subtitle"]]
+[[!template text="""to work, a very pragmatic way to get a lot of""" start="00:42:09.480" video="mainVideo-core" id="subtitle"]]
+[[!template text="""work done. So, thank you so much for your""" start="00:42:11.780" video="mainVideo-core" id="subtitle"]]
+[[!template text="""presentation. Thank you,""" start="00:42:13.320" video="mainVideo-core" id="subtitle"]]
+[[!template text="""Leo. So, we have about 12 minutes now to go""" start="00:42:15.240" video="mainVideo-core" id="subtitle"]]
+[[!template text="""through as many questions as possible.""" start="00:42:20.740" video="mainVideo-core" id="subtitle"]]
+[[!template text="""You have obviously had a lot of questions""" start="00:42:22.950" video="mainVideo-core" id="subtitle"]]
+[[!template text="""throughout your presentation.""" start="00:42:26.000" video="mainVideo-core" id="subtitle"]]
+[[!template text="""Do you have access to the pad,""" start="00:42:27.660" video="mainVideo-core" id="subtitle"]]
+[[!template text="""or do you want me to share the question and""" start="00:42:28.940" video="mainVideo-core" id="subtitle"]]
+[[!template text="""feed them to you? Yes,""" start="00:42:30.400" video="mainVideo-core" id="subtitle"]]
+[[!template text="""could you start with sharing them?""" start="00:42:32.660" video="mainVideo-core" id="subtitle"]]
+[[!template text="""I'll see if I can get it on my screen.""" start="00:42:34.200" video="mainVideo-core" id="subtitle"]]
+[[!template text="""Sure, I'll do that. Please let me know if my""" start="00:42:36.280" video="mainVideo-core" id="subtitle"]]
+[[!template text="""microphone is clipping because my OBS setup""" start="00:42:39.720" video="mainVideo-core" id="subtitle"]]
+[[!template text="""sometimes is a little bit janky.""" start="00:42:42.980" video="mainVideo-core" id="subtitle"]]
+[[!template text="""But I'm going to try to read the questions""" start="00:42:44.440" video="mainVideo-core" id="subtitle"]]
+[[!template text="""for now. It's tipping,""" start="00:42:46.080" video="mainVideo-core" id="subtitle"]]
+[[!template text="""I can hear you okay. Okay,""" start="00:42:48.080" video="mainVideo-core" id="subtitle"]]
+[[!template text="""so bear with the clicking,""" start="00:42:51.980" video="mainVideo-core" id="subtitle"]]
+[[!template text="""we'll switch as soon as possible to Stefan""" start="00:42:54.400" video="mainVideo-core" id="subtitle"]]
+[[!template text="""reading the question, but I'll read the first""" start="00:42:56.480" video="mainVideo-core" id="subtitle"]]
+[[!template text="""1. Can you tell us some about your,""" start="00:42:58.080" video="mainVideo-core" id="subtitle"]]
+[[!template text="""can you tell us some more I assume,""" start="00:43:02.860" video="mainVideo-core" id="subtitle"]]
+[[!template text="""about your background with Emacs development""" start="00:43:04.340" video="mainVideo-core" id="subtitle"]]
+[[!template text="""and programming in general,""" start="00:43:06.160" video="mainVideo-core" id="subtitle"]]
+[[!template text="""your professional work possibly?""" start="00:43:07.580" video="mainVideo-core" id="subtitle"]]
+[[!template text="""Yeah, sure. Okay, I studied computer science""" start="00:43:11.400" video="mainVideo-core" id="subtitle"]]
+[[!template text="""at university. I started programming on a""" start="00:43:15.440" video="mainVideo-core" id="subtitle"]]
+[[!template text="""Commodore 64. I started with BASIC and then I""" start="00:43:19.960" video="mainVideo-core" id="subtitle"]]
+[[!template text="""did a couple of versions of BASIC as a kid.""" start="00:43:23.960" video="mainVideo-core" id="subtitle"]]
+[[!template text="""But then really things took off when I""" start="00:43:27.380" video="mainVideo-core" id="subtitle"]]
+[[!template text="""started using GNU Linux.""" start="00:43:31.540" video="mainVideo-core" id="subtitle"]]
+[[!template text="""I can't remember which year,""" start="00:43:34.300" video="mainVideo-core" id="subtitle"]]
+[[!template text="""maybe it was early 2000,""" start="00:43:35.580" video="mainVideo-core" id="subtitle"]]
+[[!template text="""something like that, late.""" start="00:43:38.480" video="mainVideo-core" id="subtitle"]]
+[[!template text="""No, it must've been before that actually,""" start="00:43:39.840" video="mainVideo-core" id="subtitle"]]
+[[!template text="""because I remember I was 14.""" start="00:43:42.380" video="mainVideo-core" id="subtitle"]]
+[[!template text="""Yeah, okay, so let's say 1999,""" start="00:43:44.340" video="mainVideo-core" id="subtitle"]]
+[[!template text="""1998, somewhere there around.""" start="00:43:46.500" video="mainVideo-core" id="subtitle"]]
+[[!template text="""Then I started with Perl,""" start="00:43:48.840" video="mainVideo-core" id="subtitle"]]
+[[!template text="""and I did Perl for a good long while.""" start="00:43:50.200" video="mainVideo-core" id="subtitle"]]
+[[!template text="""I learned C++, I learned C,""" start="00:43:52.700" video="mainVideo-core" id="subtitle"]]
+[[!template text="""I did all kinds of stuff,""" start="00:43:55.680" video="mainVideo-core" id="subtitle"]]
+[[!template text="""and then I went to university,""" start="00:43:56.960" video="mainVideo-core" id="subtitle"]]
+[[!template text="""computer science, and I've been working,""" start="00:43:59.440" video="mainVideo-core" id="subtitle"]]
+[[!template text="""you know, in various roles.""" start="00:44:01.700" video="mainVideo-core" id="subtitle"]]
+[[!template text="""Right now, I'm coding Python.""" start="00:44:04.160" video="mainVideo-core" id="subtitle"]]
+[[!template text="""Up until last Friday, I was writing firmware""" start="00:44:06.980" video="mainVideo-core" id="subtitle"]]
+[[!template text="""in C for a small microcontroller,""" start="00:44:09.940" video="mainVideo-core" id="subtitle"]]
+[[!template text="""which is pretty different than writing""" start="00:44:12.440" video="mainVideo-core" id="subtitle"]]
+[[!template text="""Python, that's for sure.""" start="00:44:15.600" video="mainVideo-core" id="subtitle"]]
+[[!template text="""So yeah, so that's a little bit about me.""" start="00:44:17.220" video="mainVideo-core" id="subtitle"]]
+[[!template text="""I got interested in free software,""" start="00:44:19.600" video="mainVideo-core" id="subtitle"]]
+[[!template text="""you know, also at a very young age.""" start="00:44:22.300" video="mainVideo-core" id="subtitle"]]
+[[!template text="""So, I mean, I've been following these,""" start="00:44:24.720" video="mainVideo-core" id="subtitle"]]
+[[!template text="""you know, ideological discussions and""" start="00:44:26.320" video="mainVideo-core" id="subtitle"]]
+[[!template text="""debates, read all this stuff by Richard""" start="00:44:29.120" video="mainVideo-core" id="subtitle"]]
+[[!template text="""Stallman and so on and so forth.""" start="00:44:31.560" video="mainVideo-core" id="subtitle"]]
+[[!template text="""But yeah, that's it. Great,""" start="00:44:33.940" video="mainVideo-core" id="subtitle"]]
+[[!template text="""thank you. I'll move on to the next question.""" start="00:44:37.760" video="mainVideo-core" id="subtitle"]]
+[[!template text="""You'll have to listen to me because if I""" start="00:44:41.120" video="mainVideo-core" id="subtitle"]]
+[[!template text="""start sharing my screen again,""" start="00:44:42.980" video="mainVideo-core" id="subtitle"]]
+[[!template text="""we're going to get some clicks.""" start="00:44:45.020" video="mainVideo-core" id="subtitle"]]
+[[!template text="""So the question. Do you think that 1 day""" start="00:44:48.140" video="mainVideo-core" id="subtitle"]]
+[[!template text="""there will be a native I'll start again,""" start="00:44:50.680" video="mainVideo-core" id="subtitle"]]
+[[!template text="""sorry. Do you think that 1 day there will be""" start="00:44:53.930" video="mainVideo-core" id="subtitle"]]
+[[!template text="""a native... I'll start again,""" start="00:44:54.079" video="mainVideo-core" id="subtitle"]]
+[[!template text="""sorry. Do you think that 1 day there will be""" start="00:44:54.440" video="mainVideo-core" id="subtitle"]]
+[[!template text="""a native graphical web browser in Emacs or is""" start="00:44:56.480" video="mainVideo-core" id="subtitle"]]
+[[!template text="""it kind of against its philosophy and""" start="00:44:59.020" video="mainVideo-core" id="subtitle"]]
+[[!template text="""architecture? So will we stick just with EWW""" start="00:45:00.540" video="mainVideo-core" id="subtitle"]]
+[[!template text="""and EAF or similar workaround tricks?""" start="00:45:04.200" video="mainVideo-core" id="subtitle"]]
+[[!template text="""So if, I don't know if people have seen,""" start="00:45:08.640" video="mainVideo-core" id="subtitle"]]
+[[!template text="""there is a talk by, I think,""" start="00:45:11.200" video="mainVideo-core" id="subtitle"]]
+[[!template text="""Perry Metzger, is that the name?""" start="00:45:13.440" video="mainVideo-core" id="subtitle"]]
+[[!template text="""Sorry if I got the name wrong.""" start="00:45:15.080" video="mainVideo-core" id="subtitle"]]
+[[!template text="""Perry Metzger, I think.""" start="00:45:17.080" video="mainVideo-core" id="subtitle"]]
+[[!template text="""It's like, he marks a text editor for the""" start="00:45:18.720" video="mainVideo-core" id="subtitle"]]
+[[!template text="""next 40 years. He makes an excellent point""" start="00:45:20.800" video="mainVideo-core" id="subtitle"]]
+[[!template text="""there that 1 of the things that we need to do""" start="00:45:22.640" video="mainVideo-core" id="subtitle"]]
+[[!template text="""is really get a proper HTML rendering in""" start="00:45:24.720" video="mainVideo-core" id="subtitle"]]
+[[!template text="""Emacs. It's like a dream at this point.""" start="00:45:27.840" video="mainVideo-core" id="subtitle"]]
+[[!template text="""No 1 is actively working on something like""" start="00:45:30.260" video="mainVideo-core" id="subtitle"]]
+[[!template text="""that. I think that, you know,""" start="00:45:32.200" video="mainVideo-core" id="subtitle"]]
+[[!template text="""there, first of all, you'd need to rewrite""" start="00:45:34.240" video="mainVideo-core" id="subtitle"]]
+[[!template text="""the display engine. So that's a big job.""" start="00:45:36.380" video="mainVideo-core" id="subtitle"]]
+[[!template text="""It is. I'm not saying,""" start="00:45:39.920" video="mainVideo-core" id="subtitle"]]
+[[!template text="""you know, it can't be done,""" start="00:45:41.140" video="mainVideo-core" id="subtitle"]]
+[[!template text="""but you need to start there.""" start="00:45:43.040" video="mainVideo-core" id="subtitle"]]
+[[!template text="""Right? Second of all, you need to think""" start="00:45:44.660" video="mainVideo-core" id="subtitle"]]
+[[!template text="""about, you know, with all the Emacs Lisp code""" start="00:45:47.560" video="mainVideo-core" id="subtitle"]]
+[[!template text="""out there, is really assuming,""" start="00:45:50.460" video="mainVideo-core" id="subtitle"]]
+[[!template text="""you know, 1 paradigm, which is that you have""" start="00:45:52.090" video="mainVideo-core" id="subtitle"]]
+[[!template text="""a square, and basically you have columns and""" start="00:45:54.960" video="mainVideo-core" id="subtitle"]]
+[[!template text="""you have rows, and everything is in there,""" start="00:45:57.720" video="mainVideo-core" id="subtitle"]]
+[[!template text="""even images, is basically in a column,""" start="00:45:59.760" video="mainVideo-core" id="subtitle"]]
+[[!template text="""you know, in a column on a row somewhere.""" start="00:46:02.540" video="mainVideo-core" id="subtitle"]]
+[[!template text="""Whereas, you know, when you just start doing""" start="00:46:05.380" video="mainVideo-core" id="subtitle"]]
+[[!template text="""the more web stuff and web rendering,""" start="00:46:07.360" video="mainVideo-core" id="subtitle"]]
+[[!template text="""you already have like a seaplane.""" start="00:46:10.120" video="mainVideo-core" id="subtitle"]]
+[[!template text="""You have different types of geometries that""" start="00:46:12.040" video="mainVideo-core" id="subtitle"]]
+[[!template text="""are possible. And what does it mean to go to""" start="00:46:14.500" video="mainVideo-core" id="subtitle"]]
+[[!template text="""the logical next line in that kind of sense?""" start="00:46:16.880" video="mainVideo-core" id="subtitle"]]
+[[!template text="""I mean these types of things I'm not saying""" start="00:46:19.370" video="mainVideo-core" id="subtitle"]]
+[[!template text="""it can't be done. I'm saying there are there""" start="00:46:21.420" video="mainVideo-core" id="subtitle"]]
+[[!template text="""are definitely some challenges there It would""" start="00:46:23.440" video="mainVideo-core" id="subtitle"]]
+[[!template text="""be amazing I mean, but we need someone with""" start="00:46:27.440" video="mainVideo-core" id="subtitle"]]
+[[!template text="""you know, the inclination and talent I think""" start="00:46:30.280" video="mainVideo-core" id="subtitle"]]
+[[!template text="""to work on that's a job posting if I've ever""" start="00:46:33.320" video="mainVideo-core" id="subtitle"]]
+[[!template text="""had 1. So good luck to whoever's willing to""" start="00:46:37.680" video="mainVideo-core" id="subtitle"]]
+[[!template text="""apply for this 1. I think it's a tough 1.""" start="00:46:40.200" video="mainVideo-core" id="subtitle"]]
+[[!template text="""It is, yes. Go on. Okay,""" start="00:46:43.180" video="mainVideo-core" id="subtitle"]]
+[[!template text="""do you happen to have the questions in front""" start="00:46:46.560" video="mainVideo-core" id="subtitle"]]
+[[!template text="""of you? Can I just read them to you so that""" start="00:46:48.040" video="mainVideo-core" id="subtitle"]]
+[[!template text="""you can also have a feedback in front of you?""" start="00:46:50.320" video="mainVideo-core" id="subtitle"]]
+[[!template text="""Yes, I have the pad here.""" start="00:46:54.780" video="mainVideo-core" id="subtitle"]]
+[[!template text="""Okay, cool. So I'll read the next question""" start="00:46:57.260" video="mainVideo-core" id="subtitle"]]
+[[!template text="""and this way I don't have to worry too much""" start="00:46:58.860" video="mainVideo-core" id="subtitle"]]
+[[!template text="""about me butchering every word in the""" start="00:47:00.260" video="mainVideo-core" id="subtitle"]]
+[[!template text="""sentence. So, Emacs development and""" start="00:47:02.320" video="mainVideo-core" id="subtitle"]]
+[[!template text="""communication still is very much focused on""" start="00:47:04.540" video="mainVideo-core" id="subtitle"]]
+[[!template text="""email mailing lists. I like this,""" start="00:47:06.460" video="mainVideo-core" id="subtitle"]]
+[[!template text="""but what do you think about introducing other""" start="00:47:08.640" video="mainVideo-core" id="subtitle"]]
+[[!template text="""channels for talking to users,""" start="00:47:10.380" video="mainVideo-core" id="subtitle"]]
+[[!template text="""like the Emacs project community could set up""" start="00:47:12.440" video="mainVideo-core" id="subtitle"]]
+[[!template text="""a master on instance of its own,""" start="00:47:15.140" video="mainVideo-core" id="subtitle"]]
+[[!template text="""for instance? I think from the point of view""" start="00:47:17.120" video="mainVideo-core" id="subtitle"]]
+[[!template text="""of the Emacs core team,""" start="00:47:20.280" video="mainVideo-core" id="subtitle"]]
+[[!template text="""we don't really have a lot of resources or""" start="00:47:21.760" video="mainVideo-core" id="subtitle"]]
+[[!template text="""people inclined to be working on stuff like""" start="00:47:23.860" video="mainVideo-core" id="subtitle"]]
+[[!template text="""that. But I mean, there is so much going on.""" start="00:47:25.960" video="mainVideo-core" id="subtitle"]]
+[[!template text="""Emacs is a very, you know,""" start="00:47:27.880" video="mainVideo-core" id="subtitle"]]
+[[!template text="""It's a big community, frankly,""" start="00:47:30.420" video="mainVideo-core" id="subtitle"]]
+[[!template text="""right? So people working on emacs.com,""" start="00:47:32.580" video="mainVideo-core" id="subtitle"]]
+[[!template text="""there are people in the IRC channel,""" start="00:47:34.760" video="mainVideo-core" id="subtitle"]]
+[[!template text="""the emacs IRC channel,""" start="00:47:37.500" video="mainVideo-core" id="subtitle"]]
+[[!template text="""there's the emacs subreddit.""" start="00:47:39.400" video="mainVideo-core" id="subtitle"]]
+[[!template text="""And I mean, people are doing an incredible""" start="00:47:40.960" video="mainVideo-core" id="subtitle"]]
+[[!template text="""job. And I think if people wanna do more""" start="00:47:43.380" video="mainVideo-core" id="subtitle"]]
+[[!template text="""stuff like that, I mean,""" start="00:47:45.480" video="mainVideo-core" id="subtitle"]]
+[[!template text="""Don't wait for Argo, just go for it.""" start="00:47:46.400" video="mainVideo-core" id="subtitle"]]
+[[!template text="""Great. Moving on to the next question.""" start="00:47:52.000" video="mainVideo-core" id="subtitle"]]
+[[!template text="""Sorry, I'm not commenting anymore because we""" start="00:47:54.340" video="mainVideo-core" id="subtitle"]]
+[[!template text="""have so many questions and I'd love for you""" start="00:47:56.520" video="mainVideo-core" id="subtitle"]]
+[[!template text="""to answer as many people as possible because""" start="00:47:58.180" video="mainVideo-core" id="subtitle"]]
+[[!template text="""we have about 6 minutes technically,""" start="00:48:00.260" video="mainVideo-core" id="subtitle"]]
+[[!template text="""but we can go perhaps a little bit over.""" start="00:48:02.640" video="mainVideo-core" id="subtitle"]]
+[[!template text="""If you have the time, Stefan,""" start="00:48:05.080" video="mainVideo-core" id="subtitle"]]
+[[!template text="""though. Yeah. Okay, great.""" start="00:48:06.220" video="mainVideo-core" id="subtitle"]]
+[[!template text="""What are some features or packages you'd like""" start="00:48:09.340" video="mainVideo-core" id="subtitle"]]
+[[!template text="""to see developed by the community?""" start="00:48:11.140" video="mainVideo-core" id="subtitle"]]
+[[!template text="""We've already talked about the native HTTP""" start="00:48:12.560" video="mainVideo-core" id="subtitle"]]
+[[!template text="""display, but do you have any others?""" start="00:48:15.920" video="mainVideo-core" id="subtitle"]]
+[[!template text="""So, I mean, developed by the community,""" start="00:48:19.540" video="mainVideo-core" id="subtitle"]]
+[[!template text="""it depends what you mean.""" start="00:48:22.360" video="mainVideo-core" id="subtitle"]]
+[[!template text="""So do you mean sending stuff that people""" start="00:48:23.240" video="mainVideo-core" id="subtitle"]]
+[[!template text="""could be working on in general?""" start="00:48:27.720" video="mainVideo-core" id="subtitle"]]
+[[!template text="""I think for now, like let's say the roadmap,""" start="00:48:30.480" video="mainVideo-core" id="subtitle"]]
+[[!template text="""I'll just give some of the things that I""" start="00:48:33.420" video="mainVideo-core" id="subtitle"]]
+[[!template text="""think should happen right now and that I""" start="00:48:35.140" video="mainVideo-core" id="subtitle"]]
+[[!template text="""would love for people to send patches for.""" start="00:48:36.940" video="mainVideo-core" id="subtitle"]]
+[[!template text="""That's what I'm gonna be answering because""" start="00:48:39.060" video="mainVideo-core" id="subtitle"]]
+[[!template text="""that's what I think I can answer.""" start="00:48:41.120" video="mainVideo-core" id="subtitle"]]
+[[!template text="""Tree-sitter is a new thing,""" start="00:48:43.280" video="mainVideo-core" id="subtitle"]]
+[[!template text="""right? Improving and working on new modes""" start="00:48:45.280" video="mainVideo-core" id="subtitle"]]
+[[!template text="""for, you know, TreeSitter,""" start="00:48:48.860" video="mainVideo-core" id="subtitle"]]
+[[!template text="""it's not very hard. I think many people get""" start="00:48:50.200" video="mainVideo-core" id="subtitle"]]
+[[!template text="""into it and make sure to integrate them in""" start="00:48:52.900" video="mainVideo-core" id="subtitle"]]
+[[!template text="""Emacs core. I think that would be,""" start="00:48:55.560" video="mainVideo-core" id="subtitle"]]
+[[!template text="""I mean, on my wishlist.""" start="00:48:58.140" video="mainVideo-core" id="subtitle"]]
+[[!template text="""The other thing that is that we've asked for""" start="00:49:00.140" video="mainVideo-core" id="subtitle"]]
+[[!template text="""someone perhaps with a little bit more""" start="00:49:01.960" video="mainVideo-core" id="subtitle"]]
+[[!template text="""experience, I think, but working on""" start="00:49:03.740" video="mainVideo-core" id="subtitle"]]
+[[!template text="""refactoring capabilities in Emacs and a more""" start="00:49:05.940" video="mainVideo-core" id="subtitle"]]
+[[!template text="""general framework, I think,""" start="00:49:09.080" video="mainVideo-core" id="subtitle"]]
+[[!template text="""for that. There are probably many more ideas""" start="00:49:11.320" video="mainVideo-core" id="subtitle"]]
+[[!template text="""that I could give people,""" start="00:49:13.780" video="mainVideo-core" id="subtitle"]]
+[[!template text="""but those would be the 2 big ones,""" start="00:49:15.300" video="mainVideo-core" id="subtitle"]]
+[[!template text="""I think, that are also very uncontroversial.""" start="00:49:17.720" video="mainVideo-core" id="subtitle"]]
+[[!template text="""It's funny because for me,""" start="00:49:22.360" video="mainVideo-core" id="subtitle"]]
+[[!template text="""I don't think refactoring would count as a""" start="00:49:24.400" video="mainVideo-core" id="subtitle"]]
+[[!template text="""feature, but it's so vital to allowing""" start="00:49:26.760" video="mainVideo-core" id="subtitle"]]
+[[!template text="""further features to be developed.""" start="00:49:30.360" video="mainVideo-core" id="subtitle"]]
+[[!template text="""Otherwise, I remember the way Org Mode used""" start="00:49:31.780" video="mainVideo-core" id="subtitle"]]
+[[!template text="""to be before we had Org Element and stuff""" start="00:49:34.160" video="mainVideo-core" id="subtitle"]]
+[[!template text="""like this. It was really complicated to write""" start="00:49:36.300" video="mainVideo-core" id="subtitle"]]
+[[!template text="""any kind of parsing stuff for it.""" start="00:49:38.940" video="mainVideo-core" id="subtitle"]]
+[[!template text="""And now that we've got it,""" start="00:49:41.200" video="mainVideo-core" id="subtitle"]]
+[[!template text="""it just opened up a world of possibility""" start="00:49:42.340" video="mainVideo-core" id="subtitle"]]
+[[!template text="""where parsing an Org Mode file is just made""" start="00:49:44.180" video="mainVideo-core" id="subtitle"]]
+[[!template text="""so much easier. So I think that's a wonderful""" start="00:49:46.160" video="mainVideo-core" id="subtitle"]]
+[[!template text="""answer because it goes,""" start="00:49:48.280" video="mainVideo-core" id="subtitle"]]
+[[!template text="""it's multi-layered as you would expect from""" start="00:49:49.760" video="mainVideo-core" id="subtitle"]]
+[[!template text="""something that concerns the whole of Emacs.""" start="00:49:52.080" video="mainVideo-core" id="subtitle"]]
+[[!template text="""Moving on to the next question.""" start="00:49:55.800" video="mainVideo-core" id="subtitle"]]
+[[!template text="""What is the hardest decision being made""" start="00:49:57.440" video="mainVideo-core" id="subtitle"]]
+[[!template text="""within Emacs dev for the last 3 years.""" start="00:49:59.960" video="mainVideo-core" id="subtitle"]]
+[[!template text="""I'm not sure, is it the decision in the last""" start="00:50:02.480" video="mainVideo-core" id="subtitle"]]
+[[!template text="""3 years or I'll let you interpret the""" start="00:50:04.960" video="mainVideo-core" id="subtitle"]]
+[[!template text="""question however you want.""" start="00:50:07.480" video="mainVideo-core" id="subtitle"]]
+[[!template text="""Okay, well, I'll say this.""" start="00:50:09.280" video="mainVideo-core" id="subtitle"]]
+[[!template text="""I started in August and I haven't had any""" start="00:50:11.640" video="mainVideo-core" id="subtitle"]]
+[[!template text="""really hard decisions so far.""" start="00:50:14.220" video="mainVideo-core" id="subtitle"]]
+[[!template text="""So good news. Maybe Eli will have more for""" start="00:50:16.920" video="mainVideo-core" id="subtitle"]]
+[[!template text="""the last 3 years. Keep it simple.""" start="00:50:20.540" video="mainVideo-core" id="subtitle"]]
+[[!template text="""Thanks. Cool. Next question.""" start="00:50:25.240" video="mainVideo-core" id="subtitle"]]
+[[!template text="""Any plans to integrate XWM into core?""" start="00:50:28.860" video="mainVideo-core" id="subtitle"]]
+[[!template text="""Emacs is a really good Winters manager.""" start="00:50:31.940" video="mainVideo-core" id="subtitle"]]
+[[!template text="""That's super cool. I think EXWM is cool.""" start="00:50:34.780" video="mainVideo-core" id="subtitle"]]
+[[!template text="""I think they need to upgrade to Wayland""" start="00:50:38.100" video="mainVideo-core" id="subtitle"]]
+[[!template text="""somehow and that's not clear yet,""" start="00:50:40.260" video="mainVideo-core" id="subtitle"]]
+[[!template text="""but you know, we don't have any current plans""" start="00:50:41.880" video="mainVideo-core" id="subtitle"]]
+[[!template text="""to integrate it, no. Right,""" start="00:50:44.880" video="mainVideo-core" id="subtitle"]]
+[[!template text="""Next question. Do you think it is a good idea""" start="00:50:49.020" video="mainVideo-core" id="subtitle"]]
+[[!template text="""to choose Org Mode for writing documentation""" start="00:50:51.600" video="mainVideo-core" id="subtitle"]]
+[[!template text="""instead of tech info? I think that whatever""" start="00:50:53.680" video="mainVideo-core" id="subtitle"]]
+[[!template text="""we do, it should be the people that are""" start="00:50:57.740" video="mainVideo-core" id="subtitle"]]
+[[!template text="""working on the documentation that should make""" start="00:50:59.680" video="mainVideo-core" id="subtitle"]]
+[[!template text="""that choice. Currently we have,""" start="00:51:01.760" video="mainVideo-core" id="subtitle"]]
+[[!template text="""I think, Modus themes and Org Mode itself is""" start="00:51:03.420" video="mainVideo-core" id="subtitle"]]
+[[!template text="""writing their documentation in Org Mode,""" start="00:51:05.920" video="mainVideo-core" id="subtitle"]]
+[[!template text="""that's fine by me. It has some drawbacks,""" start="00:51:08.080" video="mainVideo-core" id="subtitle"]]
+[[!template text="""it has some benefits, but most documentation""" start="00:51:10.960" video="mainVideo-core" id="subtitle"]]
+[[!template text="""is still in tech info.""" start="00:51:13.580" video="mainVideo-core" id="subtitle"]]
+[[!template text="""Maybe we'd need to replace that at some""" start="00:51:15.240" video="mainVideo-core" id="subtitle"]]
+[[!template text="""point, I don't know. But for now,""" start="00:51:17.360" video="mainVideo-core" id="subtitle"]]
+[[!template text="""that's what people know and use.""" start="00:51:19.840" video="mainVideo-core" id="subtitle"]]
+[[!template text="""And if you find that as a barrier to""" start="00:51:22.280" video="mainVideo-core" id="subtitle"]]
+[[!template text="""contribute to Emacs, I mean,""" start="00:51:24.280" video="mainVideo-core" id="subtitle"]]
+[[!template text="""just really write it as plain text.""" start="00:51:25.600" video="mainVideo-core" id="subtitle"]]
+[[!template text="""We'll be happy to help you with the markup.""" start="00:51:27.540" video="mainVideo-core" id="subtitle"]]
+[[!template text="""It's a little bit, you know,""" start="00:51:29.380" video="mainVideo-core" id="subtitle"]]
+[[!template text="""finicky and stuff like that.""" start="00:51:30.280" video="mainVideo-core" id="subtitle"]]
+[[!template text="""Great. Thanks for that.""" start="00:51:33.340" video="mainVideo-core" id="subtitle"]]
+[[!template text="""Next question. What do you plan to work on in""" start="00:51:35.620" video="mainVideo-core" id="subtitle"]]
+[[!template text="""Emacs Core in the future?""" start="00:51:38.000" video="mainVideo-core" id="subtitle"]]
+[[!template text="""I'm a little bit hesitant to reply to that.""" start="00:51:40.460" video="mainVideo-core" id="subtitle"]]
+[[!template text="""Of course I have ideas.""" start="00:51:42.660" video="mainVideo-core" id="subtitle"]]
+[[!template text="""Of course there are projects that I'm working""" start="00:51:43.740" video="mainVideo-core" id="subtitle"]]
+[[!template text="""on. However, if I say it here,""" start="00:51:45.760" video="mainVideo-core" id="subtitle"]]
+[[!template text="""I feel like, you know,""" start="00:51:47.640" video="mainVideo-core" id="subtitle"]]
+[[!template text="""then you'll hold me to it later and come ask,""" start="00:51:48.480" video="mainVideo-core" id="subtitle"]]
+[[!template text="""where is that feature?""" start="00:51:51.300" video="mainVideo-core" id="subtitle"]]
+[[!template text="""So I'll just say there is plenty of stuff""" start="00:51:52.640" video="mainVideo-core" id="subtitle"]]
+[[!template text="""that I'm working on, and if you want to know""" start="00:51:55.180" video="mainVideo-core" id="subtitle"]]
+[[!template text="""some of the stuff that I have been working""" start="00:51:57.340" video="mainVideo-core" id="subtitle"]]
+[[!template text="""on, check the Git log.""" start="00:51:58.780" video="mainVideo-core" id="subtitle"]]
+[[!template text="""I think that's just really as much as I want""" start="00:52:00.060" video="mainVideo-core" id="subtitle"]]
+[[!template text="""to say about that right now.""" start="00:52:02.400" video="mainVideo-core" id="subtitle"]]
+[[!template text="""You've added folks to just look at the path""" start="00:52:05.660" video="mainVideo-core" id="subtitle"]]
+[[!template text="""with the changelog and that's all you need.""" start="00:52:07.360" video="mainVideo-core" id="subtitle"]]
+[[!template text="""All right, moving on to the next question.""" start="00:52:11.600" video="mainVideo-core" id="subtitle"]]
+[[!template text="""What do you use Emacs for in your life other""" start="00:52:14.020" video="mainVideo-core" id="subtitle"]]
+[[!template text="""than working on Emacs itself?""" start="00:52:16.120" video="mainVideo-core" id="subtitle"]]
+[[!template text="""Oh shit. So the big thing is programming,""" start="00:52:18.080" video="mainVideo-core" id="subtitle"]]
+[[!template text="""right? Now I work as a programmer.""" start="00:52:21.140" video="mainVideo-core" id="subtitle"]]
+[[!template text="""But in general, I use org mode heavily.""" start="00:52:27.040" video="mainVideo-core" id="subtitle"]]
+[[!template text="""I use it for all my writing.""" start="00:52:29.340" video="mainVideo-core" id="subtitle"]]
+[[!template text="""I use it to write, prepare this talk.""" start="00:52:30.820" video="mainVideo-core" id="subtitle"]]
+[[!template text="""I use it as a productivity system.""" start="00:52:33.480" video="mainVideo-core" id="subtitle"]]
+[[!template text="""I use it for emails. I use it as an RSS""" start="00:52:35.380" video="mainVideo-core" id="subtitle"]]
+[[!template text="""reader. I do most of my computing.""" start="00:52:41.980" video="mainVideo-core" id="subtitle"]]
+[[!template text="""I also have Firefox. So it's like Emacs and""" start="00:52:44.760" video="mainVideo-core" id="subtitle"]]
+[[!template text="""Firefox for some reason.""" start="00:52:47.040" video="mainVideo-core" id="subtitle"]]
+[[!template text="""I do read documentation in Emacs as well in""" start="00:52:48.900" video="mainVideo-core" id="subtitle"]]
+[[!template text="""you, but yeah. Great. I'm still,""" start="00:52:51.900" video="mainVideo-core" id="subtitle"]]
+[[!template text="""I do very much the same thing with you.""" start="00:52:59.180" video="mainVideo-core" id="subtitle"]]
+[[!template text="""Like You've described exactly what I do.""" start="00:53:00.720" video="mainVideo-core" id="subtitle"]]
+[[!template text="""I work as a programmer,""" start="00:53:02.040" video="mainVideo-core" id="subtitle"]]
+[[!template text="""I use Augment for a lot of stuff,""" start="00:53:02.960" video="mainVideo-core" id="subtitle"]]
+[[!template text="""and I think that describes a whole lot of""" start="00:53:04.640" video="mainVideo-core" id="subtitle"]]
+[[!template text="""people currently watching the stream.""" start="00:53:06.340" video="mainVideo-core" id="subtitle"]]
+[[!template text="""Moving on to the next question.""" start="00:53:09.380" video="mainVideo-core" id="subtitle"]]
+[[!template text="""What could we do in order to make Emacs more""" start="00:53:10.840" video="mainVideo-core" id="subtitle"]]
+[[!template text="""attractive for younger users?""" start="00:53:12.740" video="mainVideo-core" id="subtitle"]]
+[[!template text="""This is an amazing question and I feel wholly""" start="00:53:14.820" video="mainVideo-core" id="subtitle"]]
+[[!template text="""unprepared to answer this.""" start="00:53:18.480" video="mainVideo-core" id="subtitle"]]
+[[!template text="""Probably more introductory material aimed at""" start="00:53:21.180" video="mainVideo-core" id="subtitle"]]
+[[!template text="""that age group. What do you mean by younger""" start="00:53:24.320" video="mainVideo-core" id="subtitle"]]
+[[!template text="""users? You know what would be really cool if""" start="00:53:26.580" video="mainVideo-core" id="subtitle"]]
+[[!template text="""you had an Emacs for kids project?""" start="00:53:28.740" video="mainVideo-core" id="subtitle"]]
+[[!template text="""That would be amazing.""" start="00:53:31.020" video="mainVideo-core" id="subtitle"]]
+[[!template text="""I'm not sure if that's what people are""" start="00:53:32.680" video="mainVideo-core" id="subtitle"]]
+[[!template text="""thinking about, but yeah,""" start="00:53:34.920" video="mainVideo-core" id="subtitle"]]
+[[!template text="""that's about what I can say for now.""" start="00:53:37.200" video="mainVideo-core" id="subtitle"]]
+[[!template text="""Good question. It is a very good question,""" start="00:53:40.380" video="mainVideo-core" id="subtitle"]]
+[[!template text="""like it comes back always to a key topic in""" start="00:53:43.320" video="mainVideo-core" id="subtitle"]]
+[[!template text="""EmacsConf, which is, how do we get more""" start="00:53:45.880" video="mainVideo-core" id="subtitle"]]
+[[!template text="""people to join us? Because it's a wonderful""" start="00:53:47.720" video="mainVideo-core" id="subtitle"]]
+[[!template text="""community. And how do we onboard people who""" start="00:53:49.360" video="mainVideo-core" id="subtitle"]]
+[[!template text="""are not programmers or people who are younger""" start="00:53:51.760" video="mainVideo-core" id="subtitle"]]
+[[!template text="""than the average Joe coming in those""" start="00:53:54.400" video="mainVideo-core" id="subtitle"]]
+[[!template text="""meetings? There's this Excellent article by""" start="00:53:57.120" video="mainVideo-core" id="subtitle"]]
+[[!template text="""Paul Graham, I think, where he was describing""" start="00:54:01.560" video="mainVideo-core" id="subtitle"]]
+[[!template text="""how they used Emacs as the sort of customer""" start="00:54:06.140" video="mainVideo-core" id="subtitle"]]
+[[!template text="""service system. They built the customer""" start="00:54:09.320" video="mainVideo-core" id="subtitle"]]
+[[!template text="""service system for the early days of Amazon""" start="00:54:11.520" video="mainVideo-core" id="subtitle"]]
+[[!template text="""in Emacs Lisp. And then they switched and all""" start="00:54:14.700" video="mainVideo-core" id="subtitle"]]
+[[!template text="""the employees were sad.""" start="00:54:17.200" video="mainVideo-core" id="subtitle"]]
+[[!template text="""So definitely there's more stuff that could""" start="00:54:18.680" video="mainVideo-core" id="subtitle"]]
+[[!template text="""be done in Emacs and be done better in Emacs.""" start="00:54:21.680" video="mainVideo-core" id="subtitle"]]
+[[!template text="""So for sure, if people want to explore more""" start="00:54:25.240" video="mainVideo-core" id="subtitle"]]
+[[!template text="""stuff like that, that's amazing.""" start="00:54:27.440" video="mainVideo-core" id="subtitle"]]
+[[!template text="""Yeah. And for people who weren't around""" start="00:54:29.720" video="mainVideo-core" id="subtitle"]]
+[[!template text="""earlier today, we've had a presentation about""" start="00:54:32.040" video="mainVideo-core" id="subtitle"]]
+[[!template text="""how to get computer science students to use""" start="00:54:33.740" video="mainVideo-core" id="subtitle"]]
+[[!template text="""Emacs and trying to provide as much""" start="00:54:36.860" video="mainVideo-core" id="subtitle"]]
+[[!template text="""information and as much tutorial as needed""" start="00:54:41.100" video="mainVideo-core" id="subtitle"]]
+[[!template text="""for them to understand what is the philosophy""" start="00:54:43.500" video="mainVideo-core" id="subtitle"]]
+[[!template text="""behind Emacs and how it influences the way""" start="00:54:45.480" video="mainVideo-core" id="subtitle"]]
+[[!template text="""you work and so forth.""" start="00:54:48.420" video="mainVideo-core" id="subtitle"]]
+[[!template text="""So you might want to revisit this discussion.""" start="00:54:49.540" video="mainVideo-core" id="subtitle"]]
+[[!template text="""And we also have plenty of talks talking""" start="00:54:51.420" video="mainVideo-core" id="subtitle"]]
+[[!template text="""about this issue. And I can just add that I""" start="00:54:53.400" video="mainVideo-core" id="subtitle"]]
+[[!template text="""think it's very important for us as a""" start="00:54:57.720" video="mainVideo-core" id="subtitle"]]
+[[!template text="""community to just be enthusiastic to get more""" start="00:55:00.320" video="mainVideo-core" id="subtitle"]]
+[[!template text="""people involved. Because I mean,""" start="00:55:03.120" video="mainVideo-core" id="subtitle"]]
+[[!template text="""look, there's this meme where it's like,""" start="00:55:04.640" video="mainVideo-core" id="subtitle"]]
+[[!template text="""I use Arch Linux, by the way,""" start="00:55:06.660" video="mainVideo-core" id="subtitle"]]
+[[!template text="""I use Arch, by the way.""" start="00:55:08.620" video="mainVideo-core" id="subtitle"]]
+[[!template text="""And for some reason, people using Arch keep""" start="00:55:10.080" video="mainVideo-core" id="subtitle"]]
+[[!template text="""telling you that they're using Arch.""" start="00:55:12.380" video="mainVideo-core" id="subtitle"]]
+[[!template text="""That's fine. Use whatever you want.""" start="00:55:14.600" video="mainVideo-core" id="subtitle"]]
+[[!template text="""It's free software, I don't care.""" start="00:55:16.160" video="mainVideo-core" id="subtitle"]]
+[[!template text="""I think if you look at Vim users,""" start="00:55:20.140" video="mainVideo-core" id="subtitle"]]
+[[!template text="""they're very almost militant,""" start="00:55:21.900" video="mainVideo-core" id="subtitle"]]
+[[!template text="""oh, we're Vim, and Vim is the thing.""" start="00:55:23.540" video="mainVideo-core" id="subtitle"]]
+[[!template text="""And Emacs users sometimes,""" start="00:55:25.920" video="mainVideo-core" id="subtitle"]]
+[[!template text="""and it's fine. We take a bit of a more""" start="00:55:27.700" video="mainVideo-core" id="subtitle"]]
+[[!template text="""laid-back approach. We're like,""" start="00:55:29.960" video="mainVideo-core" id="subtitle"]]
+[[!template text="""yeah, I use Emacs, you use Vim,""" start="00:55:31.160" video="mainVideo-core" id="subtitle"]]
+[[!template text="""whatever. And that's fine.""" start="00:55:32.720" video="mainVideo-core" id="subtitle"]]
+[[!template text="""I mean, that's the correct approach,""" start="00:55:35.320" video="mainVideo-core" id="subtitle"]]
+[[!template text="""I think. You should respect what people want""" start="00:55:36.820" video="mainVideo-core" id="subtitle"]]
+[[!template text="""to use. I don't care that people use VS Code""" start="00:55:38.480" video="mainVideo-core" id="subtitle"]]
+[[!template text="""or whatever. I'm not going to use that""" start="00:55:40.840" video="mainVideo-core" id="subtitle"]]
+[[!template text="""because it's too limiting.""" start="00:55:42.540" video="mainVideo-core" id="subtitle"]]
+[[!template text="""It's not really a workable environment.""" start="00:55:43.940" video="mainVideo-core" id="subtitle"]]
+[[!template text="""But I think it's OK to be enthusiastic.""" start="00:55:46.400" video="mainVideo-core" id="subtitle"]]
+[[!template text="""I think it's okay to talk about that type of""" start="00:55:48.740" video="mainVideo-core" id="subtitle"]]
+[[!template text="""enthusiasm and anything that can help""" start="00:55:51.360" video="mainVideo-core" id="subtitle"]]
+[[!template text="""increase the enthusiasm around Emacs can only""" start="00:55:54.400" video="mainVideo-core" id="subtitle"]]
+[[!template text="""help the longevity of Emacs.""" start="00:55:56.880" video="mainVideo-core" id="subtitle"]]
+[[!template text="""I agree and that's also 1 of the key""" start="00:56:02.520" video="mainVideo-core" id="subtitle"]]
+[[!template text="""objectives of EmacsConf.""" start="00:56:04.280" video="mainVideo-core" id="subtitle"]]
+[[!template text="""It's about bringing a lot of amazing people""" start="00:56:05.460" video="mainVideo-core" id="subtitle"]]
+[[!template text="""to come talk, like you,""" start="00:56:07.660" video="mainVideo-core" id="subtitle"]]
+[[!template text="""about stuff that is very dear to you.""" start="00:56:09.140" video="mainVideo-core" id="subtitle"]]
+[[!template text="""And it's very tangible how much you care,""" start="00:56:11.400" video="mainVideo-core" id="subtitle"]]
+[[!template text="""all of you, about what you're presenting.""" start="00:56:14.180" video="mainVideo-core" id="subtitle"]]
+[[!template text="""And it's amazing to put all of you people on""" start="00:56:15.920" video="mainVideo-core" id="subtitle"]]
+[[!template text="""just 48 hours talking about all of this and""" start="00:56:18.560" video="mainVideo-core" id="subtitle"]]
+[[!template text="""then creating so much content for people to""" start="00:56:20.800" video="mainVideo-core" id="subtitle"]]
+[[!template text="""watch. And I think it's really helping the""" start="00:56:22.920" video="mainVideo-core" id="subtitle"]]
+[[!template text="""enthusiasm to live on and to gather a little""" start="00:56:24.480" video="mainVideo-core" id="subtitle"]]
+[[!template text="""more snow as it comes down.""" start="00:56:28.140" video="mainVideo-core" id="subtitle"]]
+[[!template text="""Yeah, I watch you Max Conf every year.""" start="00:56:29.920" video="mainVideo-core" id="subtitle"]]
+[[!template text="""I think it's a lot of fun.""" start="00:56:31.720" video="mainVideo-core" id="subtitle"]]
+[[!template text="""Thank you. I'll take the compliment for""" start="00:56:34.300" video="mainVideo-core" id="subtitle"]]
+[[!template text="""everyone else in the team.""" start="00:56:37.360" video="mainVideo-core" id="subtitle"]]
+[[!template text="""We're going to go a little bit longer with""" start="00:56:39.620" video="mainVideo-core" id="subtitle"]]
+[[!template text="""the Q&A because we still have a lot of""" start="00:56:41.120" video="mainVideo-core" id="subtitle"]]
+[[!template text="""questions and if Stéphane is still willing to""" start="00:56:42.800" video="mainVideo-core" id="subtitle"]]
+[[!template text="""answer, I'm still willing to not go too bad""" start="00:56:44.480" video="mainVideo-core" id="subtitle"]]
+[[!template text="""to hear a lot more of it.""" start="00:56:48.160" video="mainVideo-core" id="subtitle"]]
+[[!template text="""Yeah, for me it's fine.""" start="00:56:49.740" video="mainVideo-core" id="subtitle"]]
+[[!template text="""I have time. Great. So I think I've done this""" start="00:56:50.580" video="mainVideo-core" id="subtitle"]]
+[[!template text="""question. So, all right.""" start="00:56:55.760" video="mainVideo-core" id="subtitle"]]
+[[!template text="""How are we going to make sure that a cool""" start="00:56:58.080" video="mainVideo-core" id="subtitle"]]
+[[!template text="""idea is going to pass it through for the next""" start="00:57:00.060" video="mainVideo-core" id="subtitle"]]
+[[!template text="""generation, let's say 20 years later,""" start="00:57:01.960" video="mainVideo-core" id="subtitle"]]
+[[!template text="""the generation still have the good knowledge""" start="00:57:04.120" video="mainVideo-core" id="subtitle"]]
+[[!template text="""we have today. Yeah, so I mean,""" start="00:57:05.860" video="mainVideo-core" id="subtitle"]]
+[[!template text="""if you think about what does EMAX need to""" start="00:57:09.940" video="mainVideo-core" id="subtitle"]]
+[[!template text="""have staying power, so in general,""" start="00:57:12.840" video="mainVideo-core" id="subtitle"]]
+[[!template text="""they say, you know, if if when you start a""" start="00:57:15.180" video="mainVideo-core" id="subtitle"]]
+[[!template text="""company, if you have a company for 1 year,""" start="00:57:17.020" video="mainVideo-core" id="subtitle"]]
+[[!template text="""then in all likelihood,""" start="00:57:19.340" video="mainVideo-core" id="subtitle"]]
+[[!template text="""you're going to have it for 2 years because,""" start="00:57:20.220" video="mainVideo-core" id="subtitle"]]
+[[!template text="""you know, it's just so if you've had Emacs""" start="00:57:21.820" video="mainVideo-core" id="subtitle"]]
+[[!template text="""for 4 years, I'm saying that we're going to""" start="00:57:23.680" video="mainVideo-core" id="subtitle"]]
+[[!template text="""have Emacs for the next 4 years as well.""" start="00:57:25.840" video="mainVideo-core" id="subtitle"]]
+[[!template text="""Just based on that, I'm not sure the logic""" start="00:57:27.980" video="mainVideo-core" id="subtitle"]]
+[[!template text="""holds up, but you know,""" start="00:57:30.540" video="mainVideo-core" id="subtitle"]]
+[[!template text="""how does Emacs stay relevant?""" start="00:57:32.440" video="mainVideo-core" id="subtitle"]]
+[[!template text="""I think is the question.""" start="00:57:34.340" video="mainVideo-core" id="subtitle"]]
+[[!template text="""Well, I think we need to continue working on""" start="00:57:35.500" video="mainVideo-core" id="subtitle"]]
+[[!template text="""all the types of exploratory work that people""" start="00:57:38.520" video="mainVideo-core" id="subtitle"]]
+[[!template text="""are doing in the community.""" start="00:57:41.840" video="mainVideo-core" id="subtitle"]]
+[[!template text="""I think there is fundamental stuff that needs""" start="00:57:43.820" video="mainVideo-core" id="subtitle"]]
+[[!template text="""to be done. I mean, if people want to work""" start="00:57:45.720" video="mainVideo-core" id="subtitle"]]
+[[!template text="""on, you know, web rendering and Emacs,""" start="00:57:47.720" video="mainVideo-core" id="subtitle"]]
+[[!template text="""maybe that's the next,""" start="00:57:49.400" video="mainVideo-core" id="subtitle"]]
+[[!template text="""you know, revolutionary step that we need""" start="00:57:50.240" video="mainVideo-core" id="subtitle"]]
+[[!template text="""that could, you know, really showcase what""" start="00:57:53.240" video="mainVideo-core" id="subtitle"]]
+[[!template text="""Emacs, you know, as, you know,""" start="00:57:55.320" video="mainVideo-core" id="subtitle"]]
+[[!template text="""an idea, even if not Emacs as a software""" start="00:57:57.640" video="mainVideo-core" id="subtitle"]]
+[[!template text="""could be and, you know,""" start="00:58:00.620" video="mainVideo-core" id="subtitle"]]
+[[!template text="""Because there is huge potential in the idea""" start="00:58:01.960" video="mainVideo-core" id="subtitle"]]
+[[!template text="""as such. So maybe that's something.""" start="00:58:05.000" video="mainVideo-core" id="subtitle"]]
+[[!template text="""But I mean, from the point of view of core""" start="00:58:07.960" video="mainVideo-core" id="subtitle"]]
+[[!template text="""development, I think we need to just continue""" start="00:58:09.600" video="mainVideo-core" id="subtitle"]]
+[[!template text="""working on the fundamental technologies.""" start="00:58:11.840" video="mainVideo-core" id="subtitle"]]
+[[!template text="""1 thing that I would like to eventually see""" start="00:58:15.260" video="mainVideo-core" id="subtitle"]]
+[[!template text="""is a better garbage collector.""" start="00:58:17.980" video="mainVideo-core" id="subtitle"]]
+[[!template text="""We've talked about that for a long time,""" start="00:58:19.900" video="mainVideo-core" id="subtitle"]]
+[[!template text="""but I mean, we need someone to do the job""" start="00:58:22.280" video="mainVideo-core" id="subtitle"]]
+[[!template text="""really. It's not very easy.""" start="00:58:25.380" video="mainVideo-core" id="subtitle"]]
+[[!template text="""It's very hard, actually.""" start="00:58:27.980" video="mainVideo-core" id="subtitle"]]
+[[!template text="""So just continues working on stuff like that,""" start="00:58:31.100" video="mainVideo-core" id="subtitle"]]
+[[!template text="""continue with the exploration,""" start="00:58:34.000" video="mainVideo-core" id="subtitle"]]
+[[!template text="""continue using and being excited about Emacs.""" start="00:58:35.800" video="mainVideo-core" id="subtitle"]]
+[[!template text="""I think that's the best guarantee that we""" start="00:58:40.260" video="mainVideo-core" id="subtitle"]]
+[[!template text="""have. Yeah, and perhaps to echo something""" start="00:58:43.180" video="mainVideo-core" id="subtitle"]]
+[[!template text="""that you said earlier,""" start="00:58:45.800" video="mainVideo-core" id="subtitle"]]
+[[!template text="""the tools that you're using,""" start="00:58:46.840" video="mainVideo-core" id="subtitle"]]
+[[!template text="""like the emails, they've been around forever,""" start="00:58:47.960" video="mainVideo-core" id="subtitle"]]
+[[!template text="""they will be around forever.""" start="00:58:49.920" video="mainVideo-core" id="subtitle"]]
+[[!template text="""This pragmatic stance on the tools that""" start="00:58:51.500" video="mainVideo-core" id="subtitle"]]
+[[!template text="""you're using, they might look stayed from the""" start="00:58:53.480" video="mainVideo-core" id="subtitle"]]
+[[!template text="""outside, but ultimately they are what permits""" start="00:58:56.240" video="mainVideo-core" id="subtitle"]]
+[[!template text="""a sense of longevity to any kind of project""" start="00:58:59.220" video="mainVideo-core" id="subtitle"]]
+[[!template text="""you embark upon. Also,""" start="00:59:03.300" video="mainVideo-core" id="subtitle"]]
+[[!template text="""in a sense, I think that the expectations""" start="00:59:05.460" video="mainVideo-core" id="subtitle"]]
+[[!template text="""might be changing in the sense that,""" start="00:59:07.740" video="mainVideo-core" id="subtitle"]]
+[[!template text="""you know, when I started using GNU Linux,""" start="00:59:09.320" video="mainVideo-core" id="subtitle"]]
+[[!template text="""you know what the first thing I did was,""" start="00:59:12.980" video="mainVideo-core" id="subtitle"]]
+[[!template text="""because I couldn't get Xorg to run.""" start="00:59:15.060" video="mainVideo-core" id="subtitle"]]
+[[!template text="""So the first thing you had to do was you had""" start="00:59:16.960" video="mainVideo-core" id="subtitle"]]
+[[!template text="""to compile your own Linux kernel.""" start="00:59:19.040" video="mainVideo-core" id="subtitle"]]
+[[!template text="""So you sit there and make manuconfig and""" start="00:59:20.820" video="mainVideo-core" id="subtitle"]]
+[[!template text="""you'll like, try to read it and you've never""" start="00:59:22.960" video="mainVideo-core" id="subtitle"]]
+[[!template text="""done anything like this before.""" start="00:59:24.880" video="mainVideo-core" id="subtitle"]]
+[[!template text="""You know, I was just a kid.""" start="00:59:26.320" video="mainVideo-core" id="subtitle"]]
+[[!template text="""I had never been at this kind of,""" start="00:59:27.800" video="mainVideo-core" id="subtitle"]]
+[[!template text="""you know, whatever. So I had to start with""" start="00:59:29.540" video="mainVideo-core" id="subtitle"]]
+[[!template text="""that. And then you have to write the X or""" start="00:59:31.560" video="mainVideo-core" id="subtitle"]]
+[[!template text="""configuration file. And I had the patience""" start="00:59:34.200" video="mainVideo-core" id="subtitle"]]
+[[!template text="""for that. But nowadays,""" start="00:59:36.100" video="mainVideo-core" id="subtitle"]]
+[[!template text="""people have different expectations.""" start="00:59:37.200" video="mainVideo-core" id="subtitle"]]
+[[!template text="""You just install something,""" start="00:59:38.740" video="mainVideo-core" id="subtitle"]]
+[[!template text="""and it works. And we need to keep that in""" start="00:59:40.640" video="mainVideo-core" id="subtitle"]]
+[[!template text="""mind as well. So that's why I keep pushing as""" start="00:59:42.720" video="mainVideo-core" id="subtitle"]]
+[[!template text="""1 of my big things. We need to build a more""" start="00:59:45.280" video="mainVideo-core" id="subtitle"]]
+[[!template text="""cohesive experience out of the box.""" start="00:59:48.740" video="mainVideo-core" id="subtitle"]]
+[[!template text="""Of course, that can be customizable.""" start="00:59:51.180" video="mainVideo-core" id="subtitle"]]
+[[!template text="""You shouldn't shoehorn anything in just for""" start="00:59:52.940" video="mainVideo-core" id="subtitle"]]
+[[!template text="""the sake of it. But you could get some things""" start="00:59:55.240" video="mainVideo-core" id="subtitle"]]
+[[!template text="""a little bit more for free.""" start="00:59:58.940" video="mainVideo-core" id="subtitle"]]
+[[!template text="""And maybe some of us that have our own""" start="01:00:01.220" video="mainVideo-core" id="subtitle"]]
+[[!template text="""configs and we've been doing this for you""" start="01:00:03.080" video="mainVideo-core" id="subtitle"]]
+[[!template text="""know, 2, 05:10, even 20 years,""" start="01:00:04.780" video="mainVideo-core" id="subtitle"]]
+[[!template text="""we could also see, you know,""" start="01:00:08.480" video="mainVideo-core" id="subtitle"]]
+[[!template text="""from the point of view of a new user that""" start="01:00:09.660" video="mainVideo-core" id="subtitle"]]
+[[!template text="""just installs VS Code and then they click,""" start="01:00:11.640" video="mainVideo-core" id="subtitle"]]
+[[!template text="""yes I use Python, yes I use that,""" start="01:00:13.780" video="mainVideo-core" id="subtitle"]]
+[[!template text="""and then it just automatically works.""" start="01:00:15.680" video="mainVideo-core" id="subtitle"]]
+[[!template text="""You know what I mean? I mean,""" start="01:00:19.200" video="mainVideo-core" id="subtitle"]]
+[[!template text="""then could we get closer to that perhaps a""" start="01:00:20.600" video="mainVideo-core" id="subtitle"]]
+[[!template text="""little bit? I think that would also help.""" start="01:00:24.140" video="mainVideo-core" id="subtitle"]]
+[[!template text="""Yeah, I think that's what we call the""" start="01:00:26.760" video="mainVideo-core" id="subtitle"]]
+[[!template text="""configuration wizard. And we were talking""" start="01:00:28.700" video="mainVideo-core" id="subtitle"]]
+[[!template text="""about this, I think, a couple of years ago at""" start="01:00:30.580" video="mainVideo-core" id="subtitle"]]
+[[!template text="""EmacsConf. I can't remember if it was with""" start="01:00:32.520" video="mainVideo-core" id="subtitle"]]
+[[!template text="""Adam in the chat. Adam,""" start="01:00:34.200" video="mainVideo-core" id="subtitle"]]
+[[!template text="""I mean Alpha Papa, or if it was with Bastien,""" start="01:00:35.740" video="mainVideo-core" id="subtitle"]]
+[[!template text="""but I remember the idea cropping off.""" start="01:00:38.240" video="mainVideo-core" id="subtitle"]]
+[[!template text="""Like, it's either you get a tutorial for""" start="01:00:40.440" video="mainVideo-core" id="subtitle"]]
+[[!template text="""Emacs, a proper tutorial,""" start="01:00:42.520" video="mainVideo-core" id="subtitle"]]
+[[!template text="""or you get a wizard, or you get both,""" start="01:00:43.520" video="mainVideo-core" id="subtitle"]]
+[[!template text="""and then all is right for the world.""" start="01:00:45.640" video="mainVideo-core" id="subtitle"]]
+[[!template text="""But definitely cool ideas being evoked.""" start="01:00:47.520" video="mainVideo-core" id="subtitle"]]
+[[!template text="""I'm gonna say I need to decree the time when""" start="01:00:50.280" video="mainVideo-core" id="subtitle"]]
+[[!template text="""we finish because for me it is 11.15""" start="01:00:52.280" video="mainVideo-core" id="subtitle"]]
+[[!template text="""p.m. And I think my co-organizers are also""" start="01:00:55.080" video="mainVideo-core" id="subtitle"]]
+[[!template text="""willing to end the day and go rest because""" start="01:00:59.300" video="mainVideo-core" id="subtitle"]]
+[[!template text="""we've got another day to go tomorrow.""" start="01:01:01.680" video="mainVideo-core" id="subtitle"]]
+[[!template text="""So how about we take 3 minutes and 30 seconds""" start="01:01:03.760" video="mainVideo-core" id="subtitle"]]
+[[!template text="""to try to answer a little bit more succinctly""" start="01:01:06.280" video="mainVideo-core" id="subtitle"]]
+[[!template text="""the questions we've got left.""" start="01:01:08.560" video="mainVideo-core" id="subtitle"]]
+[[!template text="""How does that sound, Stefan?""" start="01:01:09.780" video="mainVideo-core" id="subtitle"]]
+[[!template text="""Sounds great. Cool, so I'll start reading the""" start="01:01:11.320" video="mainVideo-core" id="subtitle"]]
+[[!template text="""questions then that we've got left.""" start="01:01:15.200" video="mainVideo-core" id="subtitle"]]
+[[!template text="""So this 1 we've got. If you're willing to""" start="01:01:18.340" video="mainVideo-core" id="subtitle"]]
+[[!template text="""discuss it, what do you think about the""" start="01:01:20.840" video="mainVideo-core" id="subtitle"]]
+[[!template text="""recent controversy about use of CLLib in""" start="01:01:22.360" video="mainVideo-core" id="subtitle"]]
+[[!template text="""Emacs call code? Am I willing to discuss""" start="01:01:24.720" video="mainVideo-core" id="subtitle"]]
+[[!template text="""that? I have said my opinion on Emacs,""" start="01:01:29.980" video="mainVideo-core" id="subtitle"]]
+[[!template text="""Devel, I think. And I think I understand,""" start="01:01:36.420" video="mainVideo-core" id="subtitle"]]
+[[!template text="""I think, the viewpoints of both sides in that""" start="01:01:40.680" video="mainVideo-core" id="subtitle"]]
+[[!template text="""discussion. It is true that some things,""" start="01:01:44.820" video="mainVideo-core" id="subtitle"]]
+[[!template text="""I mean, we have to think about that.""" start="01:01:46.720" video="mainVideo-core" id="subtitle"]]
+[[!template text="""There is a real problem,""" start="01:01:49.280" video="mainVideo-core" id="subtitle"]]
+[[!template text="""I think, when we have 3 different APIs for""" start="01:01:50.340" video="mainVideo-core" id="subtitle"]]
+[[!template text="""doing the same thing in Emacs.""" start="01:01:53.520" video="mainVideo-core" id="subtitle"]]
+[[!template text="""And can we make that a little bit better?""" start="01:01:55.320" video="mainVideo-core" id="subtitle"]]
+[[!template text="""I mean, perhaps we could,""" start="01:01:57.280" video="mainVideo-core" id="subtitle"]]
+[[!template text="""right? So that's about as much as I'd like to""" start="01:01:59.760" video="mainVideo-core" id="subtitle"]]
+[[!template text="""say. Fair enough. I would have also accepted""" start="01:02:04.040" video="mainVideo-core" id="subtitle"]]
+[[!template text="""that CL loops are ugly to write and they""" start="01:02:06.940" video="mainVideo-core" id="subtitle"]]
+[[!template text="""don't feel very lispy.""" start="01:02:09.160" video="mainVideo-core" id="subtitle"]]
+[[!template text="""But I'll take your answer as well.""" start="01:02:10.320" video="mainVideo-core" id="subtitle"]]
+[[!template text="""Yeah, some people think that.""" start="01:02:13.260" video="mainVideo-core" id="subtitle"]]
+[[!template text="""I understand that position as well.""" start="01:02:15.660" video="mainVideo-core" id="subtitle"]]
+[[!template text="""Right. Okay, next question.""" start="01:02:19.200" video="mainVideo-core" id="subtitle"]]
+[[!template text="""When we find a bug in our Emacs,""" start="01:02:21.260" video="mainVideo-core" id="subtitle"]]
+[[!template text="""do we need to try to replicate it on our side""" start="01:02:23.100" video="mainVideo-core" id="subtitle"]]
+[[!template text="""version, on our SID version,""" start="01:02:25.200" video="mainVideo-core" id="subtitle"]]
+[[!template text="""sorry, then update all the usual list package""" start="01:02:26.780" video="mainVideo-core" id="subtitle"]]
+[[!template text="""we use, and if we succeed to replicate the""" start="01:02:29.340" video="mainVideo-core" id="subtitle"]]
+[[!template text="""bug in this version, only then go to""" start="01:02:31.480" video="mainVideo-core" id="subtitle"]]
+[[!template text="""development version 30 and do the same.""" start="01:02:33.340" video="mainVideo-core" id="subtitle"]]
+[[!template text="""Then only ask for assistance in reporting the""" start="01:02:35.660" video="mainVideo-core" id="subtitle"]]
+[[!template text="""bug we found. So I believe when they""" start="01:02:37.580" video="mainVideo-core" id="subtitle"]]
+[[!template text="""encounter a bug, are people supposed to go to""" start="01:02:40.260" video="mainVideo-core" id="subtitle"]]
+[[!template text="""master to pull main and just to make sure""" start="01:02:43.540" video="mainVideo-core" id="subtitle"]]
+[[!template text="""that they are on the latest version.""" start="01:02:47.500" video="mainVideo-core" id="subtitle"]]
+[[!template text="""Is this something that you require?""" start="01:02:48.740" video="mainVideo-core" id="subtitle"]]
+[[!template text="""We don't require that,""" start="01:02:50.660" video="mainVideo-core" id="subtitle"]]
+[[!template text="""but we do try to encourage you to reproduce""" start="01:02:51.860" video="mainVideo-core" id="subtitle"]]
+[[!template text="""it on master if we think that it matters.""" start="01:02:54.960" video="mainVideo-core" id="subtitle"]]
+[[!template text="""Yeah, so if you can, that's even better.""" start="01:02:57.720" video="mainVideo-core" id="subtitle"]]
+[[!template text="""But if the bug is there in Emacs 29,""" start="01:03:01.620" video="mainVideo-core" id="subtitle"]]
+[[!template text="""maybe we want to fix it in Emacs 29.2.""" start="01:03:03.940" video="mainVideo-core" id="subtitle"]]
+[[!template text="""So the latest point release is also fine.""" start="01:03:06.340" video="mainVideo-core" id="subtitle"]]
+[[!template text="""Bugs in Emacs 28 at this point,""" start="01:03:10.400" video="mainVideo-core" id="subtitle"]]
+[[!template text="""like the previous major version,""" start="01:03:12.940" video="mainVideo-core" id="subtitle"]]
+[[!template text="""we might ask you to try to reproduce it on""" start="01:03:15.060" video="mainVideo-core" id="subtitle"]]
+[[!template text="""Emacs 29 because we're not planning more""" start="01:03:17.720" video="mainVideo-core" id="subtitle"]]
+[[!template text="""releases of old major versions.""" start="01:03:19.600" video="mainVideo-core" id="subtitle"]]
+[[!template text="""So that's the fundamental reason for that.""" start="01:03:21.600" video="mainVideo-core" id="subtitle"]]
+[[!template text="""Great. Thank you for your answer.""" start="01:03:24.480" video="mainVideo-core" id="subtitle"]]
+[[!template text="""All right. Moving on to the next question.""" start="01:03:25.900" video="mainVideo-core" id="subtitle"]]
+[[!template text="""On branching off sub-threads,""" start="01:03:27.840" video="mainVideo-core" id="subtitle"]]
+[[!template text="""I note that they are less visible compared to""" start="01:03:29.680" video="mainVideo-core" id="subtitle"]]
+[[!template text="""starting a new thread in practice.""" start="01:03:31.840" video="mainVideo-core" id="subtitle"]]
+[[!template text="""I am wondering if it is just my impression or""" start="01:03:33.520" video="mainVideo-core" id="subtitle"]]
+[[!template text="""something devs also observe.""" start="01:03:35.680" video="mainVideo-core" id="subtitle"]]
+[[!template text="""Yeah, it's true. That's correct.""" start="01:03:37.920" video="mainVideo-core" id="subtitle"]]
+[[!template text="""I don't know what to do about it.""" start="01:03:41.400" video="mainVideo-core" id="subtitle"]]
+[[!template text="""If you want more visibility,""" start="01:03:42.840" video="mainVideo-core" id="subtitle"]]
+[[!template text="""I guess just start a new thread.""" start="01:03:44.180" video="mainVideo-core" id="subtitle"]]
+[[!template text="""I don't know. I can only agree,""" start="01:03:47.080" video="mainVideo-core" id="subtitle"]]
+[[!template text="""really. I concur. That's true.""" start="01:03:48.960" video="mainVideo-core" id="subtitle"]]
+[[!template text="""Okay. Next question. What about rewriting""" start="01:03:51.720" video="mainVideo-core" id="subtitle"]]
+[[!template text="""Emacs in Rust? Use Guile instead of Elisp.""" start="01:03:54.340" video="mainVideo-core" id="subtitle"]]
+[[!template text="""Multi-threaded Emacs. Make Emacs prettier and""" start="01:03:57.260" video="mainVideo-core" id="subtitle"]]
+[[!template text="""shiny. And of course, same defaults.""" start="01:03:59.580" video="mainVideo-core" id="subtitle"]]
+[[!template text="""Just kidding. We are spoiled children because""" start="01:04:02.220" video="mainVideo-core" id="subtitle"]]
+[[!template text="""you and Eli, Lars, and etc do an impressive""" start="01:04:04.440" video="mainVideo-core" id="subtitle"]]
+[[!template text="""work. I live in Emacs since 2001.""" start="01:04:08.420" video="mainVideo-core" id="subtitle"]]
+[[!template text="""Thanks. That was a good 1.""" start="01:04:11.040" video="mainVideo-core" id="subtitle"]]
+[[!template text="""Sane defaults. Okay, Well,""" start="01:04:14.220" video="mainVideo-core" id="subtitle"]]
+[[!template text="""thank you. Thanks for that comment.""" start="01:04:18.900" video="mainVideo-core" id="subtitle"]]
+[[!template text="""That made me chuckle. Next question by the""" start="01:04:20.580" video="mainVideo-core" id="subtitle"]]
+[[!template text="""same person, I assume.""" start="01:04:23.440" video="mainVideo-core" id="subtitle"]]
+[[!template text="""The only downside I see with copyright""" start="01:04:24.520" video="mainVideo-core" id="subtitle"]]
+[[!template text="""assignment is that 1 has to disclose their""" start="01:04:26.580" video="mainVideo-core" id="subtitle"]]
+[[!template text="""real identity. Would it be a possibility to""" start="01:04:28.900" video="mainVideo-core" id="subtitle"]]
+[[!template text="""assign a copyright under a nickname?""" start="01:04:31.240" video="mainVideo-core" id="subtitle"]]
+[[!template text="""Yeah, you don't have to say a real name.""" start="01:04:33.160" video="mainVideo-core" id="subtitle"]]
+[[!template text="""Just register some pseudonym.""" start="01:04:34.840" video="mainVideo-core" id="subtitle"]]
+[[!template text="""The FSF does need your real name,""" start="01:04:37.360" video="mainVideo-core" id="subtitle"]]
+[[!template text="""but that's kept private only.""" start="01:04:39.440" video="mainVideo-core" id="subtitle"]]
+[[!template text="""So feel free to reach out to assign at""" start="01:04:41.500" video="mainVideo-core" id="subtitle"]]
+[[!template text="""gnu.org and ask more about that.""" start="01:04:45.920" video="mainVideo-core" id="subtitle"]]
+[[!template text="""Right. All right, next question.""" start="01:04:49.860" video="mainVideo-core" id="subtitle"]]
+[[!template text="""Do you think it is possible to reach an""" start="01:04:51.820" video="mainVideo-core" id="subtitle"]]
+[[!template text="""agreement on sane defaults for better""" start="01:04:53.400" video="mainVideo-core" id="subtitle"]]
+[[!template text="""out-of-the-box experience?""" start="01:04:55.240" video="mainVideo-core" id="subtitle"]]
+[[!template text="""Yeah, so your sane is not my sane""" start="01:04:57.800" video="mainVideo-core" id="subtitle"]]
+[[!template text="""necessarily. So that's the fundamental""" start="01:05:00.060" video="mainVideo-core" id="subtitle"]]
+[[!template text="""problem that we're discussing here.""" start="01:05:01.780" video="mainVideo-core" id="subtitle"]]
+[[!template text="""I think it's a social,""" start="01:05:02.960" video="mainVideo-core" id="subtitle"]]
+[[!template text="""not a technical problem.""" start="01:05:03.960" video="mainVideo-core" id="subtitle"]]
+[[!template text="""We do change defaults sometimes,""" start="01:05:05.380" video="mainVideo-core" id="subtitle"]]
+[[!template text="""but I mean, there is also some staying power.""" start="01:05:07.640" video="mainVideo-core" id="subtitle"]]
+[[!template text="""So it's understandable that,""" start="01:05:09.880" video="mainVideo-core" id="subtitle"]]
+[[!template text="""you know, it's, we can't just change them""" start="01:05:12.260" video="mainVideo-core" id="subtitle"]]
+[[!template text="""willy nilly and then flip flop between,""" start="01:05:13.940" video="mainVideo-core" id="subtitle"]]
+[[!template text="""you know, 1 or the other kind of thing.""" start="01:05:15.920" video="mainVideo-core" id="subtitle"]]
+[[!template text="""So it does take a little bit more time.""" start="01:05:18.340" video="mainVideo-core" id="subtitle"]]
+[[!template text="""But yeah, sure, we can.""" start="01:05:20.060" video="mainVideo-core" id="subtitle"]]
+[[!template text="""We do change defaults at times.""" start="01:05:23.000" video="mainVideo-core" id="subtitle"]]
+[[!template text="""But it's perhaps more slower than what some""" start="01:05:26.380" video="mainVideo-core" id="subtitle"]]
+[[!template text="""people would prefer, for sure.""" start="01:05:29.780" video="mainVideo-core" id="subtitle"]]
+[[!template text="""So that's, yeah. Right,""" start="01:05:31.640" video="mainVideo-core" id="subtitle"]]
+[[!template text="""all right. We have 2 more questions.""" start="01:05:36.000" video="mainVideo-core" id="subtitle"]]
+[[!template text="""So will XWidgets have a future?""" start="01:05:37.920" video="mainVideo-core" id="subtitle"]]
+[[!template text="""Seeing the new bugs popping up in the latest""" start="01:05:40.120" video="mainVideo-core" id="subtitle"]]
+[[!template text="""XWidget dev. Not sure if there was the rest""" start="01:05:42.740" video="mainVideo-core" id="subtitle"]]
+[[!template text="""of the question, But on XWidgets,""" start="01:05:45.280" video="mainVideo-core" id="subtitle"]]
+[[!template text="""can you tell us a little more?""" start="01:05:46.640" video="mainVideo-core" id="subtitle"]]
+[[!template text="""I'm not really following now.""" start="01:05:48.740" video="mainVideo-core" id="subtitle"]]
+[[!template text="""I mean, I'm not seeing a lot of development""" start="01:05:50.580" video="mainVideo-core" id="subtitle"]]
+[[!template text="""on XWidgets currently.""" start="01:05:52.500" video="mainVideo-core" id="subtitle"]]
+[[!template text="""Some people have done work in fixing up a few""" start="01:05:54.480" video="mainVideo-core" id="subtitle"]]
+[[!template text="""bugs, but I think that feature really needs""" start="01:05:57.100" video="mainVideo-core" id="subtitle"]]
+[[!template text="""more love. So I think we need,""" start="01:06:00.380" video="mainVideo-core" id="subtitle"]]
+[[!template text="""you know, help is welcome,""" start="01:06:02.180" video="mainVideo-core" id="subtitle"]]
+[[!template text="""patch is welcome. That's what I can say about""" start="01:06:03.600" video="mainVideo-core" id="subtitle"]]
+[[!template text="""that. All right, and our final question of""" start="01:06:05.920" video="mainVideo-core" id="subtitle"]]
+[[!template text="""the day. Have you voted for Emacs as the""" start="01:06:11.180" video="mainVideo-core" id="subtitle"]]
+[[!template text="""software of the year on the Tuxes by Jupyter""" start="01:06:13.140" video="mainVideo-core" id="subtitle"]]
+[[!template text="""Broadcasting? I did because Emacs 29 is""" start="01:06:15.140" video="mainVideo-core" id="subtitle"]]
+[[!template text="""great. Thank you. Okay,""" start="01:06:17.480" video="mainVideo-core" id="subtitle"]]
+[[!template text="""well, good job voting.""" start="01:06:19.300" video="mainVideo-core" id="subtitle"]]
+[[!template text="""I didn't know, I don't know what Tuxy is on""" start="01:06:20.580" video="mainVideo-core" id="subtitle"]]
+[[!template text="""Jupyter broadcasting, but look it up and go""" start="01:06:22.960" video="mainVideo-core" id="subtitle"]]
+[[!template text="""vote. So I wish I could tell you,""" start="01:06:25.680" video="mainVideo-core" id="subtitle"]]
+[[!template text="""I assume with Tux, it might be something""" start="01:06:28.040" video="mainVideo-core" id="subtitle"]]
+[[!template text="""related to Linux, but that's as much as I can""" start="01:06:29.500" video="mainVideo-core" id="subtitle"]]
+[[!template text="""say. All right, well, Stefan,""" start="01:06:32.900" video="mainVideo-core" id="subtitle"]]
+[[!template text="""thank you so much for taking the time not""" start="01:06:34.960" video="mainVideo-core" id="subtitle"]]
+[[!template text="""only to do a wonderful presentation,""" start="01:06:36.600" video="mainVideo-core" id="subtitle"]]
+[[!template text="""but also for answering all the questions of""" start="01:06:38.000" video="mainVideo-core" id="subtitle"]]
+[[!template text="""the community. Do you have anything else to""" start="01:06:39.640" video="mainVideo-core" id="subtitle"]]
+[[!template text="""add? Just really thanks for all the questions""" start="01:06:41.240" video="mainVideo-core" id="subtitle"]]
+[[!template text="""and thanks for staying.""" start="01:06:45.360" video="mainVideo-core" id="subtitle"]]
+[[!template text="""It's been a long day, a long conference,""" start="01:06:47.780" video="mainVideo-core" id="subtitle"]]
+[[!template text="""so thanks for staying and listening to my""" start="01:06:49.600" video="mainVideo-core" id="subtitle"]]
+[[!template text="""talk as well. Really appreciate it.""" start="01:06:51.180" video="mainVideo-core" id="subtitle"]]
+[[!template text="""Appreciate the good work you guys are doing""" start="01:06:52.540" video="mainVideo-core" id="subtitle"]]
+[[!template text="""behind the scenes, organizing,""" start="01:06:54.280" video="mainVideo-core" id="subtitle"]]
+[[!template text="""setting everything up.""" start="01:06:55.520" video="mainVideo-core" id="subtitle"]]
+[[!template text="""And really humbled to be a part of this""" start="01:06:57.040" video="mainVideo-core" id="subtitle"]]
+[[!template text="""community. So thank you all.""" start="01:07:00.420" video="mainVideo-core" id="subtitle"]]
+[[!template text="""Well I can assure you that no 1 either in the""" start="01:07:02.680" video="mainVideo-core" id="subtitle"]]
+[[!template text="""organization team or the people watching now""" start="01:07:05.860" video="mainVideo-core" id="subtitle"]]
+[[!template text="""felt like it was tiring to stay and listen to""" start="01:07:08.040" video="mainVideo-core" id="subtitle"]]
+[[!template text="""your answers. So thank you so much Stefan.""" start="01:07:10.900" video="mainVideo-core" id="subtitle"]]
+
+</div>Questions or comments? Please e-mail [emacsconf-org-private@gnu.org](mailto:emacsconf-org-private@gnu.org?subject=Comment%20for%20EmacsConf%202023%20core%3A%20Emacs%20core%20development%3A%20how%20it%20works)
+
+
+<!-- End of emacsconf-publish-after-page -->
diff --git a/2023/info/core-before.md b/2023/info/core-before.md
new file mode 100644
index 00000000..7360c892
--- /dev/null
+++ b/2023/info/core-before.md
@@ -0,0 +1,12 @@
+<!-- Automatically generated by emacsconf-publish-before-page -->
+[[!toc ]]
+Format: 68-min talk ; Q&A: BigBlueButton conference room
+Status: Q&A to be extracted from the room recordings
+
+
+
+
+
+<div class="vid mainVideo"><video controls preload="none" id="mainVideo-core"><source src="https://media.emacsconf.org/2023/emacsconf-2023-core--emacs-core-development-how-it-works--stefan-kangas--main.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2023/captions/emacsconf-2023-core--emacs-core-development-how-it-works--stefan-kangas--main.vtt" default />"""<p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video><div></div>Duration: 1:07:13 minutes<div class="files resources"><ul><li><a href="https://pad.emacsconf.org/2023-core">Open Etherpad</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-core--emacs-core-development-how-it-works--stefan-kangas--intro.vtt">Download --intro.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-core--emacs-core-development-how-it-works--stefan-kangas--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-core--emacs-core-development-how-it-works--stefan-kangas--main.json">Download --main.json (2.4MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-core--emacs-core-development-how-it-works--stefan-kangas--main.opus">Download --main.opus (23MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-core--emacs-core-development-how-it-works--stefan-kangas--main.vtt">Download --main.vtt</a> (unedited)</li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-core--emacs-core-development-how-it-works--stefan-kangas--main.webm">Download --main.webm (211MB)</a></li><li><a href="https://toobnix.org/w/m4XmrmE9Geat54AKT1RQaH">View on Toobnix</a></li><li><a href="https://www.youtube.com/watch?v=2izQJiuL0vA">View on Youtube</a></li></ul></div></div>
+# Description
+<!-- End of emacsconf-publish-before-page --> \ No newline at end of file
diff --git a/2023/info/core-nav.md b/2023/info/core-nav.md
new file mode 100644
index 00000000..5eb44913
--- /dev/null
+++ b/2023/info/core-nav.md
@@ -0,0 +1,7 @@
+
+<div class="talk-nav">
+Back to the [[talks]]
+Previous by track: <a href="/2023/talks/devel">Emacs development updates</a>
+Next by track: <a href="/2023/talks/hyperamp">Top 10 ways Hyperbole amps up Emacs</a>
+Track: <span class="sched-track General">General</span> - <strong><a href="https://emacsconf.org/2023/watch/gen">Watch</a></strong>
+</div>
diff --git a/2023/info/cubing-after.md b/2023/info/cubing-after.md
index cd6e5d05..a0ac454b 100644
--- a/2023/info/cubing-after.md
+++ b/2023/info/cubing-after.md
@@ -1,7 +1,285 @@
<!-- Automatically generated by emacsconf-publish-after-page -->
-Questions or comments? Please e-mail [mail@vasilij.de](mailto:mail@vasilij.de?subject=Comment%20for%20EmacsConf%202022%20cubing%3A%20Speedcubing%20in%20Emacs)
+<div class="transcript transcript-mainVideo"><a name="cubing-mainVideo-transcript"></a><h1>Transcript</h1>
+
+
+<div class="transcript-heading">[[!template new="1" text="""Introduction""" start="00:00:00.000" video="mainVideo-cubing" id="subtitle"]]</div>[[!template text="""Hello, everyone, and welcome to Speedcubing in Emacs.""" start="00:00:00.000" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""First of all, a little bit about myself.""" start="00:00:08.360" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""My name is Vasilij Schneidermann. Online, I go by wasamasa.""" start="00:00:10.120" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""I'm 31 years old. I work in information security,""" start="00:00:13.680" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""and I do consulting and hacking""" start="00:00:18.040" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""and stuff like figuring out""" start="00:00:20.480" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""how to break into other people's computers""" start="00:00:22.480" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""and how to secure their systems basically.""" start="00:00:25.280" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""You can reach me by email.""" start="00:00:29.360" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""I do have a self-hosted code repository thingy going on.""" start="00:00:31.440" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""I have a blog, and you can find me""" start="00:00:36.640" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""in some other places online, like IRC for example.""" start="00:00:40.400" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""So about the talk itself,""" start="00:00:45.920" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""I used to be into the Rubik's cube when I was in school.""" start="00:00:48.680" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""I forgot about it, though,""" start="00:00:52.840" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""because these cubes were not very good.""" start="00:00:54.040" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""Recently I did find some cheap looking cube at a shop.""" start="00:00:56.280" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""Did not pay terribly much for it.""" start="00:01:02.280" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""It was so, so much better than my old cube,""" start="00:01:04.120" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""it was unreal.""" start="00:01:07.040" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""This motivated me to get back into""" start="00:01:08.640" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""this really weird kind of hobby.""" start="00:01:11.480" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""For this, you need to be good at producing""" start="00:01:13.560" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""a truly random scramble""" start="00:01:18.000" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""and timing your attempts to get any better at it.""" start="00:01:19.400" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""There is, of course, existing software""" start="00:01:22.320" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""to do the scrambling for you and the recording""" start="00:01:23.720" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""and the timekeeping and such,""" start="00:01:26.240" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""but all the good options seem to be either web or mobile,""" start="00:01:28.080" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""for example the cstimer software""" start="00:01:31.240" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""or the twisty-timer app on Android.""" start="00:01:33.240" video="mainVideo-cubing" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Cubing in Emacs""" start="00:01:35.400" video="mainVideo-cubing" id="subtitle"]]</div>[[!template text="""To my surprise, I did not find a single decent option""" start="00:01:35.400" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""inside Emacs, so this is basically a case study""" start="00:01:39.320" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""how to do better. For this, I wanted to make use of""" start="00:01:41.960" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""all the cool new Emacs features that appeared,""" start="00:01:45.000" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""like the SVG library; Transient,""" start="00:01:47.800" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""the library used for the Magit-style interfaces;""" start="00:01:50.880" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""and the recently added sqlite-mode.""" start="00:01:53.600" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""And most importantly it was about having fun.""" start="00:01:56.440" video="mainVideo-cubing" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Prior art""" start="00:02:01.160" video="mainVideo-cubing" id="subtitle"]]</div>[[!template text="""So here's a full list of prior art,""" start="00:02:01.160" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""I will not go into detail about this,""" start="00:02:02.760" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""but basically we have things solving""" start="00:02:04.280" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""very different parts of this,""" start="00:02:06.240" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""but not all of it. For example: we have several,""" start="00:02:08.040" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""we have a timer. We have several solvers.""" start="00:02:10.760" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""We have some scramblers.""" start="00:02:14.240" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""We have some whole-cube simulators, including a 3D one.""" start="00:02:16.040" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""We have something for making it easier""" start="00:02:19.360" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""to enter your algorithms in the notation.""" start="00:02:20.760" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""But nothing that does all of those things in one package,""" start="00:02:23.120" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""which kind of surprised me.""" start="00:02:25.920" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""So I present the `wca-prep` package.""" start="00:02:28.120" video="mainVideo-cubing" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""The name""" start="00:02:32.040" video="mainVideo-cubing" id="subtitle"]]</div>[[!template text="""So the name, I found it difficult""" start="00:02:32.040" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""to come up with a good name and so I looked""" start="00:02:35.560" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""and I saw, well there's this World Cube Association""" start="00:02:39.960" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""that holds these competitions where you compete.""" start="00:02:42.560" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""They do this for the Rubik's cube""" start="00:02:46.040" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""but also a few others,""" start="00:02:47.760" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""so there's like a standardized list""" start="00:02:48.920" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""of events they have for this.""" start="00:02:50.800" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""There is a standard notation for this""" start="00:02:52.640" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""and rules and everything.""" start="00:02:55.160" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""And the goal of my package is basically""" start="00:02:56.520" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""to help prepare myself for such a competition""" start="00:02:58.200" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""and in fact a week ago I went to my first one""" start="00:03:01.280" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""which was wild, but pretty cool.""" start="00:03:03.680" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""So for this reason I chose this name wca-prep,""" start="00:03:06.720" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""because it helps me prepare for this kind of competition""" start="00:03:10.920" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""and this limited the scope significantly,""" start="00:03:13.640" video="mainVideo-cubing" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""What's in wca-prep""" start="00:03:16.520" video="mainVideo-cubing" id="subtitle"]]</div>[[!template text="""I have a scrambler, visualization of the scramble,""" start="00:03:16.520" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""timer, and statistics.""" start="00:03:19.000" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""I excluded pretty much everything else I've seen.""" start="00:03:23.320" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""For this reason, I only tried to focus on""" start="00:03:25.560" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""some very basic puzzles I can solve comfortably,""" start="00:03:28.789" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""and did not want to do anything else""" start="00:03:32.200" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""that may complicate things significantly.""" start="00:03:34.840" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""No other kinds of puzzles, no simulation, no solving,""" start="00:03:36.440" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""no exotic events, and no specialized scrambles""" start="00:03:40.480" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""that are only good for practicing specific algorithms.""" start="00:03:43.920" video="mainVideo-cubing" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Demo""" start="00:03:49.240" video="mainVideo-cubing" id="subtitle"]]</div>[[!template text="""So at this point the organizer should hopefully show""" start="00:03:49.240" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""a small video I've prepared, a one minute video showing how""" start="00:03:54.200" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""I actually use this to solve a cube and to time my solve.""" start="00:03:58.000" video="mainVideo-cubing" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Challenges: Representing the cube""" start="00:05:15.240" video="mainVideo-cubing" id="subtitle"]]</div>[[!template text="""Okay, so building this thing, there were several challenges.""" start="00:05:15.240" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""The first one was how do I even represent""" start="00:05:18.509" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""the state of a Rubik's cube.""" start="00:05:20.509" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""For this there are many possible representations,""" start="00:05:22.469" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""no obvious best solution.""" start="00:05:25.509" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""I did not, well, what helped me was that""" start="00:05:27.709" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""I did not have to programmatically solve this thing,""" start="00:05:29.629" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""so I picked the easiest possible representation""" start="00:05:31.989" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""which is just an array of every single facelet.""" start="00:05:35.189" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""For a 3x3 cube you have 9 facelets on one side,""" start="00:05:38.269" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""so times 6 sides you would have 54 elements in this array.""" start="00:05:42.509" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""So with this representation, it's very simple,""" start="00:05:47.269" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""but it's kind of weird to do scrambles with this.""" start="00:05:49.709" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""But otherwise, it worked very, very well.""" start="00:05:52.389" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""In the future, I plan to learn some group theory,""" start="00:05:54.909" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""pick a better representation""" start="00:05:57.269" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""and do this in a much, much more elegant way""" start="00:05:58.749" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""without compromising speed too much.""" start="00:06:01.189" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""Yes. Once I had the representation,""" start="00:06:07.869" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""the scrambling itself should not be too hard.""" start="00:06:10.709" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""For this, it's important to consider that basically""" start="00:06:13.629" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""if you do a face turn""" start="00:06:17.749" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""you end up swapping some facelets with other facelets,""" start="00:06:19.149" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""that's the easiest way to think about this.""" start="00:06:22.429" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""To determine which one goes into which one's position,""" start="00:06:26.029" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""it was pretty confusing to figure this out.""" start="00:06:29.269" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""For this I went through a few papers,""" start="00:06:32.471" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""and I found one which suggested""" start="00:06:34.309" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""to just build a cube out of paper,""" start="00:06:36.029" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""number every facelet, and turn it""" start="00:06:37.949" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""and keep track of which facelet moved into which position.""" start="00:06:40.029" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""And programmatically, the `cl-rotatef` macro""" start="00:06:44.349" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""was very, very useful for doing this kind of""" start="00:06:47.509" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""in-place swapping you need for this operation.""" start="00:06:49.389" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""So in the future, group theory would hopefully""" start="00:06:51.629" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""make this a bit less awkward.""" start="00:06:54.869" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""Here's a photo of this paper cube I made""" start="00:06:57.989" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""along with a real cube. As you can see""" start="00:07:00.109" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""mathematically speaking, they are the same thing,""" start="00:07:03.869" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""they just look very, very different.""" start="00:07:07.349" video="mainVideo-cubing" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Scrambling""" start="00:07:09.269" video="mainVideo-cubing" id="subtitle"]]</div>[[!template text="""So the scramble algorithm itself,""" start="00:07:09.269" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""I pondered how this would even be done. In the competitions,""" start="00:07:14.309" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""They do this in a very, very elaborate way.""" start="00:07:19.429" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""They generate a random cube,""" start="00:07:21.589" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""they try to solve it, and if it's solvable""" start="00:07:22.749" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""they use these solution moves""" start="00:07:25.389" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""to turn into a scramble basically.""" start="00:07:28.549" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""And they also make sure to canonicalize the moves,""" start="00:07:30.829" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""so if you have subsequent moves that can be simplified,""" start="00:07:34.949" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""they do simplify these as much as possible.""" start="00:07:38.549" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""For example,""" start="00:07:40.589" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""if you have two subsequent rotations in one direction,""" start="00:07:41.229" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""it's turned into a different kind of rotation,""" start="00:07:43.749" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""so 90 and 90 equals 180.""" start="00:07:46.669" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""And the other Elisp scramblers I looked at,""" start="00:07:49.389" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""they generate random moves.""" start="00:07:53.309" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""Some of them do canonicalize. Not all of them.""" start="00:07:55.109" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""This one tries to do the best low-fi thing,""" start="00:07:57.509" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""that is, generating random moves,""" start="00:08:00.909" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""canonicalizing and repeating""" start="00:08:02.389" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""until enough have been generated.""" start="00:08:04.029" video="mainVideo-cubing" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Visualization""" start="00:08:09.549" video="mainVideo-cubing" id="subtitle"]]</div>[[!template text="""For the visualization I had to figure out""" start="00:08:09.549" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""something else too complicated.""" start="00:08:13.149" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""For this, I tried to figure out""" start="00:08:14.509" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""where every facelift would end up in the puzzle view""" start="00:08:17.229" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""when you would unfold it.""" start="00:08:19.869" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""And for this, I did not consider the facelet orientation.""" start="00:08:21.429" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""This may be important later for some other puzzles""" start="00:08:25.669" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""where you can end up with very twisted faces,""" start="00:08:29.269" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""but for simple cubes, it's not a problem.""" start="00:08:31.149" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""My initial prototype used colored text,""" start="00:08:33.029" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""but later, I used the SVG library.""" start="00:08:36.309" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""It turned out to be easy enough to use, actually.""" start="00:08:38.749" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""Currently, I have hard-coded face-color mappings,""" start="00:08:41.589" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""but I plan to replace this so that theming is possible.""" start="00:08:46.109" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""For example, if you happen to have a cube""" start="00:08:49.109" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""that does not have the same color mappings as I do,""" start="00:08:51.589" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""then you should be able to fix this.""" start="00:08:54.690" video="mainVideo-cubing" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""UI with Transient""" start="00:08:56.469" video="mainVideo-cubing" id="subtitle"]]</div>[[!template text="""Next challenge was to build""" start="00:08:56.469" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""a beautiful intuitive UI with Transient.""" start="00:09:01.429" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""The reason why I chose this is""" start="00:09:03.949" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""because it would be self-documenting and Magit-style,""" start="00:09:06.869" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""and everyone knows how Magit works basically.""" start="00:09:10.349" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""Since Transient has become part of Emacs,""" start="00:09:12.349" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""there is really no reason to not try it out.""" start="00:09:15.309" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""The problem was documentation is difficult to understand.""" start="00:09:17.229" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""It's very abstract and high level,""" start="00:09:21.669" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""and it's hard to figure out. &quot;Okay,""" start="00:09:23.389" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""I want to do something,""" start="00:09:25.869" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""how am I supposed to do this?&quot;""" start="00:09:26.789" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""I did find transient-showcase, which has lots of examples,""" start="00:09:28.909" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""but they don't really feel finished""" start="00:09:33.349" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""and not realistic enough.""" start="00:09:35.629" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""When I tried to use the package,""" start="00:09:39.069" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""I got plenty of unhelpful error messages""" start="00:09:40.749" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""when using it incorrectly.""" start="00:09:42.909" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""I did manage to figure it out,""" start="00:09:44.109" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""but I plan to find more actual examples of it,""" start="00:09:45.949" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""to have an executable reference basically""" start="00:09:50.589" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""and try to improve my use of it.""" start="00:09:53.429" video="mainVideo-cubing" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Book-keeping with SQLite""" start="00:09:55.629" video="mainVideo-cubing" id="subtitle"]]</div>[[!template text="""For the book-keeping, I used SQLite.""" start="00:09:55.629" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""This is a very recent addition to Emacs,""" start="00:10:01.549" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""it only appeared in the current major version.""" start="00:10:04.549" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""It's still very early days.""" start="00:10:07.309" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""I found some oddities, one of them turned out to be""" start="00:10:09.389" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""a bug in the transaction macro.""" start="00:10:13.029" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""Like basically, if you do an SQL transaction""" start="00:10:14.829" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""and an error happens, then every helper I found""" start="00:10:17.589" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""does a rollback on an error.""" start="00:10:20.189" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""But this one did not. It actually committed on an error,""" start="00:10:20.949" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""and this was very weird to figure out.""" start="00:10:26.749" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""I reported a bug. Eli was nice enough to send me a patch.""" start="00:10:29.869" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""We did some patch review,""" start="00:10:34.309" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""and he ended up fixing it properly.""" start="00:10:35.429" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""So yes, there's still a lot to be done there, and yeah,""" start="00:10:37.989" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""the API is very basic.""" start="00:10:45.669" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""You don't have convenience helpers""" start="00:10:46.909" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""like fetch the first row or fetch the first value""" start="00:10:48.909" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""or anything, but they're easy enough to write yourself.""" start="00:10:51.309" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""And the biggest challenge with this bookkeeping part""" start="00:10:54.430" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""was figuring out a decent schema,""" start="00:10:56.370" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""like how to organize data correctly""" start="00:10:58.029" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""so that it would not be awkward to manipulate.""" start="00:11:00.149" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""And with this, you can finally build a package""" start="00:11:02.349" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""that remembers its state properly""" start="00:11:05.749" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""and don't have to run into foot guns""" start="00:11:07.389" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""with Lisp-style serialization, deserialization.""" start="00:11:10.469" video="mainVideo-cubing" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Conclusion""" start="00:11:12.629" video="mainVideo-cubing" id="subtitle"]]</div>[[!template text="""So yes, that concludes it so far.""" start="00:11:12.629" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""So what did I learn from this exercise?""" start="00:11:18.189" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""Well, there are still plenty of packages""" start="00:11:22.189" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""for Emacs to be written.""" start="00:11:24.509" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""If you think everything you can think of""" start="00:11:25.589" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""or you need has already been written, well, guess what?""" start="00:11:28.909" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""No.""" start="00:11:31.349" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""These are still plenty of specialized things""" start="00:11:31.789" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""that could need your help.""" start="00:11:34.045" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""These cubes do not require advanced mathematics,""" start="00:11:36.789" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""contrary to what you may think.""" start="00:11:39.789" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""Yes, you can apply advanced mathematics to them""" start="00:11:41.149" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""if you want to, but you don't have to.""" start="00:11:44.709" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""What surprised me about this is basically group theory.""" start="00:11:47.469" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""I've heard of it before.""" start="00:11:50.989" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""It seemed to be a meme, basically,""" start="00:11:52.069" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""because it has been like mostly Haskell people""" start="00:11:53.829" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""being very excited about this""" start="00:11:56.469" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""and it seemed kind of, like, divorced from reality, basically.""" start="00:11:58.189" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""But this puzzle, it actually proves that yes,""" start="00:12:02.509" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""it has its use.""" start="00:12:05.949" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""It definitely has.""" start="00:12:06.949" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""You just have to find the right problem matching it,""" start="00:12:08.429" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""and yeah.""" start="00:12:11.389" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""So yeah, once I understand it better,""" start="00:12:13.469" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""the topic, I expect to write better code.""" start="00:12:15.389" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""These new Emacs features, they work well enough.""" start="00:12:18.549" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""There are some rough edges.""" start="00:12:24.469" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""They definitely need more testing.""" start="00:12:25.909" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""So please, please, everyone,""" start="00:12:27.429" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""if you write Elisp, please try SQLite or Transient""" start="00:12:30.669" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""or anything else that looks cool and shiny.""" start="00:12:34.549" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""Report bugs.""" start="00:12:36.709" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""Find ways to improve them, anything. And yeah,""" start="00:12:38.469" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""I'm sure that if we do this,""" start="00:12:41.589" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""then Emacs will continue to get even better.""" start="00:12:44.869" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""So yeah, what's next for this package?""" start="00:12:47.669" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""Well, I could... There are lots of obvious UI improvements""" start="00:12:51.789" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""and testing to be done.""" start="00:12:55.989" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""I basically want to reach feature parity""" start="00:12:57.349" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""with the twisty-timer app, which this is very much inspired by.""" start="00:12:59.709" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""I want nice-looking stats like graphical ones""" start="00:13:02.429" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""instead of just a simple list of times.""" start="00:13:06.669" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""And I want support for more puzzles, of course,""" start="00:13:08.789" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""not just the simple cubes,""" start="00:13:11.229" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""but as I progress learning these puzzles,""" start="00:13:12.549" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""I want to have Emacs supporting me for this.""" start="00:13:14.589" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""But generally, it's a very open-ended package.""" start="00:13:18.069" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""And this concludes the talk.""" start="00:13:22.429" video="mainVideo-cubing" id="subtitle"]]
+[[!template text="""Thank you very much.""" start="00:13:26.629" video="mainVideo-cubing" id="subtitle"]]
+
+</div>
+
+Captioner: sachac
+
+Questions or comments? Please e-mail [mail@vasilij.de](mailto:mail@vasilij.de?subject=Comment%20for%20EmacsConf%202023%20cubing%3A%20Speedcubing%20in%20Emacs)
<!-- End of emacsconf-publish-after-page -->
diff --git a/2023/info/cubing-before.md b/2023/info/cubing-before.md
index b1e27ec8..3a3af241 100644
--- a/2023/info/cubing-before.md
+++ b/2023/info/cubing-before.md
@@ -1,12 +1,26 @@
<!-- Automatically generated by emacsconf-publish-before-page -->
[[!toc ]]
-Format: 20-min talk followed by IRC, but anything goes really Q&A
-Discuss on IRC: [#emacsconf](https://chat.emacsconf.org/?join=emacsconf)
-Status: Waiting for video from speaker
+Format: 14-min talk ; Q&A: IRC
+Status: All done
+<div class="vid mainVideo"><video controls preload="none" id="mainVideo-cubing"><source src="https://media.emacsconf.org/2023/emacsconf-2023-cubing--speedcubing-in-emacs--vasilij-wasamasa-schneidermann--main.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2023/captions/emacsconf-2023-cubing--speedcubing-in-emacs--vasilij-wasamasa-schneidermann--main.vtt" default />"""<track kind="chapters" label="Chapters" src="/2023/captions/emacsconf-2023-cubing--speedcubing-in-emacs--vasilij-wasamasa-schneidermann--main--chapters.vtt" /><p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video>[[!template id="chapters" vidid="mainVideo-cubing" data="""
+00:00.000 Introduction
+01:35.400 Cubing in Emacs
+02:01.160 Prior art
+02:32.040 The name
+03:16.520 What's in wca-prep
+03:49.240 Demo
+05:15.340 Challenges: Representing the cube
+07:09.220 Scrambling
+08:09.500 Visualization
+08:56.420 UI with Transient
+09:55.580 Book-keeping with SQLite
+11:12.580 Conclusion
+
+"""]]<div></div>Duration: 13:35 minutes<div class="files resources"><ul><li><a href="https://pad.emacsconf.org/2023-cubing">Open Etherpad</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-cubing--speedcubing-in-emacs--vasilij-wasamasa-schneidermann--alternative.webm">Download --alternative.webm (16MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-cubing--speedcubing-in-emacs--vasilij-wasamasa-schneidermann--intro.vtt">Download --intro.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-cubing--speedcubing-in-emacs--vasilij-wasamasa-schneidermann--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-cubing--speedcubing-in-emacs--vasilij-wasamasa-schneidermann--main--chapters.vtt">Download --main--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-cubing--speedcubing-in-emacs--vasilij-wasamasa-schneidermann--main.opus">Download --main.opus (8.6MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-cubing--speedcubing-in-emacs--vasilij-wasamasa-schneidermann--main.vtt">Download --main.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-cubing--speedcubing-in-emacs--vasilij-wasamasa-schneidermann--main.webm">Download --main.webm (57MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-cubing--speedcubing-in-emacs--vasilij-wasamasa-schneidermann--presentation.webm">Download --presentation.webm (16MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-cubing--speedcubing-in-emacs--vasilij-wasamasa-schneidermann--solve-demo.webm">Download --solve-demo.webm (11MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-cubing--speedcubing-in-emacs--vasilij-wasamasa-schneidermann.pdf">Download .pdf</a></li><li><a href="https://toobnix.org/w/2DYX2o8kB1Rv8Mqaj7H1Dx">View on Toobnix</a></li><li><a href="https://www.youtube.com/watch?v=Q5HPmyaiu4g">View on Youtube</a></li></ul></div></div>
# Description
<!-- End of emacsconf-publish-before-page --> \ No newline at end of file
diff --git a/2023/info/cubing-nav.md b/2023/info/cubing-nav.md
index 36553918..b0bbb1cf 100644
--- a/2023/info/cubing-nav.md
+++ b/2023/info/cubing-nav.md
@@ -2,6 +2,6 @@
<div class="talk-nav">
Back to the [[talks]]
Previous by track: <a href="/2023/talks/poltys">The browser in a buffer</a>
-Next by track: <a href="/2023/talks/eat">Eat and Eat powered Eshell, fast featureful terminal inside Emacs</a>
-Track: <span class="sched-track General">General</span>
+Next by track: <a href="/2023/talks/emms">Emacs MultiMedia System (EMMS)</a>
+Track: <span class="sched-track General">General</span> - <strong><a href="https://emacsconf.org/2023/watch/gen">Watch</a></strong>
</div>
diff --git a/2023/info/devel-after.md b/2023/info/devel-after.md
index 542d805a..afb832aa 100644
--- a/2023/info/devel-after.md
+++ b/2023/info/devel-after.md
@@ -1,7 +1,560 @@
<!-- Automatically generated by emacsconf-publish-after-page -->
-Questions or comments? Please e-mail [emacsconf-org-private@gnu.org](mailto:emacsconf-org-private@gnu.org?subject=Comment%20for%20EmacsConf%202022%20devel%3A%20Emacs%20development%20updates)
+<div class="transcript transcript-mainVideo"><a name="devel-mainVideo-transcript"></a><h1>Transcript (unedited)</h1>
+
+[[!template text="""2 seconds. All right. I think we are live.""" start="00:00:02.419" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""Yes. So, hi again, everyone.""" start="00:00:08.480" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""I have the pleasure to welcome John Wiegley""" start="00:00:10.580" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""in person to this EmacsConf.""" start="00:00:13.620" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""Hi, John. Hello there.""" start="00:00:15.700" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""How are you doing, Leo?""" start="00:00:17.680" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""I am doing fantastic, and even more now that""" start="00:00:18.820" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""I am in a room with you because we've been,""" start="00:00:21.100" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""we were reminiscing with Sacha.""" start="00:00:24.279" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""So you had been there in person in 2013 And""" start="00:00:25.640" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""since we started doing those online,""" start="00:00:30.860" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""Juan, since 2019, I think you've always been""" start="00:00:32.680" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""online, right? Usually it's a pre-recorded""" start="00:00:35.020" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""video. I think this will be the first 1 I do""" start="00:00:38.520" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""live in a long time. You're right.""" start="00:00:40.440" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""I'm saying we are online right now,""" start="00:00:42.540" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""but I just meant pre-recorded video.""" start="00:00:44.239" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""So it's good to have you almost in person or""" start="00:00:45.920" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""at least live and we are excited to hear""" start="00:00:48.400" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""about some of the Emacs news.""" start="00:00:50.900" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""So the floor is yours.""" start="00:00:52.360" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""All right, well welcome everybody.""" start="00:00:55.080" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""This is the yearly state of the Emacs union,""" start="00:00:57.260" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""I guess, about how Emacs development is""" start="00:01:00.239" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""going. Just to note, I am not currently a""" start="00:01:02.860" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""maintainer of Emacs. So what I do to get""" start="00:01:05.379" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""these notes is I call up my friend,""" start="00:01:07.760" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""Eli Zaretsky, 1 of the current Emacs""" start="00:01:09.920" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""maintainers, and he and I sit down for an""" start="00:01:12.040" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""hour, and he just gives me his dump of what's""" start="00:01:13.820" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""been going on. So I'm sort of just the""" start="00:01:17.160" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""messenger here. But thanks to Eli for these""" start="00:01:19.400" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""notes and all of the efforts that he""" start="00:01:22.200" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""contributes. So what he's been telling me is""" start="00:01:24.400" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""that this Emacs 29 release that we had""" start="00:01:27.400" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""recently looks to have been very,""" start="00:01:30.060" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""very successful, which is some good news,""" start="00:01:31.720" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""because there were a lot of new features,""" start="00:01:33.580" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""and some of those features were actually""" start="00:01:35.660" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""quite radical. So far,""" start="00:01:37.360" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""it's been quite a success,""" start="00:01:39.520" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""no serious problems with it,""" start="00:01:40.680" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""and we have Emacs 29.2""" start="00:01:42.440" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""will be released very soon.""" start="00:01:45.140" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""They are thinking now about starting the""" start="00:01:47.260" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""Emacs 30 release cycle soon after 29.2""" start="00:01:50.020" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""is released, where the release branch,""" start="00:01:53.520" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""which is called Emacs-30 usually,""" start="00:01:55.880" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""will be cut and then development will become""" start="00:01:59.060" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""frozen with only bug fixes going into that""" start="00:02:01.400" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""branch. That may take quite some time until""" start="00:02:03.960" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""it actually comes to fruition as a release,""" start="00:02:07.200" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""but at least it means that the release is""" start="00:02:09.639" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""going to start taking shape in that branch""" start="00:02:11.660" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""soon. So, for now, Emacs 30 looks like maybe""" start="00:02:13.860" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""it's going to be a little less interesting""" start="00:02:17.720" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""than Emacs 29 was, meaning not a huge number""" start="00:02:19.600" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""of changing features. But there are still""" start="00:02:23.160" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""some new things going in.""" start="00:02:25.120" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""So 1 of them is that Emacs 30 is going to""" start="00:02:26.980" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""have Android support. So you will be able to""" start="00:02:29.960" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""run Emacs 30 on your Android devices.""" start="00:02:32.300" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""So if you've ever wanted to have native Emacs""" start="00:02:35.140" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""on a tablet, which I know I've always wanted,""" start="00:02:37.120" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""that will become possible with Emacs 30.""" start="00:02:40.140" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""There's also going to be much better support""" start="00:02:43.140" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""for touchscreen devices,""" start="00:02:45.480" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""coincidentally, both laptops and tablets.""" start="00:02:47.440" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""So that'll enhance that Android support.""" start="00:02:50.740" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""There will be some recently gained support""" start="00:02:54.860" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""for LLDB in GUD.dl. So if you're on a Mac OS""" start="00:02:57.240" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""machine or a machine that uses just LLVM as""" start="00:03:01.720" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""part of the compilation process,""" start="00:03:05.580" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""then you probably are familiar with LLDB as""" start="00:03:07.400" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""the command line debugger.""" start="00:03:10.180" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""And that support for using LLDB through a GUD""" start="00:03:11.720" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""will become possible in Emacs 30.""" start="00:03:15.040" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""I'm looking forward to this actually quite a""" start="00:03:17.320" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""bit as well. C Perl mode is being deprecated,""" start="00:03:19.000" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""and all future work now is only being put""" start="00:03:23.200" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""towards C Perl mode. Another 1 is that there""" start="00:03:25.920" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""are going to be some new major modes based on""" start="00:03:30.660" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""TreeSitter. They will be for the languages""" start="00:03:33.000" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""Lua, Elixir, and HTML.""" start="00:03:35.860" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""And if you're not familiar,""" start="00:03:38.800" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""I think TreeSitter was introduced in Emacs""" start="00:03:40.160" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""29. It's a library that allows you to specify""" start="00:03:42.620" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""the grammar of a programming language as a""" start="00:03:47.460" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""BNF file, and I think using JavaScript,""" start="00:03:49.900" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""and then with that file as input to Emacs,""" start="00:03:53.540" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""it is then able to do syntax highlighting,""" start="00:03:56.600" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""syntax discovery, all of those things within""" start="00:04:00.940" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""Emacs without having to use elisp and regexps""" start="00:04:03.080" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""to discover the structure of the language.""" start="00:04:06.460" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""It defers the structure gathering to""" start="00:04:08.300" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""TreeSitter and then uses that information to""" start="00:04:10.440" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""navigate the language.""" start="00:04:13.420" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""So, As time goes on, you'll see more and more""" start="00:04:15.200" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""languages taking on TreeSetter support.""" start="00:04:17.300" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""So the next 3 coming up,""" start="00:04:19.540" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""Lua, Elixir, and HTML.""" start="00:04:21.160" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""And then the last feature for Emacs 30 is""" start="00:04:24.060" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""that the byte compiler will now detect and""" start="00:04:26.680" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""warn about many more questionable constructs.""" start="00:04:29.860" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""Things like empty macro bodies,""" start="00:04:33.340" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""missing lexical constructs,""" start="00:04:35.740" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""or say, condition case without any handlers.""" start="00:04:37.580" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""Just silly stuff that might litter the code,""" start="00:04:40.580" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""but now you'll get a warning about it from""" start="00:04:43.340" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""the byte compiler to help you clean up the""" start="00:04:45.180" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""code and get rid of those potential sites of""" start="00:04:46.920" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""error. So this is the main thing that will be""" start="00:04:49.160" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""worked on for Emacs 30 and what's looked like""" start="00:04:52.740" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""shaping up for the release.""" start="00:04:55.160" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""And also, he wanted me to announce that""" start="00:04:56.680" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""Stefan Kongas is now a new co-maintainer.""" start="00:04:58.940" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""And Stefan is, I believe,""" start="00:05:01.980" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""here with us in the conference and he'll be""" start="00:05:03.260" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""able, I hope, to help me answer any questions""" start="00:05:05.500" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""about future Emacs development because I'm""" start="00:05:08.080" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""not in the heat of it and don't have all""" start="00:05:10.120" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""those answers at the moment.""" start="00:05:12.240" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""So That is all there is as far as a""" start="00:05:14.580" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""development update for now.""" start="00:05:17.180" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""And I am available to take any questions.""" start="00:05:19.340" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""All right. Thank you so much,""" start="00:05:24.860" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""Sean, for being the messenger of all this""" start="00:05:26.200" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""good news. I mean, you did start by saying""" start="00:05:29.340" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""this would not be as exciting,""" start="00:05:31.820" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""perhaps, as prior releases of Emacs,""" start="00:05:33.600" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""but you then proceeded to say a lot of stuff""" start="00:05:36.280" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""that it felt very exciting to me.""" start="00:05:38.980" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""So good, good. Glad to hear that.""" start="00:05:40.760" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""Right. So we do have questions coming in""" start="00:05:44.540" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""already and again people the link is on IRC""" start="00:05:47.180" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""and also on the talks page if you want to""" start="00:05:50.380" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""start asking questions.""" start="00:05:52.120" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""So John what I'm going to do I'm going to""" start="00:05:53.480" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""read you the questions and then you can""" start="00:05:54.840" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""answer them. Is that okay with you?""" start="00:05:56.580" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""Absolutely. So starting with the first""" start="00:05:58.320" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""question which changes in recent Emacs""" start="00:06:01.620" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""releases are you enjoying using?""" start="00:06:04.440" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""I have really liked the visual line mode.""" start="00:06:08.360" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""I'm not sure how recent that is.""" start="00:06:13.140" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""Some of these features I only discovered""" start="00:06:15.060" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""quite late, the new display line number""" start="00:06:16.840" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""functionality, where it's much,""" start="00:06:19.700" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""much, much faster, and of course,""" start="00:06:21.380" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""native compilation. Native compilation has""" start="00:06:23.040" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""been quite brilliant for some of the larger""" start="00:06:25.320" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""packages that I use. I do a lot of stuff in""" start="00:06:27.360" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""Emacs. I use GNU's, I use E-Shell,""" start="00:06:29.480" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""I use Org Mode quite a lot.""" start="00:06:31.820" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""So native compilation has brought the user""" start="00:06:33.580" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""experience much closer to a modern app than""" start="00:06:36.100" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""some of the lagging and slowness that I might""" start="00:06:39.960" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""have experienced in the past.""" start="00:06:42.180" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""Definitely. Moving on to the next question.""" start="00:06:44.340" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""What do you think the future in the area of""" start="00:06:47.260" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""artificial intelligence from the developer""" start="00:06:49.200" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""point of view? Could you say that 1 more""" start="00:06:51.060" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""time? Your voice broke up a little bit.""" start="00:06:53.580" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""Oh, sorry. What do you think the future in""" start="00:06:54.876" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""the area of artificial intelligence from the""" start="00:06:55.025" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""developer point of view?""" start="00:06:55.141" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""Could you say that 1 more time?""" start="00:06:55.208" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""Your voice broke up a little bit.""" start="00:06:55.324" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""Oh, sorry. What do you think the future in""" start="00:06:55.440" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""the area of artificial intelligence from the""" start="00:06:58.100" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""developer point of view?""" start="00:07:00.580" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""It's also a shaky question,""" start="00:07:01.560" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""I think, but you get the point.""" start="00:07:02.860" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""I do use chat-gpt-shell inside of Emacs quite""" start="00:07:04.960" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""a bit, actually, when doing development in""" start="00:07:09.220" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""other languages. Just the other day,""" start="00:07:10.920" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""I was working on my Ledger accounting""" start="00:07:12.440" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""program, and I haven't done a lot of C++ in""" start="00:07:15.220" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""recent years. So I had forgotten how to""" start="00:07:18.080" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""exactly compare 2 strings only up to the""" start="00:07:21.180" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""length of the shortest string.""" start="00:07:23.760" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""I know I could have cranked that out just""" start="00:07:25.020" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""writing it C style, but I didn't remember""" start="00:07:26.940" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""what the current state of the art is for C++""" start="00:07:28.740" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""and the STL. So I just asked chatGPT.""" start="00:07:30.940" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""I asked the exact question that I just said""" start="00:07:33.680" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""to you and sure enough it popped out the""" start="00:07:36.140" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""one-liner that was exactly what I needed.""" start="00:07:38.220" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""So I think in terms of developer assistance,""" start="00:07:40.080" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""not having to keep all of standard libraries""" start="00:07:42.800" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""or common idioms in memory.""" start="00:07:45.860" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""I don't know if other people are familiar""" start="00:07:47.520" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""with Rosetta Stone projects.""" start="00:07:49.480" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""They're projects where you have say a hundred""" start="00:07:51.460" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""different languages and there's a particular""" start="00:07:53.680" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""question, say, how do I read a file and copy""" start="00:07:55.860" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""it to another location?""" start="00:07:58.640" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""And then it has an instance of doing that""" start="00:07:59.820" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""activity for every 1 of those languages.""" start="00:08:01.880" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""That's a great database,""" start="00:08:04.180" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""and I've used them quite a bit in the past""" start="00:08:05.140" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""for remembering how to do certain things,""" start="00:08:07.160" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""say, converting a string to UTF-8.""" start="00:08:09.440" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""I think that AI does a great job of""" start="00:08:13.280" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""completely replacing the need for databases""" start="00:08:15.660" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""like that because you can just ask how do I""" start="00:08:17.900" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""copy a convert a string to UTF-8.""" start="00:08:19.920" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""Yeah exactly and you know especially with""" start="00:08:23.760" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""languages which are tried well tried you know""" start="00:08:27.440" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""it's very easy to get an answer that is""" start="00:08:30.480" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""correct. But sometimes what I find bothersome""" start="00:08:32.360" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""with this type of coding,""" start="00:08:34.940" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""I think it's AI-aided coding,""" start="00:08:37.460" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""but it's still coding,""" start="00:08:39.840" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""is that, especially with C languages,""" start="00:08:41.120" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""sometimes you're going to end up with""" start="00:08:43.140" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""undefined behaviors and stuff like this just""" start="00:08:44.240" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""because other people have been doing it,""" start="00:08:45.860" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""not because the algorithm or the model was""" start="00:08:47.900" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""trained with data that dates back to 10 years""" start="00:08:50.860" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""ago. At the time, C++ was a little different.""" start="00:08:53.680" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""Anyway, I'm not here to talk,""" start="00:09:00.060" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""you are here to talk. Moving on to the next""" start="00:09:01.400" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""question. People already get to hear my voice""" start="00:09:03.960" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""plenty, whereas yours are much sparser.""" start="00:09:06.560" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""All right. So, what is the future of Emacs on""" start="00:09:10.520" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""macOS? I understand that there are too few""" start="00:09:13.580" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""developers for the platform.""" start="00:09:16.080" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""Is that still true? That's a good question.""" start="00:09:17.440" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""I don't know what the current statistics are.""" start="00:09:21.600" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""I've been a user of Emacs on Mac OS for""" start="00:09:23.620" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""decades now. It feels like the,""" start="00:09:27.040" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""There's also that Mac port version of Emacs,""" start="00:09:30.140" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""which builds Emacs more directly using the""" start="00:09:33.480" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""GUI libraries on the platform.""" start="00:09:35.920" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""That continues to be updated with every""" start="00:09:38.300" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""single new release that comes out.""" start="00:09:40.320" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""So I'd say that the support may not be as""" start="00:09:42.620" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""great as it is on Linux and other platforms,""" start="00:09:45.220" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""but to this day I haven't suffered from being""" start="00:09:47.640" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""a Mac user. Great. The only thing I remember""" start="00:09:50.500" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""about Emacs on macOS was that emojis made it""" start="00:09:55.240" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""inside the GUI first before they did it""" start="00:10:00.480" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""anywhere else. That's the 1 anecdote that I""" start="00:10:03.540" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""have on MacOS. Right. And historically that""" start="00:10:05.820" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""feature was removed in order to prevent Mac""" start="00:10:09.520" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""from having features that Linux did not.""" start="00:10:12.720" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""I didn't want to go into that point.""" start="00:10:15.160" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""I just wanted to mention the beginning of the""" start="00:10:16.860" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""anecdote and people can find it out.""" start="00:10:18.340" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""But yes, that's also what it led to.""" start="00:10:19.840" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""Moving on to the next question.""" start="00:10:24.020" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""Why aren't you contributing to Emacs anymore?""" start="00:10:25.640" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""Lack of time, I guess?""" start="00:10:28.140" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""Lack of time, primarily.""" start="00:10:30.240" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""Work has been very consuming.""" start="00:10:32.300" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""There are a lot of other projects and things""" start="00:10:33.900" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""that I like doing. I still find Emacs Lisp""" start="00:10:36.020" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""very, very fun to write.""" start="00:10:39.000" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""Just the other day, I was hacking up some""" start="00:10:40.840" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""extension macros for myself for org mode.""" start="00:10:43.260" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""But to have the time needed to sit down and""" start="00:10:45.920" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""design a whole new mode and work on it.""" start="00:10:48.900" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""I've been spending a lot of my time now in""" start="00:10:51.580" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""functional languages, especially theorem""" start="00:10:53.660" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""provers. I just find that so intellectually""" start="00:10:55.580" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""satisfying and interesting.""" start="00:10:58.100" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""Plus it pays a lot better.""" start="00:11:00.400" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""Never had a paying job as an Emacs list""" start="00:11:01.860" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""developer. So when it comes to now just being""" start="00:11:03.680" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""a fun language or a hobby language,""" start="00:11:06.420" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""it is relegated to the time that I have free""" start="00:11:08.420" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""when it's available. Right.""" start="00:11:10.680" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""Well, the good thing is that it's kind of""" start="00:11:13.700" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""like riding a bicycle,""" start="00:11:15.420" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""you know, writing a major mode,""" start="00:11:16.360" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""it comes back relatively quickly and still""" start="00:11:17.980" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""enjoyable. You know, the other day,""" start="00:11:20.160" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""actually, I took notes on a mode that I""" start="00:11:22.600" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""wanted to write. There's an app I use on the""" start="00:11:25.200" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""Mac called drafts, and I really love it.""" start="00:11:28.100" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""I use it all the time.""" start="00:11:30.060" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""I wanted to mimic the interface of this app""" start="00:11:31.720" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""in Emacs. So I could use Emacs as my drafts""" start="00:11:34.600" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""application rather than this separate 1.""" start="00:11:37.680" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""So I noted down all the different user""" start="00:11:40.440" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""parameters and how it should function and""" start="00:11:42.720" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""everything to describe the app to myself as""" start="00:11:44.580" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""sort of notes to get me started on that work""" start="00:11:47.240" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""when I did have free time to work on it.""" start="00:11:50.320" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""Somebody out there on the internet just saw""" start="00:11:52.540" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""these notes, because I keep a lot of my stuff""" start="00:11:54.760" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""on GitHub. They fed it to chat GPT,""" start="00:11:57.040" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""going back to your AI question.""" start="00:12:00.280" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""And they actually sent back to me a mode that""" start="00:12:02.220" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""implemented everything that I had said,""" start="00:12:04.540" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""which was effectively,""" start="00:12:06.820" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""chat GPT, seeing that what I had described""" start="00:12:08.200" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""was clear enough for it to derive most of the""" start="00:12:10.960" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""code that I would have wanted to write.""" start="00:12:14.500" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""So maybe, maybe another thing that AI can do""" start="00:12:16.560" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""is it can increase the value,""" start="00:12:19.200" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""the efficiency of my free time.""" start="00:12:21.340" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""Exactly. I think that's a wonderful point.""" start="00:12:24.360" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""And phrasing it as efficiency of free time is""" start="00:12:27.120" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""great because you still have the expertise,""" start="00:12:29.540" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""obviously, that you're mobilizing into the""" start="00:12:31.360" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""design that you're formulating to charge DPT,""" start="00:12:33.420" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""but then this expertise is turned into""" start="00:12:35.860" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""something that actually works.""" start="00:12:37.680" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""Perhaps we're all going to become software""" start="00:12:40.080" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""architects at some point,""" start="00:12:41.780" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""and then the busy work of actually coding the""" start="00:12:42.980" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""library and the software will be relegated to""" start="00:12:45.800" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""AI. That's an interesting future where we""" start="00:12:48.760" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""still, however, need to acquire the skills to""" start="00:12:51.000" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""know what is code, I suppose.""" start="00:12:55.240" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""But that's an interesting future to think of.""" start="00:12:56.660" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""A fairly long question.""" start="00:13:00.940" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""So 1 of the tricky things about running Emacs""" start="00:13:02.060" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""on Android is do you use anything that""" start="00:13:04.280" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""requires extra packages?""" start="00:13:06.900" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""Example like PDF tools with new PDF or going""" start="00:13:08.420" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""with a database, playing music or video with""" start="00:13:11.600" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""MPD or MPV on Bonga, LFeed.""" start="00:13:13.820" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""Do you run Emacs Termex,""" start="00:13:16.320" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""Emacs APK, Emacs in virtual machine?""" start="00:13:18.040" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""This is also the case on Emacs for Windows to""" start="00:13:20.200" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""a lesser degree. So summarizing,""" start="00:13:22.420" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""how do you make Emacs work on Android if you""" start="00:13:24.280" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""do not have the synergy of stuff that you""" start="00:13:27.240" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""usually find on Linux systems like MPV and""" start="00:13:30.040" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""all the fancy applications like this?""" start="00:13:32.560" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""It's a good question. Since I'm not an""" start="00:13:35.340" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""Android user and I've never tried running""" start="00:13:38.380" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""Emacs on Android platforms,""" start="00:13:40.460" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""I'm not sure what's available out there to""" start="00:13:42.100" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""plug Emacs into. I mean,""" start="00:13:44.920" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""effectively, that question comes down to""" start="00:13:46.440" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""external dependencies and system support.""" start="00:13:48.160" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""That would be a great question for Stefan or""" start="00:13:50.940" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""somebody who has tried using Emacs,""" start="00:13:53.320" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""the development version of Emacs on Android.""" start="00:13:56.200" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""Great. We'll put a pin in this for Stéphane""" start="00:14:00.660" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""afterwards. Great, so moving on to the next""" start="00:14:04.540" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""question. Will Org Tech someday become the""" start="00:14:07.580" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""default tech mode in Emacs?""" start="00:14:09.860" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""And if so, when? Will Org what become?""" start="00:14:11.320" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""Org Tech, you know, the LaTeX mode.""" start="00:14:15.240" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""I do not know. It's been a while since I've""" start="00:14:19.120" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""done LaTeX. It must have been like 4 years,""" start="00:14:24.840" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""but it was a pretty, the major mode for""" start="00:14:26.880" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""editing documents, like the state of the art""" start="00:14:30.280" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""for editing latex documents in Emacs.""" start="00:14:32.560" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""And apparently it's not default.""" start="00:14:34.940" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""I assume there's latex mode or something that""" start="00:14:36.340" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""is doing it. So were you saying octech,""" start="00:14:38.360" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""like A-U-C tech? Oh, did I not pronounce the""" start="00:14:41.760" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""C? Octech, yes. I thought you said org tech.""" start="00:14:45.020" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""I wasn't familiar with that.""" start="00:14:48.140" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""Octech is the only 1 I've ever used.""" start="00:14:50.280" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""I know there is a built-in LaTeX mode,""" start="00:14:52.640" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""but I've never used it.""" start="00:14:55.580" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""I always just download whatever the latest""" start="00:14:57.240" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""version of Org Tech is and use that.""" start="00:14:59.140" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""I don't know why it's not a standard package.""" start="00:15:01.280" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""Becoming a standard package has its own costs""" start="00:15:03.840" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""for the development cycle because it slows""" start="00:15:07.360" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""down release cycle quite a bit.""" start="00:15:09.860" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""It's now you have to create PRs that are""" start="00:15:12.120" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""reviewed by the Emacs Devel mailing list.""" start="00:15:14.680" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""It is a little more inertia.""" start="00:15:17.620" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""Of course, it gets you more distribution""" start="00:15:19.340" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""because it's a default package now,""" start="00:15:21.940" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""and everybody can be using that.""" start="00:15:24.020" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""But it's not something every developer""" start="00:15:26.140" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""decides to do. It took a few years,""" start="00:15:28.660" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""in fact, to get usePackage into Emacs core.""" start="00:15:31.400" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""And that only happened after it was so stable""" start="00:15:34.660" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""that it really wasn't receiving many changes""" start="00:15:37.200" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""anymore. Yeah, yeah it's it's the thing when""" start="00:15:39.360" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""you move into core you lose a lot of your""" start="00:15:44.760" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""agility in terms of how you're writing the""" start="00:15:46.720" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""code or how you expand code.""" start="00:15:49.280" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""That's why you have this vibrant community on""" start="00:15:51.300" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""Melpa compared to core but you know it""" start="00:15:54.220" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""doesn't necessarily ought to be this way it""" start="00:15:57.740" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""could be a little different you know And it""" start="00:15:59.480" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""feels like there's this repetition between""" start="00:16:02.320" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""repartition, sorry, between people developing""" start="00:16:04.760" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""for the core of Emacs and people developing""" start="00:16:06.820" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""on Melpa, but at the end of the day those 2""" start="00:16:08.600" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""groups are constantly talking to 1 another""" start="00:16:10.760" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""and taking cues from 1 another as well.""" start="00:16:13.180" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""So that's great. And there's of course...""" start="00:16:15.240" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""May I jump in about this particular question""" start="00:16:18.820" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""because I think I mean You know,""" start="00:16:21.900" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""Org Mode doesn't really have any problems""" start="00:16:25.080" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""with releases Correct.""" start="00:16:27.540" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""Just because it's distributed with Emacs so""" start="00:16:29.380" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""there is a difference between being in the""" start="00:16:32.860" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""core proper and being distributed with Emacs.""" start="00:16:35.020" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""And for something like use packages,""" start="00:16:38.520" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""it's really necessary to be in the core.""" start="00:16:40.080" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""But for something like major mode,""" start="00:16:42.600" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""it's a bit easier. That's a very very good""" start="00:16:45.060" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""point. Yeah, I'd forgotten about that""" start="00:16:48.740" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""distinction. Org mode does advance pretty""" start="00:16:50.400" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""rapidly and then it makes releases into the""" start="00:16:53.000" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""core distribution. Gianni,""" start="00:16:55.900" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""I believe you also wanted to say something""" start="00:16:59.640" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""before someone started jumped in with a""" start="00:17:01.480" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""question do you happen to remember okay""" start="00:17:03.840" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""that's fine I lost her to lost to their time""" start="00:17:08.700" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""I'll be moving on to the next question then""" start="00:17:12.560" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""and by the way feel free to interrupt us you""" start="00:17:15.700" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""know The whole point of this discussion is""" start="00:17:17.460" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""for you to ask questions to John Wheatley.""" start="00:17:19.619" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""So whether it be via the other pad or via""" start="00:17:21.140" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""BBB, choose your weapon.""" start="00:17:23.520" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""All right, moving on to the next question in""" start="00:17:27.260" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""the meantime. And we have about 7 minutes""" start="00:17:28.820" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""left of Q&A and then we'll be moving on to""" start="00:17:30.520" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""Stéphane. So, do you use other IDEs for""" start="00:17:32.760" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""theorem proving work, notably VS Code for""" start="00:17:35.780" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""Lean? Which languages and provers can or do""" start="00:17:38.040" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""you use Emacs for? I've only used Emacs.""" start="00:17:42.340" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""I've used Emacs for working with ACL 2,""" start="00:17:46.120" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""Coq, Agda, and Lean, and I really love""" start="00:17:49.960" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""Proof-General. Coq is my favorite language to""" start="00:17:53.480" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""be working in. Agda has really great support""" start="00:17:55.680" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""as well, has a very nice Emacs mode.""" start="00:17:57.740" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""I'm only just now starting to get into Lean""" start="00:17:59.540" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""4. So I have everything installed,""" start="00:18:02.920" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""but I haven't really started coding in""" start="00:18:05.280" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""earnest. I'm still reading a lot of the""" start="00:18:07.240" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""tutorials and learning a bit about the""" start="00:18:08.800" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""language. There was a while there where I""" start="00:18:10.920" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""used a IDE for ACL 2 that was outside of""" start="00:18:13.440" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""Emacs, only because it was the same IDE all""" start="00:18:17.540" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""my co-workers were using and it was easier to""" start="00:18:19.920" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""share tips and tricks with them.""" start="00:18:22.040" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""But yeah, no, I found Emacs to be a great""" start="00:18:24.520" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""home for doing theorem proving.""" start="00:18:28.240" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""Right. Next question. Can we see that AI""" start="00:18:32.120" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""generated draft? You know what you mentioned""" start="00:18:36.580" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""before about the draft that you then fed into""" start="00:18:40.760" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""ChargPT? Do you happen to have this draft""" start="00:18:43.420" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""anywhere? Let me see if it's still on GitHub.""" start="00:18:45.480" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""Just take me 1 second to take a look here.""" start="00:18:51.760" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""Take your time. The problem is I don't quite""" start="00:18:55.260" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""remember where I made the note.""" start="00:18:59.820" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""But no, I don't see it on GitHub,""" start="00:19:04.700" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""so I don't have it readily at hand.""" start="00:19:07.340" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""Well, that's fine. We'll be able to...""" start="00:19:10.580" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""Well, if you happen to find it,""" start="00:19:13.520" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""we'll make sure to add it on the pad and then""" start="00:19:15.060" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""on the talks page. And I think we would all""" start="00:19:17.280" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""be interested to see what this design""" start="00:19:20.940" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""document that actually made something work""" start="00:19:22.440" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""afterwards in JudgeDPT with Elisp.""" start="00:19:27.160" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""I'm very interested to see what it would do""" start="00:19:28.980" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""because I tend to be very interested about""" start="00:19:30.720" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""this type of stuff I had generated but I""" start="00:19:32.720" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""never thought about doing it with Elisp""" start="00:19:34.780" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""because somehow it feels like 2 different""" start="00:19:37.040" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""worlds, like Elisp is kind of from the past,""" start="00:19:39.000" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""don't going me wrong, I love it and I use it""" start="00:19:41.260" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""every day But it's 2 different parts of my""" start="00:19:44.140" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""brain that I didn't think about linking.""" start="00:19:46.920" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""So I'd be very excited to see this as well.""" start="00:19:48.820" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""Moving on to the next question.""" start="00:19:53.040" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""Oh, go on, please. I did find it.""" start="00:19:54.640" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""I'm gonna have to give it to you as a link""" start="00:19:57.260" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""here. Sure, you can do it on the blue button""" start="00:20:01.080" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""and I'll put it on the pad.""" start="00:20:03.380" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""I put it into the public chat for Bibi.""" start="00:20:10.160" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""Yes. So if anyone is interested,""" start="00:20:12.960" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""I'm putting it right in the answer to the""" start="00:20:15.920" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""question right here on my screen.""" start="00:20:18.280" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""So feel free to click on it and explore it.""" start="00:20:20.200" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""I'm kind of curious, so I'm gonna...""" start="00:20:22.120" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""Can I click it on stream and can we look at""" start="00:20:23.680" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""it a little bit together?""" start="00:20:25.560" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""Sure, sure. I haven't tried running it,""" start="00:20:26.740" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""I can't say for its fitness,""" start="00:20:29.020" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""but it's definitely enough of the groundwork""" start="00:20:31.680" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""done that it's absolutely an assistance.""" start="00:20:34.400" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""Right. Okay, so it's loading up right now?""" start="00:20:38.100" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""You can see my webcam,""" start="00:20:41.540" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""right? I can see your browser attempting to""" start="00:20:42.620" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""load. There we go. Okay,""" start="00:20:45.680" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""cool. So I'm not sure what GitHub is doing.""" start="00:20:47.360" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""Let me give it a little more room.""" start="00:20:50.060" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""The reactive setup is not working too well.""" start="00:20:51.460" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""Oh, I see. You're viewing the...""" start="00:20:57.260" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""I see. Can I see the file then?""" start="00:20:59.540" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""I should be able to see the file.""" start="00:21:02.220" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""I think he just mentions the code in that""" start="00:21:06.460" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""comment. So if there's a way to view only the""" start="00:21:09.060" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""comment it would make it clear.""" start="00:21:11.640" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""Right. Okay. I'm loading the file separately.""" start="00:21:14.897" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""I'm checking the time.""" start="00:21:17.320" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""We have about 3 minutes left and I think we""" start="00:21:18.740" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""have a question. In the meantime,""" start="00:21:21.340" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""whilst I show this, I'm gonna launch another""" start="00:21:22.900" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""question, which was about Drafts.""" start="00:21:25.760" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""You are carrying, you're talking about""" start="00:21:29.440" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""Drafts, but does that mean you're not using""" start="00:21:30.740" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""org anymore? Oh, no, I use org all the time.""" start="00:21:32.480" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""In fact, the way that I've configured drafts""" start="00:21:35.920" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""is that after I type the thing in the note""" start="00:21:38.160" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""into drafts, I hit a key and it creates an""" start="00:21:40.580" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""org mode capture item for it.""" start="00:21:43.260" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""The reason why I use Drafts instead of Emacs""" start="00:21:45.540" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""is because it's always available.""" start="00:21:48.560" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""If Emacs is currently doing some job for me,""" start="00:21:51.100" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""say I'm running some long-running subshell""" start="00:21:53.960" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""and the UI is frozen up whatnot,""" start="00:21:57.060" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""Drafts is always 100% of the time instantly""" start="00:21:59.700" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""available. So that's why I tend to then lean""" start="00:22:02.360" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""on it a bit, but all of the destination of""" start="00:22:04.900" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""that data is still Org Mode and everything""" start="00:22:07.920" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""that I do gets tracked through Org Mode.""" start="00:22:10.240" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""That's also why I wanted to implement the UI""" start="00:22:13.080" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""scheme of drafts in Emacs so that I could""" start="00:22:16.160" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""drop the use of this external application.""" start="00:22:18.800" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""And then, I mean, I would still have the""" start="00:22:21.540" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""problem of sometimes Emacs being unavailable,""" start="00:22:23.160" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""but I would pay that price in order to have""" start="00:22:26.060" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""that good UI of drafts inside Emacs.""" start="00:22:30.040" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""Great. I think we have,""" start="00:22:34.640" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""we might be too tight on time.""" start="00:22:38.420" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""We only have about 2 minutes and I need to""" start="00:22:39.720" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""jump room to go into Stephane's room as well.""" start="00:22:41.640" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""So John, where I get to thank you so much for""" start="00:22:44.440" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""taking the time to answer our questions,""" start="00:22:47.380" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""but also doing a little bit of reporting on""" start="00:22:53.260" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""the state of Emacs. And now we'll get to""" start="00:22:55.040" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""continue this with Stéphane.""" start="00:22:58.380" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""So do you have any last words for everyone,""" start="00:22:59.280" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""John? No, no. I look forward to hearing""" start="00:23:01.300" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""Stéphane speak. Okay, great.""" start="00:23:03.660" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""And we'll look forward,""" start="00:23:06.420" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""potentially, to having you again next year,""" start="00:23:07.360" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""potentially still doing news like this,""" start="00:23:10.520" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""and, fingers crossed, maybe having you live""" start="00:23:12.980" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""again. Maybe, maybe let's see what happens.""" start="00:23:15.920" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""All right, John. Thank you so much.""" start="00:23:19.700" video="mainVideo-devel" id="subtitle"]]
+[[!template text="""Bye bye. Bye bye.""" start="00:23:20.860" video="mainVideo-devel" id="subtitle"]]
+
+</div>Questions or comments? Please e-mail [emacsconf-org-private@gnu.org](mailto:emacsconf-org-private@gnu.org?subject=Comment%20for%20EmacsConf%202023%20devel%3A%20Emacs%20development%20updates)
<!-- End of emacsconf-publish-after-page -->
diff --git a/2023/info/devel-before.md b/2023/info/devel-before.md
index 0c5d2b62..99d2796d 100644
--- a/2023/info/devel-before.md
+++ b/2023/info/devel-before.md
@@ -1,12 +1,12 @@
<!-- Automatically generated by emacsconf-publish-before-page -->
[[!toc ]]
-Format: 10-min talk followed by after the event Q&A
-Discuss on IRC: [#emacsconf](https://chat.emacsconf.org/?join=emacsconf)
-Status: Waiting for video from speaker
+Format: 24-min talk ; Q&A: BigBlueButton conference room
+Status: Q&A to be extracted from the room recordings
+<div class="vid mainVideo"><video controls preload="none" id="mainVideo-devel"><source src="https://media.emacsconf.org/2023/emacsconf-2023-devel--emacs-development-updates--john-wiegley--main.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2023/captions/emacsconf-2023-devel--emacs-development-updates--john-wiegley--main.vtt" default />"""<p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video><div></div>Duration: 23:22 minutes<div class="files resources"><ul><li><a href="https://pad.emacsconf.org/2023-devel">Open Etherpad</a></li><li><a href="https://bbb.emacsverse.org/playback/presentation/2.0/playback.html?meetingId=f81dbb8e579499f903915b7fbead3f1f959d3019-1701547477151">Play recording from BigBlueButton</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-devel--emacs-development-updates--john-wiegley--intro.vtt">Download --intro.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-devel--emacs-development-updates--john-wiegley--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-devel--emacs-development-updates--john-wiegley--main.json">Download --main.json</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-devel--emacs-development-updates--john-wiegley--main.opus">Download --main.opus (7.8MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-devel--emacs-development-updates--john-wiegley--main.vtt">Download --main.vtt</a> (unedited)</li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-devel--emacs-development-updates--john-wiegley--main.webm">Download --main.webm (38MB)</a></li><li><a href="https://toobnix.org/w/57HSebb9a9JZynh2B3ehze">View on Toobnix</a></li><li><a href="https://www.youtube.com/watch?v=SPSoRZVJUf8">View on Youtube</a></li></ul></div></div>
# Description
<!-- End of emacsconf-publish-before-page --> \ No newline at end of file
diff --git a/2023/info/devel-nav.md b/2023/info/devel-nav.md
index d15edbe2..f8671bdc 100644
--- a/2023/info/devel-nav.md
+++ b/2023/info/devel-nav.md
@@ -1,7 +1,7 @@
<div class="talk-nav">
Back to the [[talks]]
-Previous by track: <a href="/2023/talks/ref">Org-Mode workflow: informal reference tracking</a>
-Next by track: <a href="/2023/talks/hyperamp">Top 10 ways Hyperbole amps up Emacs</a>
-Track: <span class="sched-track General">General</span>
+Previous by track: <a href="/2023/talks/unentangling">(Un)entangling projects and repos</a>
+Next by track: <a href="/2023/talks/core">Emacs core development: how it works</a>
+Track: <span class="sched-track General">General</span> - <strong><a href="https://emacsconf.org/2023/watch/gen">Watch</a></strong>
</div>
diff --git a/2023/info/doc-after.md b/2023/info/doc-after.md
new file mode 100644
index 00000000..761d1803
--- /dev/null
+++ b/2023/info/doc-after.md
@@ -0,0 +1,1141 @@
+<!-- Automatically generated by emacsconf-publish-after-page -->
+
+
+<div class="transcript transcript-mainVideo"><a name="doc-mainVideo-transcript"></a><h1>Transcript</h1>
+
+
+<div class="transcript-heading">[[!template new="1" text="""Introduction""" start="00:00:00.000" video="mainVideo-doc" id="subtitle"]]</div>[[!template text="""Hello, everyone.""" start="00:00:00.000" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""This talk is on literate documentation""" start="00:00:04.320" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""with Emacs and org-mode.""" start="00:00:07.280" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""I'm going to take just a moment here""" start="00:00:10.320" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""to unpack what I just said.""" start="00:00:12.080" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""Emacs, as most of us probably already know,""" start="00:00:14.280" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""is a powerful text editor and list programming environment""" start="00:00:17.800" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""from the 1970s.""" start="00:00:21.360" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""Chances are, if you're attending this talk,""" start="00:00:23.480" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""you already know a bit about Emacs.""" start="00:00:25.800" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""org-mode is an Emacs major mode and authoring tool""" start="00:00:28.820" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""that helps you write documents in a plain text markup""" start="00:00:32.640" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""language called Org.""" start="00:00:36.360" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""These Org documents can be exported""" start="00:00:37.740" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""to a number of different document formats,""" start="00:00:40.200" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""like HTML, PDF, ODT, Markdown, and more.""" start="00:00:42.520" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""org-mode has a lot of features.""" start="00:00:48.520" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""It can be an outliner, a to-do list manager,""" start="00:00:51.160" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""an agenda, organizer, and much more.""" start="00:00:54.240" video="mainVideo-doc" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Org Babel and literate programming""" start="00:00:57.760" video="mainVideo-doc" id="subtitle"]]</div>[[!template text="""Today, we're going to be demonstrating""" start="00:00:57.760" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""what I consider to be org-mode's killer feature called""" start="00:00:59.600" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""Org Babel.""" start="00:01:03.360" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""Babel allows you to take human language prose,""" start="00:01:04.840" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""computer language source code blocks, and their outputs""" start="00:01:07.880" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""and weave them together seamlessly""" start="00:01:11.400" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""to form a cohesive document.""" start="00:01:13.840" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""It is seriously cool.""" start="00:01:16.160" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""Literate documentation is a play on the term""" start="00:01:19.080" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""literate programming, popularized by Donald Knuth""" start="00:01:21.880" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""in the early 1980s.""" start="00:01:25.280" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""Knuth's literate programming idea""" start="00:01:27.380" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""was that computer programs could be""" start="00:01:29.280" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""expressed in a natural language and be""" start="00:01:31.920" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""human-readable documents rather than written exclusively""" start="00:01:34.880" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""for machines to read.""" start="00:01:38.800" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""In a traditional program, you might""" start="00:01:40.800" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""have a bunch of machine-readable source code""" start="00:01:43.000" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""and a handful of human-readable comments,""" start="00:01:45.680" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""which attempt to describe what the program is doing.""" start="00:01:48.560" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""Literate programming flips this on its head.""" start="00:01:51.600" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""A literate program is a document that""" start="00:01:54.360" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""describes how the program works with machine-readable source""" start="00:01:56.680" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""code blocks inside of it.""" start="00:02:01.160" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""These source code blocks are later""" start="00:02:02.880" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""tangled out of the document and submitted to the machine""" start="00:02:04.800" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""either to be compiled or interpreted and ultimately run.""" start="00:02:08.440" video="mainVideo-doc" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""This presentation""" start="00:02:14.080" video="mainVideo-doc" id="subtitle"]]</div>[[!template text="""Throughout this presentation, you'll""" start="00:02:14.080" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""see my browser window here on the left side of the screen.""" start="00:02:15.600" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""And on the right side, I've got a terminal session""" start="00:02:19.400" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""running tmux.""" start="00:02:22.240" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""This allows us to have a virtual terminal window connected""" start="00:02:23.960" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""to two separate Linux machines, one running Ubuntu Server 2204""" start="00:02:28.040" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""and another running Fedora Server 38.""" start="00:02:35.040" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""I've specifically chosen these two distributions for my demo""" start="00:02:39.720" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""because they are representative of the two dominant flavors""" start="00:02:43.440" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""of GNU Linux, Debian and RedHat.""" start="00:02:46.720" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""In both cases, these are bare-bones server additions""" start="00:02:49.880" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""with the stock packages installed.""" start="00:02:53.120" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""I've manually installed a few packages like Git, emacs-noex""" start="00:02:55.440" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""to get the terminal version of emacs, and tmux.""" start="00:03:00.200" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""But otherwise, these Linux installs""" start="00:03:04.000" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""are what you'd get right out of the box.""" start="00:03:06.000" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""For this demo, I've created a literate org-mode document""" start="00:03:08.720" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""that describes how to build GNU Emacs from its source code""" start="00:03:12.480" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""on both Debian and RedHat-based systems.""" start="00:03:16.360" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""While both operating systems are very similar,""" start="00:03:19.940" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""they differ substantially on which packages""" start="00:03:22.920" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""are installed out of the box, how optional packages are""" start="00:03:25.440" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""named, searched, and installed, and of course,""" start="00:03:29.080" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""the distributions have different names,""" start="00:03:32.600" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""like Ubuntu or Fedora.""" start="00:03:34.240" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""I chose building Emacs from source""" start="00:03:36.800" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""as a topic for this demonstration""" start="00:03:39.200" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""because while the process is largely""" start="00:03:41.640" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""the same on both RedHat and Debian,""" start="00:03:43.800" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""there are a lot of minor little differences""" start="00:03:46.880" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""that need to be accounted for, which really prohibits you""" start="00:03:49.360" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""from hard coding names of packages and package management""" start="00:03:52.680" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""tools and distributions into your document.""" start="00:03:57.120" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""I suppose you could create two versions of the same document,""" start="00:04:01.200" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""one specifically for RedHat and one specifically for Debian,""" start="00:04:05.320" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""but that would be really tedious to maintain.""" start="00:04:09.960" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""Like if, for example, you updated some prose""" start="00:04:13.280" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""in one document, you'd have to remember""" start="00:04:16.280" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""to do it in the other one too.""" start="00:04:18.720" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""And if you weren't careful, the two documents""" start="00:04:20.280" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""could drift out of sync.""" start="00:04:22.920" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""In this demo, I'll show you techniques""" start="00:04:25.260" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""for creating dynamic, literate documents that""" start="00:04:27.720" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""can change based on parameters and constants embedded""" start="00:04:30.960" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""into the non-exported regions of the document.""" start="00:04:34.620" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""I'll show how with a single org-mode source document,""" start="00:04:38.440" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""you can press a couple of keys to configure""" start="00:04:41.800" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""it to export a RedHat-specific version of my building""" start="00:04:44.800" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""Emacs from source essay or a Debian-specific version.""" start="00:04:48.720" video="mainVideo-doc" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Getting started""" start="00:04:53.480" video="mainVideo-doc" id="subtitle"]]</div>[[!template text="""All right, let's get started.""" start="00:04:53.480" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""We'll begin by firing up a new terminal Emacs session""" start="00:04:55.320" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""on my Ubuntu machine.""" start="00:04:58.720" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""Now, I installed Emacs on this machine using apt-get.""" start="00:05:00.640" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""And doing that, you get version 27.1,""" start="00:05:04.600" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""which is, hey, only two major versions""" start="00:05:07.960" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""behind the current version of Emacs.""" start="00:05:10.640" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""This is another reason why I thought""" start="00:05:13.011" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""writing a guide on how to build Emacs from source code""" start="00:05:15.000" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""might be a good idea.""" start="00:05:18.080" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""You can get a much newer version of Emacs on Ubuntu""" start="00:05:19.720" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""if you install it via Snap, but, uh, Snaps.""" start="00:05:22.720" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""Don't get me started.""" start="00:05:25.800" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""Now, I wanted to use a completely vanilla""" start="00:05:28.240" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""terminal mode install of Emacs for this demonstration""" start="00:05:30.922" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""because my personal Emacs config has a ton of packages""" start="00:05:34.620" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""installed and is heavily modified.""" start="00:05:38.040" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""I want folks to be able to follow along""" start="00:05:41.200" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""with a bog-standard, out-of-the-box Emacs config.""" start="00:05:43.640" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""The Emacs config on this Ubuntu machine""" start="00:05:47.580" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""has just two settings.""" start="00:05:49.520" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""I require org-tempo because my fingers are hardwired""" start="00:05:51.200" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""to use some of the handy shortcuts that it provides.""" start="00:05:55.240" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""And I also turn off the menu bar""" start="00:05:58.720" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""because I just can't stand to look at it.""" start="00:06:00.520" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""Let's begin by opening a file called buildemacs.org,""" start="00:06:03.140" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""which will be the source code""" start="00:06:07.040" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""for our literate org-mode document.""" start="00:06:08.480" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""Now, in preparation for this talk,""" start="00:06:11.080" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""I've already written this document,""" start="00:06:12.840" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""and we'll take a look at the finished product""" start="00:06:14.960" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""here in a bit, but let's first take a look""" start="00:06:17.980" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""at how we might approach this task.""" start="00:06:19.160" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""We'll start at the top of the document""" start="00:06:22.409" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""by filling out some export keywords.""" start="00:06:24.400" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""These keywords are something that every backend exporter,""" start="00:06:27.120" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""be it LaTeX or plain text or ODT or whatever, understands,""" start="00:06:30.520" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""and they're essentially document metadata.""" start="00:06:35.000" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""As you can see, I'm typing `#+`""" start="00:06:38.120" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""followed by a couple characters""" start="00:06:42.120" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""and then `M-TAB` to auto-complete.""" start="00:06:43.760" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""If you hit #+ by itself and then M-TAB,""" start="00:06:45.880" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""you can see all the possible completions.""" start="00:06:50.360" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""And as you can see, there's a lot.""" start="00:06:53.120" video="mainVideo-doc" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""README""" start="00:06:55.780" video="mainVideo-doc" id="subtitle"]]</div>[[!template text="""The next thing we're gonna do is make a README section""" start="00:06:55.780" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""at the top of this document.""" start="00:06:58.520" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""This section is intended for folks""" start="00:06:59.760" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""who are looking at the org-mode document,""" start="00:07:02.240" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""trying to figure out what it's for.""" start="00:07:04.280" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""We don't want to actually export the section heading,""" start="00:07:06.680" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""so we're gonna tag it with the :noexport: tag.""" start="00:07:09.600" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""And then here, we just write something quick""" start="00:07:13.860" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""to let folks know that this document""" start="00:07:15.640" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""can potentially execute code""" start="00:07:17.760" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""and just a little something about what the document is for.""" start="00:07:19.800" video="mainVideo-doc" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Writing a code block""" start="00:07:23.500" video="mainVideo-doc" id="subtitle"]]</div>[[!template text="""Okay, so now that we've written some text,""" start="00:07:23.500" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""let's try our hand at writing a code block.""" start="00:07:26.060" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""I'm getting pretty sick of looking at""" start="00:07:29.600" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""the default Emacs theme.""" start="00:07:31.289" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""All that blue and purple in the document""" start="00:07:32.940" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""makes it look bruised.""" start="00:07:35.440" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""Let's make an Emacs Lisp code block""" start="00:07:37.880" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""that switches the theme""" start="00:07:40.320" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""to one of my favorite built-in themes, Leuven.""" start="00:07:41.400" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""Leuven was created by my man, Fabrice Niessen,""" start="00:07:44.560" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""who I personally have learned a ton of org-mode stuff about""" start="00:07:48.400" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""just by studying his work.""" start="00:07:52.120" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""Now, if we cruise back up to the code block,""" start="00:07:54.040" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""we should be able to hit `C-c C-c`,""" start="00:07:56.360" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""and have it execute.""" start="00:07:58.840" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""And there you have it, a high-contrast color theme""" start="00:08:00.380" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""that was designed to look great in org-mode.""" start="00:08:03.880" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""So that's great and all,""" start="00:08:06.980" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""but there are a couple of things I don't like.""" start="00:08:08.080" video="mainVideo-doc" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text=""":results none""" start="00:08:10.460" video="mainVideo-doc" id="subtitle"]]</div>[[!template text="""First of all, we don't need to see a #+RESULTS block here,""" start="00:08:10.460" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""and that's because we're not really interested""" start="00:08:13.600" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""in what the Emacs Lisp function `load-theme` returns.""" start="00:08:15.280" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""I mean, it's great it returned t and all to indicate success,""" start="00:08:18.720" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""we just don't need to see it.""" start="00:08:22.200" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""We can slap a `:results none` header arg""" start="00:08:23.720" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""on the code block to keep things nice and clean.""" start="00:08:26.560" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""There are a lot of different header args,""" start="00:08:30.040" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""and I often confuse and misremember them.""" start="00:08:32.560" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""So I'll always refer back to the org-mode manual""" start="00:08:35.360" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""when working with them.""" start="00:08:38.920" video="mainVideo-doc" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Confirmation""" start="00:08:40.320" video="mainVideo-doc" id="subtitle"]]</div>[[!template text="""The second thing I don't like is that""" start="00:08:40.320" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""when we hit C-c C-c to execute the block,""" start="00:08:42.160" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""Emacs prompted us if we really wanted to run the block.""" start="00:08:46.000" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""Emacs Lisp is Emacs' mother tongue,""" start="00:08:49.600" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""and I don't wanna be hassled when speaking""" start="00:08:52.040" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""my native language.""" start="00:08:53.920" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""There's a variable that controls this""" start="00:08:55.380" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""called `org-confirm-babel-evaluate`.""" start="00:08:57.520" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""And this can be either set to t or nil""" start="00:09:00.680" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""to either always confirm or never confirm.""" start="00:09:03.960" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""If however, you provided a lambda, an anonymous function,""" start="00:09:06.840" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""Org will call your function with the name of the language""" start="00:09:10.920" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""and the source block that it's about to run.""" start="00:09:14.560" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""And your function can make the decision""" start="00:09:16.840" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""about if Emacs should ask you for confirmation or not.""" start="00:09:19.080" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""What I'm doing here is setting `org-confirm-babel-evaluate`""" start="00:09:24.200" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""as a &quot;file local variable&quot;.""" start="00:09:27.840" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""This means whenever the file is opened by Emacs,""" start="00:09:30.540" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""it'll set this variable to be a lambda that returns nil,""" start="00:09:33.320" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""meaning don't confirm, on Elisp code blocks.""" start="00:09:38.060" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""As you can see, the variable is currently set""" start="00:09:42.860" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""to its default value of t, meaning always confirm.""" start="00:09:45.920" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""Now if we save the buffer, exit Emacs,""" start="00:09:50.880" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""and pop back in again,""" start="00:09:53.640" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""`org-confirm-babel-evaluate` should be set how we like it.""" start="00:09:55.040" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""We were however prompted for confirmation""" start="00:10:00.120" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""on setting the file-local variable,""" start="00:10:02.640" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""which controls if we're prompted""" start="00:10:04.400" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""for Elisp source code block evaluation.""" start="00:10:06.280" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""I feel like there's a Yo Dawg joke here somewhere.""" start="00:10:09.700" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""When we were prompted, we hit the exclamation mark,""" start="00:10:12.680" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""which automatically marks this variable as being safe.""" start="00:10:15.240" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""So you won't be bothered the next time you open this file.""" start="00:10:18.400" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""This variable is called `safe-local-variable-values`""" start="00:10:21.520" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""and if we pop over to our .emacs file,""" start="00:10:26.760" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""you can see that Emacs' customize tooling""" start="00:10:29.560" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""helpfully updated this variable in our config file for us.""" start="00:10:32.520" video="mainVideo-doc" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Running blocks automatically""" start="00:10:36.960" video="mainVideo-doc" id="subtitle"]]</div>[[!template text="""Now that's great and all,""" start="00:10:36.960" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""but I really don't like having to hit `C-c C-c`""" start="00:10:38.120" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""on that source block every time I open this document""" start="00:10:42.120" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""just to bring up the Leuven theme.""" start="00:10:45.160" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""Let's have this source block run automatically""" start="00:10:47.740" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""every time the document is opened.""" start="00:10:50.520" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""Now I know what you're thinking.""" start="00:10:53.180" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""Shouldn't you just put all of this configuration stuff""" start="00:10:55.000" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""in your .emacs file and keep it out of the document?""" start="00:10:57.640" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""Well, that's what I've done with my personal Emacs config,""" start="00:11:01.160" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""but we want this document to be able to be used by folks""" start="00:11:04.760" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""with a completely vanilla Emacs setup,""" start="00:11:08.160" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""or even a completely tricked out Emacs setup,""" start="00:11:11.040" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""so we can't assume anything.""" start="00:11:13.440" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""The idea is if the Emacs user who opens the document""" start="00:11:16.060" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""agrees to setting all of the variables""" start="00:11:19.800" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""and running all of the code within,""" start="00:11:22.400" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""they'll be able to export the document""" start="00:11:24.360" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""as well as run all of the code blocks inside of it""" start="00:11:26.560" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""just as we intended.""" start="00:11:28.840" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""And the differences in base Emacs configuration""" start="00:11:30.800" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""will be completely minimized.""" start="00:11:33.880" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""Now it's worth pointing out that the file-local variables""" start="00:11:35.980" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""we're setting here are local, in this case, buffer-local.""" start="00:11:39.080" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""The configuration we use in this document""" start="00:11:43.024" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""won't override someone's carefully constructed""" start="00:11:45.280" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""org-mode setup.""" start="00:11:48.280" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""The first thing we're gonna wanna do""" start="00:11:49.500" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""in order to make this block execute""" start="00:11:51.000" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""when the document is loaded is to give it a name.""" start="00:11:53.080" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""It's always a good idea to give every source block""" start="00:11:55.989" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""you create in your document a unique name,""" start="00:11:58.800" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""even if you don't refer to it elsewhere.""" start="00:12:01.338" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""I do this because when I'm debugging my documents,""" start="00:12:03.700" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""Emacs will prompt me about running a block.""" start="00:12:07.160" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""If the block has a name, Emacs mentions it,""" start="00:12:10.020" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""and I know there's a problem with the result caching""" start="00:12:12.960" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""or something with the &quot;foo&quot; block.""" start="00:12:15.960" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""But if the block doesn't have a name,""" start="00:12:17.840" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""it can be really hard to figure out""" start="00:12:20.280" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""which block Emacs is complaining about.""" start="00:12:22.160" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""So I always name my blocks.""" start="00:12:24.580" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""Now we're gonna add another file local variable,""" start="00:12:27.460" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""but this one is special.""" start="00:12:30.360" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""If your &quot;variable&quot;""" start="00:12:32.116" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""just happens to be named &quot;eval&quot;,""" start="00:12:34.360" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""it means that Emacs should evaluate""" start="00:12:36.320" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""the Lisp expression that follows.""" start="00:12:38.760" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""Here we'll use the progn function""" start="00:12:40.800" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""to sequentially run two elisp functions""" start="00:12:43.240" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""and return the value of the last one executed.""" start="00:12:46.040" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""The first function is `org-babel-goto-named-source-block`,""" start="00:12:48.760" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""which jumps us to the startup block.""" start="00:12:53.320" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""The second one is `org-babel-execute-src-block`,""" start="00:12:55.440" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""which executes the current source block.""" start="00:12:59.280" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""That should get the job done.""" start="00:13:02.093" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""Now all we have to do is save the document,""" start="00:13:03.631" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""exit Emacs, jump back in,""" start="00:13:05.840" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""and once we've confirmed that we're willing""" start="00:13:08.200" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""to run the new &quot;eval&quot; line in our file local variables,""" start="00:13:10.280" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""we're good to go.""" start="00:13:14.240" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""Now if we want to add new configuration stuff""" start="00:13:15.860" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""to the document, we can just add it to the startup block""" start="00:13:18.480" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""and not have to muck about with confirmations""" start="00:13:21.840" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""or adding new file-local variables or whatever.""" start="00:13:24.880" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""And just like before, we'll let Emacs' customize system""" start="00:13:28.680" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""save this decision to our .emacs file.""" start="00:13:31.960" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""Now that all that business with confirmations,""" start="00:13:34.940" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""file-local variables, and the startup block""" start="00:13:37.760" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""are out of the way,""" start="00:13:40.080" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""we can get on with writing our introduction.""" start="00:13:41.120" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""We'll create a new top level headline called introduction""" start="00:13:44.120" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""and explain to the reader of the exported document""" start="00:13:47.880" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""what this is all about.""" start="00:13:51.440" video="mainVideo-doc" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Export options""" start="00:13:53.000" video="mainVideo-doc" id="subtitle"]]</div>[[!template text="""Now as you can see, we've actually hard-coded""" start="00:13:53.000" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""the name of the Linux distro in our prose.""" start="00:13:55.640" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""I promised you a single document that could be""" start="00:13:58.280" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""for either RedHat or Debian distros,""" start="00:14:00.880" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""so we can't have this.""" start="00:14:03.720" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""Astute members in the audience have probably been uneasy""" start="00:14:05.320" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""ever since I hard coded the name &quot;Debian&quot;""" start="00:14:08.840" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""in the README section above.""" start="00:14:11.280" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""One way of solving this problem is by using exclude tags.""" start="00:14:13.860" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""Let's add the `#+EXCLUDE_TAGS` export keyword to our document.""" start="00:14:17.520" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""This keyword tells the exporter,""" start="00:14:21.960" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""&quot;Hey, if you see a headline tagged with any of these tags,""" start="00:14:24.200" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""don't export it.&quot;""" start="00:14:27.960" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""By default, the tag `:noexport:` is excluded.""" start="00:14:29.600" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""And if you'll notice, we tagged our README section""" start="00:14:33.560" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""with that tag, so it doesn't show up""" start="00:14:36.480" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""in the exported document.""" start="00:14:38.360" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""We'll keep this tag in the list,""" start="00:14:40.340" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""but we'll also add the tag `:redhat:` as a tag to exclude.""" start="00:14:42.280" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""Now it's just a matter of creating two introduction""" start="00:14:47.080" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""sections, one for Debian, one for RedHat.""" start="00:14:50.400" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""And if you want the RedHat version of the document,""" start="00:14:53.960" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""you can just modify the `#+EXCLUDE_TAGS` line""" start="00:14:56.520" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""at the top of the document.""" start="00:14:59.200" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""Awesome, right?""" start="00:15:00.440" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""Right?""" start="00:15:02.340" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""OK, this is not that great.""" start="00:15:03.540" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""Well, it does work.""" start="00:15:05.545" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""And you can see if we export the document,""" start="00:15:07.388" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""we'll get something that only references Debian,""" start="00:15:10.082" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""and the `:noexport:` and `:redhat:`""" start="00:15:12.840" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""tagged headlines are omitted.""" start="00:15:15.189" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""This strategy would work great""" start="00:15:17.451" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""when the RedHat- and Debian-specific sections""" start="00:15:19.320" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""are substantially different, but that's not""" start="00:15:22.120" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""the case with the introduction.""" start="00:15:24.400" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""We definitely don't want to have to maintain""" start="00:15:26.199" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""two distinct introductions.""" start="00:15:28.640" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""I also noticed that the export tags are included""" start="00:15:30.825" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""in the exported document.""" start="00:15:34.080" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""That's a terrible default. We'll fix that,""" start="00:15:36.520" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""and we'll also ensure that my email address appears""" start="00:15:38.720" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""at the top of the document.""" start="00:15:42.040" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""Let's also take this opportunity to get rid""" start="00:15:43.372" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""of the table of contents.""" start="00:15:45.440" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""We don't need it.""" start="00:15:47.355" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""These are all export option settings""" start="00:15:48.868" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""and can be modified using the options keyword""" start="00:15:51.120" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""at the top of the doc.""" start="00:15:53.800" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""The manual is really your friend here,""" start="00:15:55.509" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""as there are a ton of export options.""" start="00:15:57.480" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""Now when we export the document again,""" start="00:16:00.980" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""it should look a lot better.""" start="00:16:03.120" video="mainVideo-doc" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Substituting constants""" start="00:16:05.700" video="mainVideo-doc" id="subtitle"]]</div>[[!template text="""Now that we've cleaned up the look of the exported document,""" start="00:16:05.700" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""we'll take a look at a better way""" start="00:16:09.060" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""of solving the problem with the introduction.""" start="00:16:10.640" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""Thinking like a programmer for a moment,""" start="00:16:13.378" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""what I really want here is a way of specifying a constant.""" start="00:16:15.519" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""Rather than hard-coding the name &quot;Debian&quot; or &quot;RedHat&quot;""" start="00:16:19.735" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""or whatever into my document,""" start="00:16:22.640" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""I want to substitute that text with a symbolic constant,""" start="00:16:24.570" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""named something like &quot;distro&quot;, that can dynamically change""" start="00:16:28.235" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""to &quot;Debian&quot; or &quot;RedHat&quot; or &quot;Slackware&quot; or whatever,""" start="00:16:31.960" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""depending on how the document is configured.""" start="00:16:36.120" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""In the past, I've come up with some pretty cumbersome ways""" start="00:16:38.690" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""of doing this, but eventually I stumbled upon the idea""" start="00:16:41.640" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""of using Org-mode properties""" start="00:16:44.640" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""as a way of storing these constants.""" start="00:16:46.640" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""Like it says in the docs, properties are key-value pairs""" start="00:16:49.410" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""that are associated with an entry""" start="00:16:53.060" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""and they live in a collapsible properties drawer.""" start="00:16:55.170" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""Let's do a bit of cleanup on our document""" start="00:16:58.380" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""and we'll put things into sections.""" start="00:17:00.700" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""We'll also add a section for document constants.""" start="00:17:02.600" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""And that's where we'll put the properties drawer""" start="00:17:14.000" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""with the &quot;distro&quot; property.""" start="00:17:19.560" video="mainVideo-doc" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Getting the properties""" start="00:17:25.740" video="mainVideo-doc" id="subtitle"]]</div>[[!template text="""Now the question is,""" start="00:17:25.740" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""how do we reference these properties in the document?""" start="00:17:27.120" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""It turns out there's an Elisp function""" start="00:17:30.100" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""called `org-property-values`, which does what we want.""" start="00:17:32.520" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""If we run it and give it the name of our property,""" start="00:17:35.440" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""it returns a list with the string &quot;Debian&quot; in it.""" start="00:17:38.840" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""It's worth noting that this function is named""" start="00:17:42.680" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""`org-property-values` with values being plural.""" start="00:17:45.920" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""In org-mode, there could be a property named &quot;foo&quot;""" start="00:17:49.990" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""that has different values depending on which heading level""" start="00:17:52.890" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""you're at in the document,""" start="00:17:55.880" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""which is why the function returns a list.""" start="00:17:57.610" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""For our purposes though,""" start="00:17:59.720" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""we can just pull off the first value in the list with car""" start="00:18:01.290" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""and we're good to go.""" start="00:18:04.480" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""Now we'll make an Emacs Lisp list function called `get_prop`""" start="00:18:05.680" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""that does just that.""" start="00:18:10.040" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""This function takes one argument called `prop`,""" start="00:18:11.440" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""which is the property to look up""" start="00:18:14.160" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""and we'll give it a default value of &quot;distro&quot;.""" start="00:18:15.920" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""So we can hit `C-c C-c` on the block""" start="00:18:18.520" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""to verify that it works.""" start="00:18:20.960" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""Now we just have to make an inline call""" start="00:18:23.150" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""to our `get_prop` function""" start="00:18:25.480" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""within the prose of the introduction section.""" start="00:18:26.920" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""And that should get us much closer""" start="00:18:29.560" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""to not hard coding distro names into our document.""" start="00:18:31.660" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""But before we do that,""" start="00:18:35.620" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""I need to clean up something that's been bothering me.""" start="00:18:36.870" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""By default, Emacs' `fill-column` variable""" start="00:18:39.850" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""is set to 70 characters,""" start="00:18:42.910" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""which may have been appropriate for 1970,""" start="00:18:44.990" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""but it's not great for 2023.""" start="00:18:47.720" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""We'll just cruise up to our startup block""" start="00:18:51.320" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""and set the variable there.""" start="00:18:53.920" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""We'll hit `C-c C-c`,""" start="00:18:56.540" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""and now our document will wrap at 100 columns,""" start="00:18:58.800" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""which for our purposes, I think is much more reasonable.""" start="00:19:02.290" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""The org-mode syntax for making an inline function call""" start="00:19:05.830" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""within the prose of your document is `call_`,""" start="00:19:09.320" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""followed by the name of the function,""" start="00:19:13.060" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""some optional header arguments,""" start="00:19:15.000" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""and then the function arguments.""" start="00:19:17.040" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""Now, when we export the document,""" start="00:19:19.720" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""we see that it's replaced our previously hard coded &quot;Debian&quot;""" start="00:19:21.680" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""with the value from the property. Huzzah!""" start="00:19:26.050" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""Now this is close to, but not exactly what we want.""" start="00:19:29.410" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""You can see that &quot;Debian&quot; is surrounded by a backtick""" start="00:19:32.960" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""and a single quote,""" start="00:19:36.720" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""which is the plain text exporters way""" start="00:19:37.800" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""of showing you verbatim text.""" start="00:19:40.320" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""In more sophisticated document backends,""" start="00:19:43.030" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""verbatim text is rendered in monospace.""" start="00:19:45.600" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""We can fix that by adding a &quot;:results raw&quot; header argument""" start="00:19:49.380" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""to the inline call.""" start="00:19:54.080" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""Now, when we export the document,""" start="00:19:56.460" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""it looks like what we'd expect.""" start="00:19:58.240" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""Now this is getting better, but it's still not great.""" start="00:20:00.290" video="mainVideo-doc" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Macros""" start="00:20:03.060" video="mainVideo-doc" id="subtitle"]]</div>[[!template text="""The `call_` syntax is pretty cumbersome,""" start="00:20:03.060" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""and it's a lot to type every time we want""" start="00:20:05.840" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""to reference a constant""" start="00:20:08.560" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""and not have it be marked up as verbatim.""" start="00:20:09.850" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""This is where org-mode macros come to our rescue.""" start="00:20:13.220" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""If we head to the top of the document,""" start="00:20:17.170" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""we can create a couple of macros""" start="00:20:19.470" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""using the `#+MACRO:` export keyword.""" start="00:20:21.480" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""We'll define two macros with short names.""" start="00:20:24.700" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""One named &quot;p&quot; for &quot;property&quot;,""" start="00:20:27.600" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""and the other one named &quot;pr&quot; for &quot;property raw&quot;.""" start="00:20:30.240" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""Org-mode macros are expanded when the document is exported,""" start="00:20:34.640" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""and any positional arguments provided""" start="00:20:39.160" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""are referenced by their number.""" start="00:20:41.640" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""Now in the introduction,""" start="00:20:43.860" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""we can use the macro replacement syntax,""" start="00:20:45.160" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""which is three curly braces,""" start="00:20:47.880" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""followed by the macro name and any arguments,""" start="00:20:49.800" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""and then three ending curly braces.""" start="00:20:52.760" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""You see why I kept the macro name short.""" start="00:20:55.560" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""That's six curly braces in total we're typing,""" start="00:20:58.700" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""which still takes up a fair amount of space.""" start="00:21:01.280" video="mainVideo-doc" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Properties in practice""" start="00:21:05.240" video="mainVideo-doc" id="subtitle"]]</div>[[!template text="""Now let's take a look at how we might use""" start="00:21:05.240" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""these properties in practice.""" start="00:21:07.120" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""Debian and RedHat distros differ""" start="00:21:09.160" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""on how they install packages.""" start="00:21:11.120" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""So we're gonna want an &quot;install&quot; property,""" start="00:21:12.930" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""where in Debian we use `sudo apt-get install -qq`,""" start="00:21:16.120" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""and on RedHat we'll use something like""" start="00:21:24.580" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""`sudo dnf install -y`.""" start="00:21:26.940" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""Now development packages""" start="00:21:33.120" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""also have a different naming convention.""" start="00:21:35.330" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""For example, the `ncurses` library on Debian""" start="00:21:38.050" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""is called `libncurses-dev`,""" start="00:21:40.760" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""where on RedHat it's called `ncurses-devel`.""" start="00:21:43.520" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""There are likely going to be""" start="00:21:48.260" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""many more little differences like this""" start="00:21:49.640" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""that we'll need to solve with properties.""" start="00:21:52.120" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""Now I already don't like where this is going.""" start="00:21:55.340" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""Switching between the Debian and RedHat""" start="00:21:58.610" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""versions of the document is gonna mean""" start="00:22:00.880" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""commenting and uncommenting out""" start="00:22:03.160" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""a bunch of different properties,""" start="00:22:05.200" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""which is pretty janky.""" start="00:22:06.990" video="mainVideo-doc" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Using a prefix""" start="00:22:09.020" video="mainVideo-doc" id="subtitle"]]</div>[[!template text="""Luckily we can solve this problem""" start="00:22:09.020" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""with a little bit of Emacs Lisp.""" start="00:22:11.080" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""We'll start by modifying our properties,""" start="00:22:14.440" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""so their property names are prefixed""" start="00:22:16.880" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""with either `deb_` or `rh_`""" start="00:22:19.141" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""to signify which distro the property applies to.`""" start="00:22:23.120" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""We'll also create a single property called &quot;prefix&quot;,""" start="00:22:27.720" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""which will be prepended to the property name""" start="00:22:31.160" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""by the `get_prop` function""" start="00:22:34.590" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""if the requested property is not found.""" start="00:22:36.530" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""This way, when we want to switch between""" start="00:22:39.510" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""the Debian and RedHat versions of the document,""" start="00:22:42.200" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""we just need to change the prefix property.""" start="00:22:45.350" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""So now we'll change the Elisp code.""" start="00:22:49.030" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""So we'll use a let expression with two bound variables.""" start="00:22:51.380" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""The first one is called ret,""" start="00:22:55.210" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""which determines if the initial call""" start="00:22:56.920" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""to `org-property-values` succeeds.""" start="00:22:59.160" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""The second variable is called prefix,""" start="00:23:01.950" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""which is the prefix property.""" start="00:23:04.040" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""If the first call to `org-property-values` succeeds,""" start="00:23:06.220" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""we return it as normal.""" start="00:23:09.120" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""If not, we concatenate the property value""" start="00:23:11.160" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""that was passed into the function""" start="00:23:14.250" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""onto the prefix and try again.""" start="00:23:15.920" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""Now when we call the `get_prop` function with &quot;distro&quot;""" start="00:23:18.970" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""as the prop argument, it won't be found.""" start="00:23:23.800" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""So the code will slap our prefix tag on the front,""" start="00:23:26.360" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""making it something like `rh_distro`,""" start="00:23:29.690" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""and it will be found and returned.""" start="00:23:33.250" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""Let's see that in action.""" start="00:23:35.330" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""All right, now we're talking.""" start="00:23:40.000" video="mainVideo-doc" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Switching distributions""" start="00:23:42.010" video="mainVideo-doc" id="subtitle"]]</div>[[!template text="""This setup is starting to look pretty good,""" start="00:23:42.010" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""but there are just a few things""" start="00:23:44.420" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""that I want to add before we move on.""" start="00:23:46.040" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""First of all, I think the document should have a subtitle,""" start="00:23:48.660" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""something that tells you if you're looking at the RedHat""" start="00:23:51.240" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""or the Debian version of the document.""" start="00:23:53.960" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""I also think it would be great""" start="00:23:56.160" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""if the file name of the exported document""" start="00:23:57.880" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""reflected the distribution as well.""" start="00:24:00.520" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""I also want to add a quick Debian only section""" start="00:24:05.000" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""to the document that explains how it got its name.""" start="00:24:08.040" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""Now let's see what happens when we export the document.""" start="00:24:11.800" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""This did not work out as we wanted.""" start="00:24:17.740" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""As you can see, the macro we used in the subtitles""" start="00:24:20.440" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""didn't expand properly,""" start="00:24:23.360" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""and as a result, our subtitle didn't render right.""" start="00:24:24.960" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""Sadly, you can't use macros""" start="00:24:28.640" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""or inline function calls everywhere.""" start="00:24:30.640" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""And one place where they don't work""" start="00:24:32.910" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""is inside of certain export keywords.""" start="00:24:34.680" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""So we're gonna have to hard code them here.""" start="00:24:37.190" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""Another mistake that we made is we forgot to update""" start="00:24:43.220" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""the `#+EXCLUDE_TAGS` export keyword,""" start="00:24:46.320" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""because with the RedHat version of the document,""" start="00:24:49.100" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""we want to exclude the Debian tag.""" start="00:24:51.440" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""Now when we export the document,""" start="00:24:54.510" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""everything should be correct.""" start="00:24:56.400" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""The word RedHat should appear in the subtitle,""" start="00:24:57.840" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""and the Debian fun fact section should not be present.""" start="00:25:00.620" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""Now we just need to add a section to the README""" start="00:25:04.800" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""that explains the steps you need to take""" start="00:25:06.960" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""in order to switch the document""" start="00:25:09.280" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""from RedHat to Debian.""" start="00:25:11.000" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""Okay, let's see here.""" start="00:25:12.760" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""We have to change `#+SUBTITLE`, change the `#+EXCLUDE_TAGS`,""" start="00:25:14.000" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""change the `#+EXPORT_FILE_NAME`,""" start="00:25:18.310" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""and change the `prefix` property.""" start="00:25:20.430" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""This is OK, but it's not great.""" start="00:25:23.290" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""Emacs Lisp can once again come to our rescue.""" start="00:25:26.290" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""What we'll do is make an Elisp code block""" start="00:25:29.430" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""that will invite the user to hit `C-c C-c` on.""" start="00:25:32.080" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""And the code block will essentially make all these changes""" start="00:25:35.480" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""in the document for them.""" start="00:25:39.520" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""This code block, which we'll call `switch_distro`,""" start="00:25:40.920" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""takes one argument called `os`,""" start="00:25:43.280" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""which by default is set to &quot;Debian&quot;.""" start="00:25:45.680" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""It starts out with a let expression""" start="00:25:48.690" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""that defines three bound variables.""" start="00:25:50.760" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""The `debian` variable is a boolean that is true""" start="00:25:53.030" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""if the distro we're switching to is Debian.""" start="00:25:55.970" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""Based on the value of this boolean,""" start="00:25:58.700" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""we'll set the `noexport` and `prefix` variables accordingly.""" start="00:26:00.360" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""The `save-excursion` block tells Emacs""" start="00:26:04.170" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""that we're going to be moving around in the document""" start="00:26:06.720" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""and to remember to put our point back where we started""" start="00:26:09.200" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""when the block finishes.""" start="00:26:11.680" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""After that, we essentially go to the top of the document""" start="00:26:13.430" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""and search and replace the subtitle, `exclude_tags`,""" start="00:26:16.250" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""`export_file_name`, and the `prefix`.""" start="00:26:19.840" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""Pretty cool.""" start="00:26:22.500" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""Let's see this in action.""" start="00:26:23.390" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""If we hit `C-c C-c` on this block,""" start="00:26:25.030" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""we should see the document automatically change a bit.""" start="00:26:27.870" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""And now when we export it,""" start="00:26:30.480" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""we get the Debian version of the doc.""" start="00:26:32.320" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""If we want to change it back,""" start="00:26:36.090" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""we can just head back over to the code block""" start="00:26:37.630" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""and change the default value for the os variable""" start="00:26:39.880" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""from &quot;Debian&quot; to &quot;RedHat&quot; and hit `C-c C-c` again.""" start="00:26:43.150" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""And now when we re-export,""" start="00:26:47.620" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""we're looking at the RedHat version of the document.""" start="00:26:49.920" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""Just as an aside, if you ever thought to yourself,""" start="00:26:52.910" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""&quot;I should learn Emacs Lisp someday&quot;""" start="00:26:55.860" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""Make it someday soon. You'll be happy you did.""" start="00:26:58.160" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""Not only is it a fun programming language,""" start="00:27:01.290" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""but you can do powerful things with it in Emacs,""" start="00:27:03.770" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""which I hope is a point that folks take away from this talk.""" start="00:27:06.680" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""All right, that was a lot.""" start="00:27:12.150" video="mainVideo-doc" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""A tour""" start="00:27:14.150" video="mainVideo-doc" id="subtitle"]]</div>[[!template text="""Now that we've spent the past 20 minutes or so""" start="00:27:14.150" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""digging into some of the tips and tricks I used""" start="00:27:16.840" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""when creating my build Emacs from source document,""" start="00:27:19.410" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""we'll say goodbye to this document we've been working on""" start="00:27:22.880" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""and we'll start a tour""" start="00:27:26.280" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""of the actual literate document I wrote.""" start="00:27:27.480" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""A document that I'll demonstrate actually downloading""" start="00:27:29.960" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""and building a new Emacs when I export it""" start="00:27:33.080" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""on both my Ubuntu and RedHat virtual machines.""" start="00:27:35.660" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""I'll also show you how org-mode can generate""" start="00:27:38.960" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""slick professional looking PDF files""" start="00:27:41.690" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""through the power of LaTeX.""" start="00:27:44.520" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""We'll start here at the orgdemo2 directory,""" start="00:27:46.580" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""which I've cloned from GitLab.""" start="00:27:49.620" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""This repository has all the source materials for this talk.""" start="00:27:51.230" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""The buildemacs.org file is where most of the good stuff is.""" start="00:27:55.600" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""So that's where we'll start.""" start="00:27:59.040" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""There's a lot of file-local variables""" start="00:28:01.480" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""that we'll need to confirm.""" start="00:28:03.360" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""So we'll do that too.""" start="00:28:04.800" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""So the first thing we're gonna do""" start="00:28:06.440" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""is hit `C-u TAB` twice,""" start="00:28:07.560" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""which will give us a top-level overview""" start="00:28:10.780" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""of all of our headings.""" start="00:28:13.360" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""As you can see, we've got a lot""" start="00:28:15.140" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""of the same familiar export keywords we had before.""" start="00:28:16.600" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""`#+TITLE`, `#+SUBTITLE`, `#+AUTHOR`, `#+EMAIL`,""" start="00:28:20.120" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""plus a few we haven't seen before.""" start="00:28:23.100" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""For example, I've squirreled away""" start="00:28:25.360" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""a lot of the `#+LATEX_HEADER` export keywords""" start="00:28:27.720" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""in this file called latex.setup.""" start="00:28:30.620" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""And I did this just so they don't clutter up the document.""" start="00:28:33.540" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""Much of the LaTeX magic""" start="00:28:36.540" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""that makes the exported document look good""" start="00:28:38.320" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""is in these headers.""" start="00:28:40.910" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""LaTeX commands begin with a backslash.""" start="00:28:42.590" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""And a common one we use a lot here is `\usepackage`.""" start="00:28:45.120" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""This lets us bring in packages like geometry,""" start="00:28:49.680" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""svg for the cool SeaGL SVG logo,""" start="00:28:52.200" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""`fancyhdr` and fancy verbatim [`fancyvrb`]""" start="00:28:56.540" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""to keep things looking pretty fancy.""" start="00:28:58.440" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""Using a scalable vector image format""" start="00:29:00.690" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""makes it possible for us to do really cool things""" start="00:29:03.200" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""like having a scaled-down version of the SeaGL logo""" start="00:29:05.720" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""appear in the fancy footer below.""" start="00:29:09.270" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""I also include some macros in a separate file""" start="00:29:11.980" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""just to help keep things tidy in the main document.""" start="00:29:15.360" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""Here I've got the familiar macros""" start="00:29:18.120" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""we've seen before for `get_prop`.""" start="00:29:20.600" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""But here I use different permutations""" start="00:29:23.400" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""depending on if I want results raw""" start="00:29:25.520" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""or raw verbatim or just verbatim.""" start="00:29:28.160" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""I also have a couple of macros here at the top of the file""" start="00:29:31.870" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""that are for pulling strings out of results blocks""" start="00:29:35.070" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""and then trimming them""" start="00:29:40.280" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""so there's no white space on either side.""" start="00:29:41.920" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""Like in the version of the document""" start="00:29:44.720" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""we worked on at the start of this talk,""" start="00:29:46.440" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""the real document also has a README section""" start="00:29:48.430" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""marked with the `:noexport:` tag.""" start="00:29:51.080" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""It also has a section about choosing""" start="00:29:53.470" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""which version of the document to export""" start="00:29:55.400" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""and a code block on how to switch between them.""" start="00:29:57.910" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""It's also got a lot of helpful information in it""" start="00:30:00.600" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""like what OS and Emacs versions""" start="00:30:03.000" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""the document has been tested to &quot;run&quot; on,""" start="00:30:05.820" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""a section on the LaTeX prerequisites""" start="00:30:09.560" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""and the section on executing""" start="00:30:12.330" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""the document's various code blocks.""" start="00:30:14.080" video="mainVideo-doc" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""TeX and LaTeX""" start="00:30:16.200" video="mainVideo-doc" id="subtitle"]]</div>[[!template text="""The latter two sections we'll take a look at now.""" start="00:30:16.200" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""Out of the box on Fedora and Ubuntu server distros,""" start="00:30:19.200" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""the TeX typesetting system""" start="00:30:22.580" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""also by noted computer scientist Donald Knuth""" start="00:30:24.710" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""is not installed.""" start="00:30:27.670" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""So we'll need to install some packages.""" start="00:30:28.860" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""Starting out we'll need the `texlive` package""" start="00:30:31.720" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""which gets you a fully featured TeX setup.""" start="00:30:34.450" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""This also gets you LaTeX""" start="00:30:37.460" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""which can be viewed as a distribution of TeX macros.""" start="00:30:39.290" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""You'll also need XeTeX.""" start="00:30:42.790" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""This gets you Unicode support and lets you use modern fonts.""" start="00:30:44.900" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""We'll also want to install pdfTeX.""" start="00:30:49.780" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""This gets us the ability to generate PDFs from TeX sources.""" start="00:30:52.810" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""And finally, we're gonna need to install latexmk""" start="00:30:57.210" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""which is a Perl script""" start="00:31:01.300" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""that knows how to run LaTeX multiple times""" start="00:31:02.400" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""in order to properly deal with intra-document links.""" start="00:31:05.140" video="mainVideo-doc" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Other prerequisites""" start="00:31:09.250" video="mainVideo-doc" id="subtitle"]]</div>[[!template text="""But wait, there's more.""" start="00:31:09.250" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""We're also gonna need Inkscape""" start="00:31:11.070" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""to rasterize our SeaGL vector logo""" start="00:31:12.960" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""at different resolutions.""" start="00:31:15.520" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""And we're gonna need the JetBrains Mono font""" start="00:31:17.340" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""to make our source code look snazzy.""" start="00:31:20.360" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""We'll also need the Inter font""" start="00:31:23.060" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""to make our prose look snazzy as well.""" start="00:31:24.680" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""I've helpfully added a bash code block in the README""" start="00:31:28.040" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""that you can hit C-c C-c on to install.""" start="00:31:31.300" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""This really does lock up Emacs for a few minutes""" start="00:31:35.740" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""and it's sort of annoying.""" start="00:31:38.520" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""When we export the document and turn off all caching""" start="00:31:40.330" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""and it actually builds Emacs for real,""" start="00:31:43.040" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""Emacs can be locked up for tens of minutes.""" start="00:31:45.600" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""There's a package called ob-async""" start="00:31:48.770" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""that I've been meaning to check out that might help here.""" start="00:31:50.880" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""But since I wanted this document""" start="00:31:54.260" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""to work on bog-standard Emacs setups,""" start="00:31:55.760" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""I didn't get around to it.""" start="00:31:58.000" video="mainVideo-doc" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Caching""" start="00:32:00.060" video="mainVideo-doc" id="subtitle"]]</div>[[!template text="""Before we get into talking about running the document,""" start="00:32:00.060" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""let's talk briefly about results caching.""" start="00:32:03.140" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""We'll take a look at the section of the document""" start="00:32:06.450" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""where we talk about Git tags for an example.""" start="00:32:08.840" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""The `num_tags` bash code block determines""" start="00:32:13.140" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""how many tags there are in the Emacs Git repo.""" start="00:32:15.760" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""And when I hit C-c C-c on that block""" start="00:32:19.040" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""several days ago, when I was first creating the document,""" start="00:32:21.600" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""that number was 183.""" start="00:32:25.060" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""That result has remained cached in the document since then.""" start="00:32:28.020" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""And you can see a snippet of the SHA1 hash""" start="00:32:32.170" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""of the contents of the source block below.""" start="00:32:34.900" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""You can see where I referenced the result""" start="00:32:38.390" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""using the `sr` for string raw macro in the prose below,""" start="00:32:40.800" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""and how it gets rendered in the exported PDF document.""" start="00:32:44.960" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""All the source blocks in the exported sections""" start="00:32:50.510" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""of the document include cached results like this.""" start="00:32:52.880" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""If I export the document now, it won't take that long to do""" start="00:32:56.560" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""because while there are a ton of code blocks""" start="00:33:01.390" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""in the exported sections, they're all cached.""" start="00:33:03.800" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""Now let's get back to the section of the README""" start="00:33:09.070" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""that explains how to execute the code in the document.""" start="00:33:11.560" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""Here I explain that if you want to build Emacs""" start="00:33:14.910" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""on your computer using this document,""" start="00:33:17.640" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""you've got a couple of options.""" start="00:33:20.190" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""The first option is to manually invalidate the caches""" start="00:33:22.020" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""and take C-c C-c on every code block""" start="00:33:25.650" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""in the main document.""" start="00:33:28.960" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""This lets you supervise the entire process,""" start="00:33:30.960" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""and it also creates new cached result blocks,""" start="00:33:33.160" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""but it's time consuming.""" start="00:33:36.940" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""There is also an internal link to the main document here,""" start="00:33:39.240" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""and you can jump to it with C-c C-o.""" start="00:33:43.440" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""This is one of those intra-document links""" start="00:33:47.380" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""that is really tricky to get right with LaTeX,""" start="00:33:50.040" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""and is why we opted to use the latexmk Perl script""" start="00:33:53.000" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""to build the PDF version of the document.""" start="00:33:56.990" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""I'm mentioning it specifically here""" start="00:34:00.050" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""because it took me forever to figure this out.""" start="00:34:01.920" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""The second option you've got""" start="00:34:05.630" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""is to change the default header arg""" start="00:34:07.270" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""from `:cache yes` to `:cache no` at the top of the document.""" start="00:34:09.280" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""If we cruise up to the top of the document,""" start="00:34:13.740" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""you can see that this header argument property""" start="00:34:16.270" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""basically says that unless a code block""" start="00:34:19.130" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""explicitly says otherwise,""" start="00:34:22.440" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""it's by default supposed to be cached.""" start="00:34:24.160" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""That's how we were able to export the document""" start="00:34:27.119" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""before so quickly.""" start="00:34:29.440" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""The code block named `no_cache_no_confirm`""" start="00:34:31.559" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""uses the `save-excursion` and regex replace trick""" start="00:34:34.820" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""that I demonstrated earlier""" start="00:34:38.619" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""to munch the default cache header arg""" start="00:34:40.349" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""from &quot;cache yes&quot; to &quot;cache no&quot;.""" start="00:34:42.820" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""And it also turns off confirmations on bash code blocks.""" start="00:34:45.410" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""Let's do that now.""" start="00:34:49.300" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""Now we'll export the document to PDF,""" start="00:34:51.940" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""which will ignore the cache result blocks""" start="00:34:54.560" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""and clone the Git repository on Savannah,""" start="00:34:57.440" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""create a branch that points""" start="00:35:00.320" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""to the most recently tagged version of Emacs 29,""" start="00:35:01.760" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""run configure a handful of times,""" start="00:35:05.460" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""installing packages to fix missing dependencies""" start="00:35:07.760" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""along the way,""" start="00:35:10.720" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""build Emacs, install Emacs in our home directory,""" start="00:35:12.400" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""verify that it has successfully built a binary,""" start="00:35:16.100" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""run it in batch mode with some sample Elisp""" start="00:35:19.340" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""and show the file sizes and dates of the generated files.""" start="00:35:22.550" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""This is gonna take a while.""" start="00:35:26.870" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""And while it's running, we'll pop over to our Fedora box.""" start="00:35:28.340" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""All right, now we'll fire up Emacs,""" start="00:35:32.830" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""hit `C-c C-c` on the `configure_document` code block""" start="00:35:34.680" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""to configure the document for RedHat""" start="00:35:39.280" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""since Fedora here is a RedHat based distro.""" start="00:35:41.850" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""Then what we'll do is we'll pop down""" start="00:35:45.710" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""and hit `C-c C-c`""" start="00:35:47.040" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""on the `rh_install_latex` code block""" start="00:35:49.590" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""to install the LaTeX prerequisites""" start="00:35:53.700" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""for this Fedora virtual machine.""" start="00:35:56.230" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""Finally, we'll execute the `no_cache_no_confirm` block""" start="00:35:58.460" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""and then kick off the export.""" start="00:36:02.590" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""Then we'll go and check back on what's happening""" start="00:36:05.050" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""on the Ubuntu box.""" start="00:36:07.280" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""Ooh, top looks pretty quiet.""" start="00:36:09.530" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""I think the export is complete.""" start="00:36:11.240" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""Ooh, those are the words I love to see in the status area,""" start="00:36:14.040" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""PDF file produced!""" start="00:36:17.560" video="mainVideo-doc" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Looking at the PDF""" start="00:36:20.610" video="mainVideo-doc" id="subtitle"]]</div>[[!template text="""Now I can't use my web browser""" start="00:36:20.610" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""to take a look at this PDF file""" start="00:36:22.600" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""because I haven't set up a web server""" start="00:36:24.960" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""or anything like that on the Ubuntu virtual machine.""" start="00:36:27.080" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""I can, however, use TRAMP with the ssh method""" start="00:36:30.760" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""to poke around on the ubuntu host""" start="00:36:34.440" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""on my personal version of Emacs.""" start="00:36:36.560" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""So let's do that.""" start="00:36:39.120" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""Okay, so now if we go into the source directory""" start="00:36:40.940" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""and then we hop into the orgdemo2 directory""" start="00:36:44.810" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""and then we look at the deb version of the PDF,""" start="00:36:48.040" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""there she blows.""" start="00:36:51.620" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""Now, if we go down to the Building Emacs section,""" start="00:36:54.150" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""we can see that it built.""" start="00:36:58.160" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""And if we look in the bin directory,""" start="00:37:00.130" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""we can see that at 17:01,""" start="00:37:03.840" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""that's when all of those files got created.""" start="00:37:06.780" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""Also the file creation date on the PDF is 17:01.""" start="00:37:11.380" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""So all of this code executed roughly the same time""" start="00:37:15.590" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""the PDF was created.""" start="00:37:18.720" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""All right, so now let's head back over to the Fedora box""" start="00:37:21.160" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""and then we'll navigate to the source directory,""" start="00:37:25.340" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""the orgdemo2 directory,""" start="00:37:27.920" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""and there is our RedHat version of the built Emacs PDF.""" start="00:37:30.120" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""And Bob's your uncle.""" start="00:37:35.720" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""And you can see it is the RedHat version of the document""" start="00:37:38.220" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""because this is a RedHat box.""" start="00:37:42.550" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""And if we go over to the What did we install? section,""" start="00:37:44.940" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""you can see that these binaries were built at 17:35.""" start="00:37:51.640" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""And now if we pop open dired""" start="00:37:56.050" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""and we take a look at the PDF,""" start="00:37:58.700" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""we can see it also was created at 17:35.""" start="00:38:00.740" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""All right, in the couple minutes remaining,""" start="00:38:07.330" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""I thought it would be a good idea""" start="00:38:10.040" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""just to take a look at the document""" start="00:38:11.640" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""and maybe just go through some of what it actually does""" start="00:38:15.740" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""in explaining how to build Emacs from source.""" start="00:38:19.000" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""We'll look at the RedHat version since we're here.""" start="00:38:22.580" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""And the first thing you do is""" start="00:38:27.140" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""you have to get access to the source code.""" start="00:38:28.160" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""And before you can do anything,""" start="00:38:31.540" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""this is a RedHat-specific section""" start="00:38:32.840" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""where you need to install some development tools.""" start="00:38:35.420" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""And this development tools group actually has Git.""" start="00:38:38.300" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""Now I installed Git earlier, but if you didn't do that,""" start="00:38:41.540" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""that would be the first thing that you need to do.""" start="00:38:44.640" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""We create a source directory, we cd into it,""" start="00:38:46.940" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""we clone the repo from Savannah.""" start="00:38:50.040" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""And then we start to take a look at some of the Git tags.""" start="00:38:53.060" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""And we showed this before where we check out""" start="00:38:56.060" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""how many different tags there are.""" start="00:38:58.560" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""And then we run this kind of funky Git command""" start="00:39:00.370" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""to sort of list all the tags that begin with 'emacs-29',""" start="00:39:02.400" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""and we sort them by when they were tagged.""" start="00:39:06.040" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""So we can see that Emacs 29.1.pretest""" start="00:39:08.760" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""is the most recent version.""" start="00:39:12.400" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""So that's the one we grab""" start="00:39:14.440" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""and that's the one we decide to build.""" start="00:39:15.880" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""And then we create a branch that is based on this tag.""" start="00:39:18.660" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""And this is dynamically generated based on what we saw here.""" start="00:39:22.780" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""So that's what we use here.""" start="00:39:27.480" video="mainVideo-doc" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Errors""" start="00:39:29.440" video="mainVideo-doc" id="subtitle"]]</div>[[!template text="""In this case, we're piping standard error""" start="00:39:29.440" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""to where standard out goes.""" start="00:39:32.920" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""That's another trick.""" start="00:39:35.100" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""If you want to actually see an error get created,""" start="00:39:36.070" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""org-mode will capture any errors that code blocks produce,""" start="00:39:39.560" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""and it will show you the error message in a buffer.""" start="00:39:44.120" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""So if you actually wanna show what it looks like""" start="00:39:46.820" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""when something errors out, this is the trick you have to use.""" start="00:39:49.240" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""And then what we do is we look for a configure script""" start="00:39:53.060" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""and there isn't one.""" start="00:39:56.200" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""And then we realize,""" start="00:39:57.420" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""uh-oh, we're gonna have to deal with autotools.""" start="00:39:58.600" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""So, you know, we run the autogen script and it complains""" start="00:40:00.910" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""because we're missing some prerequisites.""" start="00:40:05.560" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""So we have to install autoconf,""" start="00:40:08.680" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""and then we run it again,""" start="00:40:11.350" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""and finally it generates a configure script.""" start="00:40:13.020" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""And this is another case where I pull this number""" start="00:40:15.960" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""right here into the actual prose.""" start="00:40:19.020" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""And I can see it's, oh, it's, you know, this how many bytes.""" start="00:40:21.980" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""When was the last time you wrote a shell script""" start="00:40:24.840" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""that was this many bytes long?""" start="00:40:26.800" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""And then we configure the build process.""" start="00:40:29.580" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""And, you know, it's not gonna work right away""" start="00:40:31.320" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""because we don't have GNU Texinfo installed.""" start="00:40:33.760" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""So we gotta do that, which we do with `dnf install` here.""" start="00:40:36.700" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""And then there's this section that is either RedHat-""" start="00:40:41.440" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""or Debian-specific that talks about, like,""" start="00:40:44.320" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""if you don't know the name of a package""" start="00:40:48.920" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""that contains a given file name, how do you query it?""" start="00:40:51.240" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""And in the RedHat world, you use `dnf provides makeinfo`.""" start="00:40:55.160" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""In the Debian world, you do something entirely different.""" start="00:40:59.520" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""And then we have to install the `ncurses` binary.""" start="00:41:02.290" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""And finally we get like a minimal configuration""" start="00:41:06.640" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""and you can see that there's a whole bunch of nos here.""" start="00:41:10.300" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""So, you know, we don't have cairo,""" start="00:41:13.700" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""we don't have imagemagick, we don't have dbus,""" start="00:41:15.200" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""you know, there's a whole bunch of stuff we don't have.""" start="00:41:18.800" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""We don't have X, we don't have libjansson, no tree-sitter.""" start="00:41:20.600" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""This is really a bare-bones Emacs""" start="00:41:23.880" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""that is strictly terminal mode.""" start="00:41:25.960" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""Then we actually build Emacs, which is, you know,""" start="00:41:28.640" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""kind of boring, we're just gonna type make""" start="00:41:30.800" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""and then make is gonna run successfully.""" start="00:41:33.260" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""And make is gonna spew a ton of output, right?""" start="00:41:35.260" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""So here's where I do that /dev/null trick,""" start="00:41:37.880" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""where I pipe everything to /dev/null""" start="00:41:41.100" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""and then I, or I pipe standard output to /dev/null""" start="00:41:42.600" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""and then I pipe standard error""" start="00:41:45.820" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""to wherever standard output's going.""" start="00:41:47.520" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""And then at the end to say that it ran successfully,""" start="00:41:50.240" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""I say &quot;Make ran successfully!&quot;""" start="00:41:52.800" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""Then we take a look at the Emacs binary""" start="00:41:55.380" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""and you know, it's an elf binary.""" start="00:41:57.800" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""And, you know, because this is running on my Mac,""" start="00:41:59.880" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""this is an ARM-based machine, this virtual machine is.""" start="00:42:01.720" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""Oops, and this is a bug.""" start="00:42:06.620" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""This really should be a macro call,""" start="00:42:10.520" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""but I think I have the wrong number of curly braces""" start="00:42:12.200" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""or something in there.""" start="00:42:14.800" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""I need to figure out why that's not right.""" start="00:42:16.160" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""I'll look into that later.""" start="00:42:19.130" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""And then we install Emacs and then we kind of show""" start="00:42:21.110" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""like the file sizes of everything in the home directory.""" start="00:42:23.980" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""And then we, you know, show the binaries that got installed.""" start="00:42:27.720" video="mainVideo-doc" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Final thoughts""" start="00:42:31.990" video="mainVideo-doc" id="subtitle"]]</div>[[!template text="""Anyway, so this is the final thoughts section.""" start="00:42:31.990" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""And my final thoughts are, is I hope you enjoyed this talk""" start="00:42:35.600" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""and I hope you actually learned a thing or two.""" start="00:42:39.220" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""All right, thanks everybody.""" start="00:42:42.380" video="mainVideo-doc" id="subtitle"]]
+[[!template text="""And I'll see you all next time.""" start="00:42:43.360" video="mainVideo-doc" id="subtitle"]]
+
+</div>
+
+Captioner: jc
+
+<div class="transcript transcript-qanda"><a name="doc-qanda-transcript"></a><h1>Q&A transcript (unedited)</h1>
+
+[[!template text="""[Speaker 0]: Well, we have about, I think,""" start="00:00:03.639" video="qanda-doc" id="subtitle"]]
+[[!template text="""10 or 15 minutes of on-stream Q&A time.""" start="00:00:06.339" video="qanda-doc" id="subtitle"]]
+[[!template text="""But if there's more questions than that,""" start="00:00:10.320" video="qanda-doc" id="subtitle"]]
+[[!template text="""people are welcome to stay.""" start="00:00:11.420" video="qanda-doc" id="subtitle"]]
+[[!template text="""If Mike has the time to answer some more,""" start="00:00:14.200" video="qanda-doc" id="subtitle"]]
+[[!template text="""then Awesome.""" start="00:00:15.060" video="qanda-doc" id="subtitle"]]
+[[!template text="""[Speaker 1]: Yeah, I will be around for the rest of the""" start="00:00:20.920" video="qanda-doc" id="subtitle"]]
+[[!template text="""conference. So I am spudpnds,""" start="00:00:22.440" video="qanda-doc" id="subtitle"]]
+[[!template text="""which is spud upside down on IRC,""" start="00:00:26.580" video="qanda-doc" id="subtitle"]]
+[[!template text="""if you want to hit me up on IRC.""" start="00:00:29.640" video="qanda-doc" id="subtitle"]]
+[[!template text="""Nice.""" start="00:00:30.860" video="qanda-doc" id="subtitle"]]
+[[!template text="""[Speaker 0]: I see we already have a question on the pad,""" start="00:00:42.800" video="qanda-doc" id="subtitle"]]
+[[!template text="""and it is, did you develop a variant of your""" start="00:00:45.920" video="qanda-doc" id="subtitle"]]
+[[!template text="""document for CentOS?""" start="00:00:46.920" video="qanda-doc" id="subtitle"]]
+[[!template text="""[Speaker 1]: I did not. I have not messed with any other""" start="00:00:52.840" video="qanda-doc" id="subtitle"]]
+[[!template text="""Red Hat distributions other than Fedora.""" start="00:00:56.120" video="qanda-doc" id="subtitle"]]
+[[!template text="""I would like to expand the document out to""" start="00:00:59.960" video="qanda-doc" id="subtitle"]]
+[[!template text="""Windows and to Mac OS as I think a lot of""" start="00:01:05.740" video="qanda-doc" id="subtitle"]]
+[[!template text="""people really want to build Emacs on those""" start="00:01:07.720" video="qanda-doc" id="subtitle"]]
+[[!template text="""platforms because it's much harder to get""" start="00:01:09.840" video="qanda-doc" id="subtitle"]]
+[[!template text="""Emacs binaries running on those platforms.""" start="00:01:13.080" video="qanda-doc" id="subtitle"]]
+[[!template text="""Although they're around on the internet it's""" start="00:01:15.860" video="qanda-doc" id="subtitle"]]
+[[!template text="""not as bad as it used to be,""" start="00:01:17.320" video="qanda-doc" id="subtitle"]]
+[[!template text="""but building Emacs is very,""" start="00:01:19.280" video="qanda-doc" id="subtitle"]]
+[[!template text="""a very fun thing to do.""" start="00:01:21.000" video="qanda-doc" id="subtitle"]]
+[[!template text="""And I encourage everybody to do that.""" start="00:01:22.760" video="qanda-doc" id="subtitle"]]
+[[!template text="""[Speaker 0]: Right. We're also getting comments from folks""" start="00:01:46.160" video="qanda-doc" id="subtitle"]]
+[[!template text="""here on BigBlueButton.""" start="00:01:46.800" video="qanda-doc" id="subtitle"]]
+[[!template text="""EXC or Matt saying, great talk,""" start="00:01:49.640" video="qanda-doc" id="subtitle"]]
+[[!template text="""good demonstration of what's possible.""" start="00:01:51.140" video="qanda-doc" id="subtitle"]]
+[[!template text="""And Aaron thanking Mike,""" start="00:01:53.940" video="qanda-doc" id="subtitle"]]
+[[!template text="""saying awesome presentation.""" start="00:01:54.760" video="qanda-doc" id="subtitle"]]
+[[!template text="""And they missed the first few minutes and""" start="00:01:56.880" video="qanda-doc" id="subtitle"]]
+[[!template text="""have to rewatch to get the portion that they""" start="00:01:59.540" video="qanda-doc" id="subtitle"]]
+[[!template text="""missed.""" start="00:01:59.720" video="qanda-doc" id="subtitle"]]
+[[!template text="""[Speaker 1]: I had a hard time cramming the entire talk""" start="00:02:03.400" video="qanda-doc" id="subtitle"]]
+[[!template text="""into 40 minutes. So I spoke quickly.""" start="00:02:08.220" video="qanda-doc" id="subtitle"]]
+[[!template text="""I have a feeling I may have left some folks""" start="00:02:10.639" video="qanda-doc" id="subtitle"]]
+[[!template text="""behind who weren't paying close attention.""" start="00:02:12.540" video="qanda-doc" id="subtitle"]]
+[[!template text="""So rewatching might help.""" start="00:02:16.020" video="qanda-doc" id="subtitle"]]
+[[!template text="""[Speaker 0]: Oh, nice.""" start="00:02:18.920" video="qanda-doc" id="subtitle"]]
+[[!template text="""[Speaker 1]: I noticed Matt said that he helps maintain""" start="00:02:24.920" video="qanda-doc" id="subtitle"]]
+[[!template text="""the shell functionality or Babel and last""" start="00:02:27.440" video="qanda-doc" id="subtitle"]]
+[[!template text="""March they added async evaluation into""" start="00:02:30.240" video="qanda-doc" id="subtitle"]]
+[[!template text="""session code blocks. Very cool,""" start="00:02:32.920" video="qanda-doc" id="subtitle"]]
+[[!template text="""especially when you're doing something that""" start="00:02:34.680" video="qanda-doc" id="subtitle"]]
+[[!template text="""takes a long time. It would be nice if Emacs""" start="00:02:36.420" video="qanda-doc" id="subtitle"]]
+[[!template text="""wasn't locked up. I will definitely have to""" start="00:02:38.920" video="qanda-doc" id="subtitle"]]
+[[!template text="""check that out. I use this technique at work""" start="00:02:50.220" video="qanda-doc" id="subtitle"]]
+[[!template text="""a lot, like when I write documents to how to""" start="00:02:53.220" video="qanda-doc" id="subtitle"]]
+[[!template text="""explain things to coworkers and such.""" start="00:02:55.900" video="qanda-doc" id="subtitle"]]
+[[!template text="""And 1 of the things I had to explain was how""" start="00:03:00.060" video="qanda-doc" id="subtitle"]]
+[[!template text="""to build AWS MySQL databases and replicas,""" start="00:03:05.220" video="qanda-doc" id="subtitle"]]
+[[!template text="""and how to build them with very specific""" start="00:03:07.760" video="qanda-doc" id="subtitle"]]
+[[!template text="""parameters to work with the system called""" start="00:03:09.960" video="qanda-doc" id="subtitle"]]
+[[!template text="""Vitesse. And when I was running that""" start="00:03:13.060" video="qanda-doc" id="subtitle"]]
+[[!template text="""document, building these kinds of MySQL""" start="00:03:15.660" video="qanda-doc" id="subtitle"]]
+[[!template text="""databases in AWS with lockup Emacs for 20,""" start="00:03:20.280" video="qanda-doc" id="subtitle"]]
+[[!template text="""25 minutes at a time. So,""" start="00:03:22.300" video="qanda-doc" id="subtitle"]]
+[[!template text="""yeah, I'm really excited about async""" start="00:03:26.060" video="qanda-doc" id="subtitle"]]
+[[!template text="""evaluation.""" start="00:03:26.540" video="qanda-doc" id="subtitle"]]
+[[!template text="""Totally. Oh yeah, Python mode I think has had""" start="00:04:03.780" video="qanda-doc" id="subtitle"]]
+[[!template text="""async for shell blocks for a while.""" start="00:04:05.600" video="qanda-doc" id="subtitle"]]
+[[!template text="""I think there's a third-party package at Elba""" start="00:04:09.220" video="qanda-doc" id="subtitle"]]
+[[!template text="""that adds async support for that.""" start="00:04:11.260" video="qanda-doc" id="subtitle"]]
+[[!template text="""But yeah, I explicitly wanted to make sure""" start="00:04:16.360" video="qanda-doc" id="subtitle"]]
+[[!template text="""that it would work with super vanilla stuff.""" start="00:04:18.620" video="qanda-doc" id="subtitle"]]
+[[!template text="""Oh, it's built in. I see.""" start="00:04:20.060" video="qanda-doc" id="subtitle"]]
+[[!template text="""Yeah, I didn't realize it was built in for""" start="00:04:24.140" video="qanda-doc" id="subtitle"]]
+[[!template text="""Python blocks. I'll have to check that out.""" start="00:04:25.920" video="qanda-doc" id="subtitle"]]
+[[!template text="""There's so much Emacs.""" start="00:04:27.800" video="qanda-doc" id="subtitle"]]
+[[!template text="""It's hard to wrap your head even around a""" start="00:04:32.080" video="qanda-doc" id="subtitle"]]
+[[!template text="""tiny portion of it. It's such a deep topic.""" start="00:04:34.900" video="qanda-doc" id="subtitle"]]
+[[!template text="""Looks like somebody in IRC said,""" start="00:04:47.660" video="qanda-doc" id="subtitle"]]
+[[!template text="""I can't wait to add some of this stuff to my""" start="00:04:50.220" video="qanda-doc" id="subtitle"]]
+[[!template text="""documents. And that really makes me happy.""" start="00:04:52.680" video="qanda-doc" id="subtitle"]]
+[[!template text="""I hope people go out and write literate Org""" start="00:04:55.400" video="qanda-doc" id="subtitle"]]
+[[!template text="""Mode documents that do amazing things.""" start="00:04:57.180" video="qanda-doc" id="subtitle"]]
+[[!template text="""When's the next talk? We have like,""" start="00:05:25.640" video="qanda-doc" id="subtitle"]]
+[[!template text="""[Speaker 0]: let's see. I think we have about 4 or 5""" start="00:05:30.900" video="qanda-doc" id="subtitle"]]
+[[!template text="""minutes live on stream for Q&A.""" start="00:05:32.960" video="qanda-doc" id="subtitle"]]
+[[!template text="""[Speaker 1]: Yeah, okay. Oh, here's the question.""" start="00:05:35.860" video="qanda-doc" id="subtitle"]]
+[[!template text="""Blaine asks, are you running Emacs from the""" start="00:05:39.160" video="qanda-doc" id="subtitle"]]
+[[!template text="""host machine? And yeah,""" start="00:05:41.420" video="qanda-doc" id="subtitle"]]
+[[!template text="""so I'm running Emacs on the exact same""" start="00:05:43.940" video="qanda-doc" id="subtitle"]]
+[[!template text="""machine that I'm building Emacs on.""" start="00:05:46.560" video="qanda-doc" id="subtitle"]]
+[[!template text="""And I had first thought about doing that over""" start="00:05:50.580" video="qanda-doc" id="subtitle"]]
+[[!template text="""Tramp. And I thought that would be a very""" start="00:05:53.440" video="qanda-doc" id="subtitle"]]
+[[!template text="""cool demo to show how you could do that""" start="00:05:55.360" video="qanda-doc" id="subtitle"]]
+[[!template text="""remotely on Tramp so you didn't need Emacs on""" start="00:05:57.980" video="qanda-doc" id="subtitle"]]
+[[!template text="""the host machine. But I decided it would be a""" start="00:06:03.160" video="qanda-doc" id="subtitle"]]
+[[!template text="""lot easier, and as I ran into a deadline to""" start="00:06:05.640" video="qanda-doc" id="subtitle"]]
+[[!template text="""get the talk completed,""" start="00:06:06.360" video="qanda-doc" id="subtitle"]]
+[[!template text="""I abandoned that notion for the""" start="00:06:08.900" video="qanda-doc" id="subtitle"]]
+[[!template text="""straightforward approach.""" start="00:06:09.880" video="qanda-doc" id="subtitle"]]
+[[!template text="""But ideally, I would spin up virtual machines""" start="00:06:13.260" video="qanda-doc" id="subtitle"]]
+[[!template text="""and then using the Org Mode document and""" start="00:06:16.980" video="qanda-doc" id="subtitle"]]
+[[!template text="""having Org Mode reach out to those machines""" start="00:06:18.960" video="qanda-doc" id="subtitle"]]
+[[!template text="""via SSH and Tramp.""" start="00:06:20.440" video="qanda-doc" id="subtitle"]]
+[[!template text="""Oh yeah, there's also a little bit of""" start="00:06:33.400" video="qanda-doc" id="subtitle"]]
+[[!template text="""discussion on IRC about org macros and how""" start="00:06:38.200" video="qanda-doc" id="subtitle"]]
+[[!template text="""they made their way into the document.""" start="00:06:39.720" video="qanda-doc" id="subtitle"]]
+[[!template text="""And I remember when I first discovered org""" start="00:06:42.540" video="qanda-doc" id="subtitle"]]
+[[!template text="""macros by reading the org mode documentation,""" start="00:06:44.480" video="qanda-doc" id="subtitle"]]
+[[!template text="""I was really excited because I thought I""" start="00:06:47.360" video="qanda-doc" id="subtitle"]]
+[[!template text="""could limit a lot of the boilerplate I end up""" start="00:06:49.860" video="qanda-doc" id="subtitle"]]
+[[!template text="""typing. But as we discussed,""" start="00:06:51.900" video="qanda-doc" id="subtitle"]]
+[[!template text="""ORD macros, I think, only work in 1 context""" start="00:06:54.760" video="qanda-doc" id="subtitle"]]
+[[!template text="""in your ORD mode document,""" start="00:06:56.380" video="qanda-doc" id="subtitle"]]
+[[!template text="""and I think that's in the pros section.""" start="00:06:58.280" video="qanda-doc" id="subtitle"]]
+[[!template text="""So You can't resolve a macro inside a header""" start="00:07:03.740" video="qanda-doc" id="subtitle"]]
+[[!template text="""arg, for example, or inside an options block.""" start="00:07:06.600" video="qanda-doc" id="subtitle"]]
+[[!template text="""It would be awesome if macros worked""" start="00:07:09.560" video="qanda-doc" id="subtitle"]]
+[[!template text="""everywhere, but I'm happy to have them just""" start="00:07:12.280" video="qanda-doc" id="subtitle"]]
+[[!template text="""as they are now.""" start="00:07:13.500" video="qanda-doc" id="subtitle"]]
+[[!template text="""[Speaker 0]: Indeed, they're very convenient.""" start="00:07:22.960" video="qanda-doc" id="subtitle"]]
+[[!template text="""[Speaker 1]: And Blaine also says, thank you for showing""" start="00:07:32.020" video="qanda-doc" id="subtitle"]]
+[[!template text="""what's possible with literate documentation.""" start="00:07:33.420" video="qanda-doc" id="subtitle"]]
+[[!template text="""This is mind-blowing. Yeah,""" start="00:07:35.380" video="qanda-doc" id="subtitle"]]
+[[!template text="""I think so too. I first saw this technique in""" start="00:07:39.400" video="qanda-doc" id="subtitle"]]
+[[!template text="""Howard's video, Literate DevOps,""" start="00:07:41.020" video="qanda-doc" id="subtitle"]]
+[[!template text="""and I remember I was just picking up parts of""" start="00:07:44.720" video="qanda-doc" id="subtitle"]]
+[[!template text="""my mind after it exploded after having""" start="00:07:46.720" video="qanda-doc" id="subtitle"]]
+[[!template text="""watched that video. So I wanted to do some of""" start="00:07:49.740" video="qanda-doc" id="subtitle"]]
+[[!template text="""it myself, and that's where I came up with a""" start="00:07:51.820" video="qanda-doc" id="subtitle"]]
+[[!template text="""couple different approaches to that.""" start="00:07:54.020" video="qanda-doc" id="subtitle"]]
+[[!template text="""It's not just for, you know,""" start="00:07:57.600" video="qanda-doc" id="subtitle"]]
+[[!template text="""making literate Emacs configurations.""" start="00:07:59.060" video="qanda-doc" id="subtitle"]]
+[[!template text="""[Speaker 0]: For Sure. We have another remark slash""" start="00:08:04.680" video="qanda-doc" id="subtitle"]]
+[[!template text="""question on the pad. Someone saying great""" start="00:08:07.260" video="qanda-doc" id="subtitle"]]
+[[!template text="""presentation. The preparation is outstanding.""" start="00:08:09.800" video="qanda-doc" id="subtitle"]]
+[[!template text="""And for someone like me that never touched""" start="00:08:12.520" video="qanda-doc" id="subtitle"]]
+[[!template text="""the org-mux side of Emacs,""" start="00:08:14.040" video="qanda-doc" id="subtitle"]]
+[[!template text="""What do you feel is the more complex part to""" start="00:08:17.040" video="qanda-doc" id="subtitle"]]
+[[!template text="""tackle? You made it seem simple,""" start="00:08:19.120" video="qanda-doc" id="subtitle"]]
+[[!template text="""but the complexity there.""" start="00:08:20.500" video="qanda-doc" id="subtitle"]]
+[[!template text="""[Speaker 1]: Yeah. Just getting all of the configuration""" start="00:08:25.840" video="qanda-doc" id="subtitle"]]
+[[!template text="""set up the way you want it is the hardest""" start="00:08:30.800" video="qanda-doc" id="subtitle"]]
+[[!template text="""part. So some of the defaults are,""" start="00:08:34.780" video="qanda-doc" id="subtitle"]]
+[[!template text="""you know, they don't look good when you""" start="00:08:37.120" video="qanda-doc" id="subtitle"]]
+[[!template text="""render them out in LaTeX and finally PDF.""" start="00:08:39.320" video="qanda-doc" id="subtitle"]]
+[[!template text="""And there's a lot of work to be done to tweak""" start="00:08:42.039" video="qanda-doc" id="subtitle"]]
+[[!template text="""the LaTeX environment so it looks as pretty""" start="00:08:45.380" video="qanda-doc" id="subtitle"]]
+[[!template text="""as you might want it. And then just Org Mode""" start="00:08:48.620" video="qanda-doc" id="subtitle"]]
+[[!template text="""has a lot of knobs that you can tune,""" start="00:08:50.800" video="qanda-doc" id="subtitle"]]
+[[!template text="""and they have a pretty large impact on how""" start="00:08:53.720" video="qanda-doc" id="subtitle"]]
+[[!template text="""your document is exported.""" start="00:08:55.520" video="qanda-doc" id="subtitle"]]
+[[!template text="""So I think the hardest part is just knowing""" start="00:09:00.360" video="qanda-doc" id="subtitle"]]
+[[!template text="""what's possible and knowing where all the""" start="00:09:03.820" video="qanda-doc" id="subtitle"]]
+[[!template text="""knobs are to tune and twist.""" start="00:09:05.200" video="qanda-doc" id="subtitle"]]
+[[!template text="""[Speaker 0]: Got another question on the pad.""" start="00:09:10.240" video="qanda-doc" id="subtitle"]]
+[[!template text="""And I think we have about a minute or so on""" start="00:09:12.040" video="qanda-doc" id="subtitle"]]
+[[!template text="""the stream. So I'll read this question as""" start="00:09:13.740" video="qanda-doc" id="subtitle"]]
+[[!template text="""well. But folks, you're welcome to continue""" start="00:09:15.160" video="qanda-doc" id="subtitle"]]
+[[!template text="""on the pad or just come join here on BBB""" start="00:09:17.560" video="qanda-doc" id="subtitle"]]
+[[!template text="""after myself and the stream move on to the""" start="00:09:20.200" video="qanda-doc" id="subtitle"]]
+[[!template text="""next talk. Yeah, and the next question is,""" start="00:09:23.100" video="qanda-doc" id="subtitle"]]
+[[!template text="""how do you normally debug,""" start="00:09:24.320" video="qanda-doc" id="subtitle"]]
+[[!template text="""for example, view the logs or see failed""" start="00:09:26.640" video="qanda-doc" id="subtitle"]]
+[[!template text="""statuses when the commands in the source""" start="00:09:29.440" video="qanda-doc" id="subtitle"]]
+[[!template text="""blocks fail, especially if they output lots""" start="00:09:32.020" video="qanda-doc" id="subtitle"]]
+[[!template text="""and lots of logs, and you need to see the""" start="00:09:34.640" video="qanda-doc" id="subtitle"]]
+[[!template text="""full history of the build.""" start="00:09:35.640" video="qanda-doc" id="subtitle"]]
+[[!template text="""[Speaker 1]: Yeah, so I see it in the messages buffer""" start="00:09:39.520" video="qanda-doc" id="subtitle"]]
+[[!template text="""whenever I export a document.""" start="00:09:42.080" video="qanda-doc" id="subtitle"]]
+[[!template text="""If there's a failure, that's typically where""" start="00:09:44.540" video="qanda-doc" id="subtitle"]]
+[[!template text="""it's written to. And I will actually kill the""" start="00:09:47.460" video="qanda-doc" id="subtitle"]]
+[[!template text="""messages buffer before I export so I know""" start="00:09:49.960" video="qanda-doc" id="subtitle"]]
+[[!template text="""that only the messages in the buffer are for""" start="00:09:52.840" video="qanda-doc" id="subtitle"]]
+[[!template text="""my given export and I mentioned that""" start="00:09:55.800" video="qanda-doc" id="subtitle"]]
+[[!template text="""debugging trick where you name all of your""" start="00:09:58.580" video="qanda-doc" id="subtitle"]]
+[[!template text="""org-mode source blocks So if there is a""" start="00:10:00.720" video="qanda-doc" id="subtitle"]]
+[[!template text="""problem in 1 of the blocks,""" start="00:10:02.320" video="qanda-doc" id="subtitle"]]
+[[!template text="""it'll actually tell you what the block,""" start="00:10:06.560" video="qanda-doc" id="subtitle"]]
+[[!template text="""the name of the block the error occurred in.""" start="00:10:09.140" video="qanda-doc" id="subtitle"]]
+[[!template text="""If you don't do that, it just gives you a""" start="00:10:13.160" video="qanda-doc" id="subtitle"]]
+[[!template text="""position number in the buffer.""" start="00:10:14.800" video="qanda-doc" id="subtitle"]]
+[[!template text="""And whenever I tried to convert those""" start="00:10:18.620" video="qanda-doc" id="subtitle"]]
+[[!template text="""position numbers to actual places where the""" start="00:10:21.400" video="qanda-doc" id="subtitle"]]
+[[!template text="""error occurred, it was never exactly where I""" start="00:10:23.600" video="qanda-doc" id="subtitle"]]
+[[!template text="""suspected it would be.""" start="00:10:24.640" video="qanda-doc" id="subtitle"]]
+[[!template text="""So I found that very difficult in debugging.""" start="00:10:26.680" video="qanda-doc" id="subtitle"]]
+[[!template text="""So the only real debugging tip I have is name""" start="00:10:29.800" video="qanda-doc" id="subtitle"]]
+[[!template text="""your source blocks, even if you don't refer""" start="00:10:32.840" video="qanda-doc" id="subtitle"]]
+[[!template text="""to them later.""" start="00:10:33.480" video="qanda-doc" id="subtitle"]]
+[[!template text="""[Speaker 0]: I think that's all the time we have on""" start="00:10:39.860" video="qanda-doc" id="subtitle"]]
+[[!template text="""stream. And I also have to drop as well.""" start="00:10:41.320" video="qanda-doc" id="subtitle"]]
+[[!template text="""But thanks again so much,""" start="00:10:42.540" video="qanda-doc" id="subtitle"]]
+[[!template text="""Mike. And folks are welcome to come here and""" start="00:10:46.160" video="qanda-doc" id="subtitle"]]
+[[!template text="""continue discussion here.""" start="00:10:47.980" video="qanda-doc" id="subtitle"]]
+[[!template text="""Thanks again.""" start="00:10:52.600" video="qanda-doc" id="subtitle"]]
+[[!template text="""[Speaker 1]: You""" start="00:21:45.060" video="qanda-doc" id="subtitle"]]
+[[!template text="""Thank""" start="00:22:00.060" video="qanda-doc" id="subtitle"]]
+[[!template text="""[Speaker 0]: you""" start="00:22:15.060" video="qanda-doc" id="subtitle"]]
+[[!template text="""[Speaker 1]: for""" start="00:22:28.400" video="qanda-doc" id="subtitle"]]
+[[!template text="""watching. You""" start="00:22:45.060" video="qanda-doc" id="subtitle"]]
+[[!template text="""you""" start="00:23:00.260" video="qanda-doc" id="subtitle"]]
+
+</div>Questions or comments? Please e-mail [emacsconf-org-private@gnu.org](mailto:emacsconf-org-private@gnu.org?subject=Comment%20for%20EmacsConf%202023%20doc%3A%20Literate%20Documentation%20with%20Emacs%20and%20Org%20Mode)
+
+
+<!-- End of emacsconf-publish-after-page -->
diff --git a/2023/info/doc-before.md b/2023/info/doc-before.md
new file mode 100644
index 00000000..18772fdb
--- /dev/null
+++ b/2023/info/doc-before.md
@@ -0,0 +1,45 @@
+<!-- Automatically generated by emacsconf-publish-before-page -->
+Actually a general-audience talk; just on the development track for scheduling purposes
+
+[[!toc ]]
+Format: 43-min talk ; Q&A: BigBlueButton conference room
+Status: Q&A to be extracted from the room recordings
+
+
+
+
+
+# Talk
+
+<div class="vid mainVideo"><video controls preload="none" id="mainVideo-doc"><source src="https://media.emacsconf.org/2023/emacsconf-2023-doc--literate-documentation-with-emacs-and-org-mode--mike-hamrick--main.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2023/captions/emacsconf-2023-doc--literate-documentation-with-emacs-and-org-mode--mike-hamrick--main.vtt" default />"""<track kind="chapters" label="Chapters" src="/2023/captions/emacsconf-2023-doc--literate-documentation-with-emacs-and-org-mode--mike-hamrick--main--chapters.vtt" /><p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video>[[!template id="chapters" vidid="mainVideo-doc" data="""
+00:00.000 Introduction
+00:57.760 Org Babel and literate programming
+02:14.080 This presentation
+04:53.480 Getting started
+06:55.780 README
+07:23.500 Writing a code block
+08:10.460 :results none
+08:40.320 Confirmation
+10:36.960 Running blocks automatically
+13:53.000 Export options
+16:05.700 Substituting constants
+17:25.740 Getting the properties
+20:03.060 Macros
+21:05.240 Properties in practice
+22:09.020 Using a prefix
+23:42.010 Switching distributions
+27:14.150 A tour
+30:16.200 TeX and LaTeX
+31:09.250 Other prerequisites
+32:00.060 Caching
+36:20.610 Looking at the PDF
+39:29.440 Errors
+42:31.990 Final thoughts
+
+"""]]<div></div>Duration: 42:45 minutes<div class="files resources"><ul><li><a href="https://pad.emacsconf.org/2023-doc">Open Etherpad</a></li><li><a href="https://bbb.emacsverse.org/playback/presentation/2.0/playback.html?meetingId=37169783fc35bab0d36d00ed912e4c31ebef8fb0-1701548380496">Play recording from BigBlueButton</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-doc--literate-documentation-with-emacs-and-org-mode--mike-hamrick--intro.vtt">Download --intro.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-doc--literate-documentation-with-emacs-and-org-mode--mike-hamrick--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-doc--literate-documentation-with-emacs-and-org-mode--mike-hamrick--main--chapters.vtt">Download --main--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-doc--literate-documentation-with-emacs-and-org-mode--mike-hamrick--main.opus">Download --main.opus (23MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-doc--literate-documentation-with-emacs-and-org-mode--mike-hamrick--main.vtt">Download --main.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-doc--literate-documentation-with-emacs-and-org-mode--mike-hamrick--main.webm">Download --main.webm (133MB)</a></li><li><a href="https://toobnix.org/w/8ak16Qy1tjeFEqmcnan6MQ">View on Toobnix</a></li><li><a href="https://www.youtube.com/watch?v=BAFZ-vTnfSo">View on Youtube</a></li></ul></div></div>
+
+# Q&A
+
+<div class="vid qanda"><video controls preload="none" id="qanda-doc"><source src="https://media.emacsconf.org/2023/emacsconf-2023-doc--literate-documentation-with-emacs-and-org-mode--mike-hamrick--answers.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2023/captions/emacsconf-2023-doc--literate-documentation-with-emacs-and-org-mode--mike-hamrick--answers.vtt" default />"""<p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video><div>Listen to just the audio:<br /><audio controls preload="none" id="qanda-doc-audio" src="https://media.emacsconf.org/2023/emacsconf-2023-doc--literate-documentation-with-emacs-and-org-mode--mike-hamrick--answers.opus"></audio></div><div></div>Duration: 11:00 minutes<div class="files resources"><ul><li><a href="https://pad.emacsconf.org/2023-doc">Open Etherpad</a></li><li><a href="https://bbb.emacsverse.org/playback/presentation/2.0/playback.html?meetingId=37169783fc35bab0d36d00ed912e4c31ebef8fb0-1701548380496">Play recording from BigBlueButton</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-doc--literate-documentation-with-emacs-and-org-mode--mike-hamrick--answers.json">Download --answers.json (1.5MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-doc--literate-documentation-with-emacs-and-org-mode--mike-hamrick--answers.opus">Download --answers.opus (18MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-doc--literate-documentation-with-emacs-and-org-mode--mike-hamrick--answers.vtt">Download --answers.vtt</a> (unedited)</li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-doc--literate-documentation-with-emacs-and-org-mode--mike-hamrick--answers.webm">Download --answers.webm (69MB)</a></li></ul></div></div>
+# Description
+<!-- End of emacsconf-publish-before-page --> \ No newline at end of file
diff --git a/2023/info/doc-nav.md b/2023/info/doc-nav.md
new file mode 100644
index 00000000..8c04bf51
--- /dev/null
+++ b/2023/info/doc-nav.md
@@ -0,0 +1,7 @@
+
+<div class="talk-nav">
+Back to the [[talks]]
+Previous by track: <a href="/2023/talks/repl">REPLs in strange places: Lua, LaTeX, LPeg, LPegRex, TikZ</a>
+Next by track: <a href="/2023/talks/windows">Windows into Freedom</a>
+Track: <span class="sched-track Development">Development</span> - <strong><a href="https://emacsconf.org/2023/watch/dev">Watch</a></strong>
+</div>
diff --git a/2023/info/eat-after.md b/2023/info/eat-after.md
index 9009873b..3358e962 100644
--- a/2023/info/eat-after.md
+++ b/2023/info/eat-after.md
@@ -1,7 +1,94 @@
<!-- Automatically generated by emacsconf-publish-after-page -->
-Questions or comments? Please e-mail [akib@disroot.org](mailto:akib@disroot.org?subject=Comment%20for%20EmacsConf%202022%20eat%3A%20Eat%20and%20Eat%20powered%20Eshell%2C%20fast%20featureful%20terminal%20inside%20Emacs)
+<div class="transcript transcript-mainVideo"><a name="eat-mainVideo-transcript"></a><h1>Transcript</h1>
+
+
+<div class="transcript-heading">[[!template new="1" text="""Intro""" start="00:00:00.000" video="mainVideo-eat" id="subtitle"]]</div>[[!template text="""Hello everyone. Welcome to my talk.""" start="00:00:00.000" video="mainVideo-eat" id="subtitle"]]
+[[!template text="""I am Akib Azmain Turja and my talk is titled""" start="00:00:04.200" video="mainVideo-eat" id="subtitle"]]
+[[!template text="""&quot;Eat and Eat-powered Eshell:""" start="00:00:09.360" video="mainVideo-eat" id="subtitle"]]
+[[!template text="""Fast, featureful terminal inside Emacs.&quot;""" start="00:00:11.520" video="mainVideo-eat" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Benchmarking""" start="00:00:15.440" video="mainVideo-eat" id="subtitle"]]</div>[[!template text="""So I just claimed that Eat is a fast terminal emulator.""" start="00:00:15.440" video="mainVideo-eat" id="subtitle"]]
+[[!template text="""Let me show you that. I will print a 1-megabyte sized file""" start="00:00:22.840" video="mainVideo-eat" id="subtitle"]]
+[[!template text="""in the terminal using this command.""" start="00:00:33.280" video="mainVideo-eat" id="subtitle"]]
+[[!template text="""It takes 0.76 seconds. Now let's benchmark term-mode.""" start="00:00:39.040" video="mainVideo-eat" id="subtitle"]]
+[[!template text="""I will be in term -mode. I use the same command,""" start="00:00:47.360" video="mainVideo-eat" id="subtitle"]]
+[[!template text="""and it's clearly the loser.""" start="00:00:54.800" video="mainVideo-eat" id="subtitle"]]
+[[!template text="""It took 12 seconds, more than an order of magnitude slower.""" start="00:01:06.600" video="mainVideo-eat" id="subtitle"]]
+[[!template text="""Let's also measure the speed of return.""" start="00:01:18.320" video="mainVideo-eat" id="subtitle"]]
+[[!template text="""And it took 0.79 seconds.""" start="00:01:27.280" video="mainVideo-eat" id="subtitle"]]
+[[!template text="""But this is actually a little bit slower than Eat.""" start="00:01:33.480" video="mainVideo-eat" id="subtitle"]]
+[[!template text="""Why? That shouldn't happen.""" start="00:01:36.160" video="mainVideo-eat" id="subtitle"]]
+[[!template text="""Anyway, hopefully that shows how fast Eat is.""" start="00:01:41.800" video="mainVideo-eat" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Running programs""" start="00:01:49.720" video="mainVideo-eat" id="subtitle"]]</div>[[!template text="""So let's run some extra programs in Eat,""" start="00:01:49.720" video="mainVideo-eat" id="subtitle"]]
+[[!template text="""like top. You can also run htop or even btop.""" start="00:01:54.440" video="mainVideo-eat" id="subtitle"]]
+[[!template text="""There is a fancy version of top.""" start="00:02:05.640" video="mainVideo-eat" id="subtitle"]]
+[[!template text="""And obviously you can run Emacs in it.""" start="00:02:08.560" video="mainVideo-eat" id="subtitle"]]
+[[!template text="""There is mouse support, and there is true color support.""" start="00:02:20.240" video="mainVideo-eat" id="subtitle"]]
+[[!template text="""You can show any color in the terminal""" start="00:02:33.880" video="mainVideo-eat" id="subtitle"]]
+[[!template text="""as long as your main display supports it.""" start="00:02:38.800" video="mainVideo-eat" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Shell integration""" start="00:02:47.080" video="mainVideo-eat" id="subtitle"]]</div>[[!template text="""And then there is shell integration.""" start="00:02:47.080" video="mainVideo-eat" id="subtitle"]]
+[[!template text="""For example, directory tracking.""" start="00:02:50.360" video="mainVideo-eat" id="subtitle"]]
+[[!template text="""Like, I can switch to some other directory""" start="00:02:52.400" video="mainVideo-eat" id="subtitle"]]
+[[!template text="""and Emacs follows the shell directory.""" start="00:03:07.480" video="mainVideo-eat" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Prompt annotation""" start="00:03:11.920" video="mainVideo-eat" id="subtitle"]]</div>[[!template text="""Then there is prompt annotation,""" start="00:03:11.920" video="mainVideo-eat" id="subtitle"]]
+[[!template text="""this column. These zeros indicate""" start="00:03:16.440" video="mainVideo-eat" id="subtitle"]]
+[[!template text="""that the command has executed successfully.""" start="00:03:20.320" video="mainVideo-eat" id="subtitle"]]
+[[!template text="""Then you can navigate between commands like this.""" start="00:03:27.080" video="mainVideo-eat" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Message passing""" start="00:03:37.680" video="mainVideo-eat" id="subtitle"]]</div>[[!template text="""There is message passing.""" start="00:03:37.680" video="mainVideo-eat" id="subtitle"]]
+[[!template text="""By message passing, I mean sending something""" start="00:03:39.400" video="mainVideo-eat" id="subtitle"]]
+[[!template text="""from the terminal to the host Emacs.""" start="00:03:44.120" video="mainVideo-eat" id="subtitle"]]
+[[!template text="""By host Emacs, I mean Emacs running the terminal.""" start="00:03:46.960" video="mainVideo-eat" id="subtitle"]]
+[[!template text="""For example I can say &quot;hi&quot; and it's showing &quot;hi&quot;""" start="00:03:52.120" video="mainVideo-eat" id="subtitle"]]
+[[!template text="""in this echo area of my Emacs.""" start="00:03:57.440" video="mainVideo-eat" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Shell integration""" start="00:04:03.520" video="mainVideo-eat" id="subtitle"]]</div>[[!template text="""Then let's show you the killer feature of Eat,""" start="00:04:03.520" video="mainVideo-eat" id="subtitle"]]
+[[!template text="""Eat's shell integration.""" start="00:04:08.680" video="mainVideo-eat" id="subtitle"]]
+[[!template text="""You can run any program in it. For example: top, btop,""" start="00:04:20.240" video="mainVideo-eat" id="subtitle"]]
+[[!template text="""and obviously Emacs itself.""" start="00:04:37.840" video="mainVideo-eat" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Input modes""" start="00:04:52.160" video="mainVideo-eat" id="subtitle"]]</div>[[!template text="""So let's discuss how to use Eat. There are four input modes.""" start="00:04:52.160" video="mainVideo-eat" id="subtitle"]]
+[[!template text="""The first one is semi-char mode. That is the default mode.""" start="00:05:03.160" video="mainVideo-eat" id="subtitle"]]
+[[!template text="""This is like vterm. All keys are the same to your terminal""" start="00:05:07.320" video="mainVideo-eat" id="subtitle"]]
+[[!template text="""except these keys: C-c, C-x, C-g, M-x, etc.""" start="00:05:10.920" video="mainVideo-eat" id="subtitle"]]
+[[!template text="""And then there is char-mode, where all keys""" start="00:05:17.880" video="mainVideo-eat" id="subtitle"]]
+[[!template text="""are same to your terminal, except this M-RET key""" start="00:05:20.600" video="mainVideo-eat" id="subtitle"]]
+[[!template text="""which takes you back to the semi-char mode.""" start="00:05:26.920" video="mainVideo-eat" id="subtitle"]]
+[[!template text="""Then there is Emacs mode where you can select""" start="00:05:29.680" video="mainVideo-eat" id="subtitle"]]
+[[!template text="""and copy from the terminal buffer.""" start="00:05:34.560" video="mainVideo-eat" id="subtitle"]]
+[[!template text="""And finally, there is line mode.""" start="00:05:39.720" video="mainVideo-eat" id="subtitle"]]
+[[!template text="""You can use it to use your terminal like a comint buffer.""" start="00:05:42.680" video="mainVideo-eat" id="subtitle"]]
+[[!template text="""All these input modes are available in both Eat""" start="00:05:49.200" video="mainVideo-eat" id="subtitle"]]
+[[!template text="""and eat-eshell mode, except this line mode--""" start="00:05:56.000" video="mainVideo-eat" id="subtitle"]]
+[[!template text="""it's only available on Eat.""" start="00:06:05.880" video="mainVideo-eat" id="subtitle"]]
+[[!template text="""By &quot;on Eat&quot;, I mean the terminal you get""" start="00:06:10.440" video="mainVideo-eat" id="subtitle"]]
+[[!template text="""by this eat command. By eshell, I mean""" start="00:06:13.960" video="mainVideo-eat" id="subtitle"]]
+[[!template text="""when eat-eshell integration is enabled""" start="00:06:20.160" video="mainVideo-eat" id="subtitle"]]
+[[!template text="""inside the eshell buffer.""" start="00:06:23.145" video="mainVideo-eat" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Documentation""" start="00:06:33.760" video="mainVideo-eat" id="subtitle"]]</div>[[!template text="""There is an info manual,""" start="00:06:33.760" video="mainVideo-eat" id="subtitle"]]
+[[!template text="""And also the README is quite informative""" start="00:06:36.720" video="mainVideo-eat" id="subtitle"]]
+[[!template text="""for you to get started.""" start="00:06:51.600" video="mainVideo-eat" id="subtitle"]]
+[[!template text="""If you hit any problem,""" start="00:06:55.000" video="mainVideo-eat" id="subtitle"]]
+[[!template text="""there is a dedicated chapter for debugging that,""" start="00:07:13.520" video="mainVideo-eat" id="subtitle"]]
+[[!template text="""a common problems chapter.""" start="00:07:22.960" video="mainVideo-eat" id="subtitle"]]
+[[!template text="""If your problem is still not fixed,""" start="00:07:26.120" video="mainVideo-eat" id="subtitle"]]
+[[!template text="""please report it to me.""" start="00:07:28.000" video="mainVideo-eat" id="subtitle"]]
+[[!template text="""This helps me improve it for everyone.""" start="00:07:29.520" video="mainVideo-eat" id="subtitle"]]
+[[!template text="""When you report, please read this chapter""" start="00:07:36.120" video="mainVideo-eat" id="subtitle"]]
+[[!template text="""so that you can make a better bug report.""" start="00:07:40.360" video="mainVideo-eat" id="subtitle"]]
+[[!template text="""I am really looking forward to how people use it""" start="00:07:53.160" video="mainVideo-eat" id="subtitle"]]
+[[!template text="""in their workflow.""" start="00:07:57.640" video="mainVideo-eat" id="subtitle"]]
+[[!template text="""I am excited about that.""" start="00:07:59.080" video="mainVideo-eat" id="subtitle"]]
+[[!template text="""Hopefully you enjoyed my talk. That was all.""" start="00:08:03.480" video="mainVideo-eat" id="subtitle"]]
+[[!template text="""Enjoy EmacsConf. Goodbye.""" start="00:08:10.760" video="mainVideo-eat" id="subtitle"]]
+
+</div>Questions or comments? Please e-mail [akib@disroot.org](mailto:akib@disroot.org?subject=Comment%20for%20EmacsConf%202023%20eat%3A%20Eat%20and%20Eat%20powered%20Eshell%2C%20fast%20featureful%20terminal%20inside%20Emacs)
<!-- End of emacsconf-publish-after-page -->
diff --git a/2023/info/eat-before.md b/2023/info/eat-before.md
index f1f6f49a..daab0281 100644
--- a/2023/info/eat-before.md
+++ b/2023/info/eat-before.md
@@ -1,12 +1,12 @@
<!-- Automatically generated by emacsconf-publish-before-page -->
[[!toc ]]
-Format: 10-min talk followed by live web conference Q&A
-Discuss on IRC: [#emacsconf](https://chat.emacsconf.org/?join=emacsconf)
-Status: Waiting for video from speaker
+Format: 9-min talk ; Q&A: Etherpad
+Status: Q&A to be extracted from the room recordings
+<div class="vid mainVideo"><video controls preload="none" id="mainVideo-eat"><source src="https://media.emacsconf.org/2023/emacsconf-2023-eat--eat-and-eat-powered-eshell-fast-featureful-terminal-inside-emacs--akib-azmain-turja--main.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2023/captions/emacsconf-2023-eat--eat-and-eat-powered-eshell-fast-featureful-terminal-inside-emacs--akib-azmain-turja--main.vtt" default />"""<p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video><div></div>Duration: 08:13 minutes<div class="files resources"><ul><li><a href="https://pad.emacsconf.org/2023-eat">Open Etherpad</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-eat--eat-and-eat-powered-eshell-fast-featureful-terminal-inside-emacs--akib-azmain-turja--intro.vtt">Download --intro.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-eat--eat-and-eat-powered-eshell-fast-featureful-terminal-inside-emacs--akib-azmain-turja--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-eat--eat-and-eat-powered-eshell-fast-featureful-terminal-inside-emacs--akib-azmain-turja--main.opus">Download --main.opus</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-eat--eat-and-eat-powered-eshell-fast-featureful-terminal-inside-emacs--akib-azmain-turja--main.vtt">Download --main.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-eat--eat-and-eat-powered-eshell-fast-featureful-terminal-inside-emacs--akib-azmain-turja--main.webm">Download --main.webm (39MB)</a></li><li><a href="https://toobnix.org/w/t4pPDtbXiZdHHEyWJVUtNs">View on Toobnix</a></li><li><a href="https://www.youtube.com/watch?v=KQ5Jt-63G9U">View on Youtube</a></li></ul></div></div>
# Description
<!-- End of emacsconf-publish-before-page --> \ No newline at end of file
diff --git a/2023/info/eat-nav.md b/2023/info/eat-nav.md
index 13e11281..535ff9da 100644
--- a/2023/info/eat-nav.md
+++ b/2023/info/eat-nav.md
@@ -1,7 +1,7 @@
<div class="talk-nav">
Back to the [[talks]]
-Previous by track: <a href="/2023/talks/cubing">Speedcubing in Emacs</a>
-Next by track: <a href="/2023/talks/emms">Emacs MultiMedia System (EMMS)</a>
-Track: <span class="sched-track General">General</span>
+Previous by track: <a href="/2023/talks/parallel">Parallel text replacement</a>
+Next by track: <a href="/2023/talks/poltys">The browser in a buffer</a>
+Track: <span class="sched-track General">General</span> - <strong><a href="https://emacsconf.org/2023/watch/gen">Watch</a></strong>
</div>
diff --git a/2023/info/emacsconf-after.md b/2023/info/emacsconf-after.md
index 3a5535ff..bc5d9066 100644
--- a/2023/info/emacsconf-after.md
+++ b/2023/info/emacsconf-after.md
@@ -1,7 +1,3134 @@
<!-- Automatically generated by emacsconf-publish-after-page -->
-Questions or comments? Please e-mail [sacha@sachachua.com](mailto:sacha@sachachua.com?subject=Comment%20for%20EmacsConf%202022%20emacsconf%3A%20EmacsConf.org%3A%20How%20we%20use%20Org%20Mode%20and%20TRAMP%20to%20organize%20and%20run%20a%20multi-track%20conference)
+<div class="transcript transcript-mainVideo"><a name="emacsconf-mainVideo-transcript"></a><h1>Transcript</h1>
+
+
+<div class="transcript-heading">[[!template new="1" text="""Intro""" start="00:00:00.000" video="mainVideo-emacsconf" id="subtitle"]]</div>[[!template text="""Hi, I'm Sacha Chua. This presentation is a quick tour""" start="00:00:00.000" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""of some of the things we do to run EmacsConf.""" start="00:00:04.840" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""Since 2019, we've run it as an entirely online conference,""" start="00:00:07.960" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""and we do as much of the organization as possible""" start="00:00:12.240" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""within Emacs itself.""" start="00:00:14.700" video="mainVideo-emacsconf" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Reasons""" start="00:00:16.580" video="mainVideo-emacsconf" id="subtitle"]]</div>[[!template text="""I have three reasons for making this presentation.""" start="00:00:16.580" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""The first is entirely selfish: I need to figure out""" start="00:00:19.760" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""all the stuff I built for last year's EmacsConf,""" start="00:00:22.760" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""since it was a bit of a crazy scramble.""" start="00:00:25.360" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""The second is that I want to show people""" start="00:00:28.080" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""the process of thinking about a complex project,""" start="00:00:30.160" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""looking for little things to automate in Emacs,""" start="00:00:33.240" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""and building things up from small pieces.""" start="00:00:35.880" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""Maybe you'll get some ideas""" start="00:00:38.440" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""and start building tools for yourself, too.""" start="00:00:39.800" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""The third is that you find any of these little tools interesting,""" start="00:00:42.760" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""I want to point you to blog posts and source code""" start="00:00:47.040" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""where you can find out more.""" start="00:00:49.440" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""That way, you don't need to try""" start="00:00:51.240" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""to read and understand everything quickly.""" start="00:00:52.560" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""You can find this presentation and other links""" start="00:00:55.400" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""on the talk page at emacsconf.org/2023/talks/emacsconf.""" start="00:00:57.720" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""There are a lot of different parts,""" start="00:01:04.440" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""so I'll try to use this map to help make sense of it all.""" start="00:01:06.320" video="mainVideo-emacsconf" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Information""" start="00:01:09.400" video="mainVideo-emacsconf" id="subtitle"]]</div>[[!template text="""There's so much information to work with,""" start="00:01:09.400" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""so it probably doesn't surprise you that we use Org Mode a lot.""" start="00:01:11.200" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""Most of the conference coordination happens over e-mail,""" start="00:01:14.920" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""which I can quickly search with notmuch.""" start="00:01:18.000" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""Some of the information is private,""" start="00:01:20.640" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""like emergency contact numbers.""" start="00:01:22.360" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""We store the talk information in a private Org file.""" start="00:01:24.520" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""I try to put as much as possible""" start="00:01:28.080" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""into our public organizers' notebook""" start="00:01:30.080" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""so that processes and decisions are documented.""" start="00:01:32.320" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""We need a public website.""" start="00:01:35.360" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""We use Ikiwiki to make the webpages""" start="00:01:36.920" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""because we can work with plain text files""" start="00:01:39.040" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""in a Git repository.""" start="00:01:41.120" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""We also make a few static HTML pages""" start="00:01:42.600" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""for things where Ikiwiki is a little awkward.""" start="00:01:45.400" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""We post announcements to mailing lists.""" start="00:01:48.120" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""We also receive submissions in a private mailing list""" start="00:01:50.520" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""so that a number of people can review them.""" start="00:01:53.160" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""We have a backstage area""" start="00:01:55.640" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""for sharing files with volunteers and speakers.""" start="00:01:56.840" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""We share those files publicly when the talk goes live.""" start="00:01:59.960" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""And there's all the other stuff that goes into running EmacsConf,""" start="00:02:03.120" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""like shell scripts and configuration files.""" start="00:02:06.320" video="mainVideo-emacsconf" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Properties""" start="00:02:09.160" video="mainVideo-emacsconf" id="subtitle"]]</div>[[!template text="""First, speakers propose a talk by sending an e-mail.""" start="00:02:09.160" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""We take the info from that e-mail and store it in Org properties""" start="00:02:12.320" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""so that we can work with it later.""" start="00:02:15.800" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""Every talk is identified with an ID,""" start="00:02:18.200" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""but since `:ID:` and `:CUSTOM_ID:` have special meanings for Org,""" start="00:02:20.600" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""I use `:SLUG:` as the keyword.""" start="00:02:24.120" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""Speakers' names go into the `:NAME:` property,""" start="00:02:25.600" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""and a short version goes into `:NAME_SHORT:`""" start="00:02:27.760" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""so that we can include that in a greeting.""" start="00:02:29.800" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""If people follow the template closely...""" start="00:02:32.200" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""...we can even automatically fill in the Org subtree for their talk.""" start="00:02:34.440" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""We can use regular expressions to recognize the text""" start="00:02:38.040" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""and extract the properties.""" start="00:02:40.800" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""Other properties need to be set by hand.""" start="00:02:42.880" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""I often mess things up when I retype them.""" start="00:02:45.360" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""To avoid typos, I have a function that sets a property""" start="00:02:47.560" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""based on the current region. I bind that to `C-c C-x p`.""" start="00:02:51.040" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""That makes it much easier to set properties""" start="00:02:56.040" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""that couldn't automatically be recognized.""" start="00:02:58.600" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""Sometimes it makes sense to dynamically generate a property""" start="00:03:01.240" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""and then edit it, like with filenames.""" start="00:03:04.520" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""We like to name all the talk files the same way,""" start="00:03:07.680" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""but sometimes special characters in talk titles or speaker names""" start="00:03:10.400" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""need a little tweaking. I'll put that in a `:FILE_PREFIX:` property""" start="00:03:14.440" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""so I can edit it.""" start="00:03:17.840" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""An Org property match can map over all the talk entries""" start="00:03:19.440" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""that don't have `:FILE_PREFIX:` defined.""" start="00:03:22.800" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""We can use that `:FILE_PREFIX:` to rename files from Emacs.""" start="00:03:25.440" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""With that property, we can then rename files using that prefix,""" start="00:03:29.200" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""some extra text, and the file extension.""" start="00:03:32.640" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""Sometimes it's easier to work with the data outside Emacs,""" start="00:03:35.640" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""like when I want to rename files with a shell script.""" start="00:03:38.880" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""If I export a subset of the data as JSON""" start="00:03:42.120" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""or JavaScript Object Notation, using `json-encode`...""" start="00:03:45.320" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""... then I can extract the data with `jq`""" start="00:03:48.960" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""and use it in shell scripts.""" start="00:03:51.120" video="mainVideo-emacsconf" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Timezones""" start="00:03:53.120" video="mainVideo-emacsconf" id="subtitle"]]</div>[[!template text="""Another example of semi-structured information""" start="00:03:53.120" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""is speaker availability.""" start="00:03:55.640" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""We have speakers from all over the world,""" start="00:03:57.300" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""so we try to schedule live Q&A sessions when they're around.""" start="00:03:59.620" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""That means working with timezones.""" start="00:04:03.020" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""Completion makes it much easier to set the timezone property""" start="00:04:05.020" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""without worrying about typos.""" start="00:04:08.440" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""We can take advantage of the timezone list from the tzc package,""" start="00:04:10.600" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""which works with Unix timezone definitions.""" start="00:04:14.360" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""Then we can convert times using Emacs.""" start="00:04:17.160" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""Using a standard format to encode the availability""" start="00:04:19.920" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""makes it easier to parse.""" start="00:04:22.640" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""I can use those availability constraints to report errors""" start="00:04:24.400" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""when I'm experimenting with the schedule.""" start="00:04:27.440" video="mainVideo-emacsconf" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Scheduling""" start="00:04:29.720" video="mainVideo-emacsconf" id="subtitle"]]</div>[[!template text="""Now that I have the availability information,""" start="00:04:29.720" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""I can think about scheduling.""" start="00:04:31.680" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""When we were planning EmacsConf 2022, the schedule was so full,""" start="00:04:33.941" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""I wanted to see if we could make it more manageable""" start="00:04:38.240" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""by splitting it up into two tracks.""" start="00:04:40.840" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""It was hard to think about times with just a table.""" start="00:04:43.040" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""I was able to turn the schedule information""" start="00:04:45.920" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""into an SVG to convince the other organizers""" start="00:04:48.200" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""to get on board with this crazy plan.""" start="00:04:51.280" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""And the nice thing about SVGs is that""" start="00:04:53.360" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""they can even be clickable on the wiki.""" start="00:04:54.960" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""Being able to quickly make SVGs of different schedules""" start="00:04:57.520" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""also helped me test scheduling ideas and think out loud.""" start="00:05:00.640" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""I could change the time between talks, the order of the talks,""" start="00:05:04.200" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""and even what tracks the talks were in.""" start="00:05:06.880" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""This was helpful when I needed to include""" start="00:05:08.940" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""some late submissions or availability changes""" start="00:05:10.720" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""and I wanted to ask speakers what they thought.""" start="00:05:13.240" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""They could see the different schedule options themselves.""" start="00:05:15.600" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""It's really nice to have Emacs Lisp support for working with SVGs.""" start="00:05:18.800" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""I also love how I can have an Emacs Lisp block""" start="00:05:22.680" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""in an Org Mode document that updates an SVG""" start="00:05:25.400" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""that I can view right there in my text editor.""" start="00:05:28.600" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""Setting the timezone lets me automatically translate times""" start="00:05:32.000" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""to the speaker's local timezone when I e-mail them.""" start="00:05:34.800" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""That's mostly a matter of using `format-time-string` with a timezone.""" start="00:05:37.820" video="mainVideo-emacsconf" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Templates""" start="00:05:41.780" video="mainVideo-emacsconf" id="subtitle"]]</div>[[!template text="""There's a lot of text to work with,""" start="00:05:41.780" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""which means templates are super handy.""" start="00:05:43.160" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""There are a number of templating functions for Emacs Lisp,""" start="00:05:45.700" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""like the built-in `tempo.el` or `s-lex-format` from `s.el`.""" start="00:05:48.120" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""I ended up writing something""" start="00:05:52.960" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""that works with property lists (plists) instead,""" start="00:05:54.440" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""since we use plists all over the emacsconf-el library.""" start="00:05:58.020" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""All it does is replace `${variable}`""" start="00:06:02.200" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""with the value from a property list.""" start="00:06:04.000" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""I use this mostly because I have a hard time""" start="00:06:05.520" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""keeping track of which `%s` is which when I use `format`,""" start="00:06:07.560" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""and it's hard to get an overall view if I just use `concat`.""" start="00:06:11.080" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""The code looks for the properties and replaces them with the values.""" start="00:06:14.300" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""I just find it a little easier to think about sometimes.""" start="00:06:17.600" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""Getting all the information is just a matter of going over""" start="00:06:21.300" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""all the talk entries using `org-map-entries`.""" start="00:06:24.080" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""This builds the talk info by running a bunch of functions.""" start="00:06:27.400" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""Some functions get the information from the Org file.""" start="00:06:30.700" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""Other functions use the info already collected.""" start="00:06:33.820" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""This can take a while to do again and again.""" start="00:06:36.960" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""It's useful to `memoize` this function""" start="00:06:39.260" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""when I know I'll be using it a lot,""" start="00:06:41.740" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""like when I export the organizers notebook.""" start="00:06:43.500" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""Memoize caches recent values.""" start="00:06:45.960" video="mainVideo-emacsconf" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Wiki""" start="00:06:48.400" video="mainVideo-emacsconf" id="subtitle"]]</div>[[!template text="""We combine this templating function""" start="00:06:48.400" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""with the talk information""" start="00:06:50.240" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""to fill in the conference wiki,""" start="00:06:51.480" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""since that's a matter of writing templated strings to files.""" start="00:06:53.440" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""The talk pages are generated once""" start="00:06:56.480" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""and then left alone for manual editing,""" start="00:06:58.280" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""while the navigation is regenerated""" start="00:07:00.280" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""every time we change the details.""" start="00:07:02.400" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""Here are some examples""" start="00:07:04.660" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""of how we fill in the conference wiki.""" start="00:07:05.800" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""We put in the format of the talk, how Q&A works,""" start="00:07:07.920" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""and what the status is.""" start="00:07:10.960" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""Once the talk is live, we include the video""" start="00:07:12.320" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""and the links to the files, too.""" start="00:07:14.960" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""The code is a little bit long,""" start="00:07:17.080" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""but the important part is that""" start="00:07:18.720" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""we fill in a plist with the values we calculate,""" start="00:07:20.080" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""and then we can use `emacsconf-replace-plist-in-string`""" start="00:07:22.880" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""to put that all together.""" start="00:07:26.380" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""The schedule is a little more complicated.""" start="00:07:28.020" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""I wrote an Ikiwiki directive""" start="00:07:30.280" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""so that the markup is more manageable,""" start="00:07:32.080" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""and the Emacs Lisp function uses that.""" start="00:07:34.020" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""The Ikiwiki directive takes all the data and turns it into HTML...""" start="00:07:36.520" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""...so we can use Emacs Lisp to iterate over""" start="00:07:40.620" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""a slightly smaller property list""" start="00:07:42.960" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""and put them into the format Ikiwiki expects.""" start="00:07:44.820" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""It's nice to be able to navigate between talks""" start="00:07:47.780" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""without going back to the schedule page each time.""" start="00:07:50.080" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""This is handled by keeping two extra copies of the list:""" start="00:07:52.840" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""one with the first talk popped off,""" start="00:07:55.580" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""and one with an extra element added to the beginning.""" start="00:07:57.560" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""Then we can use the heads of those lists""" start="00:08:00.360" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""for next/previous links.""" start="00:08:02.440" video="mainVideo-emacsconf" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Etherpad""" start="00:08:04.380" video="mainVideo-emacsconf" id="subtitle"]]</div>[[!template text="""Links to the next talks are also handy""" start="00:08:04.380" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""on the collaborative Etherpad documents""" start="00:08:06.680" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""that we use for collecting questions, answers, and notes""" start="00:08:08.640" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""during each talk.""" start="00:08:12.040" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""Etherpad has an API...""" start="00:08:12.840" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""...so I can start the pads off with a template""" start="00:08:15.300" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""before the conference.""" start="00:08:17.320" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""I don't want to accidentally overwrite a pad""" start="00:08:18.940" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""that has been manually edited.""" start="00:08:21.240" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""We can save the timestamp of the last modification""" start="00:08:22.940" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""and then compare it before overwriting.""" start="00:08:25.720" video="mainVideo-emacsconf" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""E-mail""" start="00:08:28.200" video="mainVideo-emacsconf" id="subtitle"]]</div>[[!template text="""Templates are also very handy when it comes to e-mail.""" start="00:08:28.200" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""Sometimes we send e-mails one at a time,""" start="00:08:31.240" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""like when we let a speaker know""" start="00:08:33.600" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""that we've received their proposal.""" start="00:08:35.200" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""That's mostly a matter of plugging the talk's properties""" start="00:08:36.880" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""into the right places in the template.""" start="00:08:39.560" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""Sometimes we send e-mails to lots of speakers at the same time,""" start="00:08:41.560" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""like when we send them instructions for uploading their files.""" start="00:08:45.020" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""Instead of sending one e-mail and Bcc-ing everyone,""" start="00:08:48.300" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""or sending people multiple e-mails""" start="00:08:51.620" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""because they have multiple talks,""" start="00:08:53.480" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""I like to draft these as individual e-mails""" start="00:08:55.140" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""to each speaker (or group of speakers,""" start="00:08:57.560" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""if more than one person is associated with a talk).""" start="00:08:59.800" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""That gives me an opportunity to personalize it further.""" start="00:09:02.600" video="mainVideo-emacsconf" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""BigBlueButton web conferences""" start="00:09:05.920" video="mainVideo-emacsconf" id="subtitle"]]</div>[[!template text="""Many speakers answer questions live""" start="00:09:05.920" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""in BigBlueButton web conference rooms.""" start="00:09:08.120" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""Setting up one room per group of speakers""" start="00:09:10.440" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""makes it easy to give the speakers the details""" start="00:09:12.640" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""and associate the recorded video with the talk afterwards.""" start="00:09:15.400" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""For EmacsConf 2023,""" start="00:09:18.720" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""I used Spookfox to control Mozilla Firefox from Emacs""" start="00:09:20.600" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""so that I could automate creating the rooms""" start="00:09:25.080" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""and adding the URLs to the talk properties in my Org file.""" start="00:09:27.480" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""Then I can use mail merge to send each speaker""" start="00:09:30.957" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""the check-in instructions for their specific room.""" start="00:09:33.960" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""Some speakers will take questions by e-mail""" start="00:09:36.900" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""after the conference instead of attending live,""" start="00:09:39.140" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""so we send them shorter instructions""" start="00:09:41.620" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""just in case they want to drop by.""" start="00:09:43.360" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""[Live Q&A sessions]: After the first rush of questions,""" start="00:09:45.540" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""we can open it up for other people to join.""" start="00:09:47.800" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""This is handled by changing the public page""" start="00:09:50.580" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""from one that just refreshes in a loop""" start="00:09:53.040" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""to one that redirects to the actual web conference room.""" start="00:09:55.120" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""Just in case, we also""" start="00:09:58.821" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""generate static copies of those redirects""" start="00:10:00.080" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""so that we can copy them if needed.""" start="00:10:02.160" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""That way, I don't have to count on Emacs being able to""" start="00:10:04.300" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""publish them over TRAMP.""" start="00:10:06.680" video="mainVideo-emacsconf" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Shortcuts""" start="00:10:08.121" video="mainVideo-emacsconf" id="subtitle"]]</div>[[!template text="""During the conference, I'm often jumping from talk to talk.""" start="00:10:08.121" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""Instead of going to the Org file""" start="00:10:11.660" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""and then searching for the talk,""" start="00:10:13.200" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""I've made a little Hydra with keyboard shortcuts.""" start="00:10:14.520" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""One of these shortcuts lets me""" start="00:10:17.240" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""jump to a talk with completion""" start="00:10:19.080" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""so that I can just type in part of the talk ID,""" start="00:10:20.960" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""title, or speaker name.""" start="00:10:24.260" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""I've also defined some Embark actions""" start="00:10:26.400" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""so that I can act on a talk right from the completion menu.""" start="00:10:28.680" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""For example, I might want to jump to the wiki page""" start="00:10:32.080" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""or e-mail the speaker.""" start="00:10:35.080" video="mainVideo-emacsconf" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Logbook""" start="00:10:36.700" video="mainVideo-emacsconf" id="subtitle"]]</div>[[!template text="""I can also add notes to a talk while looking at an email,""" start="00:10:36.700" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""like when a speaker lets me know""" start="00:10:40.100" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""that their video will be late.""" start="00:10:41.640" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""Making it easy to add a note turns Emacs into""" start="00:10:43.280" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""a very basic contact relationship management system, or CRM.""" start="00:10:45.800" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""The way this works is that we have a function""" start="00:10:49.960" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""that lists all the email addresses associated with a talk.""" start="00:10:52.440" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""We can then map that over the list of talks,""" start="00:10:55.460" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""look up the author of the current email,""" start="00:10:57.920" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""prompt the user for the talk to add the note to, and add the note.""" start="00:10:59.960" video="mainVideo-emacsconf" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Captions""" start="00:11:03.680" video="mainVideo-emacsconf" id="subtitle"]]</div>[[!template text="""On to captions.""" start="00:11:03.680" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""We've been doing captions for the last couple of years,""" start="00:11:04.680" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""and now we have a small army of volunteer captioners.""" start="00:11:07.240" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""They get early access to the recorded talks""" start="00:11:10.420" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""and fix up misrecognized words, format keyboard shortcuts""" start="00:11:12.680" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""to follow Emacs conventions, spell names correctly,""" start="00:11:16.160" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""and do all sorts of other wonderful things.""" start="00:11:19.580" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""One of our evil plans with EmacsConf""" start="00:11:21.840" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""is to get cool stuff out of people's heads into videos""" start="00:11:24.400" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""and also make captions so that those videos can be searched.""" start="00:11:28.360" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""To make that possible, we first need a backstage area""" start="00:11:32.040" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""where volunteers can get the files.""" start="00:11:35.000" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""This is just a simple password-protected directory""" start="00:11:36.920" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""with a static HTML page that lists the talks by status""" start="00:11:39.840" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""and shows the files related to each talk.""" start="00:11:43.740" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""As a talk moves through the process, I update its TODO state""" start="00:11:46.380" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""and republish this index.""" start="00:11:49.900" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""Talks that are ready to be captioned show up in that section,""" start="00:11:51.360" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""and volunteers can call dibs on the talk they're interested in.""" start="00:11:54.520" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""That's all done with a function that formats the information""" start="00:11:58.180" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""and uses TRAMP to save the file directly to the server.""" start="00:12:00.980" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""You can find more details on our captioning process""" start="00:12:04.320" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""at emacsconf.org/captioning.""" start="00:12:06.680" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""I like using subed to edit subtitles within Emacs.""" start="00:12:09.040" video="mainVideo-emacsconf" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Crontabs and playing the talks""" start="00:12:13.220" video="mainVideo-emacsconf" id="subtitle"]]</div>[[!template text="""Let's talk about actually playing the talks.""" start="00:12:13.220" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""For EmacsConf 2022, we tried using Emacs timers""" start="00:12:16.060" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""to run the talks.""" start="00:12:19.560" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""It turns out that you can't call TRAMP from a timer""" start="00:12:20.940" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""when you're already using TRAMP from another timer""" start="00:12:24.080" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""at the same time.""" start="00:12:26.720" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""I thought about just tweaking the schedule""" start="00:12:27.800" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""so that we always start things at different times,""" start="00:12:29.720" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""but I figured there's probably a more elegant way to do this.""" start="00:12:31.800" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""This year, I'm planning to experiment with using cron""" start="00:12:35.120" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""to start talks on autopilot.""" start="00:12:37.520" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""The shell scripts will take care of playing the videos...""" start="00:12:39.600" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""... figuring out the appropriate Q&A...""" start="00:12:42.480" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""... and joining the web conference if needed.""" start="00:12:44.840" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""We just need to format the information...""" start="00:12:47.580" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""...and install it as the track's crontab.""" start="00:12:49.600" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""It's useful to be able to switch tracks""" start="00:12:52.220" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""to manual mode independently,""" start="00:12:54.080" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""just in case things go haywire.""" start="00:12:55.880" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""Then we can start everything manually.""" start="00:12:57.900" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""I can also manually update a talk's status,""" start="00:13:00.120" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""like when the host tells me that it's okay to open up the Q&A.""" start="00:13:02.800" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""The shell scripts we run from the crontab""" start="00:13:06.520" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""can also update the talk status themselves.""" start="00:13:08.720" video="mainVideo-emacsconf" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Transitions""" start="00:13:11.280" video="mainVideo-emacsconf" id="subtitle"]]</div>[[!template text="""Then a bunch of things automatically happen based on""" start="00:13:11.280" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""the talk status changes.""" start="00:13:14.320" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""This uses `org-after-todo-state-change-hook`.""" start="00:13:15.600" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""We get the talk information""" start="00:13:18.960" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""and pass it to a list of functions.""" start="00:13:20.360" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""Internet Relay Chat or IRC is an easy way for people""" start="00:13:22.520" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""to join the conversation around EmacsConf.""" start="00:13:26.280" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""We announce a talk whenever it changes state.""" start="00:13:29.140" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""For example, when a talk starts,""" start="00:13:31.800" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""we post the URLs to the talk webpage""" start="00:13:33.600" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""and the Etherpad for questions. We change the topic as well,""" start="00:13:36.040" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""so anyone can see the current talk's information""" start="00:13:39.440" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""even if they're a little late.""" start="00:13:41.880" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""This is easy to do with a little bit of Emacs Lisp""" start="00:13:43.180" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""because (of course!) Emacs has an IRC client.""" start="00:13:45.800" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""In fact, it has several.""" start="00:13:48.520" video="mainVideo-emacsconf" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Wrapping up""" start="00:13:49.880" video="mainVideo-emacsconf" id="subtitle"]]</div>[[!template text="""It seems like a lot of automation and Emacs Lisp,""" start="00:13:49.880" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""but really, all of this was just built up little by little.""" start="00:13:53.140" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""And tinkering with this is *fun*, you know?""" start="00:13:56.900" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""It's like always being able to ask,""" start="00:13:59.280" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""&quot;Hey, wouldn't it be cool if...&quot;""" start="00:14:01.260" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""and then actually being able to go and do it.""" start="00:14:03.301" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""Sometimes it feels like EmacsConf is an excuse""" start="00:14:05.280" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""for me to play with Emacs.""" start="00:14:08.000" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""It's pretty amazing what you can do""" start="00:14:10.200" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""by combining a bunch of pieces.""" start="00:14:12.000" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""A way to store slightly-structured information.""" start="00:14:13.800" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""A way to get it out again. Templates.""" start="00:14:16.720" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""TRAMP, for working with remote files""" start="00:14:18.880" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""and running remote commands.""" start="00:14:20.680" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""A way to talk to a web browser.""" start="00:14:21.920" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""A way to work with SVGs.""" start="00:14:23.840" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""An email client. A chat client.""" start="00:14:25.400" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""You can smoosh them all together""" start="00:14:27.760" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""in a way that you couldn't if they were all separate things.""" start="00:14:29.640" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""The code is in the emacsconf-el repository.""" start="00:14:32.700" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""It's a bit of a tangle because it's accumulating organically""" start="00:14:36.280" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""and I haven't really had the brainspace""" start="00:14:39.120" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""to step back and clean it up.""" start="00:14:40.880" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""But if you spotted anything interesting in this presentation,""" start="00:14:42.580" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""you can go check it out and see what you can scavenge.""" start="00:14:45.920" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""The link and this presentation are available""" start="00:14:48.620" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""from this talk's webpage at emacsconf.org/2023/talks/emacsconf .""" start="00:14:51.000" video="mainVideo-emacsconf" id="subtitle"]]
+[[!template text="""Let's figure out how to make Emacsconf even awesomer next year!""" start="00:14:59.120" video="mainVideo-emacsconf" id="subtitle"]]
+
+</div>
+
+Captioner: sachac
+
+<div class="transcript transcript-qanda"><a name="emacsconf-qanda-transcript"></a><h1>Q&A transcript (unedited)</h1>
+
+[[!template text="""[Speaker 0]: All right. I have unmuted.""" start="00:00:53.489" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""It's been a while since I've actually done an""" start="00:00:59.860" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""actual presentation. Hi.""" start="00:01:05.360" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""Okay. I'm going to deafen myself and mumble""" start="00:01:08.979" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""so that I don't get distracted by backstage""" start="00:01:12.540" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""chatter. Hello, everyone! Okay,""" start="00:01:16.400" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""so where are we? Questions,""" start="00:01:17.980" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""questions, questions. Okay,""" start="00:01:20.800" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""how easy would it be for someone else to""" start="00:01:23.400" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""reuse the Emacs conf strips and config to do""" start="00:01:25.960" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""a conf of their own? Like everything else,""" start="00:01:29.380" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""I have no idea if things actually work until""" start="00:01:32.220" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""somebody does it for, you know,""" start="00:01:35.140" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""to get everything to run on a computer that""" start="00:01:37.500" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""isn't my computer and with assumptions that""" start="00:01:40.080" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""aren't my assumptions.""" start="00:01:40.640" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""So, I have no idea. But optimistically,""" start="00:01:42.840" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""I have put most of the EmacsConf things,""" start="00:01:46.000" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""like EmacsConf, the name of the conference""" start="00:01:48.760" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""and things like that in variables.""" start="00:01:50.120" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""So if theoretically someone were to run an""" start="00:01:53.160" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""org mode conference or something like that,""" start="00:01:56.040" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""it might be possible to reuse all this code.""" start="00:01:58.440" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""We'll see. I don't know if it's going to be""" start="00:02:01.960" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""easy. I don't even know if it's going to be""" start="00:02:03.480" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""possible, but it might be fun to try.""" start="00:02:04.760" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""What tools would I like to exist in Emacs""" start="00:02:09.840" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""land to help with preparing the conference""" start="00:02:11.720" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""next time? Well, I've already been thinking""" start="00:02:15.880" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""about adjustments that I want to make to""" start="00:02:18.420" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""sub-eds so that the audio synchronization""" start="00:02:21.220" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""issues that we sometimes have with FFmpeg can""" start="00:02:24.340" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""be something that I can flag and maybe fix""" start="00:02:26.600" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""even while I'm watching a video.""" start="00:02:29.060" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""But also as much as possible,""" start="00:02:32.960" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""I like to leave the actual FFMPEG audio and""" start="00:02:36.820" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""visual tinkering with to other people like""" start="00:02:39.220" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""Leo, whose patience is slightly more than""" start="00:02:41.320" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""mine, because audio is,""" start="00:02:44.680" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""I still don't have the patience to sit for""" start="00:02:47.080" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""it. You can tell I talk really,""" start="00:02:48.620" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""really quickly. I'm still trying to squeeze""" start="00:02:50.540" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""everything into however little focus time I""" start="00:02:53.000" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""actually have. So it would be kind of nice to""" start="00:02:56.140" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""use that. Emacs is already doing quite a ton""" start="00:03:00.820" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""and stuffing more multimedia processing and""" start="00:03:04.740" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""other fun things into it might be""" start="00:03:06.180" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""interesting. Who knows?""" start="00:03:07.000" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""Oh, the other thing that I would really love""" start="00:03:09.280" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""to have that people always ask for is a way""" start="00:03:12.280" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""from Emacs to interact with the Etherpad.""" start="00:03:15.360" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""The Etherpad API, it seems very granular.""" start="00:03:18.900" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""Like, you can set the HTML of a pad,""" start="00:03:21.120" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""but you can't actually just append stuff to""" start="00:03:22.920" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""it. And I was trying to get something that""" start="00:03:24.640" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""could take questions from IRC and""" start="00:03:26.820" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""automatically push them into the pad,""" start="00:03:28.480" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""even from an ERC bot or whatever,""" start="00:03:30.920" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""but no go. If someone were to figure out some""" start="00:03:34.400" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""CRDT thing where we can collaboratively edit""" start="00:03:38.860" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""the document, that I think is the number 1""" start="00:03:41.280" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""request that people always have around""" start="00:03:42.720" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""EmacsConf. That would be really cool to do""" start="00:03:46.560" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""more of the conference itself from within""" start="00:03:48.900" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""Emacs. I don't know if actually,""" start="00:03:53.240" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""well, we have an org file now that launches""" start="00:03:55.360" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""the MPV from Emacs. But if you want to have""" start="00:03:59.440" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""an ex-widget or something else watching the""" start="00:04:01.960" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""conference from within Emacs itself.""" start="00:04:03.740" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""I think that will also be really cool.""" start="00:04:05.640" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""Yes. And then other fun stuff.""" start="00:04:09.480" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""OK, how can speakers and viewers help make""" start="00:04:12.980" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""preparing for next year's Emacs Conf even""" start="00:04:15.280" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""more fun for the organizers?""" start="00:04:16.300" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""Well, I love it when not only do the speakers""" start="00:04:20.440" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""do all that work to prepare their talk,""" start="00:04:24.280" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""but lately people have actually even been""" start="00:04:27.620" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""volunteering to caption their own talks.""" start="00:04:29.780" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""And that's great because then they know the""" start="00:04:33.600" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""words that they use. And if I can show them""" start="00:04:36.000" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""the workflow that we have so that they can do""" start="00:04:39.140" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""it very efficiently, because there's all""" start="00:04:41.920" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""these wonderful things that I do now with""" start="00:04:44.620" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""Subweb Waveform and Aeneas for like the""" start="00:04:48.340" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""forced alignment so we can get timestamps""" start="00:04:49.900" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""from text and all these other fun things that""" start="00:04:53.100" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""make getting a transcript or editing the""" start="00:04:55.520" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""captions fun and easy.""" start="00:04:57.380" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""That makes it easier for not only speakers to""" start="00:05:00.780" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""contribute captions for their own talks,""" start="00:05:02.800" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""but also interested volunteers who,""" start="00:05:05.220" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""as mentioned, get early access to all the""" start="00:05:07.760" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""talks and can watch them at leisure.""" start="00:05:09.140" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""And it's, you know, nice prick there.""" start="00:05:12.540" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""Definitely should try that.""" start="00:05:13.700" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""I do have some sample videos of how we use""" start="00:05:19.400" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""subed. But of course, in the process of""" start="00:05:21.500" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""shoving like 30 or 40 talks,""" start="00:05:24.280" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""maybe 30 talks through it for EmacsConf,""" start="00:05:26.600" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""this is like the stress test season for""" start="00:05:29.440" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""subed, which is great,""" start="00:05:30.340" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""I ended up adding more features.""" start="00:05:31.880" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""So 1 of my big to-dos afterwards is I have to""" start="00:05:36.260" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""document the different workflows for things""" start="00:05:38.300" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""like, okay, you've got a script.""" start="00:05:40.260" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""You can use WDiff to get word diffs so you""" start="00:05:43.520" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""can take the subtitles and compare them with""" start="00:05:45.600" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""the original script and see where the""" start="00:05:47.540" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""misrecognized words are.""" start="00:05:48.880" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""And that's great. Or you can use SubWeb""" start="00:05:52.960" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""Waveform to start adjusting things.""" start="00:05:54.960" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""Or for example, if there's a synchronization""" start="00:05:56.820" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""issue, I can now middle click on a subtitle""" start="00:06:01.320" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""where I want the subtitle to actually start""" start="00:06:03.680" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""and then move all the subtitles to start at""" start="00:06:06.500" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""that point. So it's getting to be a really""" start="00:06:09.020" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""elaborate tool. And I definitely need to""" start="00:06:10.860" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""document that and stick all the blog post""" start="00:06:15.220" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""links into the readme so that people can find""" start="00:06:17.860" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""this in the future. So it's very,""" start="00:06:20.560" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""very nifty. And the reason why we do this is""" start="00:06:23.080" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""because, well, personally,""" start="00:06:24.720" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""I have a hard time sitting and watching""" start="00:06:26.820" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""videos. I like to be able to just jump to the""" start="00:06:28.940" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""interesting parts or watch it at 3 times""" start="00:06:31.540" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""speed, which MPV lets me do.""" start="00:06:33.400" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""And the text makes it a lot more searchable,""" start="00:06:36.160" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""which is fantastic. And also because,""" start="00:06:38.960" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""you know, if you've got all these interesting""" start="00:06:41.000" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""variable names and key bindings and whatever,""" start="00:06:44.220" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""and the automatic subtitles just don't do the""" start="00:06:47.360" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""right thing. So it's nice that people do the""" start="00:06:49.540" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""captioning. So, yeah, so that's 1 thing that""" start="00:06:53.360" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""people can help with. Captioning is always""" start="00:06:55.080" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""very interesting. And the other thing that""" start="00:06:57.160" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""people can do is take the inspiration that""" start="00:07:00.600" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""you get from EmacsConf and from the ideas""" start="00:07:02.860" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""that you have when you're working with Emacs,""" start="00:07:04.640" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""and suggest talks for next year's EmacsConf.""" start="00:07:07.280" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""And it doesn't have to be a super fancy,""" start="00:07:09.760" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""nobody else needs to go out and do a really""" start="00:07:13.740" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""professional-looking video.""" start="00:07:14.920" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""Even though Howard has set the bar this you""" start="00:07:17.480" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""know it's pretty high you don't have to do""" start="00:07:19.640" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""that kind of thing it can be just you in a""" start="00:07:22.540" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""screen or even just a screen and you talking""" start="00:07:24.860" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""about this cool thing that you learned and""" start="00:07:27.340" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""they could be a video or it could be a blog""" start="00:07:29.040" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""post it could be something else and that""" start="00:07:31.560" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""those those things are fantastic because they""" start="00:07:34.780" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""inspire people to see what's possible with""" start="00:07:36.960" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""Emacs. So that's another big thing that""" start="00:07:39.440" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""people can do to help.""" start="00:07:40.800" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""And then there's sharing the word about it.""" start="00:07:44.080" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""So if you saw something that you really like,""" start="00:07:46.360" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""if you write a blog post about it or a tweet""" start="00:07:48.760" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""or a toot or whatever else you want to do,""" start="00:07:51.220" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""you make a reaction video,""" start="00:07:52.480" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""that helps other people discover that stuff""" start="00:07:55.280" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""not just today, not just next week,""" start="00:07:57.800" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""but you know even later as they search for""" start="00:08:00.340" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""these words that as people search for ideas""" start="00:08:04.640" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""using words that are not necessarily the ones""" start="00:08:07.360" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""in the video, you describing things in other""" start="00:08:10.320" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""ways helps with the search engine""" start="00:08:11.980" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""optimization, you're not really,""" start="00:08:13.500" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""it's just people finding stuff,""" start="00:08:15.200" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""which is amazing. So yes,""" start="00:08:17.220" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""please write about the cool things that""" start="00:08:19.000" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""you've seen and what you'd like to tell other""" start="00:08:22.840" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""people about. Suggesting ideas for talks.""" start="00:08:25.920" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""Yes. Making talks. All sorts of wonderful""" start="00:08:30.040" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""things. OK. Could you elaborate on the""" start="00:08:35.220" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""workflow that goes on in your mind for when""" start="00:08:37.080" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""approaching these things?""" start="00:08:38.080" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""Do you start with an Emacs org solution right""" start="00:08:40.260" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""off the bat at this point when faced with a""" start="00:08:42.240" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""task? Are there some conscious steps involved""" start="00:08:44.059" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""from early ideas to automation of the kind""" start="00:08:46.200" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""you just showed? Mostly it starts with,""" start="00:08:48.740" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""okay, we got to do this thing.""" start="00:08:50.740" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""So I have this to-do. And sometimes,""" start="00:08:53.720" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""like in the week before the conference,""" start="00:08:55.860" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""I have to think, okay,""" start="00:08:57.440" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""is this a top priority thing that I can do""" start="00:09:00.740" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""before the conference,""" start="00:09:01.460" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""or is it something that I can,""" start="00:09:03.480" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""I, I, like we can still do the conference""" start="00:09:05.800" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""without doing so I have to just postpone it""" start="00:09:08.200" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""until afterwards? So some prioritization""" start="00:09:09.860" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""happens. But a lot of times it's like,""" start="00:09:12.160" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""okay, you know, like this,""" start="00:09:13.140" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""there's a thing that I need to do here.""" start="00:09:14.620" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""I don't know how to figure it out,""" start="00:09:15.920" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""let me start an org Babble block and start""" start="00:09:18.840" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""sketching out something,""" start="00:09:19.760" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""you know, custom function or whatever else,""" start="00:09:22.120" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""and then say okay, you know,""" start="00:09:23.980" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""hey, that looks kind of useful,""" start="00:09:25.380" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""let me see if I can generalize that,""" start="00:09:27.180" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""and then let me stick it into the library so""" start="00:09:29.440" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""that I can find it next year.""" start="00:09:30.820" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""And that's basically how it goes.""" start="00:09:33.200" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""It just goes, it just like,""" start="00:09:35.500" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""I have a thing that I need to do.""" start="00:09:37.540" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""If it's, if I'm going to do it more than""" start="00:09:40.080" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""once, or actually even if I'm going to do it,""" start="00:09:42.440" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""you know, once I tried to automate it just so""" start="00:09:44.640" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""that I can understand it and,""" start="00:09:46.000" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""and then I can, I can,""" start="00:09:47.700" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""I can squeeze it into like the 15 minutes I""" start="00:09:50.280" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""actually have and I can pause and I can pick""" start="00:09:54.140" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""it up again and the code is still there and""" start="00:09:56.240" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""my notes are still there?""" start="00:09:57.160" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""And then every little bit of the,""" start="00:10:00.600" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""every little step like that builds up.""" start="00:10:03.540" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""So I can write a short function today,""" start="00:10:05.740" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""and then tomorrow when the kid was asleep,""" start="00:10:07.680" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""I can write a little bit more of that.""" start="00:10:09.240" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""And so it just goes on from there.""" start="00:10:11.160" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""And then I just stuff that all in there.""" start="00:10:14.260" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""How well does this approach allow for other""" start="00:10:17.660" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""organisers to do individual customisations to""" start="00:10:19.960" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""their liking while still being able to""" start="00:10:21.500" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""collaborate effectively?""" start="00:10:22.120" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""We've actually split things up fairly neatly""" start="00:10:25.960" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""in the sense that for this year,""" start="00:10:28.020" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""for example, most everyone else was super""" start="00:10:30.620" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""busy, so I did all the heavy lifting up until""" start="00:10:34.400" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""people were available and then they jumped in""" start="00:10:37.420" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""with the audio normalization.""" start="00:10:38.240" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""Thank you very much, Leo,""" start="00:10:39.600" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""for doing all of that stuff and the hosting""" start="00:10:41.280" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""and all the other things.""" start="00:10:42.840" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""So I tend to do most of the Emacs list""" start="00:10:45.720" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""fiddling with and the shell scripting and""" start="00:10:48.080" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""stuff like that, aside from the FFmpeg""" start="00:10:49.960" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""incantations, which are too arcane for me to""" start="00:10:53.100" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""even think about. And then in the course of""" start="00:10:56.860" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""watching me deal with like,""" start="00:10:57.980" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""oh, no, this video is not playing.""" start="00:10:59.440" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""And then they see the commands that I'm""" start="00:11:01.080" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""using, like play and then,""" start="00:11:04.240" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""you know, play a world,""" start="00:11:05.740" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""which is the ideas of the talk that we were""" start="00:11:08.760" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""having a hard time with or MPD or whatever.""" start="00:11:10.440" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""Then the other organizers kind of just pick""" start="00:11:13.520" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""that up by osmosis, because We didn't even""" start="00:11:15.320" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""have time to do dry runs for training this""" start="00:11:17.160" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""year. So it's just there's not much""" start="00:11:20.540" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""collaboration in the sense that I'm just""" start="00:11:22.500" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""basically saying, OK, these are the scripts""" start="00:11:24.400" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""that I'm going to write for myself.""" start="00:11:25.760" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""And you all figure out how to work with that.""" start="00:11:28.980" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""What was the hardest problem you encountered""" start="00:11:34.780" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""in organizing or running the conference this""" start="00:11:37.040" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""year and how do you deal with it?""" start="00:11:38.540" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""Oh, the constant, constant problem with""" start="00:11:40.680" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""e-mails. There's so many amazing ideas.""" start="00:11:43.340" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""I want to fit into the time.""" start="00:11:45.660" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""And then afterwards, like,""" start="00:11:46.920" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""Sasha, do not mess with production the day""" start="00:11:49.740" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""before the conference.""" start="00:11:50.440" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""You're going to save that for after the""" start="00:11:52.480" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""conference, right? So that's the hardest""" start="00:11:54.440" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""part, is just saying, OK,""" start="00:11:56.140" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""yes, that's an idea. I'm going to put that in""" start="00:11:58.620" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""the inbox. We're going to maybe get to that""" start="00:12:01.400" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""next year. But right now,""" start="00:12:03.120" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""these are the things that I need to do in""" start="00:12:05.400" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""order to get the conference off the ground""" start="00:12:07.200" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""reasonably in a reasonable amount of time.""" start="00:12:14.820" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""So earlier in the conference,""" start="00:12:17.140" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""then I can be like, OK,""" start="00:12:19.240" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""what if we do this? What if we run everything""" start="00:12:21.900" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""off a crontab instead of using Emacs tramp""" start="00:12:24.360" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""timers? Wouldn't that be great?""" start="00:12:25.680" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""And then I can explore all those crazy ideas.""" start="00:12:28.380" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""But then as we get closer and closer to date,""" start="00:12:30.440" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""I'm like, okay, fine. I'm going to like just""" start="00:12:32.440" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""capture the idea and deal with it later.""" start="00:12:34.200" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""So that's really, really hard for me.""" start="00:12:36.080" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""Year to your growth in attendance and after""" start="00:12:39.520" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""the conference video watching.""" start="00:12:40.760" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""The growth, well, first thing,""" start="00:12:46.240" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""there is like absolute growth in the kind of""" start="00:12:51.110" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""the quantity of things that people are""" start="00:12:53.520" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""sharing. I have a blog post about this that""" start="00:12:56.820" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""talks about a number of minutes of talks,""" start="00:12:59.440" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""and it's going up. Last year,""" start="00:13:02.160" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""we did 2 tracks because I couldn't fit""" start="00:13:03.740" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""everything in 1 day. And this year,""" start="00:13:05.460" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""we did 2 tracks, but even then,""" start="00:13:07.000" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""everything was kind of squished,""" start="00:13:08.000" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""and I was trying to find space in the""" start="00:13:09.880" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""schedule. And if you make it so that next""" start="00:13:11.940" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""year, we have to figure out 3 tracks,""" start="00:13:13.500" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""I think We have another host now,""" start="00:13:15.760" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""so it might be doable,""" start="00:13:16.840" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""which is great. Who knows?""" start="00:13:19.540" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""We'll see. And the other interesting thing""" start="00:13:23.600" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""that I'm seeing in terms of growth is that""" start="00:13:25.320" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""people are starting to refer to the talks""" start="00:13:27.440" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""from previous conferences that inspired them.""" start="00:13:29.800" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""So the evil plan is working in that it is""" start="00:13:32.980" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""getting people to get cool stuff out of their""" start="00:13:35.000" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""heads and into videos that have like""" start="00:13:37.020" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""searchable transcripts and that people can""" start="00:13:39.560" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""refer to as for inspiration and for showing""" start="00:13:41.980" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""other people, hey, look,""" start="00:13:42.980" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""this is what it can do.""" start="00:13:44.060" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""So that is fantastic growth.""" start="00:13:46.360" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""The actual numbers, I'm intense to look at""" start="00:13:49.400" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""the number of simultaneous viewers.""" start="00:13:51.160" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""And every so often, it's kind of nice to go""" start="00:13:53.860" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""through the YouTube stats or whatever.""" start="00:13:55.960" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""But that's not so much as a,""" start="00:13:57.560" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""like, I don't really keep that in mind as""" start="00:14:01.120" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""much, just because as long as people are""" start="00:14:05.060" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""connecting to the ideas and getting stuff out""" start="00:14:07.660" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""there and being inspired to think around""" start="00:14:13.120" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""more, then it's doing the thing.""" start="00:14:16.220" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""Cognizant is working. So where are we now for""" start="00:14:21.300" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""questions? Ooh, I can actually,""" start="00:14:22.640" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""I have ERC here. I can find eventually.""" start="00:14:25.320" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""1 of my screens has Dev in it.""" start="00:14:28.200" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""Okay, here we are. What are the other""" start="00:14:30.780" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""questions? Probably, Probably an IRC.""" start="00:14:34.900" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""Where's IRC? Dove, dove,""" start="00:14:39.120" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""dove. I did try to record things more slowly,""" start="00:14:45.700" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""and I tried several times,""" start="00:14:47.200" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""but I really just speak very quickly when I""" start="00:14:49.920" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""get excited and Emacs is very fun so it is""" start="00:14:53.300" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""tough oh yes okay so 1 in once yes automated""" start="00:14:59.960" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""present workflows oh yeah okay so where are""" start="00:15:04.440" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""we now for time? Oh look,""" start="00:15:05.660" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""it's 4.30, should we do our closing remarks""" start="00:15:07.440" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""or like how are things going over in the""" start="00:15:09.280" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""other stream? I should find out.""" start="00:15:11.840" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""[Speaker 1]: Yeah, I've been keeping a close eye on the""" start="00:15:14.760" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""other 1, but yeah, I believe that-""" start="00:15:16.400" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""[Speaker 0]: Yay, look at that, good timing.""" start="00:15:19.800" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""Okay, I have managed to zoom through the""" start="00:15:22.880" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""questions and we can switch over to the""" start="00:15:26.660" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""closing remarks how do we do this yes okay""" start="00:15:31.240" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""okay we're gonna oh wait people okay people""" start="00:15:35.060" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""who wanted to ask questions how do you want""" start="00:15:37.580" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""to do this? Because there are a lot of people""" start="00:15:39.120" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""in this 1 here too. You want to go to the""" start="00:15:42.040" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""other 1? 0 no, they aren't done yet.""" start="00:15:48.820" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""Sorry, I forgot to turn on the con tab""" start="00:15:51.180" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""because of course I got excited.""" start="00:15:52.500" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""Okay, so Jacob is still answering questions,""" start="00:15:54.840" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""which means I get to still answer questions.""" start="00:15:56.940" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""Now I'll try to be quiet and let people in""" start="00:15:59.880" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""the BBB room speak up if we want to.""" start="00:16:01.720" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""Okay that means""" start="00:16:12.040" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""[Speaker 3]: are going to hear.""" start="00:16:13.585" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""[Speaker 1]: Some more""" start="00:16:13.715" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""[Speaker 2]: people in the chat ideas I had on the Emacs""" start="00:16:15.660" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""conferences you could have like a little""" start="00:16:17.500" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""Emacs starter config just for like the Emacs""" start="00:16:21.300" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""conference where you have emms playlist and""" start="00:16:26.720" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""IRC help cheer function to help get you into""" start="00:16:29.540" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""IRC into ERC and then the to-do states that I""" start="00:16:35.200" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""was talking about before.""" start="00:16:36.060" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""So you can say, I'm watching this 1,""" start="00:16:40.200" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""I want to re-watch this 1,""" start="00:16:41.320" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""but I'm going to skip it because I'm watching""" start="00:16:42.780" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""something else. I used the HyperBowl package""" start="00:16:52.820" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""to go straight to the web pages to all the""" start="00:16:55.680" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""either pads but you can also have some quick""" start="00:16:59.600" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""functions to go into a CRDT buffer hosted""" start="00:17:04.540" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""buffer, where all the org mode Etherpad""" start="00:17:07.400" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""documents would be. And then that would get""" start="00:17:14.220" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""everybody using Emacs,""" start="00:17:15.280" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""and then they could all be chatting with each""" start="00:17:17.680" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""other with CRDT, with controlling Emacs.""" start="00:17:23.480" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""I don't know how the sub stuff,""" start="00:17:25.440" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""I don't know if you can get the sub stuff in""" start="00:17:27.160" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""there working, but yeah,""" start="00:17:29.720" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""It could be a good way of getting it all""" start="00:17:32.900" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""wrapped up together. And also,""" start="00:17:34.920" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""Mkron, if you ever looked at that versus""" start="00:17:38.040" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""Kron, Mkron is configured in Elisp.""" start="00:17:40.800" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""Then you can also write some custom functions""" start="00:17:43.320" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""in the middle of your Kron.""" start="00:17:44.620" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""So maybe you could make some like conditional""" start="00:17:46.800" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""things where you can start or stop it.""" start="00:17:48.960" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""And like 1 of the differences is if your""" start="00:17:56.320" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""computer reboots, it can start up and say,""" start="00:17:58.860" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""oh, I'm supposed to run this cron job at this""" start="00:18:01.780" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""time and then just Do the correct thing""" start="00:18:04.960" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""rather than losing the state Randomly because""" start="00:18:08.100" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""your computer lost power""" start="00:18:10.440" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""[Speaker 0]: Thanks for those recommendations I will add""" start="00:18:15.700" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""mcron to my list of things to check out.""" start="00:18:17.640" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""And yeah, we finally remembered to publish""" start="00:18:23.640" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""all those schedules as org,""" start="00:18:25.160" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""and I decided to just spam all the time zones""" start="00:18:27.540" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""with them, which was fantastic.""" start="00:18:28.520" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""And other people have mentioned that this is""" start="00:18:30.480" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""useful. We get to figure out how to use this""" start="00:18:32.720" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""to teach people more about what you can do""" start="00:18:35.740" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""with org. As you mentioned,""" start="00:18:36.620" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""encouraging them to tag the stuff with things""" start="00:18:40.920" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""that they want to attend gives us the ability""" start="00:18:43.360" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""to set up an agenda view for them that has""" start="00:18:45.920" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""the talks that are tagged with those tags.""" start="00:18:47.840" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""[Speaker 3]: So I""" start="00:18:48.580" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""[Speaker 0]: was like, okay, let's,""" start="00:18:49.280" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""let's teach org mode and lisp in the process""" start="00:18:53.880" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""of doing things. Okay,""" start="00:18:58.120" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""there was a question about any chance of an""" start="00:19:00.860" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""in person EmacsConf again someday.""" start="00:19:02.720" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""And I was actually at the very first EMAX""" start="00:19:05.580" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""Conf, which was 2013 and organized in London""" start="00:19:11.040" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""to take advantage of the fact that I had a""" start="00:19:12.980" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""business shift there. It was fantastic being""" start="00:19:15.920" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""in a room with 100 other people who are all""" start="00:19:18.760" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""really interested in Emacs,""" start="00:19:19.960" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""but I'm not traveling like any time for the""" start="00:19:23.400" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""foreseeable future, so if other people are""" start="00:19:25.560" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""interested in organizing something like that,""" start="00:19:27.500" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""I am totally happy to spread the word.""" start="00:19:29.260" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""It doesn't fit with my current lifestyle,""" start="00:19:31.440" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""but it might fit somebody's.""" start="00:19:32.860" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""I don't know. We're still just here.""" start="00:19:37.080" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""And I like the virtual conference.""" start="00:19:38.800" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""I really like the fact that we can bring""" start="00:19:41.880" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""together people from all over the world.""" start="00:19:43.780" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""I can take a look at my schedule with all the""" start="00:19:46.720" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""time constraints. Okay,""" start="00:19:47.540" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""I need to put this person in the morning""" start="00:19:49.000" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""because they're in Australia and I need to""" start="00:19:50.720" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""put this person in the afternoon because""" start="00:19:52.160" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""they're from Vancouver or from somewhere else""" start="00:19:56.120" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""in the Pacific time zone.""" start="00:19:58.020" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""And it's just this breadth of people.""" start="00:20:01.420" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""But the other thing that I would love for""" start="00:20:04.140" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""people to start thinking about is if we could""" start="00:20:06.220" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""have a virtual conference in other time""" start="00:20:08.300" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""zones, so that's easier for people in Asia""" start="00:20:11.320" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""Pacific or Europe to attend.""" start="00:20:12.720" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""And as we're getting the hang of this,""" start="00:20:16.080" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""this crontab-based thing,""" start="00:20:17.840" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""I think we might almost be at the point where""" start="00:20:20.140" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""I can set it up to run even when I'm""" start="00:20:22.320" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""sleeping. And then other people can figure""" start="00:20:24.720" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""out, you know, the exception handling,""" start="00:20:26.120" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""oh, you know, this talk needs to be""" start="00:20:27.780" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""restarted. Okay, just play it again and scrub""" start="00:20:30.420" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""around to find the right part,""" start="00:20:31.800" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""which means we could have replays,""" start="00:20:34.500" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""or we can have like the Asia Pacific""" start="00:20:37.060" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""Alternate Event that we had the other time""" start="00:20:39.140" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""where some speakers came back online and did""" start="00:20:45.600" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""another Q&A session just for that kind of""" start="00:20:48.840" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""event. So those are other cool,""" start="00:20:51.360" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""fun things that would love to be,""" start="00:20:52.960" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""would be great. Satellite events,""" start="00:20:57.700" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""someone mentioned in the etherpad.""" start="00:20:59.480" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""Some people have been organizing these,""" start="00:21:03.280" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""which are great. Basically a bunch of people""" start="00:21:05.020" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""get together in a room or 2 rooms now because""" start="00:21:07.800" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""of the tracks and watch Emacs Conf together.""" start="00:21:10.320" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""So if you have a physical meetup or if you'd""" start="00:21:12.940" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""like to start 1, It's basically,""" start="00:21:15.360" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""you know, do this, maybe have stickers if you""" start="00:21:17.860" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""have stickers. You know,""" start="00:21:19.900" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""it's just have everyone come over and hang""" start="00:21:22.540" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""out and meet people. I don't know.""" start="00:21:24.440" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""It's a thing. Specifically how to do it,""" start="00:21:27.540" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""I have no idea how to organize these things.""" start="00:21:29.200" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""But Alain does. So talk to him.""" start="00:21:32.080" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""[Speaker 2]: Another way of adding multiple tracks is""" start="00:21:35.280" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""changing it to doing it like 2 times a year,""" start="00:21:37.640" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""in max confidence.""" start="00:21:39.760" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""[Speaker 0]: Yeah, yeah, people have mentioned something""" start="00:21:44.340" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""like that. Or the fact that org often has""" start="00:21:50.080" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""like a full day of talks by itself,""" start="00:21:51.860" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""and actually a little bit more than a day""" start="00:21:53.800" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""now, because I've been squeezing things into""" start="00:21:55.440" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""other tracks. There has been some potential""" start="00:21:58.260" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""interest in having an org conf.""" start="00:22:00.060" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""It could be a thing. And I'd love to see""" start="00:22:03.240" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""also, we'd love to experiment with other""" start="00:22:05.760" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""formats. So there could be a bug hunting""" start="00:22:08.900" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""session or let's use the breakout rooms to""" start="00:22:13.740" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""split up into little mentoring groups and see""" start="00:22:15.920" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""how that works. So lots of things that we can""" start="00:22:18.040" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""do. They've actually finished over in the Gen""" start="00:22:21.460" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""track so I don't know if people want to very""" start="00:22:24.360" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""quickly ask questions here or if we go there.""" start="00:22:26.480" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""Leo has come over here instead so okay he's""" start="00:22:31.000" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""joining over here on the other side.""" start="00:22:32.560" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""Okay, hello.""" start="00:22:35.680" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""[Speaker 3]: I""" start="00:22:38.060" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""[Speaker 1]: have 1 thing to add. Yeah,""" start="00:22:43.260" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""[Speaker 4]: No, no, no, I was just about to say I am not""" start="00:22:46.480" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""hosting anymore. You 2 do a wonderful job,""" start="00:22:48.420" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""and I'm happy to just watch.""" start="00:22:49.640" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""[Speaker 1]: go ahead. Cool. Yeah, I was going to add 1""" start="00:22:53.860" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""quick note about any potential suggestions or""" start="00:22:56.520" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""recommendations for hosting Emacs on""" start="00:22:58.080" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""satellites. Is that, I mean,""" start="00:23:00.160" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""given that we are an event centered around""" start="00:23:01.800" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""Emacs, and Emacs is backed by the Free""" start="00:23:07.360" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""Software Foundation, if you do reach out to""" start="00:23:09.160" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""them, they're usually pretty helpful in terms""" start="00:23:11.180" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""of sending goodies and stickers and such.""" start="00:23:14.340" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""So yeah, if you give them a heads up and""" start="00:23:16.880" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""reach out to them in advance,""" start="00:23:17.900" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""you might well end up with a whole bunch of""" start="00:23:20.800" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""swag on your hands that you could give out""" start="00:23:22.800" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""during the satellite. So that's the thing.""" start="00:23:24.860" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""[Speaker 5]: Well, I just wanted to note it felt kind of""" start="00:23:35.500" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""even smoother. I mean,""" start="00:23:37.640" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""you guys always run a nice conference,""" start="00:23:39.720" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""but it felt smoother this year than ever""" start="00:23:43.180" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""before, which listening to your talk,""" start="00:23:45.600" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""Sasha, All the automation that you're doing""" start="00:23:48.480" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""is pretty incredible. So I think it's paying""" start="00:23:52.400" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""off.""" start="00:23:52.740" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""[Speaker 0]: Yay! You know, it is very amusing to hear the""" start="00:23:58.180" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""host say, okay, you know,""" start="00:23:59.240" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""but we've got to wrap up in the next 30""" start="00:24:00.720" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""seconds because Sasha's contact is going to""" start="00:24:02.960" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""go yoink!""" start="00:24:03.240" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""[Speaker 5]: I have a person I work with who keeps the""" start="00:24:12.800" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""trains running on time shall we say and like""" start="00:24:15.360" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""cuts off every meeting like the second that""" start="00:24:18.940" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""it's supposed to end while somebody's in""" start="00:24:21.140" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""mid-sentence and I hope we don't get to that""" start="00:24:24.860" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""point here.""" start="00:24:25.380" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""[Speaker 0]: So do we have any more,""" start="00:24:34.560" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""[Speaker 4]: oh sorry I'm reverting to the hosting,""" start="00:24:36.080" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""Do we have any more questions for MaxConf?""" start="00:24:37.440" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""Although maybe we want to switch to the other""" start="00:24:39.760" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""room so that we don't struggle too much to""" start="00:24:41.580" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""find... Organize the stuff on BBB afterwards.""" start="00:24:44.340" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""[Speaker 0]: Oh, the recording. Well,""" start="00:24:46.360" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""this is a way to make sure the recording gets""" start="00:24:48.340" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""online. But we could do that too.""" start="00:24:54.240" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""I don't know. What do y'all think?""" start="00:24:55.760" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""[Speaker 4]: I'm personally fine. If we want to stay here""" start="00:25:00.580" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""right now, the development track is currently""" start="00:25:02.720" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""streaming this BBB room.""" start="00:25:05.280" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""So are we on Jen. So we're going to leave it""" start="00:25:08.760" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""at is and move into closing remarks if we""" start="00:25:10.760" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""want.""" start="00:25:10.840" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""[Speaker 1]: Oh, yeah, just, I guess,""" start="00:25:14.720" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""make sure that every 1 of the organizers are""" start="00:25:17.720" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""here. I see Flo here. Let's see,""" start="00:25:20.740" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""Corbyn, are you here? Can you maybe speak""" start="00:25:23.480" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""here on BBB?""" start="00:25:24.280" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""[Speaker 4]: We'll give some time for Corbyn to figure it""" start="00:25:32.860" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""out. He did figure it out eventually""" start="00:25:33.840" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""yesterday, so surely today will go""" start="00:25:36.260" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""swimmingly.""" start="00:25:36.420" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""Right. We're getting everything ready,""" start="00:25:47.420" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""folks.""" start="00:25:47.720" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""[Speaker 0]: Okay. So while we sort out Corwin,""" start="00:25:57.100" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""can someone tell him on mumble,""" start="00:25:58.980" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""I guess? Because I'm not sure if he's...""" start="00:26:00.480" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""Anyway. I also want to say that in the Emacs""" start="00:26:05.060" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""conference channel, people have been""" start="00:26:06.580" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""mentioning that the remote stuff has been""" start="00:26:08.880" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""working for them. And I really do like the""" start="00:26:10.840" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""way that this means we can have all the""" start="00:26:12.720" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""videos, you know, all prepared,""" start="00:26:13.980" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""they're captioned, you know,""" start="00:26:16.020" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""We can send them to people,""" start="00:26:17.160" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""we can post them on the website afterwards.""" start="00:26:19.000" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""We can bring all these people together who""" start="00:26:21.540" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""might not be able to convince their companies""" start="00:26:23.440" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""to fly them somewhere for an Emacs""" start="00:26:25.240" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""conference. And also I can do this kind of""" start="00:26:29.640" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""prep while having my now seven-year-old still""" start="00:26:32.120" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""be able to wander by and whatever.""" start="00:26:34.480" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""Travelling is really tough.""" start="00:26:36.820" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""So, this is fine. This is cool.""" start="00:26:39.220" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""I like this. We'll keep doing it.""" start="00:26:40.760" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""[Speaker 4]: It's definitely playing into the low-cost""" start="00:26:44.240" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""conference. To do it online,""" start="00:26:46.360" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""So many people can just access it very""" start="00:26:48.160" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""easily. All right, so we've messaged Colwyn.""" start="00:26:53.760" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""I guess we can get started with Dalim.""" start="00:26:55.760" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""It should maybe take a minute or 2 to join""" start="00:26:57.720" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""us. Should I get started with the Final words""" start="00:27:01.400" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""of the day? All right,""" start="00:27:04.540" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""cool. All right, folks,""" start="00:27:05.740" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""we made it. We are at the end of the second""" start="00:27:08.220" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""day of EmacsConf, the second of 2 days.""" start="00:27:10.320" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""And the first thing I want to say is first,""" start="00:27:12.620" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""thank you so much for joining us for this new""" start="00:27:15.360" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""edition. It's personally my fourth year doing""" start="00:27:19.020" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""the EmacsConf, but if you go to emacsconf-org""" start="00:27:22.000" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""and you see the different sessions,""" start="00:27:24.660" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""you will realize that the first 1 was in""" start="00:27:27.380" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""2013, which happens to be 10 years ago.""" start="00:27:29.820" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""So we are obviously very excited about all of""" start="00:27:33.340" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""this and we'll tell you perhaps a little more""" start="00:27:35.420" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""about what has changed over the last 10""" start="00:27:38.100" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""years. As usual, you know the pre-recorded""" start="00:27:41.760" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""talks are available right now on the talk""" start="00:27:44.540" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""page, at least for all those which were""" start="00:27:46.640" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""pre-recorded. All the ones which happened on""" start="00:27:48.620" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""the Google button, it will take us a little""" start="00:27:50.200" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""bit of time to figure out how to,""" start="00:27:52.360" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""well, when to put them available.""" start="00:27:54.320" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""We need to do subtitles and all this jazzy""" start="00:27:56.480" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""stuff. And we'll also upload them to YouTube""" start="00:27:59.060" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""and other places once we check the audio,""" start="00:28:01.500" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""especially for the Q&As.""" start="00:28:02.700" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""We need to clean up some of the audios and""" start="00:28:05.140" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""make sure that we do not publish any personal""" start="00:28:08.300" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""stuff. All the live talks and Q&As will do""" start="00:28:13.040" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""this in the weeks to come.""" start="00:28:14.200" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""Usually, it takes us about 1 to 2 months to""" start="00:28:16.680" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""try to get everything out,""" start="00:28:17.480" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""but if it takes longer,""" start="00:28:18.280" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""it's fine. Eventually,""" start="00:28:19.540" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""everything will be there.""" start="00:28:20.900" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""The 1 thing we can say is that by EmacsConf""" start="00:28:23.360" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""2024, when it comes around,""" start="00:28:26.160" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""everything should have been uploaded at some""" start="00:28:28.680" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""point. So that's a wide window.""" start="00:28:30.100" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""So again, and as usual,""" start="00:28:34.340" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""feel free to spread the word about EmacsConf""" start="00:28:35.980" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""because, you know, we've been doing this for""" start="00:28:38.860" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""a while and every year more people show up to""" start="00:28:42.100" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""these events and more people watch the videos""" start="00:28:43.980" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""on YouTube and it's wonderful to see,""" start="00:28:46.620" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""you know, our main goal which is to get cool""" start="00:28:49.940" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""ideas out of the head of people,""" start="00:28:51.400" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""shared and viewed by so many people.""" start="00:28:53.860" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""It's always amazing. Also,""" start="00:28:56.660" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""I would like to ask you personally,""" start="00:28:58.180" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""what did you like about this conference?""" start="00:28:59.700" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""Or what do you like, what do you feel was""" start="00:29:01.780" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""better than last year,""" start="00:29:02.640" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""because the feedback is very useful to us.""" start="00:29:05.440" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""We'd also like to know if you've got any""" start="00:29:07.340" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""ideas for making things even better.""" start="00:29:08.940" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""And we've got a general conference discussion""" start="00:29:11.680" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""slash notes slash community message board,""" start="00:29:13.900" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""which is pad.emaxconf.org""" start="00:29:14.920" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""slash 2023. And you can also just mention""" start="00:29:19.280" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""them. You know, we might open this room for""" start="00:29:22.120" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""people to join us and chat,""" start="00:29:24.080" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""although Flowy and myself,""" start="00:29:25.480" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""your up team, needs to go to bed.""" start="00:29:27.340" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""So please be mindful of this.""" start="00:29:28.480" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""If you ask a very interesting question,""" start="00:29:29.760" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""We will both have to make sacrifices to stay""" start="00:29:32.260" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""a while longer because you're too damn""" start="00:29:34.300" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""interesting. Now we'd like to move into""" start="00:29:38.620" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""thanking all the people who make EmacsConf""" start="00:29:41.000" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""possible. And obviously,""" start="00:29:42.660" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""first, we have to thank all the speakers,""" start="00:29:45.060" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""all the volunteers, the participants,""" start="00:29:46.960" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""and to all those other people in our lives""" start="00:29:49.960" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""who make it possible through time and""" start="00:29:51.660" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""support, thank you so much for allowing us to""" start="00:29:53.920" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""run EmacsCount. It wouldn't happen without""" start="00:29:55.760" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""you, and without us, I suppose,""" start="00:29:57.160" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""because we are included in this.""" start="00:29:58.540" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""This year's conference hosts are myself,""" start="00:30:01.720" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""Leo Vivier, Amine Bendali,""" start="00:30:03.400" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""and joining our team of hosts for the first""" start="00:30:05.860" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""time this year, Flobby Coder.""" start="00:30:07.080" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""Thank you so much, Flobby.""" start="00:30:08.200" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""You did a wonderful job.""" start="00:30:09.340" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""It's right there. No, dammit.""" start="00:30:11.600" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""No, I can't. I can never remember if BBB is""" start="00:30:15.180" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""flipping stuff, so either 1 of those""" start="00:30:17.120" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""directions. The streams this year,""" start="00:30:19.600" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""as last year, were managed by Sasha Schwa,""" start="00:30:21.760" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""obviously. And the check-ins by Flobby Coder,""" start="00:30:24.400" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""and I'm in with Miscellaneous running around""" start="00:30:27.400" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""by Corwin Brust, who will be joining us""" start="00:30:30.020" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""momentarily. Apparently,""" start="00:30:32.000" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""all his USB failed, so he will be with us as""" start="00:30:34.920" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""[Speaker 3]: Roost. Rhymes with Roost.""" start="00:30:38.140" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""Do I have audio now? Alright,""" start="00:30:41.040" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""I'll go to work on my camera.""" start="00:30:42.380" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""Hi. Hello?""" start="00:30:43.820" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""[Speaker 4]: soon as he can. It's Lovely.""" start="00:30:45.540" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""Okay, I'll keep going.""" start="00:30:46.640" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""I also need to thank, well,""" start="00:30:49.120" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""need, no, I want to thank all the captioning""" start="00:30:51.100" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""volunteers, the captioners as we call them.""" start="00:30:53.040" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""You've got Daniel Molina,""" start="00:30:54.380" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""Bala Ramadoui, Durai, sorry,""" start="00:30:57.160" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""Bhavin Gandhi, Amin Zayed,""" start="00:30:59.140" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""Yoni Rapkin, who presented 1 of the talk""" start="00:31:02.220" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""earlier, Daniel Alejandro Tapia,""" start="00:31:04.240" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""Hannah Miller, Ken Huang,""" start="00:31:06.060" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""Jean-Christophe Ellary,""" start="00:31:07.200" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""and James Howell. Also thanking""" start="00:31:10.440" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""Jean-Christophe Ellary,""" start="00:31:11.320" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""Colwyn, Quiliro, Kern,""" start="00:31:13.220" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""and Amin Bendali for helping with the early""" start="00:31:15.420" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""acceptance process. Sasha,""" start="00:31:18.120" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""do I read this 1? It's weird to think myself.""" start="00:31:21.180" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""I'm gonna pat myself on the back,""" start="00:31:22.740" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""I guess. Go on, Sasha.""" start="00:31:24.780" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""I'll do it. I'll do it.""" start="00:31:26.720" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""It's fine. Thanks to myself for fiddling with""" start="00:31:29.160" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""the audio to get things nicely synced,""" start="00:31:30.900" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""And thanks to myself again and other people,""" start="00:31:34.120" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""we kept the mailing list free from spam.""" start="00:31:36.840" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""Because I'm not sure what happened since May,""" start="00:31:39.320" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""but we've been receiving about 3 to 4 spam""" start="00:31:41.820" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""emails. And it just happened all of a sudden,""" start="00:31:44.760" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""and I was really weirded out by this process.""" start="00:31:46.400" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""Where was I? OK, thanks to Andrew Ducurty for""" start="00:31:51.380" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""helping with whisper processing.""" start="00:31:53.000" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""Thanks to Ashki Ghekwad for design""" start="00:31:55.840" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""contribution. Thanks to Yoshin,""" start="00:31:57.540" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""our grand changro for all the music that""" start="00:31:59.900" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""we've been using for the last 3 years at this""" start="00:32:01.840" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""point, I think. Also thanks to Rye for the""" start="00:32:04.740" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""server that we're using for OBS streaming and""" start="00:32:06.820" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""for processing videos.""" start="00:32:07.720" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""And also thanks to the free software""" start="00:32:10.440" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""foundation for obviously Emacs itself,""" start="00:32:12.540" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""the mailing list that we use,""" start="00:32:14.340" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""and the media.emacsconf-org""" start="00:32:15.340" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""server where all of the presentations are""" start="00:32:19.540" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""currently hosted. We'd also like to thank""" start="00:32:22.200" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""BigBlueButton, Etherpad,""" start="00:32:23.520" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""IceCast, OBS, The Lounge,""" start="00:32:25.920" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""Libre.chat, FFmpeg, OpenAI,""" start="00:32:28.480" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""Whisper, the E-N-E-S force alignment tool,""" start="00:32:31.300" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""Site Transfer, SubD, and contributors to all""" start="00:32:34.640" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""of the tools and services we used in the""" start="00:32:36.900" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""making of this conference.""" start="00:32:37.600" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""And obviously, all of them are free,""" start="00:32:39.520" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""as Sasha obviously told you,""" start="00:32:41.480" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""and as we will be telling you again for many""" start="00:32:44.080" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""years to come. We'd also like again to thank""" start="00:32:47.700" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""everyone for attending the conference and""" start="00:32:49.780" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""making EmacsConf what it is.""" start="00:32:51.820" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""And for those who were on the general track,""" start="00:32:54.000" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""you know Sasha did it in parallel to the last""" start="00:32:56.540" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""talk we had today. She did a wonderful talk""" start="00:32:58.980" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""on how EmacsConf is actually run.""" start="00:33:01.680" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""So there's her talk, there's also an entire""" start="00:33:05.620" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""page on our wiki about the infrastructure""" start="00:33:07.760" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""that we use. So if you're interested,""" start="00:33:09.920" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""especially in running an event of your own,""" start="00:33:11.880" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""you've got as much information as you want,""" start="00:33:14.340" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""and as Sacha probably told you,""" start="00:33:15.600" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""we are available for sharing the knowledge""" start="00:33:17.600" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""and enabling your dreams of making a""" start="00:33:20.820" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""conference. Amint, do you want to take it""" start="00:33:24.220" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""over with the fiscal sponsorship""" start="00:33:25.680" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""[Speaker 1]: Yeah, sure. Let's see.""" start="00:33:29.320" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""Can you please scroll down a little bit?""" start="00:33:30.980" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""Whoever is kindly sharing the screen.""" start="00:33:33.520" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""[Speaker 4]: announcements? Okay. Oh,""" start="00:33:34.460" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""I was scrolling on my end.""" start="00:33:36.140" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""Sorry.""" start="00:33:36.360" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""[Speaker 1]: Thanks, Sasha. Yeah, so kind of super excited""" start="00:33:41.380" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""to finally get into this.""" start="00:33:43.080" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""And this is something that we've been kind of""" start="00:33:45.220" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""hoping to get worked out for a long time""" start="00:33:46.960" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""actually and it's finally here.""" start="00:33:48.280" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""So people might have already seen this but as""" start="00:33:52.900" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""of this last Thursday we're actually fiscally""" start="00:33:57.620" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""sponsored by the Free Software Foundation.""" start="00:33:59.440" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""So we joined their Working Together for Free""" start="00:34:03.480" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""Software program. And DFSF published the""" start="00:34:07.720" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""announcement on their website.""" start="00:34:08.540" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""You're welcome to go and check it out there.""" start="00:34:11.000" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""But I just want to quickly get into a little""" start="00:34:14.060" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""bit about what it means and some of the""" start="00:34:17.900" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""benefits, I guess. So as part of this working""" start="00:34:21.719" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""together for a free software fund,""" start="00:34:23.300" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""the FSF provides fiscal sponsorship for a""" start="00:34:26.580" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""number of important free software and new""" start="00:34:29.060" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""technical projects, such as the new tool""" start="00:34:30.900" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""chain and Replicant, which is a free fork of""" start="00:34:33.679" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""Android. And starting this year,""" start="00:34:36.340" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""EmacsConf has joined the program as well.""" start="00:34:38.360" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""And as a fiscal sponsor,""" start="00:34:40.960" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""DFSF can assist us by providing services""" start="00:34:43.520" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""required by a legal entity,""" start="00:34:46.500" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""like signing contracts and receiving and""" start="00:34:49.300" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""processing payments. So to provide some""" start="00:34:53.080" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""context, eMAXConf is and always has been an""" start="00:34:56.820" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""independent initiative organized by a very""" start="00:34:58.740" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""small number of people,""" start="00:34:59.700" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""a small team of people without any corporate""" start="00:35:02.120" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""sponsors. And that's important in part""" start="00:35:05.980" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""because I believe part of our message is that""" start="00:35:08.880" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""we want to showcase that everybody can do""" start="00:35:11.860" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""this and organize a conference like this no""" start="00:35:14.200" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""matter how small your team is and how modest""" start="00:35:17.200" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""your resources are, which we will actually""" start="00:35:19.540" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""get into a little bit later in the closing""" start="00:35:21.260" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""remarks. But yeah, so now having the FSF as""" start="00:35:25.760" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""our fiscal sponsor, we're in a better""" start="00:35:27.780" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""position to accept donations as 1 potential""" start="00:35:30.200" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""way to contribute or help the conference.""" start="00:35:33.360" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""And just to clarify, we're currently not""" start="00:35:36.360" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""struggling at all to cover these costs of the""" start="00:35:39.360" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""servers and such, which we will get into""" start="00:35:41.000" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""again. But this is just 1 extra avenue if""" start="00:35:44.720" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""people are feeling generous and would like to""" start="00:35:46.720" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""help, it's much appreciated.""" start="00:35:47.880" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""And yeah, so having a 501c3 nonprofit like""" start="00:35:54.400" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""the FSF, as a fiscal sponsor,""" start="00:35:57.160" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""many donors will receive tax benefits that""" start="00:36:00.060" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""they otherwise wouldn't receive if they were""" start="00:36:02.180" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""to like donate to like individuals running a""" start="00:36:04.540" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""project directly. And also donors can know""" start="00:36:07.500" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""that, you know, the funds that they're""" start="00:36:08.860" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""donating are being handled by an accountable""" start="00:36:10.920" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""institution. And also importantly,""" start="00:36:14.060" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""when donating through the FSF,""" start="00:36:16.020" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""Let's see, text changing.""" start="00:36:19.960" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""Okay, yeah. People can donate without having""" start="00:36:23.320" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""to run any non-free JavaScript,""" start="00:36:24.600" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""which is nice. Because unfortunately,""" start="00:36:27.380" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""usually these days on the web when you do""" start="00:36:29.440" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""want to buy something or spend money,""" start="00:36:30.600" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""you have to run non-free JavaScript,""" start="00:36:31.840" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""which isn't the case when donating through""" start="00:36:35.020" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""the FSF. Yeah, so we just joined,""" start="00:36:37.720" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""as I said, on Thursday,""" start="00:36:39.000" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""and we've already received our very first""" start="00:36:43.020" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""donation, so we'd like to extend our thanks""" start="00:36:45.400" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""and gratitude to Scott Ranby,""" start="00:36:46.800" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""who is actually our first ever kind donor.""" start="00:36:49.480" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""They agreed to be thanked publicly.""" start="00:36:51.820" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""So thank you, Scott. And yeah,""" start="00:36:55.900" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""so this is a recent development.""" start="00:36:57.040" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""And we plan to add much more information and""" start="00:36:59.800" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""details about this whole situation to the""" start="00:37:01.880" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""wiki, including links to the announcements,""" start="00:37:04.200" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""some more information about the program,""" start="00:37:06.280" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""and our donation page of course,""" start="00:37:08.040" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""in the new future. And in the meantime I'm""" start="00:37:12.880" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""also happy to help answer any questions as""" start="00:37:15.080" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""best as I can, So feel free to ping me on IRC""" start="00:37:17.900" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""or just email me at bandalia.guinard.org.""" start="00:37:19.640" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""[Speaker 3]: Which gives me a chance to jump in and just""" start="00:37:26.140" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""point out 1 question that we know people have""" start="00:37:29.060" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""is just about how much of the money goes to""" start="00:37:32.680" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""FSF when you make a contribution through the""" start="00:37:35.660" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""fund toward EmacsConf?""" start="00:37:36.860" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""[Speaker 1]: Right, exactly. Yeah, and the answer to that""" start="00:37:40.560" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""is that it's 10%, which is for supporting the""" start="00:37:44.540" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""operation of the Working Together program and""" start="00:37:46.720" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""also the shared GNU infrastructure,""" start="00:37:48.800" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""which we as EmacsConf use and depend on,""" start="00:37:52.040" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""along with several hundred GNU packages.""" start="00:37:54.920" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""So, yeah, and it covers things like""" start="00:37:59.860" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""transaction costs that the FSF's payment""" start="00:38:03.060" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""processor charges?""" start="00:38:04.000" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""[Speaker 3]: And then again I'll come back to say this is""" start="00:38:10.040" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""a real fair price. I have some experience""" start="00:38:12.280" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""with working with payment processing and""" start="00:38:15.300" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""things like this and like 10% that's a that's""" start="00:38:19.120" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""something that you see in Bigger businesses""" start="00:38:22.440" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""that have a model around making money on that""" start="00:38:25.900" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""Transaction so to be able to do that as a""" start="00:38:29.160" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""nonprofit. We're taking advantage of a really""" start="00:38:31.400" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""awesome thing there.""" start="00:38:32.400" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""[Speaker 1]: Yeah, exactly. And yeah,""" start="00:38:35.860" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""just for a quick plug,""" start="00:38:36.820" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""the FSF is actually doing an end of year""" start="00:38:38.860" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""fundraiser right now. So if you want to go""" start="00:38:41.780" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""donate to them, or if you donate to us,""" start="00:38:44.220" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""a part of it will go to the FSF to support""" start="00:38:47.760" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""their work on free software,""" start="00:38:51.400" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""helping grow the movement,""" start="00:38:53.000" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""and spread the word about it.""" start="00:38:56.000" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""So, thank you. And I guess now is a good time""" start="00:39:02.080" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""for me to pass the baton to the next""" start="00:39:05.380" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""organizer who wants to talk about some of the""" start="00:39:08.160" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""specs of the servers that we use right now.""" start="00:39:11.040" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""[Speaker 0]: We actually don't have to go about this in""" start="00:39:14.720" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""detail. I just put it in there in case people""" start="00:39:16.560" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""were curious about how much it takes to run""" start="00:39:19.280" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""something like this. Not a lot.""" start="00:39:20.740" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""It's just really, you know,""" start="00:39:22.900" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""2 days of computing is not that expensive in""" start="00:39:26.100" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""today's world, and all the rest is just""" start="00:39:29.060" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""volunteer time and a heck of a lot of Emacs""" start="00:39:32.220" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""lists as previously discussed in our""" start="00:39:34.080" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""presentation. So, we'll just skip through""" start="00:39:41.020" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""that instead of reading all of it.""" start="00:39:42.280" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""Unless people are specifically curious,""" start="00:39:43.580" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""you can ask questions afterwards.""" start="00:39:44.640" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""But yes, happy birthday,""" start="00:39:46.320" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""EmacsConf, and here's another wonderful 10""" start="00:39:49.200" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""years.""" start="00:39:49.440" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""[Speaker 4]: All right, I think we are at the end of the""" start="00:39:56.820" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""closing remarks. Have I forgotten anything?""" start="00:39:58.820" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""We haven't had Flowy yet,""" start="00:40:00.060" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""I believe. Sorry for putting you on the spot""" start="00:40:03.340" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""again.""" start="00:40:03.560" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""[Speaker 6]: I guess I have nothing really to say besides""" start="00:40:07.940" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""what you have already said.""" start="00:40:09.280" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""So thank everybody to make a presentation,""" start="00:40:12.560" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""to do anything here. Thanks for all of you""" start="00:40:15.360" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""that I could be a part of it.""" start="00:40:16.880" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""I have to admit it also.""" start="00:40:17.880" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""So thank you all. And yeah,""" start="00:40:21.020" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""nothing to say probably.""" start="00:40:22.540" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""[Speaker 1]: And I also want to send the thanks to Flowy""" start="00:40:25.560" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""for, you know, stepping in.""" start="00:40:27.260" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""We kind of like throw this on you like at the""" start="00:40:29.340" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""last second, but Flowy actually stepped in""" start="00:40:31.560" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""and hosted graciously a couple of the talks""" start="00:40:33.840" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""on the Dev track today.""" start="00:40:34.920" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""So, which I think went very well.""" start="00:40:36.880" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""So congrats and thank you.""" start="00:40:38.480" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""[Speaker 6]: Thank you.""" start="00:40:39.720" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""[Speaker 4]: Speaking of which we were not monsters.""" start="00:40:41.420" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""We kindly asked Floey yesterday because""" start="00:40:43.420" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""everything was going so well.""" start="00:40:44.540" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""And now we can say it,""" start="00:40:45.520" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""you know, I can say things are going well.""" start="00:40:46.840" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""Usually it's a bad thing when you're doing a""" start="00:40:48.760" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""broadcast to say things are going well right""" start="00:40:50.500" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""now because it tends to backfires at some""" start="00:40:53.080" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""[Speaker 3]: Hours of notice, hours of notice.""" start="00:40:56.980" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""That, that's planning.""" start="00:40:58.900" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""[Speaker 4]: point. But yesterday- So hours of notice,""" start="00:41:02.420" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""Flowy didn't sleep all that much because we""" start="00:41:04.840" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""tasked him with hosting,""" start="00:41:06.500" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""so he was turning in his bed all night""" start="00:41:08.440" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""thinking, oh, I'm going to host MaxCons.""" start="00:41:09.960" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""But Flowy, you did a wonderful job and I am""" start="00:41:13.660" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""so glad that not only you were able to join""" start="00:41:15.720" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""us again this year, but that also you were""" start="00:41:17.760" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""able to host. Because last year,""" start="00:41:19.760" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""had we asked you to host,""" start="00:41:20.900" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""you would have said no.""" start="00:41:21.820" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""First time we asked you this year was yes,""" start="00:41:25.120" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""but give me some time to think about it.""" start="00:41:27.100" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""[Speaker 6]: Next year it is yes completely.""" start="00:41:30.100" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""[Speaker 4]: If we've done a good job,""" start="00:41:32.780" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""it will be yes directly.""" start="00:41:33.560" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""All right, so since we are at the end of the""" start="00:41:38.000" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""thankings and I did say europe team needs to""" start="00:41:41.140" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""go to bed in about 12 minutes that leaves us""" start="00:41:43.580" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""about 12 minutes to try to answer as many""" start="00:41:45.940" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""points as you'd like to raise.""" start="00:41:47.840" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""Sasha, I think the Q&A room is still open""" start="00:41:50.640" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""because we are technically still in the Emacs""" start="00:41:52.680" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""conference room currently.""" start="00:41:53.560" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""So, if you... We're going to put the link""" start="00:41:56.480" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""again if you need to find it.""" start="00:41:57.840" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""Otherwise, scroll up and find the 1 on there.""" start="00:41:59.800" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""[Speaker 0]: I think I can change the redirect.""" start="00:42:04.400" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""Maybe. I will go figure this out.""" start="00:42:07.240" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""Keep talking in the background.""" start="00:42:08.600" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""[Speaker 4]: Right. So, whilst we figure this out in the""" start="00:42:12.160" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""background, it would be nice if you could""" start="00:42:13.740" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""join us and ask questions,""" start="00:42:14.640" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""either by dropping them.""" start="00:42:15.900" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""I see plenty of people have already left some""" start="00:42:18.080" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""comments. We have 2 places,""" start="00:42:19.440" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""right now it's more about a chitchatting""" start="00:42:21.820" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""about the end of the conference.""" start="00:42:23.000" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""If you've got general feedback,""" start="00:42:24.160" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""we've mentioned it at the top,""" start="00:42:26.160" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""but if you want to write your general""" start="00:42:28.580" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""feedback here, it will find its way at some""" start="00:42:30.920" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""point in the years of the relevant people who""" start="00:42:32.960" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""can make things change.""" start="00:42:33.920" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""So don't worry too much about where you put""" start="00:42:35.920" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""your feedback, it'll be fine.""" start="00:42:37.120" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""But now, how about we start reading some of""" start="00:42:40.240" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""the notes that people have said or questions""" start="00:42:42.700" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""that""" start="00:42:43.080" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""[Speaker 3]: have been asked. So here's 1 for Amin.""" start="00:42:47.094" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""Do you have any stats on how many people""" start="00:42:48.460" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""watched for an IRC and BBB over the 2 days?""" start="00:42:52.200" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""[Speaker 1]: Right, yeah, so I guess for IceCast,""" start="00:42:58.140" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""which I can answer more readily,""" start="00:43:00.040" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""I think yesterday we were averaging around""" start="00:43:03.760" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""240, 250 concurrent viewers at a time.""" start="00:43:08.120" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""And today, so today it varied.""" start="00:43:12.760" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""I think the maximum was again like around 200""" start="00:43:16.300" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""to 20-ish with the average being more around""" start="00:43:19.600" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""180, 190 viewers. We've had a lot of hits to""" start="00:43:24.960" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""the actual web pages for the Emacs Conf Wiki""" start="00:43:28.700" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""or the pad, which are all being served on 1""" start="00:43:31.720" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""server. I pulled some numbers.""" start="00:43:34.740" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""I'm not sure if they're correct.""" start="00:43:36.140" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""So I'm like a little bit hesitant to discuss""" start="00:43:38.480" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""them. Safe to say they're easily in the tens""" start="00:43:41.760" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""of thousands, maybe in the hundreds of""" start="00:43:44.380" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""thousands of total visits over the past,""" start="00:43:47.960" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""[Speaker 0]: Maybe the pad makes a lot of small requests.""" start="00:43:52.540" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""[Speaker 1]: I guess, 48 hours. Right,""" start="00:43:53.940" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""okay. So, yeah, that's why I'm hesitant to""" start="00:43:57.040" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""say. But yeah, easily in the thousands or""" start="00:43:59.240" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""[Speaker 3]: You know""" start="00:44:01.860" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""[Speaker 4]: who you are anyway, the crowd,""" start="00:44:02.980" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""you know how many you are,""" start="00:44:04.080" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""you do not need exact numbers""" start="00:44:05.340" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""[Speaker 1]: tens of thousands. Yeah,""" start="00:44:08.720" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""so I don't have the exact numbers but I guess""" start="00:44:11.000" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""it's always kind of fun to maybe try to pull""" start="00:44:13.260" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""some numbers and look at it that way but you""" start="00:44:15.700" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""know of course we all know that what we do,""" start="00:44:18.080" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""every single person counts.""" start="00:44:19.720" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""So I don't know, trying to look at turning""" start="00:44:24.320" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""people into abstract numbers isn't,""" start="00:44:27.900" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""I don't know, inspiring to me very much,""" start="00:44:30.480" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""but it's cool. So.""" start="00:44:31.840" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""[Speaker 4]: All right. So how about we go into the""" start="00:44:36.020" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""questions. So Sasha is now in the viewport""" start="00:44:37.640" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""where we can see some questions.""" start="00:44:39.480" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""So how about we take some of them.""" start="00:44:41.200" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""I can read them or if anyone of the""" start="00:44:43.900" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""organizers wants to do this,""" start="00:44:45.020" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""feel free, especially those who haven't""" start="00:44:46.720" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""talked to a whole lot this year.""" start="00:44:48.040" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""Cohen, do you want to try it?""" start="00:44:53.000" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""[Speaker 3]: I didn't make my motive clear.""" start="00:44:54.760" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""I did and I'm done. I took the first""" start="00:44:59.220" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""question, I picked the bottom question off""" start="00:45:01.120" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""the list because I knew exactly who it was""" start="00:45:02.920" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""going for. The person who wants to answer or""" start="00:45:05.140" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""direct the next question is welcome.""" start="00:45:07.080" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""Sorry, I could have given a little better""" start="00:45:10.520" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""stage direction there.""" start="00:45:11.400" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""I'm not prepared to answer how many emaxers""" start="00:45:13.660" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""are from Nordic countries other than to say""" start="00:45:16.080" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""definitely yes and several.""" start="00:45:17.680" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""And I haven't looked close enough at the""" start="00:45:21.900" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""suggestion yet.""" start="00:45:22.580" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""[Speaker 4]: Right, okay. I can take the question about""" start="00:45:27.280" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""the BBB limitations. So it's the second 1,""" start="00:45:30.020" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""the red 1. Small suggestion,""" start="00:45:31.560" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""likely out of your control,""" start="00:45:33.120" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""but anyway, the blue button seems to work""" start="00:45:36.340" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""very well, but it would be a bit more""" start="00:45:38.300" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""watchable if the webcam frames were lined up""" start="00:45:40.680" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""vertically on 1 side, because it would allow""" start="00:45:42.660" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""the screen share frames to be larger and""" start="00:45:44.760" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""would make much better use of the viewable""" start="00:45:47.080" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""space. Maybe worth a bug report to upstream.""" start="00:45:49.740" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""And I agree, BBB has been really good.""" start="00:45:53.080" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""Amine, did you want to say something?""" start="00:45:54.400" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""[Speaker 3]: I'm going""" start="00:45:55.120" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""[Speaker 1]: to continue and then I'll add something at""" start="00:45:56.760" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""the end.""" start="00:45:56.960" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""[Speaker 4]: Okay, sure. So BBB has been really good for""" start="00:45:59.960" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""us. It allows us to have many parallel rooms""" start="00:46:04.440" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""which are all recording service side at the""" start="00:46:07.700" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""same time. And it's wonderful for us because""" start="00:46:09.920" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""we can gather. At some point,""" start="00:46:11.260" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""I think last year, we had 4 concurrent talks""" start="00:46:13.520" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""being recorded because people were just so""" start="00:46:15.220" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""interested in what was going on in rooms.""" start="00:46:17.040" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""And you know, we only,""" start="00:46:19.040" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""like this year, the co-organizers,""" start="00:46:21.660" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""it's the 5 people you see in a room""" start="00:46:23.720" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""currently. And if we had all of us to be in a""" start="00:46:26.760" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""separate room, having to record on the""" start="00:46:28.440" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""machine, it wouldn't work.""" start="00:46:29.340" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""So we are able to demultiply the amount of""" start="00:46:32.120" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""content that we produce thanks to BBB,""" start="00:46:33.560" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""but sadly, we are also quite limited by the""" start="00:46:37.540" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""interface of BBB. Another problem that is""" start="00:46:39.560" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""dear to me is that audio tends to be fairly""" start="00:46:43.860" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""bad at some points depending on the speakers""" start="00:46:46.240" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""because BBB has really funky audio correction""" start="00:46:50.080" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""stuff going in the background,""" start="00:46:51.500" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""and sometimes it works,""" start="00:46:52.540" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""sometimes it doesn't work,""" start="00:46:53.760" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""and especially on my machine,""" start="00:46:55.480" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""the specs are above in the document if you're""" start="00:46:58.320" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""interested, but BBB and OBS do not play well""" start="00:47:02.040" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""at all. You might have heard me speaking with""" start="00:47:04.640" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""some clicks in my voice at some point.""" start="00:47:06.120" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""That's another problem of BBB.""" start="00:47:07.600" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""Anyway, I mean, you wanted to add something""" start="00:47:09.240" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""as well.""" start="00:47:09.720" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""[Speaker 1]: Right, yeah, I kind of empathize and also""" start="00:47:14.060" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""emphasize the problems with audio on BBB""" start="00:47:17.220" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""sometimes, but about the specific suggestion""" start="00:47:19.860" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""here of like lighting things up at least""" start="00:47:22.540" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""visually, I think that's like much more""" start="00:47:24.780" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""doable even if you don't open a bug upstream.""" start="00:47:26.940" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""I believe the Free Software Foundation for""" start="00:47:30.140" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""their LibrePlanet conference,""" start="00:47:31.360" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""either last year or the year before,""" start="00:47:33.740" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""they had some custom, like clients signed""" start="00:47:36.500" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""into browser, custom CSS,""" start="00:47:38.000" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""where it would do exactly something like""" start="00:47:40.520" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""that. It would like enlarge the shared screen""" start="00:47:44.440" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""on the 1 side and then stack up all of the""" start="00:47:46.840" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""webcam feeds on 1 side.""" start="00:47:48.000" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""So we might be able to use something like""" start="00:47:50.280" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""that.""" start="00:47:50.440" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""[Speaker 3]: So I'll tack on to that.""" start="00:47:53.040" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""And now I feel like a heel as soon as I""" start="00:47:56.760" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""opened my mouth, because I think I almost get""" start="00:47:59.340" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""the sense Floyd wants to jump in here and""" start="00:48:01.480" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""we're all talking, everyone except Sasha who""" start="00:48:03.680" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""actually wrote OBS, you know,""" start="00:48:06.420" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""the OBS WebSocket plugin that is probably the""" start="00:48:10.680" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""answer to all the different questions""" start="00:48:12.100" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""everyone is bringing up.""" start="00:48:13.360" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""So I guess I'll leave my input at that And""" start="00:48:15.060" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""Chloe, did you have anything to say,""" start="00:48:16.680" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""or can we pick on Sasha?""" start="00:48:17.720" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""[Speaker 6]: Nothing to say.""" start="00:48:20.460" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""[Speaker 0]: I need to update the OBS WebSocket plugin for""" start="00:48:25.120" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""the protocol change, because I think the""" start="00:48:27.260" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""protocol change was from 4 to 5.""" start="00:48:29.040" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""It's 1 of those things that I haven't gotten""" start="00:48:32.080" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""[Speaker 1]: Cool. But""" start="00:48:35.280" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""[Speaker 0]: around to. yeah, so we'll try to solve it in""" start="00:48:37.120" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""CSS. So if I can tinker with the CSS or if""" start="00:48:41.240" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""somebody else would like to volunteer to move""" start="00:48:44.160" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""things around, then that would be fantastic""" start="00:48:45.720" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""because front-end should be things.""" start="00:48:48.040" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""Okay, oh, what order of magnitude hours do""" start="00:48:53.480" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""you each of you think you devote to the""" start="00:48:55.360" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""conference yearly? I have I expected someone""" start="00:48:58.260" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""would ask this question.""" start="00:48:59.540" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""So I have I have my the past 11 years of time""" start="00:49:07.840" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""analysis. This is my Emacs category,""" start="00:49:11.000" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""so it also includes Emacs news.""" start="00:49:12.780" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""So this is my Emacs hours by month and year.""" start="00:49:15.660" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""So you can see last year,""" start="00:49:17.920" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""it spiked up a lot. But this year,""" start="00:49:21.140" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""it has taken less time.""" start="00:49:23.100" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""So last month, it was about 93 hours.""" start="00:49:26.260" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""And the month before that was just about 87""" start="00:49:29.020" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""hours of prep. And this actually includes""" start="00:49:31.400" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""things like captioning and,""" start="00:49:33.240" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""and coordination. And then you can see a""" start="00:49:36.260" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""little bit of time here like the EMAX news""" start="00:49:38.560" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""and and harvesting q&a and adding chapter""" start="00:49:42.040" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""index indices and things like that.""" start="00:49:43.780" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""So I, I like it, it's it's my form of fun.""" start="00:49:47.960" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""And Otherwise, I'm mostly just,""" start="00:49:50.540" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""you know, helping the kiddo go to play dates""" start="00:49:52.960" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""and carrying things around.""" start="00:49:54.320" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""And, you know, so this is the stuff that I do""" start="00:49:57.280" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""to keep my brain happy.""" start="00:49:58.260" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""And if you're wondering,""" start="00:50:00.060" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""okay, well, do you sleep?""" start="00:50:01.360" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""That's the next question I expected people""" start="00:50:03.520" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""ask. The answer is yes,""" start="00:50:04.840" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""we still actually do manage to sleep,""" start="00:50:06.420" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""or at least I do. Less so now that I have a""" start="00:50:09.640" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""kid, this is like 2016,""" start="00:50:10.760" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""had a kiddo, and then suddenly much less""" start="00:50:13.100" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""sleep, but still a reasonable amount of""" start="00:50:14.640" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""sleep. So Emacs stuff happens,""" start="00:50:16.780" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""I can still sleep, and it's a lot of fun.""" start="00:50:19.600" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""[Speaker 4]: Now that's data for you folks.""" start="00:50:23.260" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""[Speaker 1]: Yeah, we can't top that at all.""" start="00:50:26.960" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""[Speaker 0]: It's a blog post also,""" start="00:50:30.420" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""yeah.""" start="00:50:30.820" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""[Speaker 4]: Especially, you start like this,""" start="00:50:33.160" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""how do you expect all of us to say anything""" start="00:50:36.540" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""after this? Whatever we say is not going to""" start="00:50:38.680" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""be backed up by data, it's not going to be as""" start="00:50:40.560" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""many hours, and it's not going to be as""" start="00:50:42.360" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""qualitative in general.""" start="00:50:43.180" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""I can remark on something because for me it's""" start="00:50:53.640" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""my fourth year helping to organize EmacsConf""" start="00:50:56.040" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""and there's a definite change this year.""" start="00:50:59.280" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""I did spend, usually I get into EmacsConf""" start="00:51:02.480" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""mode in late September when I start worrying""" start="00:51:05.640" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""about the CFP, the call for proposal is""" start="00:51:07.900" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""finishing, and then we need to start running""" start="00:51:09.720" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""after speakers to secure the proposals to""" start="00:51:12.580" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""make sure, oh, can you do this?""" start="00:51:13.860" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""Can you do maybe a 10-minute format instead""" start="00:51:16.500" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""of a 20-minute format,""" start="00:51:17.400" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""you know, all this jazzy stuff.""" start="00:51:18.760" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""And usually it kind of looks like Sasha for""" start="00:51:21.820" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""me in terms of involvement,""" start="00:51:22.940" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""or at least it did for the previous year.""" start="00:51:24.900" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""But this year, now that I've been gainfully""" start="00:51:28.920" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""employed as a software developer,""" start="00:51:30.220" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""I found it much harder to find the time to""" start="00:51:33.760" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""invest into MaxComp. But 1 of the things that""" start="00:51:36.500" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""allowed me to still stay efficient at my day""" start="00:51:39.520" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""job is the fact that I knew that Sasha and""" start="00:51:42.100" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""all the work that we did in previous years""" start="00:51:43.680" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""would come to help us organize this year's""" start="00:51:46.240" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""conference. And I'm not kidding,""" start="00:51:48.160" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""this year, I've been keeping an eye,""" start="00:51:49.900" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""obviously, and we've been chatting with all""" start="00:51:51.300" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""the organizers, but it's mostly been Sasha""" start="00:51:53.860" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""holding the fort from the end of the CFP in""" start="00:51:56.880" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""September to right about end of November.""" start="00:52:00.060" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""So I'll use the opportunity,""" start="00:52:02.220" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""as well my fellow co-organizers will,""" start="00:52:04.780" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""to thank you Sasha for putting so much time""" start="00:52:07.300" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""and energy into this. Not only Sasha from""" start="00:52:09.720" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""this year, but also Sasha from last year,""" start="00:52:11.680" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""and last year, and last year.""" start="00:52:12.840" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""And I will not be able to give you a figure""" start="00:52:19.920" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""of how much time it takes.""" start="00:52:20.840" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""I can tell you that the 2 days of Emacs Con""" start="00:52:22.920" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""are a bloody marathon because we cannot share""" start="00:52:28.180" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""our screens with you, but Sasha has given you""" start="00:52:31.060" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""a little bit of pointers about,""" start="00:52:32.220" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""you know, how much stuff we need to monitor.""" start="00:52:34.080" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""Sasha just switches constantly between""" start="00:52:36.560" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""workspaces. I just put everything on 1""" start="00:52:38.860" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""workspace and my screen looks absolutely""" start="00:52:41.400" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""mental. And then I wonder why my microphone""" start="00:52:44.480" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""is clipping on BVB, I suppose.""" start="00:52:46.020" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""All right, that's all for me.""" start="00:52:47.400" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""Anyone wants to say anything about how much""" start="00:52:48.900" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""time it takes? Sasha, please.""" start="00:52:49.920" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""[Speaker 0]: I have a nice setup this year because I""" start="00:52:52.800" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""actually have a Matthew Lent donated a""" start="00:52:55.840" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""computer to me that can handle the big""" start="00:52:57.440" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""monitor and I'm stealing my husband's big""" start="00:53:00.240" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""monitor over there. See,""" start="00:53:01.100" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""So this is my setup today.""" start="00:53:02.240" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""It's got like conference stuff on my laptop""" start="00:53:05.600" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""and then just IOC on the other big screen and""" start="00:53:08.800" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""the 480p so I can see,""" start="00:53:10.640" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""I can make sure it doesn't fall down.""" start="00:53:12.340" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""Yes, so I have a nice setup today.""" start="00:53:14.900" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""[Speaker 4]: Anyone wants to comment about how much time""" start="00:53:22.260" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""it takes for them to organize the MaxCon for""" start="00:53:24.160" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""2, you know, including everything,""" start="00:53:25.440" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""be it the brainstorming,""" start="00:53:26.580" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""the answering volunteers and stuff like this?""" start="00:53:28.940" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""Or we can move to another question,""" start="00:53:31.320" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""of course.""" start="00:53:31.800" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""[Speaker 1]: I mean, I know for myself,""" start="00:53:34.600" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""I kind of dropped the ball this year,""" start="00:53:36.180" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""somewhat unintentionally or unintentionally.""" start="00:53:38.940" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""Well, yeah, I didn't have any other choice,""" start="00:53:41.640" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""basically, at least in like September through""" start="00:53:44.280" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""like early November or mid November.""" start="00:53:46.940" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""But I think like, it sort of differs,""" start="00:53:51.100" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""I guess, from year to year.""" start="00:53:52.480" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""Sometimes life happens,""" start="00:53:53.520" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""and no matter how much you would love to put""" start="00:53:57.900" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""a ton of time into something,""" start="00:53:59.540" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""you just can't. And maybe next year you can""" start="00:54:01.620" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""do a lot more. So I'm optimistic I'll be able""" start="00:54:04.340" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""to put in much more time into things for""" start="00:54:07.080" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""EmacsConf next year, but that's just me.""" start="00:54:09.580" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""[Speaker 4]: I just want to say something before Robin""" start="00:54:12.360" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""drops in. Sasha, go please first.""" start="00:54:13.900" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""[Speaker 0]: And I think people shouldn't like feel bad""" start="00:54:18.800" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""about having those. I think designing""" start="00:54:20.280" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""conference systems or processes so that they""" start="00:54:24.120" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""can take advantage of little pockets of time""" start="00:54:26.800" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""is the way to go. I love the fact that we now""" start="00:54:30.460" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""have a system where hosts can show up on the""" start="00:54:33.200" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""day of and just rock it,""" start="00:54:35.280" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""right? So this is great.""" start="00:54:36.880" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""It is good that we can get by with less time""" start="00:54:41.580" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""throughout the process and just take""" start="00:54:43.940" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""advantage of whatever time people have.""" start="00:54:45.660" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""Whether it's, you know,""" start="00:54:46.960" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""they've got 2 hours, they want to caption a""" start="00:54:49.120" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""talk, that sort of stuff is already totally""" start="00:54:51.560" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""awesome.""" start="00:54:52.040" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""[Speaker 3]: And yeah, you both, thank you.""" start="00:54:57.480" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""Yeah, you both stole my Thunder and then put""" start="00:55:00.820" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""a quarterback in me. I couldn't agree more""" start="00:55:03.880" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""with everything you said.""" start="00:55:04.920" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""That's something that just typifies what is""" start="00:55:09.020" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""amazing about this conference,""" start="00:55:10.360" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""right? It's a kind of accessibility,""" start="00:55:12.340" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""isn't it? Having some work I can give you""" start="00:55:17.120" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""that helps you give back to your community""" start="00:55:19.380" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""that is at your level,""" start="00:55:21.340" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""that fits your time budget,""" start="00:55:23.300" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""that is something that you're willing to go""" start="00:55:26.960" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""care about because it intersects,""" start="00:55:28.280" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""you know, the world you live in in some""" start="00:55:31.400" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""practical way and therefore you can make time""" start="00:55:34.240" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""for it. We all live in a lot of different""" start="00:55:37.360" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""trenches and making them intersect is 1 of""" start="00:55:40.520" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""the things Emacs does in a technical way""" start="00:55:42.500" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""[Speaker 5]: and""" start="00:55:43.820" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""[Speaker 3]: through this conference at least in a very""" start="00:55:47.260" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""community way. Okay, and it brings me back""" start="00:55:51.100" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""also on the OBS front.""" start="00:55:52.360" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""And I think that's what really excited me""" start="00:55:54.080" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""too. When I think about the potential that's""" start="00:55:56.260" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""out there and getting a bunch of people""" start="00:55:59.440" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""looking at the work you've already done with""" start="00:56:01.960" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""OBS WebSocket and thinking about,""" start="00:56:03.960" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""you know, oh, we want more timers that count""" start="00:56:06.660" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""things down and we want each organizer to be""" start="00:56:09.280" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""able to have a little palette of them,""" start="00:56:10.680" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""some of which are gonna be handed to you by""" start="00:56:12.780" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""the conference director and some of which you""" start="00:56:14.620" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""can add yourself because they help you and""" start="00:56:16.800" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""that's right. And, you know,""" start="00:56:19.600" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""have, you know, keeping things really fast""" start="00:56:21.780" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""and loose so we can make the artistic""" start="00:56:24.120" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""decisions on the fly that make our conference""" start="00:56:26.880" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""what it is, but then making,""" start="00:56:30.340" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""you know, a simple automated tool chain that""" start="00:56:33.480" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""anyone can learn and that we know how to""" start="00:56:36.380" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""execute the steps of manually.""" start="00:56:37.700" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""That's the actual design pattern that you've""" start="00:56:41.000" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""implemented here that's working so well.""" start="00:56:42.980" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""So the""" start="00:56:47.460" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""[Speaker 4]: 1 thing I wanted to ask about Amin saying,""" start="00:56:50.080" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""oh, I've dropped the ball this year.""" start="00:56:51.600" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""Amin's, just to be clear with everyone,""" start="00:56:53.600" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""Amin's definition of dropping the ball is""" start="00:56:55.380" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""securing a sponsorship with the FSF.""" start="00:56:56.940" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""So that's dropping the ball for you.""" start="00:56:58.680" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""[Speaker 3]: Well attending a weekly meeting,""" start="00:57:02.320" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""We take 1 week off a month where we""" start="00:57:04.480" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""coordinate infrastructure issues between this""" start="00:57:08.400" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""and other FSF supported projects using quote""" start="00:57:13.200" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""unquote GNU infrastructure.""" start="00:57:14.320" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""That's kind of a, GNU is really an umbrella""" start="00:57:16.860" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""term once you get kind of close to it.""" start="00:57:19.220" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""You know, it's like GNU is all of the""" start="00:57:22.220" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""volunteers helping with this vision we have""" start="00:57:25.020" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""of user rights.""" start="00:57:25.840" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""[Speaker 4]: 1 last thing I wanted to add about how much""" start="00:57:31.380" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""time we spend on this.""" start="00:57:32.220" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""It's just the fact that we've experimented""" start="00:57:33.900" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""over the 4 years I've been part of this.""" start="00:57:36.180" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""You know, the first year we had so many""" start="00:57:38.480" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""meetings because we thought this would be the""" start="00:57:40.720" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""way to know 1 another and this would be the""" start="00:57:42.640" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""way to create qualitative notes.""" start="00:57:44.280" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""And we've come back to this.""" start="00:57:46.520" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""[Speaker 3]: That is what I saw. I can't help but""" start="00:57:48.180" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""interrupt you again. This is all I do.""" start="00:57:49.940" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""Leo This is why I keep off the microphone""" start="00:57:52.080" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""until the last 20 minutes of the conference""" start="00:57:54.060" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""once everybody already wants to hang up Then""" start="00:57:56.580" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""I know you'll be honest with me But I have to""" start="00:57:58.940" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""say when I looked at that table of data all I""" start="00:58:01.880" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""saw was 200 hours of Sasha's life that she""" start="00:58:05.280" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""spent talking to the, you know,""" start="00:58:06.940" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""all many of us were involved.""" start="00:58:08.360" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""It's not just the 4 or 5 of us that,""" start="00:58:10.960" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""you know, that have done this last 2 years""" start="00:58:13.160" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""convention, right? It's,""" start="00:58:14.440" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""you know, there's been many people that have""" start="00:58:17.120" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""come in, shared wise thoughts,""" start="00:58:19.340" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""helping us form the, I don't know,""" start="00:58:22.120" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""ethos or all of the things that we're""" start="00:58:24.400" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""carrying forward into 2024.""" start="00:58:26.680" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""Sorry, Leo.""" start="00:58:31.460" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""[Speaker 1]: No, no,""" start="00:58:32.640" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""[Speaker 4]: you're fine, You're fine.""" start="00:58:33.560" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""I mean, you pretty much continued with what I""" start="00:58:35.980" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""was going to talk about.""" start="00:58:37.500" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""So I'm looking at the time and I've already""" start="00:58:41.040" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""extended by 5 minutes the amount of time I""" start="00:58:44.640" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""was supposed to stay and Flowy is looking at""" start="00:58:46.640" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""me with very teary eyes because he's thinking""" start="00:58:50.320" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""about the meeting he's going to have at 9am""" start="00:58:51.900" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""tomorrow, as will I by the way.""" start="00:58:53.440" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""Yeah, don't you have to""" start="00:58:54.720" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""[Speaker 3]: be commuting like right now Flowy?""" start="00:58:56.380" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""I mean aren't you supposed to be...""" start="00:58:58.200" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""I hope you get to sleep before work.""" start="00:59:01.560" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""Thank you so much for your awesome work this""" start="00:59:04.820" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""year.""" start="00:59:04.960" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""[Speaker 6]: I mean, I didn't do so much at the Emojis""" start="00:59:07.360" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""Conference, so I'm just here like from""" start="00:59:09.100" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""Friday. At first, I was looking at the""" start="00:59:13.180" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""website, which talks we're having,""" start="00:59:14.760" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""So it's all fine. So maybe next year or the""" start="00:59:17.860" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""coming year, I can do a little bit more""" start="00:59:19.740" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""privacy.""" start="00:59:19.960" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""[Speaker 4]: A little more, like again,""" start="00:59:23.260" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""like with Amin, Flowy's definition of doing,""" start="00:59:25.920" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""not having done much is hosting 1 of many of""" start="00:59:30.240" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""the Dev talks. So you could be kind of""" start="00:59:34.120" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""worried about it. All right,""" start="00:59:35.680" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""folks, considering the question that we have""" start="00:59:38.480" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""right now, we still see people adding""" start="00:59:40.440" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""questions, but I think we are all pretty""" start="00:59:42.260" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""tired and we need to get on with the rest of""" start="00:59:44.960" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""our weekends or nights.""" start="00:59:46.280" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""So do I go into parting words now everyone?""" start="00:59:49.740" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""Are we okay with this?""" start="00:59:50.720" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""I'll take this for a yes.""" start="00:59:55.280" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""I'll ask Sasha, yeah?""" start="00:59:56.780" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""[Speaker 0]: Oh I think I basically have until the kiddo""" start="01:00:00.780" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""yells at me to come for dinner so I can hang""" start="01:00:03.560" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""out with people after.""" start="01:00:04.440" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""and do the wrapping up.""" start="01:00:09.240" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""[Speaker 3]: But I""" start="01:00:09.920" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""[Speaker 4]: All right, splendid. Go ahead know,""" start="01:00:10.080" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""right, I'll do the wrapping up for the""" start="01:00:12.100" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""perhaps the stream. We might leave it up""" start="01:00:13.860" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""because there's no impetus for us to close""" start="01:00:16.360" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""it. But at least to officially close while""" start="01:00:20.100" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""we're still there, EmacsConf 2023,""" start="01:00:22.340" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""I will have again to thank everyone,""" start="01:00:25.480" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""all the speakers, all my co-organizers for""" start="01:00:28.200" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""making this possible. You've seen all the""" start="01:00:31.020" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""care that we put into it,""" start="01:00:32.120" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""and we are glad every year that all this work""" start="01:00:34.900" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""is doing something in terms of community""" start="01:00:37.940" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""building, in terms of leading more people to""" start="01:00:41.420" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""join us every year as speakers,""" start="01:00:42.880" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""or just join us as a user of Emacs.""" start="01:00:45.040" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""And it's always a pleasure to organize the""" start="01:00:49.940" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""conference, to host it,""" start="01:00:51.140" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""and to work with everyone in the room""" start="01:00:53.360" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""currently. Corwin and I are constantly joking""" start="01:00:56.840" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""when we are backstage making jokes.""" start="01:00:59.640" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""I think it's Corwin we said last year during""" start="01:01:03.540" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""the closing remarks that there was no other""" start="01:01:06.620" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""place they'd rather be than in the backstage.""" start="01:01:09.000" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""And for me, even though many things have""" start="01:01:12.800" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""changed in my life over the last year,""" start="01:01:15.040" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""many good things have happened,""" start="01:01:16.240" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""it's good to come back to Emacs Cons as this""" start="01:01:19.640" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""milestone and say, oh yeah,""" start="01:01:22.080" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""I'm exactly where I want to be,""" start="01:01:23.960" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""with the people I want to be with,""" start="01:01:25.320" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""and I see myself and I cannot wait to see""" start="01:01:29.020" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""myself again in the situation next year.""" start="01:01:30.660" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""So thank you so much everyone.""" start="01:01:32.080" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""If you want to join us,""" start="01:01:34.440" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""ask questions, we'll still be here for a""" start="01:01:36.100" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""while. Floey might drop out,""" start="01:01:37.360" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""I might drop out, Sasha might drop out,""" start="01:01:39.520" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""but we'll be here to answer as many questions""" start="01:01:41.600" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""as you want for as long as we can.""" start="01:01:43.140" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""Bye bye everyone and let's get started with""" start="01:01:46.120" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""the after show now.""" start="01:01:46.800" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""[Speaker 0]: Bye Leo, bye Chloe! I'll drop out eventually""" start="01:01:51.540" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""when the kiddo yells at me.""" start="01:01:53.000" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""[Speaker 3]: I can't tell you how much fun this is,""" start="01:01:56.200" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""yeah. The way to remember what I said,""" start="01:01:58.260" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""Leo, it's 100% true. Oh man,""" start="01:02:00.400" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""turning off your lights,""" start="01:02:01.380" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""I'm doing it. I'm doing it too.""" start="01:02:02.880" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""Sorry y'all. Oh, yeah,""" start="01:02:04.600" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""bye-bye lights""" start="01:02:05.380" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""[Speaker 4]: Yeah, that's every year that's how we finish""" start="01:02:10.440" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""we just turn off the the big lights that we""" start="01:02:12.340" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""have in our faces all the day especially the""" start="01:02:14.240" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""hosts""" start="01:02:14.440" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""[Speaker 3]: and Tell me if there's too much back chatter""" start="01:02:19.120" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""[Speaker 5]: get off my headphones,""" start="01:02:22.700" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""too, so I can""" start="01:02:24.280" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""[Speaker 3]: when I hear you in the room.""" start="01:02:25.260" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""Can I hear you now? Yeah.""" start="01:02:28.860" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""Is it feeding back pretty bad?""" start="01:02:31.960" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""[Speaker 1]: Hello? there is some echo.""" start="01:02:34.480" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""[Speaker 4]: Yeah, there is some echo.""" start="01:02:37.460" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""[Speaker 3]: I think Okay. Fine. I can live with my""" start="01:02:41.200" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""headset a little longer.""" start="01:02:42.160" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""I give 1 ear a break at a time.""" start="01:02:44.860" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""[Speaker 1]: Thanks for your sacrifice.""" start="01:02:47.140" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""[Speaker 3]: Oh, well, you know, it's a small,""" start="01:02:50.060" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""small, small price to pay to get to smooth""" start="01:02:53.080" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""with y'all. Yeah, I was just looking at that""" start="01:02:56.600" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""chart and I was thinking about all of those""" start="01:02:58.580" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""meetings that we had like 18 months we were""" start="01:03:01.360" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""just on this death march to organize this and""" start="01:03:05.900" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""it's just such an amazing accomplishment that""" start="01:03:09.240" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""you you have here Sasha like I'm sorry to""" start="01:03:11.960" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""pick on you personally but the work that you""" start="01:03:14.540" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""put in keep being able to keep it the whole""" start="01:03:16.680" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""technical project in your mind,""" start="01:03:18.760" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""all the way down to presenting it at this""" start="01:03:21.580" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""year's conference and like kind of spoon""" start="01:03:24.100" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""feeding it to people that want to run off in""" start="01:03:26.380" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""their own damn direction and then handing""" start="01:03:27.900" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""them an org is the 1 that people keep bugging""" start="01:03:31.480" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""us about. So if you're looking for a project,""" start="01:03:33.440" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""here it is. Just really well done.""" start="01:03:37.340" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""I no longer feel like we wasted a lot of time""" start="01:03:43.540" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""there. I mean, you remember I enjoyed so much""" start="01:03:46.460" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""all of our check ins and all of that stuff.""" start="01:03:48.600" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""But we had so many ideas,""" start="01:03:51.420" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""you can imagine that I wondered,""" start="01:03:53.480" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""you know, I wondered if we should have had""" start="01:03:56.980" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""more focused meetings and all that.""" start="01:03:58.520" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""And I was glad when we stopped having like""" start="01:04:01.100" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""weekly meetings, because you know what I mean""" start="01:04:04.240" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""To keep this much power in the room once a""" start="01:04:06.980" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""week, it feels creepy.""" start="01:04:08.160" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""This much intellectual power.""" start="01:04:10.560" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""Anyway, that's it. I think that's it for me.""" start="01:04:18.525" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""[Speaker 1]: Yeah, and I'll say, I mean,""" start="01:04:19.600" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""I can't obviously speak for Sash or anyone""" start="01:04:22.280" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""else. Yeah, the regular meetings were a""" start="01:04:24.840" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""little bit intense than we had the year""" start="01:04:26.980" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""before, but I'm kind of also super glad that""" start="01:04:29.540" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""we did do them. And, you know,""" start="01:04:31.840" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""in a way, it did help us sort of connect and""" start="01:04:34.840" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""get to know each other much more regularly or""" start="01:04:38.180" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""much more which is great and I see thumbs up""" start="01:04:41.200" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""from Leo and Corwin so yeah happy we did""" start="01:04:44.900" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""them. Might want to have some kind of""" start="01:04:49.080" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""actually irregular ones every once in a while""" start="01:04:51.820" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""if we have to decide on something.""" start="01:04:53.400" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""But if like this year,""" start="01:04:55.240" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""everything can be worked out pretty much ad""" start="01:04:57.400" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""hoc, whenever needs be,""" start="01:04:58.780" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""like over asynchronous communications.""" start="01:05:00.480" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""I see Sasha nodding very excitedly.""" start="01:05:03.640" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""This also works. So yeah.""" start="01:05:07.820" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""And I also see some questions coming in here""" start="01:05:10.920" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""in BBB. If other folks want to join,""" start="01:05:14.580" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""please feel free to do that as well.""" start="01:05:16.280" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""Yeah, I don't think we have an issue tracker""" start="01:05:18.800" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""right now, but our whole website is a wiki.""" start="01:05:22.440" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""So if you wanna like create a new page or""" start="01:05:24.780" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""there might be a page,""" start="01:05:26.180" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""I don't know. You can of course go in and""" start="01:05:28.640" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""edit it to your heart's content.""" start="01:05:29.760" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""[Speaker 3]: Yeah. Hilarious, I couldn't,""" start="01:05:36.540" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""like I almost managed to type that as fast as""" start="01:05:39.440" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""you could say it, you know.""" start="01:05:40.760" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""That's fine. I get the same answer in the""" start="01:05:43.840" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""chat. Yep. Our website's a wiki and we""" start="01:05:46.620" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""definitely use ideas here.""" start="01:05:48.060" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""If you want to implement them or you know""" start="01:05:50.280" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""document them enough that even Corwin can""" start="01:05:53.100" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""code it then you know I'll do that.""" start="01:05:55.240" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""[Speaker 0]: Also I'll go through all the etherpads at""" start="01:05:58.220" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""some point to harvest them and I think I have""" start="01:06:00.240" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""yeah I have an Emacs list function that does""" start="01:06:02.240" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""this for me. So that I can go through that""" start="01:06:05.020" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""thing and include that in our organizers""" start="01:06:06.820" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""notebooks, lessons learned and ideas for next""" start="01:06:09.060" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""year.""" start="01:06:09.280" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""[Speaker 3]: Yeah.""" start="01:06:11.120" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""[Speaker 4]: Yeah, because something that you know,""" start="01:06:15.010" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""We were talking about the different models""" start="01:06:16.280" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""between having many, many meetings and how it""" start="01:06:18.680" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""paid off eventually. The thing is,""" start="01:06:20.280" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""this year we had no meetings.""" start="01:06:22.160" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""We met Friday morning on Mumble and we were""" start="01:06:27.440" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""ready to go. We did chat things up a little""" start="01:06:29.540" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""bit on ISE, obviously,""" start="01:06:30.180" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""but no meeting this year.""" start="01:06:31.780" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""So I'm tempted to say that,""" start="01:06:33.420" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""yes, we could have off-hand meetings,""" start="01:06:34.800" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""but I think it's mostly because we want to""" start="01:06:36.360" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""see 1 another, not because we need""" start="01:06:38.240" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""necessarily for those meetings to prepare""" start="01:06:40.680" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""Emacs cons. But what I wanted to say as well""" start="01:06:45.480" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""is that I think it's a testament to the bets""" start="01:06:49.740" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""that Sasha took last year to automatize a lot""" start="01:06:52.940" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""of things. I mean, we'd already been""" start="01:06:54.520" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""automatizing a lot of stuff,""" start="01:06:55.760" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""like writing scripts for every single thing""" start="01:06:58.260" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""in ESPire, but last year we made a big bet to""" start="01:07:02.220" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""say, what if we had OBS in the cloud?""" start="01:07:04.600" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""What if we had a streaming platform that was""" start="01:07:06.580" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""running on a machine? And this is what""" start="01:07:08.680" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""allowed us to very smoothly have 2 tracks,""" start="01:07:11.660" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""the general track and the dev track.""" start="01:07:13.380" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""And I think the beauty of this system is""" start="01:07:16.640" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""that, obviously, because we get more and more""" start="01:07:19.680" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""speakers submitting talks,""" start="01:07:20.720" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""we are starting to think maybe we actually""" start="01:07:22.800" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""need a third track or something and no 1 is""" start="01:07:26.480" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""stressed in the room when Sasha says this.""" start="01:07:28.580" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""You know, there's not the reaction that's""" start="01:07:31.100" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""like, oh no it's gonna be tough,""" start="01:07:32.320" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""we're gonna need more hosts,""" start="01:07:33.200" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""organizers, it's just a calm...""" start="01:07:34.480" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""[Speaker 3]: Now, point of order, Now Flowy is stressed""" start="01:07:37.580" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""when Sasha says this.""" start="01:07:39.000" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""[Speaker 4]: That was just a-""" start="01:07:44.640" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""[Speaker 0]: I didn't know, Colin, we could put you in the""" start="01:07:46.640" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""spot next year. You'd be like,""" start="01:07:47.720" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""you know, hey, Colin, what do you feel about""" start="01:07:49.200" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""hosting?""" start="01:07:49.400" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""[Speaker 3]: You know, I'm happy to do it.""" start="01:07:53.300" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""And I feel, I mean, just to jump in there and""" start="01:07:56.960" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""say, yes, exactly. No,""" start="01:07:59.540" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""there's no concern on the part of the""" start="01:08:01.400" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""organizer committee that we could expand""" start="01:08:03.220" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""this. If you said we needed to expand to 4""" start="01:08:06.000" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""tracks, I think we would gulp and consider""" start="01:08:08.400" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""it, you know, from there,""" start="01:08:10.080" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""it gets a little crazy,""" start="01:08:11.040" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""but strictly because there aren't that many""" start="01:08:13.980" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""people that we know want to commit.""" start="01:08:16.399" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""What did we see there?""" start="01:08:18.120" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""80 hours of potential work that,""" start="01:08:20.600" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""you know, that could go into organizing next""" start="01:08:23.000" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""year's conference if you find that it's a""" start="01:08:25.439" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""rabbit hole for you and being a streamer""" start="01:08:26.979" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""means you want to read every email and""" start="01:08:28.979" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""respond to every, as Sasha has done this last""" start="01:08:31.500" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""year, right? So when I look at her numbers""" start="01:08:34.439" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""for total participation,""" start="01:08:35.359" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""that's really a high watermark.""" start="01:08:38.000" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""Sasha really took care of this convention,""" start="01:08:43.439" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""you know, like a producer might.""" start="01:08:46.680" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""And the fact that what used to take 200 hours""" start="01:08:52.240" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""before, I mean, I can't harp enough on the""" start="01:08:56.000" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""story that that's telling you,""" start="01:08:57.720" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""right? And as I think about it with a project""" start="01:09:00.399" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""manager hat on, right?""" start="01:09:01.800" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""I'm saying, okay, well,""" start="01:09:02.960" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""that's, you know, that work can potentially""" start="01:09:07.080" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""be amplified to many thousands of hours of""" start="01:09:09.800" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""work, considering the automation and the""" start="01:09:11.800" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""potential for bringing people in.""" start="01:09:13.279" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""So if you thought about it as a money-making""" start="01:09:14.540" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""thing, If we were trying to make money by""" start="01:09:16.319" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""having these conventions,""" start="01:09:16.960" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""you would think we have a very profitable""" start="01:09:19.040" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""business here because we can amplify the""" start="01:09:23.760" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""talent that walks in the door really""" start="01:09:25.640" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""effectively, if that makes sense,""" start="01:09:28.140" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""through the tools and the training.""" start="01:09:29.800" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""[Speaker 0]: So we should clarify that if anyone wants to""" start="01:09:33.800" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""volunteer as a host or just check in,""" start="01:09:35.920" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""let's just talk host. It's really just a""" start="01:09:38.300" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""matter of showing up, making sure your BVB""" start="01:09:40.080" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""works so you can talk.""" start="01:09:42.160" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""If you want to share your webcam,""" start="01:09:43.260" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""you can. You can skip it if you don't want""" start="01:09:44.899" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""to. You can share the screen with the pad.""" start="01:09:46.359" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""And then you just sit there and you chat with""" start="01:09:48.640" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""a speaker and you read the questions off the""" start="01:09:51.260" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""pad in case they don't read the questions off""" start="01:09:53.240" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""themselves. So it can be a very low effort,""" start="01:09:56.740" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""low stress way to get into it and just there""" start="01:09:59.440" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""kind of helping the speaker have somebody to""" start="01:10:02.840" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""talk to. It doesn't have to take 80 hours.""" start="01:10:05.540" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""It can take 2 hours and that's cool.""" start="01:10:08.220" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""[Speaker 3]: And the same, and that's just like the""" start="01:10:10.680" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""transcription task. Yeah,""" start="01:10:11.820" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""sorry, I probably missed the lead there,""" start="01:10:13.700" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""right? Every individual part of this is""" start="01:10:16.080" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""really easy. So it's an open-ended commitment""" start="01:10:19.160" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""to come and kind of meet a part of the""" start="01:10:22.360" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""committee, a part of the community,""" start="01:10:24.840" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""right? To come in and say,""" start="01:10:27.040" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""maybe you're really excited about org,""" start="01:10:29.440" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""you could review talks and just review the""" start="01:10:33.420" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""org ones. There's not an obligation that says""" start="01:10:35.420" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""you're going to look at every talk that's""" start="01:10:37.440" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""submitted, right? Share your thoughts on the""" start="01:10:40.520" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""talks that you have a chance to review the""" start="01:10:42.500" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""proposals. That's the submissions review""" start="01:10:44.440" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""part, right? So there's a way to help with""" start="01:10:48.040" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""almost any appetite for I'd like a little""" start="01:10:51.820" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""extra work in the Emacs department here like""" start="01:10:54.520" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""if you want to feel like you're part of the""" start="01:10:56.480" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""team this this team is really easy to get""" start="01:10:59.600" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""[Speaker 7]: think that's""" start="01:11:02.440" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""[Speaker 3]: involved with. I I mean,""" start="01:11:03.680" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""please. Go ahead,""" start="01:11:04.280" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""[Speaker 4]: No, no, please. I've talked enough.""" start="01:11:06.820" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""[Speaker 1]: sort of the... Leo. Well,""" start="01:11:08.940" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""I don't get tired of hearing you talk,""" start="01:11:10.380" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""but yeah, I was going to say,""" start="01:11:13.000" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""Yeah, I feel like that's the general message""" start="01:11:16.920" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""here is that we're all just a bunch of people""" start="01:11:19.600" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""who are interested in this.""" start="01:11:21.360" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""And of course, being humans,""" start="01:11:24.060" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""each of us have different kinds of lives and""" start="01:11:26.120" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""different kinds of availabilities and""" start="01:11:27.560" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""different kinds of interests.""" start="01:11:28.260" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""And there is something for everybody,""" start="01:11:29.860" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""both in terms of the kinds of tasks that you""" start="01:11:34.300" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""need doing, but also in terms of the amount""" start="01:11:37.480" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""of time that you want or are able to put in.""" start="01:11:39.980" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""So yes, if you do think this is something""" start="01:11:43.780" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""that you might be interested in helping with""" start="01:11:46.240" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""for future additions and such,""" start="01:11:47.980" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""or even some of the post-conference work that""" start="01:11:51.140" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""needs doing after this year.""" start="01:11:52.300" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""Please reach out there's something for""" start="01:11:55.800" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""everybody and I would love to have""" start="01:11:57.440" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""[Speaker 6]: you. I can confirm there was an easy access""" start="01:12:03.020" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""so I came here last year just doing some""" start="01:12:06.260" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""checking in and the process of getting,""" start="01:12:08.600" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""it's called a trained in was really,""" start="01:12:10.840" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""really short. There was a lot of""" start="01:12:12.520" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""documentation how to do something.""" start="01:12:13.700" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""I mean, there's a pad that gets sent and what""" start="01:12:17.720" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""to do, when to do, and what to ask is like""" start="01:12:20.540" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""really incredible. So thank you for that.""" start="01:12:22.160" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""Just come here, write an email,""" start="01:12:26.320" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""join us. It's really, really cool.""" start="01:12:28.860" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""And it's a great experience to be honest.""" start="01:12:30.920" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""[Speaker 4]: Thank you. And while Sasha is speaking about""" start="01:12:35.680" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""the update of the wiki,""" start="01:12:36.820" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""oh Coleman did you want to say something?""" start="01:12:38.320" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""[Speaker 3]: No I was just I was just gonna embarrass""" start="01:12:41.140" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""Floey Coder further but you go ahead.""" start="01:12:44.240" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""I was just gonna say I think you're pretty""" start="01:12:51.000" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""quick, you're pretty quick,""" start="01:12:52.420" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""you took to it really quickly or you show""" start="01:12:55.320" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""just kind of a reflexive calm.""" start="01:12:57.240" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""Like you know how to not talk over people.""" start="01:12:59.340" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""You're already better at it than I am.""" start="01:13:01.200" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""Now, you know, I think,""" start="01:13:06.500" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""yeah, I hope you're enjoying the new stuff""" start="01:13:09.000" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""that you're starting to take on because you""" start="01:13:10.600" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""seem to be doing great with it.""" start="01:13:12.040" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""And yeah, I hope you're not sitting there""" start="01:13:14.220" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""thinking that you're taking,""" start="01:13:15.720" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""you know, that you're coming on,""" start="01:13:17.960" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""that you're not taking on enough""" start="01:13:19.700" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""responsibility or anything like that,""" start="01:13:21.420" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""or I don't know, maybe.""" start="01:13:23.100" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""I picked up like a little undercurrent of""" start="01:13:26.040" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""like, I don't do that much,""" start="01:13:28.100" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""and I hope you don't feel that way because I""" start="01:13:31.440" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""just enjoyed really having your help the last""" start="01:13:33.719" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""couple of years. Thank you very much.""" start="01:13:38.680" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""[Speaker 4]: Yeah, that's how they get you,""" start="01:13:47.640" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""you know, they just tell you,""" start="01:13:48.560" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""oh, could you do check-ins?""" start="01:13:49.340" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""Like I showed up for 4 years ago saying,""" start="01:13:51.820" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""oh, I'd like to help and look at me now.""" start="01:13:54.660" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""I think I did I host on the first year?""" start="01:13:56.780" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""I'm pretty sure I did.""" start="01:13:57.800" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""Like it took 2 months basically of onboarding""" start="01:14:00.020" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""to convince me to do some of the hosting and""" start="01:14:02.960" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""back then oh it was so tough for us to do the""" start="01:14:06.820" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""hosting because we didn't have all the fancy""" start="01:14:08.440" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""setup we have this year and we were""" start="01:14:10.320" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""struggling with OBS with bid rates with""" start="01:14:13.680" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""sharing scenes I'm glad we are where we are""" start="01:14:18.160" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""today, where I don't have to worry as much""" start="01:14:20.460" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""about this. But it's also nice,""" start="01:14:21.880" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""it's also 1 thing, we do have a culture of""" start="01:14:24.440" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""documentation as Sasha exemplified,""" start="01:14:25.760" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""and like Flo mentioned,""" start="01:14:28.140" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""documentation on the roles.""" start="01:14:29.540" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""Yes, We did do this to help people join us.""" start="01:14:33.060" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""But really, I'm the host of General,""" start="01:14:39.360" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""but it could be just anyone else because we""" start="01:14:41.660" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""have so much documentation on how to do""" start="01:14:43.780" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""things. Obviously, when a co-organizer is""" start="01:14:46.560" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""doing a role, we tend to have an eye on how""" start="01:14:48.740" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""the infrastructure is going.""" start="01:14:49.740" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""But really, if you want to join us,""" start="01:14:51.820" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""we will make sure that the jobs that you""" start="01:14:54.720" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""have, first, you like them and it's something""" start="01:14:57.240" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""that interests you, and we will also make""" start="01:14:59.440" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""sure that on our end, everything goes well""" start="01:15:04.180" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""for you. Like we'll be monitoring the streams""" start="01:15:06.140" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""and every time we have a new person join us,""" start="01:15:08.540" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""it is as much energy and mental availability""" start="01:15:13.500" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""to invest into, oh, maybe we could do this.""" start="01:15:17.780" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""Oh, 0, we have a fire going out because the""" start="01:15:19.800" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""speaker hasn't checked in yet.""" start="01:15:21.320" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""So it's all about sharing expertise,""" start="01:15:24.060" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""it's all about making people level up in""" start="01:15:27.180" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""terms of skills that are really useful.""" start="01:15:28.520" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""I will attribute a lot of my success in""" start="01:15:34.120" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""public speaking to the work I do with""" start="01:15:35.920" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""EmacsConf, and I'm sure plenty of people""" start="01:15:38.620" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""would gain from joining us and learning these""" start="01:15:43.420" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""skills. All right, It's about 30 minutes past""" start="01:15:47.440" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""the official time. Do we want to go a little""" start="01:15:49.740" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""longer? Are we still available to go?""" start="01:15:51.180" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""All right, well, let's keep going.""" start="01:15:55.180" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""I don't see any more people joining us on the""" start="01:16:00.443" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""[Speaker 1]: We have Bob,""" start="01:16:00.660" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""[Speaker 4]: Blue Button. who was 1 of the speakers today""" start="01:16:01.240" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""in the room. Bob, do you want to maybe unmute""" start="01:16:03.940" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""yourself and ask us some questions?""" start="01:16:05.400" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""Or just thank us. I mean,""" start="01:16:08.420" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""I'm just begging for something.""" start="01:16:09.480" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""But I know you've been very helpful.""" start="01:16:10.920" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""[Speaker 5]: Yes. How are you? No, I've really had fun.""" start="01:16:15.340" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""No, I'm exhausted. I'm exhausted for you,""" start="01:16:18.340" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""I think. So I learned something.""" start="01:16:22.800" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""Everybody wants to record their videos,""" start="01:16:25.040" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""which of course, is great,""" start="01:16:26.460" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""and then you have the subtitles and""" start="01:16:28.380" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""everything. But I saved a lot of time by""" start="01:16:31.560" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""doing it live this year and not going in and""" start="01:16:35.600" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""tweaking and doing all the editing and""" start="01:16:38.040" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""spending all the time that we do.""" start="01:16:39.440" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""And it was kind of fun to do it that way too.""" start="01:16:42.480" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""So just a little note there.""" start="01:16:44.900" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""But I look forward to seeing 1 of my talks""" start="01:16:48.340" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""subtitled someday. So no,""" start="01:16:53.760" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""I love what you do. It's fun.""" start="01:16:55.240" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""I've only seen part of Sasha's talk,""" start="01:16:57.660" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""so I'll go and review that about how you're""" start="01:17:00.660" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""automating all this. You know,""" start="01:17:03.840" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""it's a little sad for me personally that of""" start="01:17:06.560" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""course, Org gets all the attention,""" start="01:17:09.080" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""but you know, we're exposing hyperbole more""" start="01:17:14.060" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""now and There's definitely a growing interest""" start="01:17:16.820" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""on Reddit and you know,""" start="01:17:18.800" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""I think it's kind of like EmacsConf.""" start="01:17:20.140" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""Give it a few years. We went away for a long""" start="01:17:23.680" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""time and then we came back.""" start="01:17:24.840" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""We'll start to see it permeate the Emacs""" start="01:17:30.420" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""first. But I was thinking that,""" start="01:17:33.160" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""you know, I think people who like Emacs and""" start="01:17:36.720" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""stuff, they read things online,""" start="01:17:38.340" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""they come to this conference,""" start="01:17:40.920" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""but we're always hearing about,""" start="01:17:43.620" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""well, the next generation.""" start="01:17:44.620" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""We have to deal with that.""" start="01:17:47.260" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""And I think a lot of people get exposed to""" start="01:17:50.000" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""Emacs in college. Now a professor turns them""" start="01:17:52.900" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""on to it and makes them use it,""" start="01:17:55.080" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""and then they go out into the real world,""" start="01:17:57.100" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""and there's no encouragement anymore,""" start="01:17:59.720" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""and they just drop it.""" start="01:18:01.460" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""And with all of what you're putting together""" start="01:18:05.600" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""here, it seems like if there was some reach""" start="01:18:09.280" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""out to universities and college students,""" start="01:18:14.120" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""You know, we might get a whole new big crowd""" start="01:18:18.600" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""of people coming in. You know,""" start="01:18:22.360" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""just as I think OREG has really attracted a""" start="01:18:25.200" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""lot of people in the sciences,""" start="01:18:26.840" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""since that's what it was originally developed""" start="01:18:30.060" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""for. So just a thought,""" start="01:18:32.500" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""you know, maybe if you get any volunteers who""" start="01:18:35.740" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""can help in the reach out or just,""" start="01:18:38.440" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""you know, sending things around to""" start="01:18:40.320" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""universities that might really extend who""" start="01:18:43.780" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""gets exposed to this stuff.""" start="01:18:45.060" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""[Speaker 1]: Yeah, I think that's a great and very""" start="01:18:49.240" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""interesting idea. And it sort of touches on a""" start="01:18:51.960" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""couple of different things.""" start="01:18:52.600" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""Sort of like you mentioned,""" start="01:18:53.640" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""well, with org, it sort of really drew into""" start="01:18:56.180" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""sciences, folks. It would be interesting to""" start="01:19:00.060" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""see other parts of Emacs doing that for other""" start="01:19:03.280" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""kinds of communities, but also specifically,""" start="01:19:05.740" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""I guess, for colleges and universities.""" start="01:19:08.920" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""Yeah, it would be cool if we had local groups""" start="01:19:14.220" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""or local meetups, because so far right now,""" start="01:19:17.140" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""I think the most common ones are like by city""" start="01:19:20.140" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""like for example a Toronto Emacs meetup or""" start="01:19:22.280" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""something like that yeah if you could maybe""" start="01:19:25.320" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""encourage or help foster a university level""" start="01:19:28.820" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""type of thing you know University of blah""" start="01:19:32.200" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""blah Emacs group or something like that and""" start="01:19:35.360" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""you know seeing what their needs would be or""" start="01:19:39.860" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""trying to think also what features of Emacs""" start="01:19:42.860" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""would be very useful in an academic slash""" start="01:19:46.260" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""educational setting. Yeah,""" start="01:19:48.680" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""lots of food for thought there.""" start="01:19:50.460" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""So thank you for mentioning this.""" start="01:19:52.120" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""[Speaker 5]: Sure. And I guess, yeah,""" start="01:20:02.420" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""OBS is coming up here.""" start="01:20:04.400" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""I worked with that a bit,""" start="01:20:06.820" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""yes, last year. You know,""" start="01:20:08.920" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""another powerful piece of software with a""" start="01:20:12.040" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""sort of, I think, a weak user interface,""" start="01:20:15.240" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""you know, for the newbies coming along on it.""" start="01:20:20.080" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""And maybe, you know, if there's,""" start="01:20:23.200" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""if that's kind of what people use,""" start="01:20:25.920" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""figuring out or putting some information in""" start="01:20:29.540" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""the wiki about how to do that,""" start="01:20:32.740" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""you know, work with it or...""" start="01:20:34.900" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""[Speaker 4]: Oh, good idea.""" start="01:20:36.300" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""[Speaker 3]: I can comment. It is definitely the""" start="01:20:43.140" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""preeminent streamer software out there,""" start="01:20:46.420" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""well beyond the free software community.""" start="01:20:49.120" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""It's used by most streamers on Twitch and""" start="01:20:54.120" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""other like commercial for-profit things but""" start="01:20:59.680" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""of course those companies are making money""" start="01:21:01.780" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""off people trying to give money to the""" start="01:21:04.480" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""streamers. Those streamers aren't getting any""" start="01:21:07.200" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""software help. So actually most of them are""" start="01:21:10.160" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""dependent for their income on free software""" start="01:21:13.900" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""like OBS and OBS in specific or by some kind""" start="01:21:18.680" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""of forked brand name is the primary tool.""" start="01:21:23.100" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""[Speaker 4]: If I'm not mistaken I believe Stefan has""" start="01:21:28.660" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""joined us right now in the room.""" start="01:21:29.860" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""I'm putting you on the spot,""" start="01:21:33.240" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""if you want to stay muted you can.""" start="01:21:34.480" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""Oh, you have unmuted yourself.""" start="01:21:35.640" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""[Speaker 7]: I managed to click the unmute button.""" start="01:21:38.400" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""Yes, I'm here. How are you guys doing?""" start="01:21:41.180" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""[Speaker 4]: Doing good, surviving here.""" start="01:21:43.840" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""[Speaker 1]: Congratulations.""" start="01:21:44.200" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""[Speaker 4]: Late in your time.""" start="01:21:45.480" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""[Speaker 7]: Really amazing work organizing the""" start="01:21:50.040" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""conference. I really have to congratulate""" start="01:21:51.960" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""everyone. So I just hopped on here to sort of""" start="01:21:56.120" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""say that I'm extremely impressed.""" start="01:21:58.140" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""And I think this is an example to follow for""" start="01:22:04.240" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""other conferences and for Emacs in general.""" start="01:22:07.040" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""I think we need more of this community-type""" start="01:22:09.400" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""organizing and just getting people interested""" start="01:22:12.940" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""and involved on all kinds of levels can only""" start="01:22:15.960" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""help Emacs. Because we are in this for the""" start="01:22:20.200" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""long haul. That's it.""" start="01:22:22.540" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""[Speaker 3]: Oh, what a great point.""" start="01:22:25.280" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""If I can comment, that's 1 of the things that""" start="01:22:28.500" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""drew me to trying to contribute to free""" start="01:22:30.720" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""software when I was a kid,""" start="01:22:32.580" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""like we're talking now 30 plus years ago,""" start="01:22:35.580" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""the idea like, and I recognized it from""" start="01:22:38.360" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""Stallman's initial manifestos on the topic,""" start="01:22:42.180" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""right? He was clearly in this for the long""" start="01:22:45.060" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""haul. Like I am building the library of""" start="01:22:47.040" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""Alexandria here and like linking the work""" start="01:22:50.500" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""that we're trying to do to community that I""" start="01:22:52.420" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""don't know how you could touch my heart you""" start="01:22:54.640" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""know more surely because that's that's""" start="01:22:57.620" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""exactly what we want to do not necessarily""" start="01:22:59.440" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""any given talk or comment but the idea that""" start="01:23:03.800" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""we have to get together and share our ideas""" start="01:23:07.960" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""and the place that we do that has to be just""" start="01:23:10.900" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""has to be a buffet and not a crucible.""" start="01:23:14.380" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""[Speaker 7]: And look, we're standing on the shoulders of""" start="01:23:17.620" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""giants, really, when we're looking at Emacs""" start="01:23:19.400" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""and sort of what we have achieved.""" start="01:23:21.100" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""And the galaxy of talent that exists in the""" start="01:23:24.680" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""Emacs community is also like truly""" start="01:23:27.040" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""impressive, I think. So There's a lot of work""" start="01:23:30.800" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""to be done, but we've also achieved some""" start="01:23:34.280" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""pretty impressive things so far.""" start="01:23:37.120" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""So let's just keep at it.""" start="01:23:38.620" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""I'm sure we'll have a fantastic future for""" start="01:23:43.200" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""Emacs.""" start="01:23:44.180" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""[Speaker 5]: You know, I'm kind of interested in what""" start="01:23:52.540" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""Stefan's here. You know,""" start="01:23:56.540" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""just the common tropes that go around.""" start="01:24:00.400" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""I just hear it so much on the net,""" start="01:24:05.320" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""you know, is Emacs still alive?""" start="01:24:07.540" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""Do people still use it?""" start="01:24:09.960" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""You know, and of course,""" start="01:24:11.120" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""it's like you have an older piece of software""" start="01:24:13.620" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""that started so long ago,""" start="01:24:15.200" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""people don't realize that it's still up,""" start="01:24:17.540" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""but it's also because of the trends,""" start="01:24:20.320" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""right? You know, we've got the electron-based""" start="01:24:22.900" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""development and Visual Studio is slick out of""" start="01:24:28.580" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""the box. So what's in the core Emacs""" start="01:24:32.720" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""developers realm, obviously you guys are""" start="01:24:36.260" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""taking this longer term perspective,""" start="01:24:38.160" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""which makes sense, but what do you think""" start="01:24:44.060" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""about this issue, the shorter term and how to""" start="01:24:48.480" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""alleviate those concerns that some people""" start="01:24:52.200" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""represent?""" start="01:24:52.540" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""[Speaker 7]: Of course, yes. I mean,""" start="01:24:54.820" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""this is something that,""" start="01:24:55.840" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""I mean, clearly people are discussing and as""" start="01:24:59.340" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""you say, It's almost like a trope at this""" start="01:25:01.480" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""point. And it's been discussed on EmacsDevil,""" start="01:25:04.200" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""what can we do to promote Emacs more and to""" start="01:25:07.800" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""what extent should we care about that?""" start="01:25:10.240" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""And I mean, my reply to that is usually just,""" start="01:25:15.100" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""the rumors of my death are very accurate.""" start="01:25:19.120" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""And I think this is true also for Emacs.""" start="01:25:24.720" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""So we are very much here.""" start="01:25:29.240" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""I think what has happened also is reflective""" start="01:25:31.960" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""of basically that there are just more""" start="01:25:34.960" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""programmers on the planet,""" start="01:25:36.580" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""[Speaker 3]: And we""" start="01:25:38.040" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""[Speaker 7]: right? haven't been able to sort of catch""" start="01:25:39.920" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""that segment as it's been growing,""" start="01:25:41.960" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""but also we have more Emacs users I think""" start="01:25:44.680" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""today than probably ever before.""" start="01:25:47.500" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""We have more packages,""" start="01:25:48.420" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""we have more stuff going on.""" start="01:25:50.540" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""So I think it's a challenge as well,""" start="01:25:55.580" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""like to what extent do we wanna be like a""" start="01:25:58.200" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""niche and to what extent do we wanna be the""" start="01:26:00.260" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""text editor for programmers.""" start="01:26:03.280" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""And I think there's a tension there because""" start="01:26:06.420" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""we want to stay true to what Emacs is and to""" start="01:26:09.780" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""its sort of core values of what makes Emacs""" start="01:26:12.440" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""great, but can we still make some changes to""" start="01:26:16.720" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""sort of stay relevant.""" start="01:26:18.340" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""And I think that's a huge win.""" start="01:26:21.060" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""And clearly these discussions are going on on""" start="01:26:24.800" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""the Emacs level and in the minds of core""" start="01:26:26.980" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""developers, I think, every day.""" start="01:26:29.340" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""Even though, I mean, most of our work is just""" start="01:26:32.040" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""trying to keep adding new features,""" start="01:26:35.320" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""make sure that we have that sort of core""" start="01:26:38.220" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""infrastructure in place,""" start="01:26:40.060" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""which is part of the reason why I gave the""" start="01:26:42.280" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""talk I did yesterday, to invite more people""" start="01:26:44.260" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""to come on board. Because I see a lot of""" start="01:26:46.920" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""people have opinions about Emacs,""" start="01:26:48.200" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""which is amazing, and we need more of that.""" start="01:26:50.700" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""But I think, let's say,""" start="01:26:54.160" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""patches speak louder than words.""" start="01:26:56.280" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""Software. And it's definitely true in Emacs""" start="01:27:01.300" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""development.""" start="01:27:01.780" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""[Speaker 3]: I want to just piggyback on,""" start="01:27:04.680" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""like attack the premise of the question a""" start="01:27:06.820" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""little bit, right? Remember that we are sort""" start="01:27:09.800" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""of in a trench warfare with commercial""" start="01:27:11.880" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""interests that are dependent on dominating""" start="01:27:15.160" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""software ecosystems in order to exploit users""" start="01:27:20.660" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""for money. Like that is a necessary thing to""" start="01:27:24.600" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""a lot of people's business model.""" start="01:27:26.020" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""And so we live in a world where software is""" start="01:27:30.060" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""more than tools. It is clothing.""" start="01:27:32.760" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""And so when I put on my Mac and I put on my""" start="01:27:38.480" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""UI skin, I'm not just choosing whether I like""" start="01:27:42.860" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""sliders or radio buttons or check boxes or""" start="01:27:46.640" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""the other UI mechanics that give that""" start="01:27:49.840" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""heuristic and make it make me think it's easy""" start="01:27:53.920" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""to use, easy to learn to use,""" start="01:27:55.440" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""right? I'm also choosing a whole line of""" start="01:27:59.160" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""implementation detail that I'm being actively""" start="01:28:02.080" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""trained not to try to understand by,""" start="01:28:06.040" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""you know, kind of the dark side of the force""" start="01:28:08.720" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""over here. So when I think about,""" start="01:28:11.780" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""you know, make Emacs more like Toaster,""" start="01:28:14.380" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""[Speaker 1]: you know,""" start="01:28:18.860" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""[Speaker 3]: I, 1 of my responses is every time that""" start="01:28:21.340" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""question asks, you know,""" start="01:28:22.740" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""an angel grows, gets asked,""" start="01:28:24.160" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""an angel grows its wings.""" start="01:28:25.440" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""A developer submits a patch,""" start="01:28:27.040" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""a bug gets opened that we can,""" start="01:28:30.040" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""you know, with enough information to actually""" start="01:28:31.840" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""do something about it,""" start="01:28:33.240" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""the ecosystem gets better,""" start="01:28:34.920" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""right? Whether a new user comes or not,""" start="01:28:38.100" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""like somebody's actually asking a question""" start="01:28:40.680" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""that's going to lead them someday to pick a""" start="01:28:42.780" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""better tool.""" start="01:28:43.260" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""[Speaker 7]: Yeah, it's true. I mean,""" start="01:28:47.620" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""we have powerful enemies and they are not""" start="01:28:50.000" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""working for us. And when they are working on""" start="01:28:52.540" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""improving VS code, you can't be under any""" start="01:28:54.960" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""illusion that they are doing that in the""" start="01:28:56.640" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""interest of the users.""" start="01:28:57.340" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""They're doing that in their interest of the""" start="01:28:59.760" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""corporate owners. So this is the reality that""" start="01:29:02.620" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""we have to face and Emacs is just not like""" start="01:29:04.640" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""that. And this is of course part of the""" start="01:29:07.920" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""reason why it's so important that we continue""" start="01:29:09.960" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""this work for the future of being able to do""" start="01:29:14.040" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""computing in a free way and in a way that is""" start="01:29:17.640" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""actually, you know, supports the types of""" start="01:29:20.220" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""workflows that we know and love.""" start="01:29:21.740" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""[Speaker 4]: Something that I'd like to add to this is""" start="01:29:26.720" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""that, you know, you've mentioned we need more""" start="01:29:29.680" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""programmers in the world.""" start="01:29:30.640" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""And in light of what we're doing with""" start="01:29:33.240" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""EmacsConf, perhaps we need more people to be""" start="01:29:35.140" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""at EmacsConf talking, not necessarily""" start="01:29:36.580" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""programmers, but just people apprehending""" start="01:29:38.100" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""Emacs and talking about it.""" start="01:29:40.520" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""It feels like we've got different missions""" start="01:29:42.720" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""that we're trying to accomplish with this.""" start="01:29:44.440" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""We are... Okay, you...""" start="01:29:45.820" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""Go ahead, Colin.""" start="01:29:47.780" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""[Speaker 3]: I can't leave that alone.""" start="01:29:49.600" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""I almost came in there on the previous point.""" start="01:29:52.120" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""Yeah, I actually Completely agree with that""" start="01:29:55.020" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""Leo. That's something that and I mean to be""" start="01:29:58.900" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""fair. I owe a good I owe dev al a good email""" start="01:30:02.780" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""on this topic, but we desperately need more""" start="01:30:05.800" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""project managers, more solutions architect,""" start="01:30:07.840" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""more business process analysts,""" start="01:30:10.380" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""more systems analysts,""" start="01:30:12.660" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""more, you know, and the best tech,""" start="01:30:15.100" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""you know, some of the best threads start with""" start="01:30:17.900" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""quite a bit of an analytical work done on the""" start="01:30:23.100" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""part of an engineer who's come along.""" start="01:30:24.940" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""But actually, Larry Wall has this quote,""" start="01:30:29.320" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""right? Where he says, consider 3 solutions""" start="01:30:31.640" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""and build 1. And I think we struggle with""" start="01:30:34.120" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""that as a community because getting a patch""" start="01:30:36.760" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""is a lot of work and a lot to ask for""" start="01:30:39.920" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""somebody. So asking 3 people to submit a""" start="01:30:42.900" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""patch means you're saying no to a lot of""" start="01:30:45.200" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""blood, sweat and tears on the part of like 2""" start="01:30:47.280" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""people, maybe 2 teams of people.""" start="01:30:48.960" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""[Speaker 5]: And 1 thing I think is a big expansion is""" start="01:30:55.520" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""usability and user experience design.""" start="01:31:02.020" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""I think, and not in the sense like,""" start="01:31:05.560" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""you know, CUA mode or,""" start="01:31:08.260" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""you know, people don't realize that Emacs key""" start="01:31:12.440" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""bindings are actually ergonomic,""" start="01:31:13.680" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""but more, you know, like for myself,""" start="01:31:16.720" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""I did a lot of work in sort of bringing out""" start="01:31:20.240" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""Emacs features and did a lot of things""" start="01:31:24.480" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""creating this info doc,""" start="01:31:26.240" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""you know, which is sort of like Space Max or""" start="01:31:28.940" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""something in the old days.""" start="01:31:30.300" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""But the process, yeah,""" start="01:31:33.900" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""kept a lot of that from ever making it into""" start="01:31:38.600" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""CoreDMX and, you know,""" start="01:31:40.460" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""just a lack of time on my part to follow up.""" start="01:31:44.180" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""But if you had somebody,""" start="01:31:46.560" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""you know, who sort of coalesced all the""" start="01:31:51.220" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""technical work on like,""" start="01:31:52.820" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""here's how we can put it together and make it""" start="01:31:56.280" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""more accessible, I've seen that go a long way""" start="01:32:01.320" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""in certain environments.""" start="01:32:02.800" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""And I imagine, you know,""" start="01:32:06.100" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""it's just not the experience of,""" start="01:32:08.160" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""you know, most people on the core team.""" start="01:32:11.180" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""[Speaker 7]: Yeah, for sure. I mean,""" start="01:32:14.620" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""We don't have, I mean,""" start="01:32:16.160" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""we're mostly a bunch, we're a bunch of""" start="01:32:18.760" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""programmers. That's what we are,""" start="01:32:20.080" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""right? We don't have graphical signers or any""" start="01:32:22.640" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""of the stuff that you're talking about.""" start="01:32:24.320" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""So we don't have really any UX experts on""" start="01:32:28.380" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""board. So perhaps that would be welcome.""" start="01:32:30.380" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""But then again, how do you even fit the EMAX""" start="01:32:35.460" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""paradigm into what is typically taught and""" start="01:32:38.880" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""discussed in UX? I mean,""" start="01:32:40.840" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""maybe there is a way. I'm sure there are""" start="01:32:43.220" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""general principles and a lot that we could""" start="01:32:45.640" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""learn, But then there is also like this,""" start="01:32:47.880" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""we have to stay true to what Emacs is to some""" start="01:32:52.240" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""extent and what does that look like""" start="01:32:53.940" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""concretely. There are discussions to be had""" start="01:32:56.320" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""for sure, but we would definitely benefit""" start="01:32:58.620" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""from that type of specific input.""" start="01:33:02.900" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""[Speaker 3]: Well, I""" start="01:33:04.360" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""[Speaker 5]: mean, like a simple example today is I looked""" start="01:33:06.940" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""at the conference guidelines I always stay in""" start="01:33:09.720" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""dark mode and it said well use light mode for""" start="01:33:13.160" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""your presentation so okay I'll switch to""" start="01:33:16.220" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""light mode let me load a theme so I go into""" start="01:33:19.280" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""all the default themes and,""" start="01:33:21.280" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""you know, start going through the light ones""" start="01:33:23.900" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""and then I check all the faces and,""" start="01:33:28.080" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""you know, there are at least 3 to 5 faces""" start="01:33:31.120" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""that have nearly invisible text as a result""" start="01:33:35.160" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""of the background highlighting on them.""" start="01:33:38.480" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""And I'm like, you know,""" start="01:33:40.080" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""so there's low hanging fruit like that where""" start="01:33:43.380" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""people would deal with the structure of the""" start="01:33:46.840" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""menus, the actual faces,""" start="01:33:49.400" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""the themes, that don't have to do anything""" start="01:33:53.120" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""affecting core Emacs except make the""" start="01:33:57.840" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""presentation much better.""" start="01:33:59.960" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""[Speaker 7]: Yeah, definitely. If people want to send such""" start="01:34:03.380" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""polishing patches for various aspects,""" start="01:34:06.160" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""I spent some time making a new help screen.""" start="01:34:09.280" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""I don't know if you noticed,""" start="01:34:10.520" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""I don't know how many people press Control H,""" start="01:34:12.740" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""Control H on their keyboards,""" start="01:34:14.160" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""But it's like with new sections and it's""" start="01:34:17.540" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""sorted a little bit better.""" start="01:34:18.480" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""It didn't take much. I mean,""" start="01:34:20.500" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""it took a time obviously,""" start="01:34:21.660" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""but it's not like it required some fantastic""" start="01:34:23.940" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""technical knowledge or deep expertise in""" start="01:34:28.140" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""Emacs Lisp to do that.""" start="01:34:29.200" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""It's Basically anyone can do stuff like that.""" start="01:34:31.480" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""So definitely if you're interested in doing""" start="01:34:34.200" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""that type of work, start discussing with us.""" start="01:34:37.440" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""Let's talk about what we can do and get doing""" start="01:34:41.040" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""it, really.""" start="01:34:41.820" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""[Speaker 4]: Yeah, this is exactly in line with your""" start="01:34:44.960" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""presentation from yesterday,""" start="01:34:45.800" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""Stefan, as well, because you were just""" start="01:34:47.720" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""inviting people who are not contributing to""" start="01:34:50.160" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""the core of Emacs to do so.""" start="01:34:51.380" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""You were talking to package developer on""" start="01:34:53.200" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""MailPub, but you were also talking just about""" start="01:34:55.120" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""the average Joe or Jane just doing their own""" start="01:34:58.200" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""things or encountering a problem.""" start="01:34:59.580" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""Now, yes, we talked about,""" start="01:35:01.120" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""oh, you need to build master and all this,""" start="01:35:02.800" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""but at the end of the day,""" start="01:35:03.920" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""low-hanging fruits like the ones Bob just""" start="01:35:06.680" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""described. If everyone does this at the end,""" start="01:35:09.840" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""you end up with something that is extremely""" start="01:35:11.280" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""polished. Perhaps you do not need to have a""" start="01:35:13.520" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""UX specialist to tell you that,""" start="01:35:14.900" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""oh, those 2 colors are actually very close to""" start="01:35:18.220" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""1 another. I think it's kind of a discussion""" start="01:35:21.220" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""about same defaults as well that you had""" start="01:35:23.580" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""yesterday. Ultimately,""" start="01:35:25.080" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""we do not need... Yes,""" start="01:35:27.340" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""we need more programmers in the world.""" start="01:35:28.780" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""We want more people to use Emacs.""" start="01:35:30.480" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""But you don't know. Like,""" start="01:35:33.740" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""is it going to be someone in computer science""" start="01:35:36.220" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""that's going to be the next giant on whose""" start="01:35:38.420" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""shoulders we're going to stand?""" start="01:35:39.580" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""[Speaker 3]: computer science? Is it going to be someone""" start="01:35:41.003" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""in computer science that's going to be the""" start="01:35:41.066" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""next giant""" start="01:35:41.082" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""[Speaker 1]: on whose shoulders we're going to stand?""" start="01:35:41.137" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""Is it someone who did not""" start="01:35:41.184" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""[Speaker 4]: Is it someone who did not study study""" start="01:35:41.192" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""computer science? Is it going to be someone""" start="01:35:42.660" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""who did something completely different?""" start="01:35:44.060" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""We do not know the prototypical user of""" start="01:35:46.960" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""Emacs. We have some idea about the fact that""" start="01:35:49.280" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""they might be using you know,""" start="01:35:51.760" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""Emacs for their programming,""" start="01:35:52.580" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""but more and more, and as is evidenced by the""" start="01:35:55.560" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""talks we received with EmacsConf,""" start="01:35:56.420" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""it's just people doing writing or taking""" start="01:36:01.020" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""notes for their classes.""" start="01:36:01.920" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""So it's really interesting to see how and to""" start="01:36:06.340" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""explore for us how we can give back to the""" start="01:36:09.400" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""core of Emacs in a way that is mutually""" start="01:36:11.180" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""constructive because again,""" start="01:36:12.360" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""to go back to the philosophy or the political""" start="01:36:14.440" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""agenda that we have is for more people to use""" start="01:36:17.400" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""software that is not the liberties.""" start="01:36:19.700" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""Exactly.""" start="01:36:20.500" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""[Speaker 3]: So right. Yeah. I mean,""" start="01:36:24.140" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""that's a good spot for me to come right back""" start="01:36:25.840" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""in. And that's exactly where I do.""" start="01:36:27.380" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""Right. Because that's that's what it's all""" start="01:36:30.200" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""about. In the In terms of a tool user,""" start="01:36:33.040" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""you know, the evolution of using tools as,""" start="01:36:36.600" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""you know, these creatures have fought,""" start="01:36:38.620" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""Emacs is fire. Emacs is the ability to learn""" start="01:36:42.820" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""languages, the ability to manipulate other""" start="01:36:45.920" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""tools. I mean, it's almost like,""" start="01:36:48.140" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""you know, God Emperor of Dune level,""" start="01:36:50.680" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""you know, some Frank Herbert type of powers""" start="01:36:53.720" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""that you have over your computer and you are""" start="01:36:56.480" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""not required to understand how all those""" start="01:36:58.460" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""things work. So from a support standpoint""" start="01:37:02.440" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""that puts us in a challenging position,""" start="01:37:04.540" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""right? I spend a lot of time on Pound Emacs""" start="01:37:06.300" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""and the questions that go by there,""" start="01:37:07.760" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""I feel bad for people that feel like they""" start="01:37:09.840" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""have to answer every question that goes by in""" start="01:37:12.600" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""the channel because no 1 could.""" start="01:37:14.060" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""No 1 can give an intelligent answer to the,""" start="01:37:16.640" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""you know, everything from,""" start="01:37:18.040" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""Hey, how do I change my default font on this""" start="01:37:21.260" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""operating system? You've never heard of to,""" start="01:37:23.520" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""you know, how do you know this list code?""" start="01:37:26.140" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""That's 40 lines long doesn't work.""" start="01:37:28.040" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""And I think it was a recent change that was""" start="01:37:30.040" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""made to the P case macro.""" start="01:37:31.720" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""Do you agree? Right? And as deep as that,""" start="01:37:39.480" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""well is, if you turn it 90 degrees,""" start="01:37:42.740" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""the Emacs is that kind of tool to the""" start="01:37:45.040" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""operating system level.""" start="01:37:46.080" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""It's letting me walk across to other systems,""" start="01:37:48.800" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""multi-hop, become the super user,""" start="01:37:51.360" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""right? And, you know, the just the power,""" start="01:37:55.120" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""the amplification of power there,""" start="01:37:57.600" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""it's like the lever combined with the magnet,""" start="01:38:02.320" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""etc, etc. I mean, just,""" start="01:38:08.140" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""yeah, I don't know. So I guess where we kind""" start="01:38:14.760" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""of jump off, where that gets stuck,""" start="01:38:16.260" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""right, is trying to change something like the""" start="01:38:18.580" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""defaults in the user experience.""" start="01:38:19.760" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""So I imagine, you know,""" start="01:38:22.740" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""we don't get 1 great idea about user""" start="01:38:26.580" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""experience, we'll get 3,""" start="01:38:28.020" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""right? And then Once again,""" start="01:38:30.240" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""we have to send our brave developers off to""" start="01:38:32.980" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""build 1 to 3 patches, some of which won't see""" start="01:38:36.220" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""the light of day. I think that's where the""" start="01:38:41.040" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""breakthrough is needed.""" start="01:38:41.920" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""Another evolution in the packaging thought,""" start="01:38:46.680" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""or maybe it's not packaging.""" start="01:38:48.620" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""Maybe it's the compilation step.""" start="01:38:50.920" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""Maybe it's the distribution step.""" start="01:38:52.800" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""Maybe we want the Debians of the world to""" start="01:38:56.120" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""deliver Emacs as 2 different pieces now.""" start="01:38:59.220" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""And there's a UX piece that we want you to""" start="01:39:03.540" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""package each 1 that you package,""" start="01:39:05.280" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""each 1 per window manager that you support or""" start="01:39:09.060" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""at the intersection of each window manager""" start="01:39:11.380" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""and display manager you port.""" start="01:39:12.940" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""And the other one's just the server and you""" start="01:39:15.200" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""don't even have to package that if I'm only""" start="01:39:17.040" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""offering the CLI or there's a you know like""" start="01:39:19.680" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""I'm making all this up and I can't code a""" start="01:39:21.960" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""single thing like what I just said,""" start="01:39:23.760" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""but I think that there's a technical""" start="01:39:26.920" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""opportunity. Pretty high level for technical""" start="01:39:31.640" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""there of just thinking about a way to accept""" start="01:39:35.020" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""contributions of experience with maybe a""" start="01:39:40.560" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""little less rigor and a little less ground""" start="01:39:43.780" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""into the marble.""" start="01:39:44.900" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""[Speaker 5]: Yeah it makes me think of somebody at work""" start="01:39:50.400" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""just brought up pair programming and he's in""" start="01:39:54.220" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""love with it. He wants to pair up and do it,""" start="01:39:58.080" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""which is not true of all programmers.""" start="01:40:01.120" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""But I said, okay, so you spearhead that.""" start="01:40:05.800" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""If we, I think it is a very high barrier to""" start="01:40:10.680" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""get your patches in because of course they""" start="01:40:13.580" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""need to meet the quality standard of Emacs.""" start="01:40:15.420" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""So if people who are doing day-to-day""" start="01:40:20.800" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""understand that process and can do it well,""" start="01:40:24.200" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""could work with some of the people who can't""" start="01:40:28.200" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""quite contribute at that level,""" start="01:40:30.040" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""but have ideas that are on the level that""" start="01:40:35.020" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""should go in, pairing them up could really""" start="01:40:39.780" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""move a lot of that forward.""" start="01:40:41.420" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""Like Lars, I don't know what his,""" start="01:40:46.000" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""I get the feeling maybe he's retired.""" start="01:40:50.000" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""So, you know, maybe he has some time,""" start="01:40:54.960" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""you know, and he's really good at going back""" start="01:40:58.300" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""in and saying, you know,""" start="01:41:00.320" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""these areas haven't gotten attention in a""" start="01:41:02.400" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""while, so I'm going to go kill some bugs and""" start="01:41:05.660" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""look at them and fix them up.""" start="01:41:08.160" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""So I would think he would be good to do that""" start="01:41:13.640" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""with someone. But you know,""" start="01:41:15.340" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""Again, I've got years of code that would just""" start="01:41:22.400" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""require somebody to work through it to update""" start="01:41:25.320" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""to the latest code base and diff against it.""" start="01:41:28.340" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""But it does things like,""" start="01:41:30.080" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""I mean, like if anybody used RMAIL anymore,""" start="01:41:32.960" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""I made the summary mode of RMAIL exactly""" start="01:41:36.200" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""compatible key-wise with the main buffer,""" start="01:41:40.080" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""which it never was, and fixed a number of""" start="01:41:43.140" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""other features. Dured made operations""" start="01:41:46.120" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""reversible, where you mark something and you""" start="01:41:49.340" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""unmark it, and you can go up and down.""" start="01:41:51.420" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""And there are all these little""" start="01:41:53.160" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""incompatibilities that kind of add up across""" start="01:41:56.260" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""time, and they never seem to get addressed.""" start="01:42:00.120" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""We could just fix them and people would start""" start="01:42:06.180" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""to say, oh, this is smoother and they are""" start="01:42:09.400" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""getting more of that experience because it""" start="01:42:12.580" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""feels like the systems maybe 80,""" start="01:42:15.060" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""85% of the way there in a lot of thoughtful""" start="01:42:20.740" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""design. But that last 15% could be the""" start="01:42:26.040" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""difference between an iPhone and an Android""" start="01:42:29.640" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""phone of usability-wise.""" start="01:42:32.260" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""So that's a thought. That's a""" start="01:42:38.720" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""[Speaker 3]: brilliant idea, and it probably can be""" start="01:42:41.100" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""applied far wider than emacs.""" start="01:42:42.840" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""That's something that that FSF should""" start="01:42:46.060" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""consider suggesting across,""" start="01:42:48.480" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""you know, GNU packages,""" start="01:42:49.920" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""for example, like a matchmaking project seems""" start="01:42:54.280" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""like something that FSF community teams""" start="01:42:56.520" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""should think about. Yeah,""" start="01:43:04.020" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""I was going""" start="01:43:04.360" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""[Speaker 1]: That's so... to say also,""" start="01:43:04.920" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""I noticed that the name Debian came up a""" start="01:43:08.080" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""while ago and now we were talking about""" start="01:43:09.840" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""programming and such and Mentoring maybe and""" start="01:43:14.540" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""Debian has this service or part of their site""" start="01:43:17.960" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""or community called Mentors.""" start="01:43:19.600" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""They have a website, mentors.debian.net,""" start="01:43:22.120" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""where the idea is that people who want to get""" start="01:43:26.920" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""into contributing to Debian,""" start="01:43:28.100" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""for example, to package things,""" start="01:43:29.580" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""but obviously don't have upload rights right""" start="01:43:33.200" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""away. This is where they can go to,""" start="01:43:35.720" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""and this is separate from their mailing list""" start="01:43:38.460" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""or bug trackers. They can basically build""" start="01:43:42.340" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""their changed packages and upload them here,""" start="01:43:44.760" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""and then Debian developers who have commit or""" start="01:43:48.220" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""upload rights to the Debian archive can go""" start="01:43:51.380" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""and review and give them feedback or ask them""" start="01:43:55.960" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""to change something or if it's good,""" start="01:43:57.620" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""then just easily upload the package right""" start="01:44:01.620" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""from there. And I wonder if it might make""" start="01:44:04.200" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""sense to have something kind of like that in""" start="01:44:07.760" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""like the context of Emacs or the GNU project""" start="01:44:10.360" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""as a whole, where we have like some kind of""" start="01:44:13.360" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""a, like loosely defined mentoring thing,""" start="01:44:15.520" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""where we could pair up people who are more""" start="01:44:18.840" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""experienced, who, for example,""" start="01:44:20.500" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""have commit rights in the Emacs core""" start="01:44:22.540" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""repository to match them up with someone who""" start="01:44:27.080" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""is just making your very first patches or""" start="01:44:29.080" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""contributions to Emacs or whatever other GNU""" start="01:44:31.640" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""package. Just some food for thought,""" start="01:44:34.000" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""[Speaker 5]: Yeah, sounds good.""" start="01:44:38.040" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""[Speaker 1]: I guess. Yeah, and then I guess 1 feature of""" start="01:44:44.340" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""such a system which would be nice is that it,""" start="01:44:47.360" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""at least in terms of, you know,""" start="01:44:49.200" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""the mentors that Debbie and that,""" start="01:44:50.380" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""that it has a web UI, which,""" start="01:44:52.200" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""is nice because mailing lists might be""" start="01:44:56.040" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""intimidating for someone who is just getting""" start="01:44:58.140" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""started, like in these communities.""" start="01:44:59.340" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""Or, you know, just making patches like that,""" start="01:45:03.960" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""or just have a series of concrete""" start="01:45:05.440" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""instructions. Like with mentors at""" start="01:45:08.100" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""Devian.net, I feel like you can't go wrong in""" start="01:45:11.100" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""terms of finding the steps of figuring out""" start="01:45:13.820" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""what you need to do to put together some""" start="01:45:16.260" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""change. Which I think the same idea could""" start="01:45:19.040" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""apply to Emacs, for example,""" start="01:45:20.280" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""as well.""" start="01:45:20.860" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""[Speaker 7]: I think this is a good point about lowering""" start="01:45:24.560" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""barriers, and how email is a barrier to""" start="01:45:27.440" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""people. I mean, so on the 1 hand,""" start="01:45:28.860" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""you have us guys on Emacs level,""" start="01:45:31.100" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""we're very used to the email workflow.""" start="01:45:32.860" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""Like we're not just using it for fun.""" start="01:45:35.140" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""You know what I mean? Like this is a""" start="01:45:37.040" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""workhorse. It really is.""" start="01:45:38.320" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""And it's tried, it's battled,""" start="01:45:41.400" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""tested. It has some quirks,""" start="01:45:42.900" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""but we know them extremely well on the other""" start="01:45:45.140" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""hand. So, but still we want more people""" start="01:45:48.060" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""involved, right? And we realized that,""" start="01:45:50.700" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""you know, times are changing as well.""" start="01:45:52.760" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""And people are more used to doing stuff from""" start="01:45:54.720" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""the web browser, perhaps.""" start="01:45:55.640" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""So we do want to move to a forge,""" start="01:46:00.040" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""or at least start looking into that.""" start="01:46:01.920" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""But there are some obstacles.""" start="01:46:03.560" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""So we are looking for volunteers to do that""" start="01:46:06.060" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""work. I'm not just saying it,""" start="01:46:07.360" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""like we are very serious.""" start="01:46:08.640" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""I'm very seriously asking people in the""" start="01:46:11.660" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""community to consider,""" start="01:46:12.520" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""hey, could you dedicate some time?""" start="01:46:14.920" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""I mean, it will take some dedication for sure""" start="01:46:18.660" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""it will take some time and it will take some""" start="01:46:20.600" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""describe probably even you know Be prepared""" start="01:46:23.040" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""to be frustrated at times right,""" start="01:46:24.760" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""but if you're serious about doing that type""" start="01:46:26.980" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""of work, okay now""" start="01:46:28.040" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""[Speaker 3]: I believe you Well, I'm just I'm just teasing""" start="01:46:32.520" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""but but but yes exactly any I mean it's it's""" start="01:46:35.900" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""not even a joke right Any serious undertaking""" start="01:46:38.560" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""having to do with any free software project,""" start="01:46:41.420" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""just because we are open to the entire world""" start="01:46:45.300" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""and we pride ourselves on trying to take""" start="01:46:47.760" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""seriously all input. And if it's a logical""" start="01:46:50.020" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""argument, then we'll go ahead and take the""" start="01:46:51.940" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""time to combat with you,""" start="01:46:53.000" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""even though the maintainer has 300 other""" start="01:46:54.960" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""things to do. Like, man,""" start="01:46:57.260" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""this""" start="01:46:58.280" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""[Speaker 7]: is just the way it is,""" start="01:47:00.020" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""right? It just, It's not like Emacs is way""" start="01:47:02.840" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""harder to change than any other project of""" start="01:47:06.960" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""its longevity and size.""" start="01:47:08.680" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""It's just these things take time.""" start="01:47:10.800" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""Try getting a change into Debian.""" start="01:47:13.420" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""That's an uphill battle.""" start="01:47:15.060" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""I don't even know where to start with that.""" start="01:47:16.960" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""That's huge, right? And I have tremendous""" start="01:47:19.540" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""respect for the people doing that type of""" start="01:47:21.640" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""work because it takes dedication,""" start="01:47:22.760" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""it takes effort. So we really need someone to""" start="01:47:26.280" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""step up from the community,""" start="01:47:27.180" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""I think, to be a champion for something like""" start="01:47:29.760" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""this and work together with us on Emacs Devil""" start="01:47:33.160" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""and off Emacs Devil, probably with me and Eli""" start="01:47:37.800" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""and perhaps some other people that could be""" start="01:47:40.320" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""in the mail thread, and we could coordinate""" start="01:47:41.820" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""this type of work. I would be super excited""" start="01:47:44.620" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""if someone wanted to get the ball rolling.""" start="01:47:46.560" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""I can't do everything.""" start="01:47:48.480" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""I wish I could. Like, I thought about it.""" start="01:47:51.100" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""Should I just put everything to the side and""" start="01:47:52.840" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""do this? But then, I mean,""" start="01:47:53.860" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""there are some, there are other""" start="01:47:54.800" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""responsibilities as well.""" start="01:47:56.040" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""So we need someone to step up.""" start="01:47:57.740" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""We need help here.""" start="01:47:58.520" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""[Speaker 3]: you're gonna speak. I was totally gonna pick""" start="01:48:03.220" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""on you. Go ahead.""" start="01:48:04.120" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""[Speaker 1]: Yeah, so. Oh, good, Thanks,""" start="01:48:05.540" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""yeah, I was just gonna say,""" start="01:48:06.540" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""yeah, I echo Stefan's sentiments.""" start="01:48:08.460" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""And that, yeah, in terms of like maybe""" start="01:48:11.680" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""experimenting with a different Forge or a""" start="01:48:14.020" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""better Forge and like,""" start="01:48:15.280" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""you know, supplementing Savannah.""" start="01:48:16.124" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""And supplementing Savannah.""" start="01:48:16.640" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""I actually did some initial work a couple of""" start="01:48:20.860" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""months ago to get a SourceFed instance""" start="01:48:23.240" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""installed for the new project.""" start="01:48:24.860" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""And I've done some work on and off,""" start="01:48:28.440" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""but then life happens,""" start="01:48:29.340" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""especially from September onwards.""" start="01:48:32.140" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""But even from earlier in the year,""" start="01:48:35.240" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""the project has been semi-dormant,""" start="01:48:36.460" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""but I have been meaning to get to that.""" start="01:48:38.740" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""So I'm like 1 such person who's interested in""" start="01:48:42.740" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""that type of work and driving it forward and""" start="01:48:44.760" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""I would love you know if anyone's and anyone""" start="01:48:47.640" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""else has the kind of time and energy and the""" start="01:48:50.820" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""interest to help with something like that.""" start="01:48:52.760" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""Yes, please reach out to all of us,""" start="01:48:55.280" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""to Emacs core developers,""" start="01:48:56.880" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""of course, and to myself.""" start="01:48:58.100" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""This is something that could be very useful,""" start="01:49:01.840" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""not just for GNU Emacs and Emacs developers,""" start="01:49:04.960" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""but also for any other GNU package as well.""" start="01:49:09.760" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""So yeah, that's 1 area of potential""" start="01:49:13.040" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""contribution and 1 thing that we sort of,""" start="01:49:15.660" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""I guess, regularly meet with the FSF""" start="01:49:17.860" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""sysadmins to discuss these kinds of projects""" start="01:49:20.140" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""and things as Corwin would know.""" start="01:49:22.120" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""[Speaker 3]: Yeah, that's kind of, I mean,""" start="01:49:24.520" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""you knew exactly where I was going to,""" start="01:49:26.280" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""and I'm glad that you volunteered yourself""" start="01:49:27.960" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""personally because that's the best choice.""" start="01:49:30.040" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""If you're hearing this and you're thinking,""" start="01:49:32.320" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""you know, maybe I should do some sysop stuff,""" start="01:49:35.760" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""literally reach out to Amin.""" start="01:49:38.200" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""And because it's complicated,""" start="01:49:41.040" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""there are a lot of projects to volunteer for.""" start="01:49:43.040" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""They're all very worthy.""" start="01:49:44.120" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""And it's sort of political to figure out what""" start="01:49:48.760" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""we're gonna try to change for whom first to""" start="01:49:52.760" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""demonstrate we can do all the things we wanna""" start="01:49:55.940" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""do to make it better without losing all the""" start="01:49:58.320" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""things that are important about how it is""" start="01:50:00.340" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""today. And we'll do it in a measured way like""" start="01:50:04.040" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""everybody's just like room full of rocking""" start="01:50:06.500" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""chairs everybody's got a long tail it's a""" start="01:50:09.640" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""hard project but you will do something that""" start="01:50:12.340" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""just a lot like as a Savannah hacker which I""" start="01:50:15.380" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""am with Amin So that's how I know about his""" start="01:50:17.920" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""work on that project. We worked together on""" start="01:50:20.080" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""the Savannah Forge. I'm aware of his work""" start="01:50:22.300" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""piloting SourceHut recently and just with a""" start="01:50:26.660" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""working group there to look at the next""" start="01:50:29.020" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""generation of forges for GNU.""" start="01:50:30.540" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""Emacs of course as a GNU package could go do""" start="01:50:34.160" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""its own thing. FFS would most likely give""" start="01:50:36.540" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""cash to go do its own thing,""" start="01:50:38.360" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""even if it didn't like it.""" start="01:50:39.720" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""We know, you know, as a,""" start="01:50:41.140" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""like if I put on, I'm not FSF,""" start="01:50:42.800" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""but if I put on that hat,""" start="01:50:44.260" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""I imagine that we must know.""" start="01:50:45.800" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""Emacs is a flagship thing that people in the""" start="01:50:50.020" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""real world depend on. If I get this ancient""" start="01:50:52.420" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""computer, I get a working Linux distribution""" start="01:50:55.320" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""and Emacs. Maybe it's not Microsoft Word as a""" start="01:50:59.340" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""word processor, but you guys,""" start="01:51:00.800" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""you can learn a language on it for sure,""" start="01:51:03.080" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""you know And you can do your homework on it""" start="01:51:05.600" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""and you know It's it makes your you can edit""" start="01:51:08.300" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""things and then you can edit your system""" start="01:51:10.580" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""files and teach yourself how to manage a GNU""" start="01:51:13.900" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""system and you can You know so Emacs is""" start="01:51:17.860" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""really powerful as a practical tool.""" start="01:51:19.540" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""Like I keep coming back to that point when I""" start="01:51:21.560" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""think about Emacs, like I really put it as""" start="01:51:25.040" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""like, it's an important tool on the like""" start="01:51:27.380" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""humans inventing tools level just because it""" start="01:51:31.780" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""lets me make this editor into whatever I need""" start="01:51:35.080" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""it to be to get my actual work done.""" start="01:51:37.580" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""Whether that's getting the length,""" start="01:51:39.520" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""maybe that's making the font big enough that""" start="01:51:41.460" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""I can see it, or making it easy enough to""" start="01:51:43.260" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""change from this font to that font,""" start="01:51:44.760" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""changing the background colors,""" start="01:51:45.920" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""like your basic vision,""" start="01:51:47.960" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""accessibility issues, right?""" start="01:51:49.960" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""All, you know, solved,""" start="01:51:52.740" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""I can bake that customization in and I can""" start="01:51:55.080" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""pretty much depend on,""" start="01:51:56.320" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""no matter what we change in Emacs,""" start="01:51:57.900" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""I'm gonna accept the new version,""" start="01:51:59.760" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""it's gonna be on the next computer I get,""" start="01:52:01.920" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""I'm going to install the package and my""" start="01:52:03.840" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""configuration that sets all that up will be""" start="01:52:05.920" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""there for me. Right? It's like back to""" start="01:52:10.960" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""Stefan's point, what, 6 and a half hours ago,""" start="01:52:13.300" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""I mean, you know, 20 minutes ago about""" start="01:52:16.120" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""just... Oh gosh, I lost it.""" start="01:52:23.680" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""Boy, I really thought I had handed that""" start="01:52:27.980" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""neatly back to you.""" start="01:52:29.020" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""[Speaker 1]: No problem, Yeah, I think we're in general in""" start="01:52:36.040" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""agreement.""" start="01:52:36.220" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""[Speaker 4]: If we are now in the realm of Concord,""" start="01:52:41.980" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""of harmony, and the realm of midnight in""" start="01:52:44.800" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""Europe, Should we bring this discussion to a""" start="01:52:47.560" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""close or we could go all night,""" start="01:52:49.200" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""but I'll need to explain to my employer why""" start="01:52:51.180" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""my eyes are barely open tomorrow.""" start="01:52:52.720" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""[Speaker 1]: Yeah, I think that's probably a good idea.""" start="01:52:56.600" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""I see some folks starting to slowly sign off.""" start="01:52:59.960" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""[Speaker 0]: Yeah, also, you know, Leo,""" start="01:53:02.740" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""you could leave and just miss out.""" start="01:53:04.680" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""What?""" start="01:53:05.460" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""[Speaker 7]: Hey, Sasha, can I say something like what an""" start="01:53:13.620" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""amazing job with everything you're doing in""" start="01:53:15.880" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""the community over the years?""" start="01:53:16.960" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""I'm so impressed with Emacs News.""" start="01:53:18.820" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""What a great resource to stay up to date in""" start="01:53:22.020" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""Emacs. Just really hats off to you for a""" start="01:53:24.720" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""whole lot.""" start="01:53:25.080" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""[Speaker 3]: Thank you""" start="01:53:26.680" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""[Speaker 0]: very much. It actually turned out to be quite""" start="01:53:29.440" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""timely that John Wheatley had suggested it""" start="01:53:31.840" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""back when he was maintainer because when I""" start="01:53:35.020" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""had the kiddo, I suddenly had 0 time to""" start="01:53:36.980" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""actually write new things.""" start="01:53:38.000" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""But reading things is fine.""" start="01:53:39.560" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""I can just speed read all the Reddit things""" start="01:53:41.820" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""and put the links together.""" start="01:53:43.160" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""So I'm very glad that Emacs news is helpful.""" start="01:53:45.800" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""[Speaker 7]: it really is, yeah.""" start="01:53:49.080" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""[Speaker 3]: It is, So, okay, now let's try to go for our""" start="01:53:55.380" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""closing thoughts here while Leo's still here.""" start="01:54:00.040" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""And then if we wanna keep rolling,""" start="01:54:01.740" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""even after Leo drops, we won't tell him,""" start="01:54:04.760" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""we'll tell him we're stuck.""" start="01:54:06.420" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""[Speaker 4]: I guess that was a beacon to me to perhaps go""" start="01:54:12.380" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""for the second close of the day I've already""" start="01:54:14.140" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""done it I can do it again But I will prove""" start="01:54:18.080" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""Sasha wrong this time.""" start="01:54:19.300" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""I will miss out if need be because really,""" start="01:54:21.020" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""I have been very impressed with the sleep""" start="01:54:24.160" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""record that you had and I am very envious""" start="01:54:28.700" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""right now of your past ability to sleep more""" start="01:54:32.040" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""than 9 hours per night.""" start="01:54:33.160" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""And I wish I would be able to go back to""" start="01:54:35.440" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""this. But anyway, folks,""" start="01:54:37.300" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""I'm going to drop out.""" start="01:54:38.560" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""People might hang out for a little while""" start="01:54:40.520" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""longer. Bear in mind that Sasha might get""" start="01:54:42.360" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""called at any point to go take care of Kido.""" start="01:54:44.480" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""So this might wrap up very fast afterwards.""" start="01:54:47.220" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""But at any rate, it was my pleasure to be the""" start="01:54:49.780" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""host today. Stefan, thank you for joining.""" start="01:54:51.420" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""Bob, thank you for joining and interacting""" start="01:54:53.520" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""with us and making this a little more""" start="01:54:56.040" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""interactive and more plural than just the""" start="01:54:58.860" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""co-organizers. And on that note,""" start="01:55:01.260" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""I will be leaving. So have a wonderful night,""" start="01:55:03.640" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""everyone. And we'll see you next year for the""" start="01:55:05.860" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""next edition, potentially.""" start="01:55:06.740" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""[Speaker 3]: Thank you, Leo. You're my hero.""" start="01:55:09.560" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""I take everything I said on mumble back.""" start="01:55:11.580" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""You're amazing.""" start="01:55:12.280" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""[Speaker 4]: bye everyone.""" start="01:55:14.840" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""[Speaker 1]: All right, Thank you all.""" start="01:55:16.400" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""Take care. Bye. I will""" start="01:55:17.960" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""[Speaker 6]: also say bye bye. I also need to go to bed.""" start="01:55:20.200" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""Thank you all for this cool conference and""" start="01:55:22.200" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""hopefully we're here through the year and at""" start="01:55:24.920" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""least in 1 year.""" start="01:55:25.900" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""[Speaker 3]: You've probably made the rest of the rest of""" start="01:55:30.900" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""the victorious. You really stepped up.""" start="01:55:34.440" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""[Speaker 5]: your contributions.""" start="01:55:38.300" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""[Speaker 3]: Thanks so much for Yeah,""" start="01:55:38.980" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""[Speaker 1]: thanks so much for being a part of it,""" start="01:55:40.580" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""specifically you, Floey,""" start="01:55:41.720" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""and just everyone. Thank you all.""" start="01:55:43.480" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""[Speaker 6]: Have a nice day or night and we'll hear each""" start="01:55:48.180" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""other. Bye!""" start="01:55:48.740" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""[Speaker 1]: See you. Okay, well,""" start="01:55:51.220" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""[Speaker 3]: Thanks, Zen. I'll go next.""" start="01:55:51.880" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""I'm the next newest, I think.""" start="01:55:53.800" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""Well, I want to say also,""" start="01:55:59.640" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""you know, Bob and Stefan,""" start="01:56:01.800" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""thank you so much for jumping in and""" start="01:56:03.660" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""participating in the closing remarks.""" start="01:56:04.860" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""I too think it's a lot of,""" start="01:56:06.700" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""like, it's fun to just,""" start="01:56:08.560" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""like, share the buzz after the convention.""" start="01:56:10.760" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""We've got all these millions of ideas and""" start="01:56:13.260" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""then to have a group, a little group think""" start="01:56:16.120" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""about what we're walking away from that with.""" start="01:56:18.960" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""What is the temperature of the fire in your""" start="01:56:22.360" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""belly? And it's just...""" start="01:56:24.360" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""I mean, this is 1 of the highlights of my""" start="01:56:28.440" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""year in a way that it's just...""" start="01:56:30.200" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""I don't think other people...""" start="01:56:31.780" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""I don't think I dare explain it to other""" start="01:56:33.880" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""people. I think my wife understands and I""" start="01:56:35.880" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""will do. So thank you very much for this""" start="01:56:40.600" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""conference and the opportunity to participate""" start="01:56:42.340" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""in it. You know, just the conversation,""" start="01:56:45.540" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""how vibrant the chat is on IRC,""" start="01:56:48.540" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""how the variety of talks,""" start="01:56:52.080" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""some of the talks that look like television""" start="01:56:54.140" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""content to me and others that look a lot like""" start="01:56:59.380" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""my talk. And working through your slides and""" start="01:57:03.840" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""doing it live and you know I appreciate that""" start="01:57:06.100" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""we make a place for all those levels and and""" start="01:57:10.240" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""show people how to improve our craft as well.""" start="01:57:12.720" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""I'm not actually dropping or going anywhere.""" start="01:57:26.140" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""I'll continue to talk about eMAX until I get""" start="01:57:29.040" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""the dinner time bell. I've probably got an""" start="01:57:30.860" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""hour here. I'll tell you what will happen""" start="01:57:40.240" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""though is I'm guaranteed to light a""" start="01:57:42.040" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""cigarette. You can already see me kind of""" start="01:57:43.780" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""hovering about my room because I'm trying to""" start="01:57:45.860" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""avoid like smoking on camera.""" start="01:57:47.440" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""I don't know where that came from.""" start="01:57:49.300" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""I'm giving it up in approximately 5 seconds.""" start="01:57:52.360" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""[Speaker 7]: Yeah I'm gonna hop off.""" start="01:57:58.980" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""It's possibly right here.""" start="01:58:00.800" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""I'll work tomorrow.""" start="01:58:02.220" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""[Speaker 3]: I took the next 2 days off.""" start="01:58:06.200" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""I'm actually going camping,""" start="01:58:07.320" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""Stefan. I know I've learned that this""" start="01:58:11.040" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""conference leaves me completely emotionally""" start="01:58:12.800" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""exhausted. I just like,""" start="01:58:16.360" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""I don't know, I watch all,""" start="01:58:18.700" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""I feel like I just connect with all the,""" start="01:58:20.820" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""like it's this time where I connect with all""" start="01:58:23.440" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""these people that spend as much time thinking""" start="01:58:25.260" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""about Emacs as I do.""" start="01:58:26.580" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""[Speaker 0]: All right, so maybe we should wrap up before""" start="01:58:31.480" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""you have like, you know,""" start="01:58:32.440" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""that overflow error and just...""" start="01:58:35.380" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""[Speaker 3]: In buster thrill, okay.""" start="01:58:38.000" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""Thank you""" start="01:58:41.720" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""[Speaker 0]: so much, everyone. Let us actually wrap up""" start="01:58:45.200" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""then. Everyone can find the recordings if you""" start="01:58:47.360" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""want to keep the conversation going.""" start="01:58:48.640" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""There are meetups, there are people's blog""" start="01:58:51.900" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""posts and video channels and mailing lists""" start="01:58:54.240" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""and all those other things.""" start="01:58:55.320" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""I often I list a lot of meetups in Emacs news""" start="01:58:58.820" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""so that's another great way to stay connected""" start="01:59:00.680" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""through the year and we hope to see everybody""" start="01:59:02.560" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""next year at EmacsConf 2024.""" start="01:59:04.740" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""[Speaker 4]: Thanks Sasha for the send off and goodbye to""" start="01:59:11.260" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""everyone. Oh Sasha I think you were muted but""" start="01:59:16.740" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""yes I was still there I assume that's what""" start="01:59:18.340" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""you just said. I lied.""" start="01:59:21.220" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""I was staying around like Corwin was.""" start="01:59:23.680" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""I just said goodbye, but then I wait in the""" start="01:59:25.440" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""bushes, waiting for the ambush.""" start="01:59:26.520" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""[Speaker 3]: Well I'm personally surprised,""" start="01:59:29.340" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""speaking for myself. I wouldn't have guessed""" start="01:59:32.780" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""that would happen. All right,""" start="01:59:36.040" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""[Speaker 4]: The perfect moment. well,""" start="01:59:36.340" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""I guess that's a wrap then.""" start="01:59:37.360" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""Thank you, everyone, and see you next year.""" start="01:59:39.060" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""[Speaker 3]: I thought we were clear like 10 minutes ago.""" start="01:59:43.440" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""Are we not? We are, right?""" start="01:59:45.340" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""We're definitely clear.""" start="01:59:47.400" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""[Speaker 5]: OK, I'm""" start="01:59:48.040" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""[Speaker 3]: hanging up now. Good night.""" start="01:59:49.240" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""It was wonderful to meet you.""" start="01:59:50.640" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""[Speaker 7]: Take care Corwin""" start="01:59:51.900" video="qanda-emacsconf" id="subtitle"]]
+[[!template text="""[Speaker 4]: Bye Stefan. Bye. Bye all""" start="01:59:56.520" video="qanda-emacsconf" id="subtitle"]]
+
+</div>Questions or comments? Please e-mail [sacha@sachachua.com](mailto:sacha@sachachua.com?subject=Comment%20for%20EmacsConf%202023%20emacsconf%3A%20EmacsConf.org%3A%20How%20we%20use%20Org%20Mode%20and%20TRAMP%20to%20organize%20and%20run%20a%20multi-track%20conference)
<!-- End of emacsconf-publish-after-page -->
diff --git a/2023/info/emacsconf-before.md b/2023/info/emacsconf-before.md
index 4d9affe4..c10d5bd4 100644
--- a/2023/info/emacsconf-before.md
+++ b/2023/info/emacsconf-before.md
@@ -1,12 +1,37 @@
<!-- Automatically generated by emacsconf-publish-before-page -->
[[!toc ]]
-Format: 20-min talk followed by live Q&A
-Discuss on IRC: [#emacsconf](https://chat.emacsconf.org/?join=emacsconf)
-Status: Waiting for video from speaker
+Format: 16-min talk ; Q&A: BigBlueButton conference room
+Status: Q&A to be extracted from the room recordings
+# Talk
+
+<div class="vid mainVideo"><video controls preload="none" id="mainVideo-emacsconf"><source src="https://media.emacsconf.org/2023/emacsconf-2023-emacsconf--emacsconforg-how-we-use-org-mode-and-tramp-to-organize-and-run-a-multitrack-conference--sacha-chua--main.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2023/captions/emacsconf-2023-emacsconf--emacsconforg-how-we-use-org-mode-and-tramp-to-organize-and-run-a-multitrack-conference--sacha-chua--main.vtt" default />"""<track kind="chapters" label="Chapters" src="/2023/captions/emacsconf-2023-emacsconf--emacsconforg-how-we-use-org-mode-and-tramp-to-organize-and-run-a-multitrack-conference--sacha-chua--main--chapters.vtt" /><p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video>[[!template id="chapters" vidid="mainVideo-emacsconf" data="""
+00:00.000 Intro
+00:16.580 Reasons
+01:09.400 Information
+02:09.160 Properties
+03:53.120 Timezones
+04:29.720 Scheduling
+05:41.780 Templates
+06:48.400 Wiki
+08:04.380 Etherpad
+08:28.200 E-mail
+09:05.920 BigBlueButton web conferences
+10:08.121 Shortcuts
+10:36.700 Logbook
+11:03.680 Captions
+12:13.220 Crontabs and playing the talks
+13:11.280 Transitions
+13:49.880 Wrapping up
+
+"""]]<div></div>Duration: 15:05 minutes<div class="files resources"><ul><li><a href="https://pad.emacsconf.org/2023-emacsconf">Open Etherpad</a></li><li><a href="https://bbb.emacsverse.org/playback/presentation/2.0/playback.html?meetingId=5f07e2b967f71ad503ac367ea43866abeaad63b6-1701636099684">Play recording from BigBlueButton</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-emacsconf--emacsconforg-how-we-use-org-mode-and-tramp-to-organize-and-run-a-multitrack-conference--sacha-chua--intro.vtt">Download --intro.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-emacsconf--emacsconforg-how-we-use-org-mode-and-tramp-to-organize-and-run-a-multitrack-conference--sacha-chua--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-emacsconf--emacsconforg-how-we-use-org-mode-and-tramp-to-organize-and-run-a-multitrack-conference--sacha-chua--main--chapters.vtt">Download --main--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-emacsconf--emacsconforg-how-we-use-org-mode-and-tramp-to-organize-and-run-a-multitrack-conference--sacha-chua--main.opus">Download --main.opus (8.3MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-emacsconf--emacsconforg-how-we-use-org-mode-and-tramp-to-organize-and-run-a-multitrack-conference--sacha-chua--main.vtt">Download --main.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-emacsconf--emacsconforg-how-we-use-org-mode-and-tramp-to-organize-and-run-a-multitrack-conference--sacha-chua--main.webm">Download --main.webm (37MB)</a></li><li><a href="https://toobnix.org/w/eX2dXG3xMtUHuuBz4fssGT">View on Toobnix</a></li><li><a href="https://www.youtube.com/watch?v=uTregv3rNl0">View on Youtube</a></li></ul></div></div>
+
+# Q&A
+
+<div class="vid qanda"><video controls preload="none" id="qanda-emacsconf"><source src="https://media.emacsconf.org/2023/emacsconf-2023-emacsconf--emacsconforg-how-we-use-org-mode-and-tramp-to-organize-and-run-a-multitrack-conference--sacha-chua--answers.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2023/captions/emacsconf-2023-emacsconf--emacsconforg-how-we-use-org-mode-and-tramp-to-organize-and-run-a-multitrack-conference--sacha-chua--answers.vtt" default />"""<p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video><div>Listen to just the audio:<br /><audio controls preload="none" id="qanda-emacsconf-audio" src="https://media.emacsconf.org/2023/emacsconf-2023-emacsconf--emacsconforg-how-we-use-org-mode-and-tramp-to-organize-and-run-a-multitrack-conference--sacha-chua--answers.opus"></audio></div><div></div>Duration: 2:00:43 minutes<div class="files resources"><ul><li><a href="https://pad.emacsconf.org/2023-emacsconf">Open Etherpad</a></li><li><a href="https://bbb.emacsverse.org/playback/presentation/2.0/playback.html?meetingId=5f07e2b967f71ad503ac367ea43866abeaad63b6-1701636099684">Play recording from BigBlueButton</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-emacsconf--emacsconforg-how-we-use-org-mode-and-tramp-to-organize-and-run-a-multitrack-conference--sacha-chua--answers.json">Download --answers.json (5.8MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-emacsconf--emacsconforg-how-we-use-org-mode-and-tramp-to-organize-and-run-a-multitrack-conference--sacha-chua--answers.opus">Download --answers.opus (71MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-emacsconf--emacsconforg-how-we-use-org-mode-and-tramp-to-organize-and-run-a-multitrack-conference--sacha-chua--answers.vtt">Download --answers.vtt</a> (unedited)</li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-emacsconf--emacsconforg-how-we-use-org-mode-and-tramp-to-organize-and-run-a-multitrack-conference--sacha-chua--answers.webm">Download --answers.webm (317MB)</a></li></ul></div></div>
# Description
<!-- End of emacsconf-publish-before-page --> \ No newline at end of file
diff --git a/2023/info/emacsconf-nav.md b/2023/info/emacsconf-nav.md
index 9b5a2bbf..04302650 100644
--- a/2023/info/emacsconf-nav.md
+++ b/2023/info/emacsconf-nav.md
@@ -1,7 +1,7 @@
<div class="talk-nav">
Back to the [[talks]]
-Previous by track: <a href="/2023/talks/windows">Windows into Freedom</a>
-Next by track: <a href="/2023/talks/steno">Programming at 200 wpm</a>
-Track: <span class="sched-track Development">Development</span>
+Previous by track: <a href="/2023/talks/test">What I learned by writing test cases for GNU Hyperbole</a>
+Next by track: <a href="/2023/talks/sat-open">Saturday opening remarks</a>
+Track: <span class="sched-track Development">Development</span> - <strong><a href="https://emacsconf.org/2023/watch/dev">Watch</a></strong>
</div>
diff --git a/2023/info/emacsen-after.md b/2023/info/emacsen-after.md
index 79ebd275..c103787e 100644
--- a/2023/info/emacsen-after.md
+++ b/2023/info/emacsen-after.md
@@ -1,7 +1,1647 @@
<!-- Automatically generated by emacsconf-publish-after-page -->
-Questions or comments? Please e-mail [emacsconf-org-private@gnu.org](mailto:emacsconf-org-private@gnu.org?subject=Comment%20for%20EmacsConf%202022%20emacsen%3A%20The%20Emacsen%20family%2C%20the%20design%20of%20an%20Emacs%20and%20the%20importance%20of%20Lisp)
+<div class="transcript transcript-mainVideo"><a name="emacsen-mainVideo-transcript"></a><h1>Transcript</h1>
+
+
+<div class="transcript-heading">[[!template new="1" text="""Introduction""" start="00:00:00.000" video="mainVideo-emacsen" id="subtitle"]]</div>[[!template text="""Hello, my name is Fermin.""" start="00:00:00.000" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""Today, I'm going to talk about the Emacsen family,""" start="00:00:03.200" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""the design of an Emacs, and the importance of Lisp.""" start="00:00:06.960" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""So we're going to talk about Lisp.""" start="00:00:11.160" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""I want to start from the end.""" start="00:00:13.520" video="mainVideo-emacsen" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Why Lisp matters""" start="00:00:17.000" video="mainVideo-emacsen" id="subtitle"]]</div>[[!template text="""The first question I want to ask is""" start="00:00:17.000" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""why I think Lisp matters.""" start="00:00:19.040" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""When I'm talking about Lisp here,""" start="00:00:21.400" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""I'm talking about the idea of Lisp,""" start="00:00:22.880" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""so the family of languages that are Lisp.""" start="00:00:27.560" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""But given that there's no formal specification of Lisp,""" start="00:00:30.120" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""so the opinion might vary. I will expect that Lisp,""" start="00:00:34.720" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""most of the Lisp have these kind of features.""" start="00:00:40.600" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""The first one is homoiconic:""" start="00:00:44.440" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""the code is data, basically.""" start="00:00:46.240" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""They also have a REPL: read-eval-print loop.""" start="00:00:49.800" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""That is very powerful and can help in development.""" start="00:00:52.560" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""Also, I think a good Lisp""" start="00:00:57.760" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""should have a powerful macro system.""" start="00:01:00.360" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""I'm good with compile-time macros,""" start="00:01:03.320" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""but read-time is also interesting.""" start="00:01:05.760" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""There's a lot of Lisp that you can choose.""" start="00:01:07.600" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""There's the main three ones, of course,""" start="00:01:10.280" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""with Scheme, Common Lisp, and Clojure.""" start="00:01:12.000" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""Scheme by Guile, Common Lisp by Common Lisp,""" start="00:01:13.840" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""and Clojure by Clojure or ClojureScript.""" start="00:01:19.675" video="mainVideo-emacsen" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Why Emacs Lisp was chosen""" start="00:01:26.640" video="mainVideo-emacsen" id="subtitle"]]</div>[[!template text="""So let's talk about Emacs Lisp.""" start="00:01:26.640" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""I didn't mention Emacs Lisp.""" start="00:01:28.080" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""I'm going to talk about why Emacs Lisp""" start="00:01:29.680" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""was chosen for an Emacs editor.""" start="00:01:32.520" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""We're going to explore this kind of design of the Emacs.""" start="00:01:35.600" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""And Emacs Lisp is the main language of it. Why?""" start="00:01:39.160" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""Given that there were a few alternatives at the time,""" start="00:01:42.280" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""why Emacs Lisp was chosen?""" start="00:01:44.960" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""So RMS, Richard Stallman, needed a Lisp,""" start="00:01:48.160" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""and there wasn't one available at the time.""" start="00:01:51.920" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""Keep in mind, this was the early 80s.""" start="00:01:54.280" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""Stallman was writing at that point the GCC, I think,""" start="00:01:57.040" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""and he was writing the core components""" start="00:02:03.241" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""of what is going to become GNU.""" start="00:02:07.975" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""He needed an editor. He wanted Lisp. He wanted Emacs.""" start="00:02:10.441" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""So he wrote Emacs Lisp. So at that time,""" start="00:02:15.500" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""the functionality was more important than &quot;perfection.&quot;""" start="00:02:20.281" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""What I mean [by] &quot;perfection&quot; is: we programmers""" start="00:02:24.600" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""sometimes like to make everything good""" start="00:02:26.640" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""or very, very good when sometimes, indeed,""" start="00:02:33.360" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""it's more important that it works""" start="00:02:36.480" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""to do the task that it should.""" start="00:02:39.120" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""And it's not a bad language.""" start="00:02:42.920" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""It's not that bad. At that time, it was mostly nice.""" start="00:02:44.200" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""Today, it's good enough, I think.""" start="00:02:50.240" video="mainVideo-emacsen" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Other "Emacsen"""" start="00:02:54.841" video="mainVideo-emacsen" id="subtitle"]]</div>[[!template text="""He wasn't the first one, the GNU Emacs,""" start="00:02:54.841" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""nor the only one, of course.""" start="00:02:59.461" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""There were others: Hemlock, Zmacs, and Climacs...""" start="00:03:02.541" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""Two of them, I think, were written in Common Lisp,""" start="00:03:06.440" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""and Zmacs was written in a Lisp from a Lisp machine,""" start="00:03:08.981" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""so it was an implementation of Emacs.""" start="00:03:14.480" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""Not GNU Emacs, but the original idea""" start="00:03:16.640" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""of Emacs for a Lisp machine.""" start="00:03:19.040" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""So Hemlock was written in Common Lisp,""" start="00:03:22.080" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""but it's no longer used and no longer developed,""" start="00:03:23.760" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""as far as I know. And Climacs, it was developed,""" start="00:03:26.080" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""but it was abandoned, I think.""" start="00:03:29.000" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""So three of them failed for different reasons.""" start="00:03:31.520" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""Zmacs was because of the Lisp machine market crash,""" start="00:03:33.640" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""and yeah, it also failed.""" start="00:03:37.880" video="mainVideo-emacsen" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Why not Common Lisp?""" start="00:03:38.581" video="mainVideo-emacsen" id="subtitle"]]</div>[[!template text="""So Emacs got alone. And in the 90s, interesting to explore,""" start="00:03:38.581" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""some people suggest that why""" start="00:03:44.040" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""now that we have a standard Lisp, right,""" start="00:03:46.480" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""because Common Lisp was standardized in '94,""" start="00:03:49.680" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""why don't we change Emacs Lisp to Common Lisp?""" start="00:03:52.560" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""These are the other reasons I think are important,""" start="00:03:56.720" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""because that's why Stallman didn't choose Common Lisp.""" start="00:03:59.000" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""But I think the main one""" start="00:04:01.160" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""that I didn't write here""" start="00:04:02.040" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""is that Stallman wasn't a big fan of Common Lisp,""" start="00:04:03.760" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""and he was at the time the main developer""" start="00:04:09.040" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""and maintainer, of course, for Emacs.""" start="00:04:12.680" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""So he chose not to move to Common Lisp.""" start="00:04:14.041" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""But other reasons may be why...""" start="00:04:16.440" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""Because he had a late and painful standardization.""" start="00:04:18.480" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""Keep in mind, the first book that Guy Steele wrote""" start="00:04:22.920" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""was in 1984. The standardization finished in 19--""" start="00:04:28.040" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""sorry, in 1984 was the first book""" start="00:04:32.240" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""and the standardization finished in 1994.""" start="00:04:38.280" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""So, like, 10 years of difference from one to the other.""" start="00:04:44.421" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""10 years of a lot of talk, a lot of money,""" start="00:04:48.120" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""and a lot of pain probably.""" start="00:04:51.880" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""The Lisp usage declined in the 90s""" start="00:04:56.400" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""due to the AI winter.""" start="00:04:59.200" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""We all know about the Lisp machine market crash.""" start="00:05:00.960" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""And the failure of commercial Lisp machine was""" start="00:05:03.360" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""inevitable at that point.""" start="00:05:08.840" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""So all the potential Emacs friends died.""" start="00:05:12.240" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""And also a lot of Emacs Lisp was already available.""" start="00:05:17.161" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""Emacs was already an amateur utility.""" start="00:05:21.280" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""Unix won the war of the operating system, as we know,""" start="00:05:24.560" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""and Emacs Lisp was available in Unix,""" start="00:05:29.960" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""or in GNU/Linux, as we know,""" start="00:05:33.840" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""which is the most successful implementation of Unix.""" start="00:05:36.920" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""Sorry, BSD. Okay.""" start="00:05:40.480" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""So Emacs won by being the &quot;better&quot; alternative.""" start="00:05:44.208" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""I'm quoting &quot;better&quot; here because""" start="00:05:48.400" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""I think Emacs does have a better design""" start="00:05:50.000" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""and, well, it was the one that survived, right?""" start="00:05:53.700" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""Which is the more important thing for a software or,""" start="00:05:56.960" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""you know... So Emacs won by being free,""" start="00:06:00.040" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""also in price, which I think the Lisp machine wasn't.""" start="00:06:05.160" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""So that was also very good. It was included.""" start="00:06:08.400" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""It had, and it still has, of course,""" start="00:06:11.520" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""a nice collection of packages""" start="00:06:14.560" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""that improve the standard functionality.""" start="00:06:15.880" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""It was easy to extend because of the nature of Lisp.""" start="00:06:20.680" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""And it has a very good integration with GNU/Linux,""" start="00:06:23.480" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""of course. It was created to write it.""" start="00:06:26.040" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""It makes sense that it's very good""" start="00:06:29.400" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""for a system administration perspective.""" start="00:06:31.080" video="mainVideo-emacsen" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Common Lisp is still not dead or is always dead""" start="00:06:39.120" video="mainVideo-emacsen" id="subtitle"]]</div>[[!template text="""But I think Common Lisp is not dead yet.""" start="00:06:39.120" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""Or some people say that it's always dead,""" start="00:06:43.320" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""so you cannot kill the something that is always dead.""" start="00:06:45.720" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""So I don't always code in C,""" start="00:06:48.400" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""but when I do, it's Lisp. I'm not a big fan of C""" start="00:06:50.720" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""for a lot of things, but yeah.""" start="00:06:54.200" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""Why I think Common Lisp is still relevant""" start="00:06:58.600" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""and can be used for all kind of application,""" start="00:07:02.440" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""both commercially and non-commercially.""" start="00:07:05.400" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""The first one is the main implementation""" start="00:07:09.280" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""of Common Lisp, which is called SBCL, which is awesome.""" start="00:07:11.840" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""It's fast. It's a very good extension.""" start="00:07:16.800" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""Basically, it's the reference one today.""" start="00:07:19.400" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""The namespaces of common Lisp,""" start="00:07:21.640" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""I really like the implementation.""" start="00:07:25.560" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""Some people don't like it. It's a matter of taste.""" start="00:07:26.880" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""But I think it's really good.""" start="00:07:28.720" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""I have a timeless standard. So it was standardized""" start="00:07:29.640" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""in the 90s, as I said.""" start="00:07:32.920" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""And it doesn't really need a new standard.""" start="00:07:35.980" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""Some people say it does need, but I don't think so.""" start="00:07:38.881" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""Also it does have macro readers,""" start="00:07:44.120" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""which I think is a very nice feature of Common Lisp""" start="00:07:46.000" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""that other Lisp doesn't seem to have,""" start="00:07:49.160" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""or a lot of them don't: in my mind, Emacs Lisp and Clojure.""" start="00:07:51.240" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""Also, it's image-based development,""" start="00:07:56.720" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""which is also quite unique to Common Lisp.""" start="00:07:58.200" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""I don't know all the Lisp that does have this.""" start="00:08:00.400" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""Basically, you develop a REPL""" start="00:08:04.360" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""and then you dump the entire REPL into an image.""" start="00:08:05.360" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""Java would be like a core dump.""" start="00:08:10.160" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""And you create an executable.""" start="00:08:12.080" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""Which at the time, I guess in the 90s,""" start="00:08:14.160" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""was a huge one, right?""" start="00:08:17.160" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""Because you have the entire language, and the REPL,""" start="00:08:18.200" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""and the code. But today are like 20 MB,""" start="00:08:20.680" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""which in today's standard is nothing.""" start="00:08:23.800" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""There's pictures in your phone larger than 20 MB.""" start="00:08:26.600" video="mainVideo-emacsen" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Lem is a nice Emacsen implementation""" start="00:08:30.080" video="mainVideo-emacsen" id="subtitle"]]</div>[[!template text="""So there's a new Emacs in town--well, Emacs, not Emacs,""" start="00:08:30.080" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""Which is Lem. I think it's a very good Emacs implementation.""" start="00:08:39.240" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""What I mean by &quot;Emacs&quot; here is not a clone of GNU Emacs,""" start="00:08:43.440" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""but an Emacs-inspired editor with similar characteristics,""" start="00:08:46.680" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""and written in a Lisp,""" start="00:08:51.560" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""which is why I said that Lisp was very important.""" start="00:08:53.520" video="mainVideo-emacsen" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Why not just use GNU Emacs?""" start="00:08:58.260" video="mainVideo-emacsen" id="subtitle"]]</div>[[!template text="""So first, I'm going to address the elephant in the room,""" start="00:08:58.260" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""and the question that maybe most""" start="00:09:01.560" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""of you are now thinking.""" start="00:09:05.040" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""Why not just use GNU Emacs? It's the project.""" start="00:09:06.160" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""It's the main one, right? Why choose another one?""" start="00:09:12.920" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""So Lem is relatively new, 2018.""" start="00:09:15.760" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""And it can explore different ideas.""" start="00:09:18.200" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""It was developed by Sasaki-san.""" start="00:09:20.200" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""Basically, it was mostly a one-month project,""" start="00:09:21.680" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""but we are getting there. I'm not the maintainer.""" start="00:09:26.720" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""I'm a developer of Lem. So given that it's""" start="00:09:31.941" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""relatively new, it can explore different ideas.""" start="00:09:36.960" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""You're not bound to a community or backwards compatibility.""" start="00:09:39.240" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""You can explore different ideas,""" start="00:09:43.520" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""and I think that's always nice.""" start="00:09:45.440" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""Having multiple options creates competition,""" start="00:09:46.200" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""which benefits the community. So Emacs and Vim,""" start="00:09:49.840" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""the competition between the two""" start="00:09:52.640" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""always create nice packages like evil or, you know...""" start="00:09:54.840" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""It's really good to have some kind of a competition,""" start="00:09:59.120" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""healthy competition.""" start="00:10:03.720" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""And it doesn't share any code base with GNU Emacs.""" start="00:10:06.160" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""I want to clarify this because some people think that""" start="00:10:08.200" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""Lem is kind of a, you know, Spacemacs or Doom.""" start="00:10:12.880" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""No, it doesn't share any code.""" start="00:10:16.120" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""It has zero Emacs. So that's it.""" start="00:10:19.960" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""Getting this out of the way.""" start="00:10:27.760" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""Why I think Lem is interesting.""" start="00:10:29.200" video="mainVideo-emacsen" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Why Lem""" start="00:10:31.080" video="mainVideo-emacsen" id="subtitle"]]</div>[[!template text="""I'm going to show why Lem.""" start="00:10:31.080" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""Why? You can try Lem, and maybe you like it.""" start="00:10:32.360" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""First thing, these are the features""" start="00:10:37.760" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""that I really like from it.""" start="00:10:41.320" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""Can be different from person to person,""" start="00:10:42.800" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""but I think these are the main ideas""" start="00:10:45.575" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""it brings to the table and are really interesting.""" start="00:10:48.280" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""I want to say that Lem is not a research project.""" start="00:10:50.000" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""It's not like some people did that""" start="00:10:53.120" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""and it's still in development. No, no.""" start="00:10:55.720" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""This is a usable product that can be used""" start="00:10:57.240" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""to [do] day-to-day programming""" start="00:11:00.040" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""in a very good experience.""" start="00:11:02.040" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""This is not like--I want to clarify this""" start="00:11:04.560" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""because some people bring some exploratory projects.""" start="00:11:06.280" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""This is not that one. This is finished.""" start="00:11:08.720" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""Well, finished in the way that you can use it.""" start="00:11:10.800" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""It's not, you know, have everything in place.""" start="00:11:14.720" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""So let's continue.""" start="00:11:17.800" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""It's written 100% in Common Lisp.""" start="00:11:20.640" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""I say this because Emacs is not""" start="00:11:22.160" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""100% in Emacs Lisp.""" start="00:11:23.840" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""You have to modify the C code,""" start="00:11:26.280" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""I think, well, if you... You don't have to,""" start="00:11:28.360" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""but if you want to change the internals, you do.""" start="00:11:31.840" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""I think that given that Lem does not care""" start="00:11:34.000" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""about the implementation of the language itself--""" start="00:11:38.880" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""so for example, Lem doesn't have to deal with""" start="00:11:41.200" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""how Common Lisp works, it just used the language, right?""" start="00:11:44.040" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""It's on top of the language.""" start="00:11:48.200" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""You can say that. Emacs Lisp is Emacs and Emacs Lisp,""" start="00:11:50.800" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""so you have to, you have both in the same place,""" start="00:11:53.880" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""which is, well, it's a double-edged sword, right?""" start="00:11:56.080" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""Then you have the both--similar to Emacs--""" start="00:12:00.320" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""you have ncurses and SDL2 frontends.""" start="00:12:03.320" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""One is terminal-based and the other is graphical""" start="00:12:05.640" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""using the SDL2 library,""" start="00:12:08.720" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""which you can do a lot of crazy things.""" start="00:12:10.400" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""Of course, it's meant to program games and stuff,""" start="00:12:13.760" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""but Lem uses, and it works fairly well.""" start="00:12:16.160" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""You can program games if you want.""" start="00:12:19.680" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""Not that you need to or anything, but we have Tetris.""" start="00:12:21.880" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""So there's that.""" start="00:12:27.560" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""Also, separate front-end interface.""" start="00:12:29.000" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""So like I said, you have two, but you can create more.""" start="00:12:31.720" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""In the past, had an electron one,""" start="00:12:34.160" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""but it got abandoned for obvious reasons, I think. Sorry.""" start="00:12:36.440" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""This idea is taken from Neovim that had a lot of frontends.""" start="00:12:41.320" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""In fact, we don't have that many,""" start="00:12:45.840" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""but not that many people we have two.""" start="00:12:48.120" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""That works fairly well.""" start="00:12:49.640" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""We have superb development experience thanks to SLIME.""" start="00:12:51.675" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""So we have Micro,""" start="00:12:56.680" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""which is a SLIME version for Lem, basically.""" start="00:13:01.320" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""SLIME is awesome and Micro is also awesome.""" start="00:13:04.040" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""We have a very strong development experience""" start="00:13:09.000" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""that we don't have for a Lisp,""" start="00:13:12.320" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""which I think is very important.""" start="00:13:15.400" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""If you want someone to develop packages or to use your tool,""" start="00:13:17.400" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""your Emacs at least,""" start="00:13:20.320" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""you need to have a very good development experience,""" start="00:13:22.720" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""which enhance the extensions for the editor.""" start="00:13:28.760" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""So we have also Vim-like integration.""" start="00:13:34.040" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""This for me was mostly mandatory""" start="00:13:36.720" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""because I'm an evil-mode user, and I think it's really good.""" start="00:13:39.400" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""Because evil-mode is very good and the VMode,""" start="00:13:44.440" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""which it's called, even though it's more like Vim mode,""" start="00:13:49.480" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""it's called VMode. It's written by""" start="00:13:51.720" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""Fukamachi-san and it's really good.""" start="00:13:54.160" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""So yeah, that's the thing that I think Lem brings to""" start="00:13:59.160" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""the table and that's really interesting.""" start="00:14:01.960" video="mainVideo-emacsen" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Similarities and differences""" start="00:14:03.080" video="mainVideo-emacsen" id="subtitle"]]</div>[[!template text="""So I'm going to do a small demo of Lem, a Emacs example.""" start="00:14:03.080" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""First, the similarities,""" start="00:14:10.520" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""the nomenclature is very similar: modes, buffers,""" start="00:14:11.680" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""commands... The commands are very similar in nature.""" start="00:14:14.120" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""It was written with GNU Emacs in mind""" start="00:14:17.440" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""to mimic a lot of things.""" start="00:14:20.040" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""I think GNU Emacs is the best Emacs implementation""" start="00:14:24.360" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""in that way. So why not just take what is working, right?""" start="00:14:29.080" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""I have similar command,""" start="00:14:33.720" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""but flexible to add other default ones.""" start="00:14:35.600" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""It's not like Emacs that you have Emacs commands.""" start="00:14:39.400" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""Lem has Emacs command by default,""" start="00:14:42.400" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""but you can easily change that""" start="00:14:45.160" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""with other default ones, right?""" start="00:14:47.760" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""It's like, you can think of it like a major mode, right?""" start="00:14:49.920" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""Well, more like a global mode,""" start="00:14:52.160" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""sorry. That's a global mode of Emacs commands,""" start="00:14:54.440" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""or something like that.""" start="00:14:57.961" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""In general, the feeling is really close.""" start="00:14:59.361" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""So you will tell that it's really close to how both work,""" start="00:15:01.520" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""similar commands, and that shows.""" start="00:15:05.920" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""Differences, Common Lisp is not Emacs Lisp,""" start="00:15:07.840" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""it's similar in the surface.""" start="00:15:12.360" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""So it uses `defun`, you know, have parentheses""" start="00:15:13.920" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""and yada, yada, but it's not the same language, really,""" start="00:15:16.280" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""and sometimes you will find""" start="00:15:18.720" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""that the differences are substantial.""" start="00:15:20.840" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""The internals are completely different,""" start="00:15:23.260" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""of course, nothing, well, completely.""" start="00:15:24.860" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""They have a buffer implementation and other things,""" start="00:15:27.480" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""but in general, yeah, aside from that,""" start="00:15:29.720" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""it's completely different.""" start="00:15:32.360" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""And it's true that GNU Emacs""" start="00:15:34.080" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""has a better documentation tutorial.""" start="00:15:36.200" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""So GNU Emacs for me, I think it's""" start="00:15:37.480" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""one of the best-documented software ever.""" start="00:15:39.720" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""We're trying to go there, but we're still not there.""" start="00:15:41.760" video="mainVideo-emacsen" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Demo""" start="00:15:49.600" video="mainVideo-emacsen" id="subtitle"]]</div>[[!template text="""Let's do the demo. So to open Lem, you compile it,""" start="00:15:49.600" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""and then you have it available,""" start="00:15:54.080" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""and you open Lem. As you can see,""" start="00:15:55.760" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""we have the temporary buffer. On the top left is the mode--""" start="00:15:57.720" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""not mode,""" start="00:16:00.840" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""the beam, insert, normal, visual. This is the V mode, right?""" start="00:16:03.280" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""In the top right corner, we have fundamental,""" start="00:16:07.240" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""which is the major mode, then paredit,""" start="00:16:10.280" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""which is like the minor mode, but you know,""" start="00:16:11.600" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""this is like the paredit for Emacs.""" start="00:16:15.080" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""In the top left buffer,""" start="00:16:16.080" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""you have the current buffer.""" start="00:16:19.200" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""So let's open the... Emacs, we all know how to do this.""" start="00:16:22.480" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""This is a command, like explore this command,""" start="00:16:26.480" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""like `open-init-file`. This opens the init file,""" start="00:16:29.320" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""which is in this directory, in `~/.lem/init.lisp`.""" start="00:16:31.480" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""As you can see, this is very similar, right?""" start="00:16:34.320" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""You define a command, which is not interactive,""" start="00:16:38.240" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""and then you get the buffer, right?""" start="00:16:40.280" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""This is a... So my personal command...""" start="00:16:42.960" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""Let's go to the one that I just opened. Init file, right?""" start="00:16:44.920" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""So this is a command that I did,""" start="00:16:48.880" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""which is `find-file`.""" start="00:16:52.160" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""This is very similar to [??], but just `find-file`.""" start="00:16:53.440" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""As you can see, very similar.""" start="00:16:56.600" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""This is the way that you program in Lem.""" start="00:16:58.400" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""This is the major mode, which is Lisp,""" start="00:17:01.760" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""that we're seeing at the top, right?""" start="00:17:04.840" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""And we can connect if we `slime-self-connect`.""" start="00:17:06.960" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""This is the prompt. This is the REPL.""" start="00:17:10.480" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""So if we... Keep in mind that this is Common Lisp,""" start="00:17:14.120" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""so this has different things.""" start="00:17:17.960" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""So we have to go to the Lem package,""" start="00:17:20.440" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""which is very important. This has namespaces, right?""" start="00:17:22.720" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""It's not the same. And we can say, okay,""" start="00:17:26.200" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""`current-buffer`. We get the buffer.""" start="00:17:29.040" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""We can explore everything that is in it, right?""" start="00:17:32.320" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""We have all this stuff. This is... If you're familiar""" start="00:17:35.200" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""with SLIME or Sly, this is it.""" start="00:17:38.560" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""It's just that we can say, buffer, I think it's `buffer-name`.""" start="00:17:41.160" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""Yes. And we can take this,""" start="00:17:46.280" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""and then we'll give you the name.""" start="00:17:49.160" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""So as you can see, the development experience""" start="00:17:50.800" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""is really powerful. We can also `lisp-scratch`,""" start="00:17:54.360" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""which transform... basically apply""" start="00:17:57.640" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""the major mode of Lisp to the temporary buffer.""" start="00:18:00.680" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""This is very similar to Emacs.""" start="00:18:02.640" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""Let's go back to the theme. I think that's it.""" start="00:18:06.720" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""Thank you all very much for listening to me.""" start="00:18:12.000" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""I think I point out""" start="00:18:13.880" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""the Emacsen family is really interesting.""" start="00:18:15.240" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""Lisp is really good, and GNU Emacs is really good,""" start="00:18:17.000" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""and I think Lem is also pretty awesome.""" start="00:18:19.280" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""So thank you all very much.""" start="00:18:21.200" video="mainVideo-emacsen" id="subtitle"]]
+[[!template text="""I'll be answering the question now. And happy hacking.""" start="00:18:23.120" video="mainVideo-emacsen" id="subtitle"]]
+
+</div>
+
+Captioner: sachac
+
+<div class="transcript transcript-qanda"><a name="emacsen-qanda-transcript"></a><h1>Q&A transcript (unedited)</h1>
+
+[[!template text="""[Speaker 0]: Here.""" start="00:00:00.040" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""[Speaker 1]: All right. Yeah. So thanks,""" start="00:00:05.140" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""Fermin, for the great talk.""" start="00:00:06.279" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""People have questions,""" start="00:00:08.039" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""please post them on the pad or the IRC as""" start="00:00:12.179" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""well and we'll take them up.""" start="00:00:13.259" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""[Speaker 2]: Thank you very much. The guests will be here""" start="00:00:17.240" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""to answer questions. Let's see.""" start="00:00:21.720" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""Yep.""" start="00:00:23.560" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""[Speaker 1]: And also, Fermin, if you later want to""" start="00:00:28.080" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""clarify anything or fix any URLs or such,""" start="00:00:30.660" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""you're always welcome to do that either like""" start="00:00:32.860" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""on the Wiki page, or if you like email any of""" start="00:00:36.000" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""the organizers, they should be able to help""" start="00:00:37.560" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""with that as well.""" start="00:00:38.400" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""[Speaker 2]: Okay. Yeah, I put the wrong URL.""" start="00:00:41.000" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""Yeah, not a big deal really,""" start="00:00:46.020" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""if you look it up. Yeah,""" start="00:00:48.480" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""that's really better. Thank you very much.""" start="00:00:50.940" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""Checking, no questions.""" start="00:00:56.920" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""Very good to be in touch.""" start="00:00:58.780" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""[Speaker 1]: Oh, we have a question here in the big blue""" start="00:01:17.220" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""button chat.""" start="00:01:17.720" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""[Speaker 2]: Oh, public chat. I see.""" start="00:01:21.820" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""Is LEM an acronym? I think it is,""" start="00:01:26.380" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""but I never remember. The complete name is""" start="00:01:32.960" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""like something... It's also a circle,""" start="00:01:36.160" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""like, you know, a self-referencing,""" start="00:01:38.940" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""you know, recursive name.""" start="00:01:41.320" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""I never remember it, sorry.""" start="00:01:42.900" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""It's like... Yeah, someone...""" start="00:01:45.860" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""Okay, someone asked about the DEM community,""" start="00:01:50.580" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""how big it is. So I don't remember,""" start="00:01:56.200" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""to answer the question,""" start="00:01:57.500" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""I don't remember the acronym,""" start="00:01:58.440" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""but it is an acronym. I just never...""" start="00:02:00.640" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""And it's not written anywhere,""" start="00:02:04.700" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""I think, or someone...""" start="00:02:06.380" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""I never check it. So I...""" start="00:02:09.340" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""[Speaker 0]: I forgot.""" start="00:02:12.720" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""[Speaker 2]: My maintainer told me once and then So,""" start="00:02:15.360" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""whole large, does Leia have a package""" start="00:02:17.540" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""manager? We do have a package manager,""" start="00:02:19.800" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""funnily enough. We use the QuickLisp""" start="00:02:21.900" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""infrastructure to get packages,""" start="00:02:26.200" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""so it's very easy to install packages.""" start="00:02:29.580" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""So basically, we don't have a package manager""" start="00:02:33.340" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""as in Emacs, half a packet.l.""" start="00:02:35.740" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""We're using the same common list""" start="00:02:39.140" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""infrastructure to provide the different""" start="00:02:41.180" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""packages. We also have a talk with the""" start="00:02:45.560" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""Ultralisp, which is like a,""" start="00:02:47.360" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""you know, QuickLisp is like,""" start="00:02:48.640" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""you can think quickly of Melpa.""" start="00:02:50.020" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""Ultralisp is like a fast Melpa,""" start="00:02:52.540" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""very fast Melpa, that every,""" start="00:02:54.440" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""I think every day you can get a package from""" start="00:02:58.460" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""them. And We have a tag system that you can""" start="00:03:01.720" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""submit a package and get a tag,""" start="00:03:02.920" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""and Theory can download those packages with""" start="00:03:08.180" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""the lem tag. So the thing is,""" start="00:03:13.140" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""it's not yet, it doesn't have a user""" start="00:03:17.040" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""interface to install packages.""" start="00:03:18.400" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""Still, it's 2 external packages.""" start="00:03:22.020" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""For now, imagine this is like the early""" start="00:03:25.520" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""Emacs, right? Everything is going to the core""" start="00:03:27.560" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""for now, because we need that functionality.""" start="00:03:29.040" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""In the future, we probably will split it up""" start="00:03:32.360" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""way more. But let me first answer a question""" start="00:03:37.120" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""in the other part. How large is the LEN""" start="00:03:42.440" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""community? Hope it's a chance of survival""" start="00:03:44.440" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""long term. So we are a very small community,""" start="00:03:47.360" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""mostly because Sasaki-san,""" start="00:03:51.260" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""the main developers of the community,""" start="00:03:54.120" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""are from Japan and some of them,""" start="00:03:57.160" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""or most of them, don't know English.""" start="00:03:58.620" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""At the beginning, LEM was a very""" start="00:04:01.640" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""Japanese-centric tooling because barrier of""" start="00:04:05.020" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""language, most of the users are from Japan.""" start="00:04:06.960" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""So different communities.""" start="00:04:08.640" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""And also, I don't know why,""" start="00:04:12.040" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""but the main maintainer,""" start="00:04:13.100" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""which is Asaki-san, very good guy and a very,""" start="00:04:17.740" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""very talented developer.""" start="00:04:19.079" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""He doesn't like to, you know,""" start="00:04:21.779" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""at first the project was all in Japanese,""" start="00:04:24.640" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""so he doesn't care if someone uses the""" start="00:04:27.100" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""project or not. He's more focused on the,""" start="00:04:28.520" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""I guess, quality of the features of it.""" start="00:04:32.080" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""So that creates a problem that doesn't really""" start="00:04:35.740" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""mind the community. So the community doesn't""" start="00:04:38.680" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""mind in a good way. It's to focus more on""" start="00:04:41.640" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""technicality rather than the user,""" start="00:04:43.440" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""which I mean, I cannot blame him.""" start="00:04:46.300" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""It's very hard work to build an Emacs and""" start="00:04:49.540" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""editor from scratch. It's not a trivial task.""" start="00:04:52.540" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""So yeah, we're a very small community.""" start="00:04:56.160" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""But I think the chance of survival is very""" start="00:04:58.660" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""good because LEM is written in ANSI Common""" start="00:05:01.440" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""Lisp, so it should be used in any...""" start="00:05:04.540" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""Well, it works in a lot of Common Lisp""" start="00:05:07.440" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""implementation. For people who don't know,""" start="00:05:10.400" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""Common Lisp is a language that was""" start="00:05:12.180" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""standardized in the 94.""" start="00:05:13.140" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""I explained that in the talk,""" start="00:05:14.640" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""but I'll say it again.""" start="00:05:15.660" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""So, if Common Lisp exists,""" start="00:05:18.080" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""in theory, LEM should also exist.""" start="00:05:21.200" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""And also if nCursor doesn't break or doesn't""" start="00:05:24.340" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""stop to exist, which is even less likely.""" start="00:05:27.560" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""So that's the main idea.""" start="00:05:30.400" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""And you can use LEM for very good Common Lisp""" start="00:05:33.460" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""development already. If Common Lisp doesn't""" start="00:05:36.380" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""change that much, it should disappear.""" start="00:05:39.440" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""We are not bound to any company or any...""" start="00:05:42.720" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""Even Sasaki-san, God forbid,""" start="00:05:46.040" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""disappears instantaneously.""" start="00:05:47.720" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""There are a few people,""" start="00:05:50.280" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""me included, that know very well the code""" start="00:05:52.260" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""base and we can continue the development.""" start="00:05:54.020" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""So it's not like 1, there's no one-man""" start="00:05:56.320" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""project. Maybe a four-man project or 5,""" start="00:05:58.860" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""but not 1. Okay, I'll answer the 1 in the""" start="00:06:04.280" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""chat, on the blue button.""" start="00:06:08.100" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""Is it best to learn Common Lisp before""" start="00:06:10.520" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""learning to use LEM? I think this is similar""" start="00:06:13.100" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""to Emacs and EmacLisp,""" start="00:06:15.780" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""right? Should you use EmacLisp before using""" start="00:06:18.740" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""Emacs? Doesn't make too much sense,""" start="00:06:20.160" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""right? You see Emacs and then you go learning""" start="00:06:23.360" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""Common Lisp. I think it's the same,""" start="00:06:28.620" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""sorry, EmacsLisp. And it's the same with LEM.""" start="00:06:30.800" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""You can start using LEM with a non-common""" start="00:06:32.800" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""Lisp, which is fine. You can use it to edit""" start="00:06:37.800" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""your things. It's like an editor.""" start="00:06:39.020" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""But like Emacs, LEM puts a lot of focus on""" start="00:06:42.900" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""extensibility. So it's very probable that you""" start="00:06:46.820" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""will learn how to write Common Lisp.""" start="00:06:49.920" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""I have to say that a lot of people that use""" start="00:06:53.440" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""LEM, well, me and most of the people,""" start="00:06:56.000" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""come from Emacs. So if you come from Emacs""" start="00:06:59.060" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""and you know a little bit of Emac Lisp,""" start="00:07:00.620" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""Common Lisp is like an uncle or cousin""" start="00:07:04.820" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""distance that shares some similarities.""" start="00:07:07.120" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""So you will... Well, it's not going to be""" start="00:07:09.820" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""that. I can show... Sorry about that.""" start="00:07:12.520" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""For example, I show that in the...""" start="00:07:14.960" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""I can show... So the...""" start="00:07:21.780" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""It's not that different from Emacs regarding""" start="00:07:27.080" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""configuration. So for example,""" start="00:07:28.940" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""this command doesn't exist on LEM.""" start="00:07:31.020" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""And Sasaki-san didn't want to copy one-to-one""" start="00:07:35.020" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""the command from Emacs,""" start="00:07:36.360" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""the airgrip, the cursor grip command of""" start="00:07:39.660" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""Emacs. And I said, okay,""" start="00:07:41.120" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""then I'm going to implement it myself.""" start="00:07:43.080" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""And it's something like this,""" start="00:07:44.240" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""which is you will do something similar to""" start="00:07:47.960" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""Emacs, right? This will be like things at""" start="00:07:50.320" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""point symbol or something like that.""" start="00:07:52.280" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""And then you have a prompt,""" start="00:07:54.740" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""very prompt for directory with Emacs would be""" start="00:07:59.060" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""something similar. And then you then launch""" start="00:08:01.260" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""grep with the command that you want.""" start="00:08:02.960" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""This is not that far from Emacs,""" start="00:08:06.340" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""this, really. If you don't know neither of""" start="00:08:10.680" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""those, you can still use LEM,""" start="00:08:12.740" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""though as with Emacs, extensibility will be,""" start="00:08:16.560" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""well, you couldn't extend it if you don't""" start="00:08:22.440" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""know combo disp. Should I answer the question""" start="00:08:28.700" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""on the etherpad writing it at the same time?""" start="00:08:33.280" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""[Speaker 1]: You're welcome to, but you don't have to.""" start="00:08:36.580" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""You can just answer here on stream,""" start="00:08:38.000" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""[Speaker 2]: on the Google button. Okay.""" start="00:08:40.440" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""Okay. Are there any Lisp machine capabilities""" start="00:08:43.140" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""you're trying to provide that GNU image""" start="00:08:45.020" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""lacks? The type objects capability in the""" start="00:08:46.920" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""editor, as an example.""" start="00:08:47.560" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""I mean, there were a few discussions about""" start="00:08:53.840" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""the Lisp machines and LEM and all the big""" start="00:08:59.920" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""projects that tries to get some capability of""" start="00:09:03.080" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""it. But we don't really...""" start="00:09:05.180" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""We try to improve the development experience""" start="00:09:09.840" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""for Common Lisp and for LEM,""" start="00:09:12.800" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""imitating a lot of things that the Lisp""" start="00:09:18.460" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""machine had. I'm going to try to do a thing""" start="00:09:21.560" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""that I don't know if it's going to work.""" start="00:09:23.400" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""So to explain this, let's see.""" start="00:09:26.880" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""I'm going to recompile them now live.""" start="00:09:35.680" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""Let's see how it works.""" start="00:09:42.040" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""And compiling the, yes,""" start="00:09:47.860" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""it doesn't work. OK. What if I do?""" start="00:09:51.780" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""No, it doesn't work. OK.""" start="00:09:53.900" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""I was trying to compile the SDL2,""" start="00:09:55.280" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""but I do have the codebase modifier.""" start="00:09:57.540" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""I should be able to compile this.""" start="00:10:00.360" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""Oh, that was really bad.""" start="00:10:05.640" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""What about example? I have the code base,""" start="00:10:13.320" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""so let me check. I'm going to do this.""" start="00:10:17.220" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""Oh, yeah, I have this modified.""" start="00:10:19.080" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""I stash this. OK. I have this modified.""" start="00:10:31.120" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""Now it should work. OK.""" start="00:10:33.280" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""Sorry. I was going to show the writing""" start="00:10:42.480" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""capabilities of it, similar to the Lisp""" start="00:10:45.620" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""machine of navigating of classes.""" start="00:10:47.800" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""So the answer of that question is,""" start="00:10:52.000" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""not really. We don't try to emulate this""" start="00:10:57.040" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""machine, nor any like of that.""" start="00:10:58.440" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""But yeah. Let me, I'm going to try to,""" start="00:11:05.500" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""okay, now I'm back at them.""" start="00:11:07.120" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""Okay. So what about using them for things""" start="00:11:12.180" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""other than common, common,""" start="00:11:13.260" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""that markets? Okay. So yes,""" start="00:11:16.160" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""we do have, so I'm going to show the code""" start="00:11:18.280" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""base a little bit. Like I said before,""" start="00:11:20.280" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""we don't have yet too much external packages""" start="00:11:25.120" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""because of the size of the community.""" start="00:11:26.500" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""I have a question. Go ahead,""" start="00:11:30.720" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""you can write it, Michael.""" start="00:11:32.160" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""Yeah. So, yes, as you can see here,""" start="00:11:37.840" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""this is almost all, or 99% of the major modes""" start="00:11:43.900" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""we have. We use the same terminology of""" start="00:11:46.160" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""SkinnyMemax in that way.""" start="00:11:47.640" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""For example, the C mode,""" start="00:11:49.120" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""if you go inside, you see that this is the""" start="00:11:51.460" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""fine major mode. So in that regard,""" start="00:11:53.600" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""it's very similar to Emacs.""" start="00:11:54.800" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""And we have something called a JIT,""" start="00:11:56.600" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""which is like a maggot.""" start="00:11:58.320" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""And you can edit files.""" start="00:12:00.280" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""You can use not only for common lists.""" start="00:12:02.500" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""In my configuration, which is written,""" start="00:12:06.820" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""I will post that later,""" start="00:12:11.140" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""but if you go to my code burg you can see my""" start="00:12:15.480" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""configuration which is,""" start="00:12:16.460" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""which I do have. So for example you can use""" start="00:12:20.460" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""it for a scheme. We have a swank server.""" start="00:12:22.260" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""This is the configuration to use it.""" start="00:12:24.240" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""You can use it for JavaScript because we have""" start="00:12:25.900" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""a native LSP client written in.""" start="00:12:28.180" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""And we have Dired. Yeah,""" start="00:12:29.540" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""this is Dired. We have Dired indeed.""" start="00:12:33.820" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""No, it's not Dired, you know.""" start="00:12:35.560" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""It's called directory.""" start="00:12:36.260" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""Sasaki-san, which is the main maintainer,""" start="00:12:38.860" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""doesn't like to copy one-to-one Emacs names,""" start="00:12:43.100" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""but we are the same. We also have projects,""" start="00:12:48.700" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""which is like projectile.""" start="00:12:51.780" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""So, you know, they're very similar but not""" start="00:12:55.120" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""the same. We also have a VI configuration,""" start="00:12:56.940" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""as you can see. I'm using the VI commands and""" start="00:12:59.220" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""stuff, and it's very good.""" start="00:13:00.100" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""I will say not as good as an evil because it""" start="00:13:03.940" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""still needs some polish,""" start="00:13:06.680" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""but it's getting there.""" start="00:13:08.000" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""So we can also program in JavaScript and a""" start="00:13:13.780" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""lot of LSP things, and Elixir,""" start="00:13:16.160" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""which was recently added by myself.""" start="00:13:18.600" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""And yeah, it's very fun to add new modes.""" start="00:13:21.580" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""OK, what else next? What about user-level""" start="00:13:27.440" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""things other than coding?""" start="00:13:28.440" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""What about using this in conjunction with""" start="00:13:31.720" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""Nix? Oh, so there's a big,""" start="00:13:34.340" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""so like I said before,""" start="00:13:36.980" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""there were like an issue that 3 main common""" start="00:13:40.080" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""list project were talking,""" start="00:13:40.960" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""some of the users. So the 3 main projects are""" start="00:13:46.920" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""LEM, probably, Nixed, and then StamWM,""" start="00:13:49.340" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""the 3 main, well, 3 big,""" start="00:13:52.600" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""common list projects that are trying to""" start="00:13:55.280" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""emulate an Emacs experience in different""" start="00:13:57.720" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""fields. 1 is Editor, the other 1 is Window""" start="00:14:00.100" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""Manager, and the 1 is the browser.""" start="00:14:01.720" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""The problem is that the design of the 3 are""" start="00:14:06.560" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""very different. So Nix is very focused on the""" start="00:14:11.680" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""browser. You can connect to Nix.""" start="00:14:14.900" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""So given that they're both a common list,""" start="00:14:16.720" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""you can connect to Nix from them and vice""" start="00:14:18.940" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""versa. And you can send commands and you can,""" start="00:14:21.420" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""so you have this kind of interoperability""" start="00:14:22.580" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""with both. But no, you cannot combine both to""" start="00:14:31.420" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""have 1 LEMNIX. That would be very sick.""" start="00:14:35.280" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""I would love it. But the effort is just too""" start="00:14:39.400" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""much. Keep in mind we are a very small""" start="00:14:41.000" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""community. The LEM, like I said,""" start="00:14:44.960" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""we are like 345 developers that write""" start="00:14:49.920" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""packages and answer questions and stuff.""" start="00:14:51.880" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""Now we need users in that way to test things.""" start="00:14:55.380" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""So what is the license of LEM?""" start="00:14:58.480" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""The license of LEM is MAT.""" start="00:15:00.480" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""We have some components of all the various""" start="00:15:02.860" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""licenses, but the main 1 is MAT.""" start="00:15:04.480" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""I didn't choose the license of it.""" start="00:15:07.160" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""I would highly prefer a more like GPL 1,""" start="00:15:11.320" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""but like I said I'm not a maintainer,""" start="00:15:13.500" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""so the license is MAT.""" start="00:15:15.860" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""This question, I realize,""" start="00:15:19.820" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""how far is LEM from being able to remove a""" start="00:15:22.120" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""list libraries? OK, that's a big question""" start="00:15:26.500" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""indeed. And Funny enough,""" start="00:15:30.660" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""2 years ago in the EmacsConf,""" start="00:15:31.800" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""I talk about this, not with LEM,""" start="00:15:34.340" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""but with Common Lisp and Emacs Lisp in""" start="00:15:36.340" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""general. So I'm not the only 1 thinking about""" start="00:15:41.880" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""this. In fact, I'm talking with someone that""" start="00:15:44.100" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""is trying to write like a Emacs Lisp""" start="00:15:46.740" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""interpreter to work with them.""" start="00:15:48.120" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""The thing is that Emaclist libraries,""" start="00:15:52.240" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""so the API is just very different.""" start="00:15:55.080" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""That's the main problem.""" start="00:15:57.720" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""That's really the problem.""" start="00:15:58.940" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""You can, so you can, let me see.""" start="00:16:02.320" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""So, you can have an Emacs list buffer of LEM.""" start="00:16:13.380" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""This is an Emacs list rebel.""" start="00:16:15.420" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""I wrote an LRSP client so you can connect to""" start="00:16:21.380" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""Emacs and send things and stuff.""" start="00:16:23.140" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""So you're friends that we share stuff.""" start="00:16:25.160" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""But having a complete Emacless implementation""" start="00:16:28.340" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""with LEM and work with both API will be a""" start="00:16:37.400" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""huge work. Very like, it's even if they share""" start="00:16:42.240" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""very similar thing, in fact,""" start="00:16:43.680" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""API in some places is very similar.""" start="00:16:46.480" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""Down the line infrastructure,""" start="00:16:48.540" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""so the code is, so it's completely different.""" start="00:16:52.220" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""It will be very hard. We do have a clone of""" start="00:16:56.680" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""maggot that works, more or less.""" start="00:16:58.940" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""Well, it does work, but maggot's just better.""" start="00:17:01.440" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""But it's getting there.""" start="00:17:03.340" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""So like I said, we're trying to,""" start="00:17:05.020" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""not to copy one-to-one,""" start="00:17:06.220" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""but to adapting each tool to LEM.""" start="00:17:09.640" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""How are LEM buffer designs similar to Emacs?""" start="00:17:13.260" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""So yeah, that would be,""" start="00:17:19.700" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""so how a blend buffer design,""" start="00:17:21.260" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""similar to Emacs. So similar in what way,""" start="00:17:24.780" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""actually with properties.""" start="00:17:26.319" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""I think that you've seen,""" start="00:17:29.180" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""so you do have like a font lock,""" start="00:17:31.220" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""different kind of properties,""" start="00:17:32.420" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""but it's not exactly how Emac does it with""" start="00:17:37.820" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""overlays and stuff. You can,""" start="00:17:41.740" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""so if you're very interested,""" start="00:17:43.080" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""I don't want to go too much deep into the,""" start="00:17:45.300" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""let me go to, I don't want to go too much""" start="00:17:51.500" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""deep into the technicality of things now,""" start="00:17:55.380" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""but you can go. So LEM is written 100% in""" start="00:17:57.920" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""Common Lisp. So if you know Common Lisp,""" start="00:18:00.040" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""you can go to buffer. You can check all the""" start="00:18:03.900" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""codes here. Always we have,""" start="00:18:08.520" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""we also have this, which is like StreamX.""" start="00:18:12.780" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""Sorry to that, I don't.""" start="00:18:17.860" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""But yeah, So you can see.""" start="00:18:21.900" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""So yeah, if you go to the code base,""" start="00:18:24.440" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""maybe some of you can check this problem.""" start="00:18:26.780" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""Well, not problem, but yeah.""" start="00:18:28.500" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""That's this Japanese comment.""" start="00:18:30.340" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""You can see here why it's very,""" start="00:18:35.560" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""you have to translate and stuff,""" start="00:18:38.000" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""which is sometimes a little bit annoying.""" start="00:18:39.560" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""But yeah, some of them are in English.""" start="00:18:44.540" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""So this play is not the same.""" start="00:18:47.020" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""So if you're interested,""" start="00:18:48.800" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""you can go to the buffer and check it out for""" start="00:18:51.200" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""yourself. But I think it uses the overlay in""" start="00:18:53.480" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""a different way. So the implementation is""" start="00:18:58.620" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""different that way. Oh,""" start="00:19:04.800" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""[Speaker 0]: This module. Oh, this is very low.""" start="00:19:10.875" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""[Speaker 2]: this is fairly low. What other things or""" start="00:19:12.560" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""experiences that I can show you?""" start="00:19:15.559" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""Just like you show you.""" start="00:19:15.920" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""Any marks?""" start="00:19:18.120" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""Okay, very interesting question.""" start="00:19:32.860" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""What are the things...""" start="00:19:34.000" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""So that's interesting.""" start="00:19:37.460" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""Let me see. So forgive me,""" start="00:19:42.720" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""you answered this. I talked briefly in the""" start="00:19:49.660" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""talk about this, but basically I like""" start="00:19:53.560" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""Komaldisp, I have the mascot here.""" start="00:19:55.840" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""[Speaker 3]: a very""" start="00:19:58.040" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""[Speaker 2]: It's Italian thing. I like Common Lisp and I""" start="00:20:04.740" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""think GmagLisp is a very good friend of""" start="00:20:08.640" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""Common Lisp in the way that Serious Software""" start="00:20:10.240" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""Analysis is a very good uncle.""" start="00:20:11.840" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""Let me answer first the 1.""" start="00:20:18.800" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""So I like to extend it in Common Lisp.""" start="00:20:24.140" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""I like the Common Lisp libraries.""" start="00:20:25.640" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""And I think them have a better design in""" start="00:20:30.100" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""terms of its 1 language,""" start="00:20:31.220" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""which I think is a nice strength.""" start="00:20:33.480" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""Like, 1 of the things that put me off when I""" start="00:20:36.580" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""was using Emacs, I love to extend the editor""" start="00:20:38.680" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""and to go inside and stuff.""" start="00:20:40.600" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""And 1 of the things that I'm not a big fan of""" start="00:20:43.360" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""C. If you're a fan of C,""" start="00:20:44.820" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""you will be very pleasant with finding C""" start="00:20:47.040" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""stuff, but I don't. So when I'm trying to""" start="00:20:50.440" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""hack an Emacs and go inside the things,""" start="00:20:52.340" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""I will control C code.""" start="00:20:54.140" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""That's not that interactive as the Emaclist""" start="00:20:56.200" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""1, and that would be like a fuzzball for me.""" start="00:20:59.340" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""I was always dreaming about that stuff,""" start="00:21:03.740" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""having like everything in 1 language.""" start="00:21:05.320" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""The thing that LEM does to me is like it""" start="00:21:08.000" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""allows me to extend the editor to modify""" start="00:21:12.100" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""also, to modify in Common Lisp.""" start="00:21:14.160" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""Also, I like the language and technology.""" start="00:21:17.660" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""It's a bold thing, right?""" start="00:21:19.600" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""It's a world language that I love,""" start="00:21:21.480" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""and Emacs that I love.""" start="00:21:23.740" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""Emacs, I'm a big fan of,""" start="00:21:25.380" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""or a user of GNU Emacs.""" start="00:21:27.160" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""And LEM is like Emacs plus Common Lisp,""" start="00:21:29.380" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""but with a different design.""" start="00:21:30.600" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""I don't want to, It's not a clone.""" start="00:21:32.360" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""I want to get this very clear that LEM is not""" start="00:21:37.800" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""a clone of Emacs. The sign is very different""" start="00:21:40.760" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""in a lot of ways. But it's very inspired,""" start="00:21:43.180" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""and that cannot be denied.""" start="00:21:44.380" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""[Speaker 1]: I can jump in for a second.""" start="00:21:48.280" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""I think we're like 15 minutes into the lunch""" start="00:21:51.120" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""break, but you're welcome to continue""" start="00:21:52.660" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""answering questions. But if anyone on the""" start="00:21:55.600" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""stream or folks want to go grab lunch,""" start="00:21:57.500" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""feel free to do that. I'm probably going to""" start="00:21:59.760" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""do that as well. But yeah,""" start="00:22:01.880" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""we can either continue keeping this on the""" start="00:22:03.760" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""stream, or if people would like to come join""" start="00:22:06.180" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""here on BigBlueButton and talk to Fermin,""" start="00:22:08.600" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""like folks have already done that,""" start="00:22:11.040" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""yeah, you're welcome to.""" start="00:22:12.440" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""[Speaker 2]: Yeah, go ahead. No problem.""" start="00:22:14.620" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""Thank you. Thank you, Vitaliy.""" start="00:22:16.500" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""Cheers. Cheers. So finishing the answer to""" start="00:22:25.160" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""the question, I think LEM does tries to fix""" start="00:22:30.080" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""some Emacs problems, can we fix problems""" start="00:22:31.880" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""regarding the internal API,""" start="00:22:35.200" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""which makes sense, right?""" start="00:22:37.200" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""Emacs have like 40 years,""" start="00:22:39.060" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""which is a lot. And yeah,""" start="00:22:42.280" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""which is, that's what makes me happy.""" start="00:22:44.760" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""I use both now. I use Maggis and Emacs for""" start="00:22:47.480" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""some languages and then I use LEM for Common""" start="00:22:50.200" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""Lisp and other languages.""" start="00:22:51.100" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""You can also use LEM for EmacLisp,""" start="00:22:55.240" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""which makes LEM the second best editor for""" start="00:22:59.760" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""EmacLisp. It was a funny thing to do.""" start="00:23:02.360" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""OK, so do you think LEM will continue to have""" start="00:23:05.980" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""a lot of Japanese documentation?""" start="00:23:06.760" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""So there's not that many Japanese""" start="00:23:11.720" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""documentation, really.""" start="00:23:12.780" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""So there's a few comments here and there,""" start="00:23:18.280" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""but it's not full. We have a web page with a""" start="00:23:20.800" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""lot of documentation in English.""" start="00:23:22.020" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""So you can take a look at that.""" start="00:23:25.380" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""But we do have to improve the documentation""" start="00:23:29.080" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""and translate it to English.""" start="00:23:30.260" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""Sasaki-san is up to it,""" start="00:23:32.220" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""but he just doesn't feel that comfortable""" start="00:23:35.460" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""translating it himself.""" start="00:23:36.600" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""So yeah.""" start="00:23:38.680" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""[Speaker 3]: So, this is Peter on BigBlueWem.""" start="00:23:42.720" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""Yeah, it's neat that Wem even exists,""" start="00:23:49.620" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""because there's always chatter on the Emacs""" start="00:23:55.520" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""mailing list to rewrite Emacs and some other""" start="00:23:58.980" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""language. And to see that it's already to see""" start="00:24:03.920" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""that I mean, you have an implementation""" start="00:24:05.320" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""sitting there and, and the thing I was""" start="00:24:08.360" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""wondering while I was listening in on the,""" start="00:24:10.600" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""on the Q and A was do you have Dured?""" start="00:24:14.060" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""Do you have Maggot? And some,""" start="00:24:15.400" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""somebody else wrote that question into,""" start="00:24:17.100" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""into Etherpad. But I was happy to see that""" start="00:24:20.460" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""you have Dured or something like it""" start="00:24:22.800" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""implemented. Because I think that's like the,""" start="00:24:24.960" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""for me, that's the most important thing in""" start="00:24:27.040" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""Emacs because that gets me around in my""" start="00:24:30.800" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""[Speaker 2]: BRODINKOVICH Yeah, for me too.""" start="00:24:35.200" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""For me too.""" start="00:24:35.740" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""[Speaker 0]: Go ahead.""" start="00:24:37.100" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""[Speaker 3]: system. VICTOR Sorry. Yeah,""" start="00:24:37.740" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""so I may try it out sometime,""" start="00:24:39.680" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""but probably won't be for like 3 or 6 months,""" start="00:24:42.040" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""because there's always a backlog of other""" start="00:24:45.060" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""things to try out.""" start="00:24:46.560" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""[Speaker 4]: I'm the 1 who wrote that question.""" start="00:24:49.800" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""And do you use, I think you have bookmarks""" start="00:24:54.020" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""and registers, I imagine,""" start="00:24:55.380" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""right?""" start="00:24:55.800" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""[Speaker 2]: I think you have. I never tried bookmarks""" start="00:24:59.700" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""because I don't use it that much.""" start="00:25:01.220" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""But I think you have something like that.""" start="00:25:02.560" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""I mean, I don't. There's a few features that""" start="00:25:05.420" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""I don't know about them because I don't use""" start="00:25:07.360" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""it much. Some features,""" start="00:25:08.680" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""I mean. But yeah, I think you have.""" start="00:25:11.580" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""Let me check. We can check,""" start="00:25:13.100" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""probably. Things in extensions,""" start="00:25:16.620" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""just directory. VNXT. Directory mode.""" start="00:25:23.140" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""So there is. So this is the Tyrant's friend.""" start="00:25:28.950" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""I won't say clone. Very inspired.""" start="00:25:31.780" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""[Speaker 4]: What about like on the note-taking front,""" start="00:25:36.580" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""like org mode,""" start="00:25:38.440" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""[Speaker 2]: You know. note... Yes,""" start="00:25:41.040" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""so... EMMS... Yes, so someone did some MMS.""" start="00:25:50.440" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""So not MMS, not much. So package for LEM that""" start="00:25:58.380" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""is now in a pull request,""" start="00:26:00.060" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""I think. But yeah, no.""" start="00:26:03.800" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""The thing is I don't use R mode that much.""" start="00:26:06.800" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""We don't have a heavy R mode user to provide""" start="00:26:11.980" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""some major mode and stuff.""" start="00:26:15.020" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""So we don't have that implemented yet.""" start="00:26:18.160" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""The thing is, my plans for,""" start="00:26:20.580" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""I do have plans for our mode.""" start="00:26:22.360" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""They're a little bit evil,""" start="00:26:24.020" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""but there's plans for it.""" start="00:26:26.200" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""So I'm planning to use,""" start="00:26:27.800" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""so rewriting our mode is a big task that I""" start="00:26:30.000" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""don't want to do. So I'm going to use Emacs""" start="00:26:34.200" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""for our mode in 2.11. I wrote a recipe,""" start="00:26:39.020" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""no, a remote procedural RPC that I'm using""" start="00:26:45.060" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""for the Red Bull and stuff.""" start="00:26:46.860" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""And I'm planning to have an Emacs Puppet to""" start="00:26:51.000" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""provide me the functionality for Org Mode.""" start="00:26:54.720" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""[Speaker 4]: I know for me, when I write notes,""" start="00:26:59.380" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""I like to note more than Org Roam just""" start="00:27:01.640" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""because I feel Org Mode is great and all,""" start="00:27:06.340" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""but if all my notes are in it,""" start="00:27:08.920" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""I kind of feel trapped by it.""" start="00:27:10.260" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""I did the talk journaling in KOutline,""" start="00:27:14.460" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""and I like that package better for some""" start="00:27:17.800" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""things and it's like if I want to put like""" start="00:27:21.040" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""the tags on PDF file names and so it's like""" start="00:27:24.280" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""Yeah, it's great and all but it's also Is""" start="00:27:28.940" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""that part of the motivation of wanting to use""" start="00:27:31.560" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""lamb is so you feel less entrapped by emacs""" start="00:27:34.620" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""No, I will say I don't no.""" start="00:27:38.445" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""[Speaker 2]: No, no. I was very happy trapping to Emacs.""" start="00:27:40.620" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""To be fair. The thing is I don't use Hormel""" start="00:27:47.100" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""that much. That's just the reality.""" start="00:27:48.600" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""Org Mode for me is a very good markup""" start="00:27:52.120" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""language, but not that much really.""" start="00:27:54.660" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""I know that Org Mode has a lot of people and""" start="00:27:56.920" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""it's used by a lot of people.""" start="00:27:58.740" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""And there's very interesting packages.""" start="00:28:00.060" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""[Speaker 4]: What about org mode versus markdown versus""" start="00:28:03.700" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""plain text versus latex then?""" start="00:28:05.800" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""[Speaker 2]: I like org mode because of the Emacs""" start="00:28:08.480" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""functionality. I think if you take that away,""" start="00:28:10.380" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""you plain or mode versus Markdown,""" start="00:28:15.600" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""I don't think there's that much difference,""" start="00:28:17.720" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""if you take the Emacs functionality away.""" start="00:28:19.960" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""I like the""" start="00:28:24.560" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""[Speaker 4]: Yeah. Emacs syntax more than Markdown.""" start="00:28:27.260" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""Like, for instance, you have the double""" start="00:28:29.640" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""square brackets, which is simpler for me to""" start="00:28:31.720" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""look at, but.""" start="00:28:32.500" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""[Speaker 2]: Yeah, I guess it's a matter of,""" start="00:28:35.820" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""I mean, we don't have yet a major mode of R""" start="00:28:38.400" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""mode, which will be quite trivial.""" start="00:28:39.800" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""Well, you know, a simple syntax highlights,""" start="00:28:42.660" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""you know, R mode in LEM,""" start="00:28:46.040" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""because no 1 wrote it.""" start="00:28:52.460" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""I mean, that's the way with this project,""" start="00:28:55.320" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""right? If you need people to be motivated to""" start="00:29:00.060" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""do that. And with LEM,""" start="00:29:04.120" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""someone asked about the Japanese.""" start="00:29:06.540" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""I think they're interested about that.""" start="00:29:11.320" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""LEM does have a thing,""" start="00:29:15.040" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""[Speaker 0]: If the it would be good.""" start="00:29:16.030" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""[Speaker 4]: I'd be able to do more,""" start="00:29:16.800" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""but that's what I""" start="00:29:18.000" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""[Speaker 0]: was doing.""" start="00:29:19.370" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""[Speaker 2]: they think True. So, for example,""" start="00:29:22.420" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""we're using another big fan of...""" start="00:29:24.240" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""I mean, I know that the main people that may""" start="00:29:27.840" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""use in the future LEM are EMACLIS people.""" start="00:29:30.280" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""A lot of them. It's very similar.""" start="00:29:33.080" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""And Sasaki-san and the LEM community mainly""" start="00:29:37.540" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""uses Discord for chat and stuff.""" start="00:29:43.260" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""I mean, we do have matrix,""" start="00:29:46.980" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""and I should connect to it,""" start="00:29:48.540" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""by the way. But we mainly use Discord,""" start="00:29:54.960" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""which I don't think is a good thing.""" start="00:29:58.080" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""I mean, to have the main communication""" start="00:30:01.900" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""channels, Discord. Because,""" start="00:30:05.020" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""well, it's Discord. It's a closed source""" start="00:30:09.020" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""application that is easy for some people,""" start="00:30:13.180" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""but for some people it's a tailbreak.""" start="00:30:14.340" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""[Speaker 0]: are in""" start="00:30:17.040" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""[Speaker 2]: Especially people that the Emacs community""" start="00:30:17.580" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""that very like free software.""" start="00:30:20.080" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""[Speaker 4]: The only good thing about Molesley is it's""" start="00:30:22.800" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""popular, but as soon as you break out of that""" start="00:30:26.000" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""mold, all of a sudden it becomes a lot""" start="00:30:28.380" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""harder. For instance, they don't have...""" start="00:30:30.400" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""All the third-party clients are unofficial""" start="00:30:33.820" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""and according to their terms of service they""" start="00:30:37.340" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""can just can you. Which is not a nice""" start="00:30:40.380" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""position to be in if you're trying to use it""" start="00:30:44.020" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""and you wanted to be a moderator using some""" start="00:30:47.200" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""side tools that weren't Discord.""" start="00:30:50.600" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""[Speaker 2]: I agree 100% and in fact I'm not a big fan,""" start="00:30:55.320" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""I don't like Discord.""" start="00:30:56.400" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""[Speaker 5]: You mentioned the RPC you did between Emacs""" start="00:31:03.860" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""and the LEM. Do you have it published""" start="00:31:06.200" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""somewhere?""" start="00:31:06.720" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""[Speaker 2]: Yes, it's in the LEM project.""" start="00:31:13.520" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""I'll copy that in the chat.""" start="00:31:15.820" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""[Speaker 5]: Okay, because I'm always interested in how""" start="00:31:19.000" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""you do like the communication with other""" start="00:31:21.560" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""programs with Emacs because that's""" start="00:31:24.020" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""interesting.""" start="00:31:24.320" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""[Speaker 2]: I'm only using the porthole package,""" start="00:31:30.140" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""I'm not writing it from scratch,""" start="00:31:32.460" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""not that much as a developer.""" start="00:31:34.340" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""[Speaker 5]: So I don't know this package.""" start="00:31:37.540" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""Maybe that's the thing I can learn.""" start="00:31:39.140" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""[Speaker 2]: Oh yeah, probably if you,""" start="00:31:40.840" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""yeah. Yeah. If you want to,""" start="00:31:42.360" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""so I didn't see this 1,""" start="00:31:43.860" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""this package for the RSP,""" start="00:31:46.420" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""which make is monthly automatically.""" start="00:31:48.620" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""[Speaker 5]: And how do you do, how do you plan to""" start="00:31:53.200" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""integrate Org Mode? Because Org Mode needs to""" start="00:31:59.180" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""work on.""" start="00:31:59.760" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""[Speaker 2]: This way? Yes, so I'm planning to have like a""" start="00:32:03.340" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""Emacs puppet and to have like a clone buffer""" start="00:32:08.260" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""from the buffer that you do in LEM and then""" start="00:32:11.320" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""the command sent into the Emacs hidden buffer""" start="00:32:16.880" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""and then the changes go back to LEM to change""" start="00:32:19.820" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""the buffer of LEM. That's my idea.""" start="00:32:22.660" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""[Speaker 5]: Okay, that's all. It's interesting.""" start="00:32:24.960" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""Would be interesting to see what comes from""" start="00:32:28.320" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""it.""" start="00:32:28.540" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""[Speaker 2]: It's a bit, it's a hackish 100%.""" start="00:32:32.280" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""It's not, you have to duplicate the""" start="00:32:35.200" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""information and stuff,""" start="00:32:36.020" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""which is, oh, by the way,""" start="00:32:38.940" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""I'm going to pass the Lemington,""" start="00:32:40.320" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""which is the name of the RSP clone.""" start="00:32:43.380" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""Sorry, the integration with Emacs,""" start="00:32:45.980" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""which is LEM with a mustache.""" start="00:32:48.900" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""[Speaker 4]: They had good news where it would do the same""" start="00:32:54.400" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""thing, where it would open up a slave Emacs,""" start="00:32:56.360" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""because it was such a performance hog for""" start="00:33:00.020" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""retrieving all the emails.""" start="00:33:02.140" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""[Speaker 2]: No. I mean, Emacs have a server,""" start="00:33:06.940" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""right? I can, in fact,""" start="00:33:08.559" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""I'm using that for, I'm already puppeting.""" start="00:33:11.200" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""Well, not puppeting. I'm already using""" start="00:33:13.340" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""Maggots. So I have this.""" start="00:33:15.700" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""Actually, let me copy.""" start="00:33:17.400" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""I have this, which is usually a little bit,""" start="00:33:25.600" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""I'm launching the Emacs daemon and then I'm""" start="00:33:28.080" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""launching Leviton. And then this is the kill""" start="00:33:31.500" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""and this is the status,""" start="00:33:32.300" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""which is basically saying,""" start="00:33:33.440" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""run this and this is this,""" start="00:33:36.680" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""which is run maggot in this file.""" start="00:33:42.040" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""If you put it side by side,""" start="00:33:43.940" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""you will check instantly that this is the""" start="00:33:48.680" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""buffer directory, LEM home,""" start="00:33:50.900" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""and then the current file.""" start="00:33:54.020" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""Because I'm launching it with the file.""" start="00:33:58.860" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""So buffer directory, which is the directory""" start="00:34:03.940" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""of the buffer. So I'm already using maggot as""" start="00:34:09.239" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""a tool outside of LEM,""" start="00:34:13.600" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""because I really like maggot.""" start="00:34:14.960" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""And this is very easy to check.""" start="00:34:16.920" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""Launch Emacs daemon. Okay.""" start="00:34:22.719" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""And then I go to local projects.""" start="00:34:28.580" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""Let's go to another 1 that is not LEM.""" start="00:34:31.719" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""[Speaker 4]: You actually have weird ideas like running it""" start="00:34:37.199" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""in daemon mode so you don't ever have to""" start="00:34:39.639" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""restart it or the images,""" start="00:34:40.840" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""I guess, that LEM has.""" start="00:34:43.100" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""[Speaker 2]: LEM does not have this kind of,""" start="00:34:46.800" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""I will call it, it doesn't have like a demon""" start="00:34:53.719" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""mode, so you have control separately,""" start="00:34:56.280" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""but keep in mind that LEM,""" start="00:34:58.860" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""it's a common list program.""" start="00:35:01.260" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""So if you use slime or Sly,""" start="00:35:03.340" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""you can easily connect to them to hack on it.""" start="00:35:10.080" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""[Speaker 4]: ever use that functionality,""" start="00:35:12.380" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""like using it from another computer?""" start="00:35:14.060" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""[Speaker 2]: Do you Another computer,""" start="00:35:16.400" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""I think the same computer,""" start="00:35:17.600" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""or maybe Sage, but yeah,""" start="00:35:21.460" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""it's very...""" start="00:35:21.820" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""[Speaker 4]: Or from like your window,""" start="00:35:24.520" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""if you were using the window...""" start="00:35:26.640" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""I can't remember the name of the window""" start="00:35:28.260" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""manager. Or if you were using...""" start="00:35:30.100" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""What? Yeah, yeah. Or using like stump,""" start="00:35:36.460" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""calling it from like stump WM or how often do""" start="00:35:40.680" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""you use that REPL?""" start="00:35:41.500" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""[Speaker 2]: SPCL? No. ThumbWM? I use it quite a lot.""" start="00:35:43.740" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""I connect to a museum,""" start="00:35:44.700" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""some WM right now, and I use LEM to connect""" start="00:35:49.400" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""to it, but I was using Emacs before.""" start="00:35:52.240" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""And you can use Sly or Slime to connect to""" start="00:35:55.800" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""LEM. So the thing that is in Common List""" start="00:35:58.260" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""makes it this kind of already out-of-the-box""" start="00:36:00.900" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""connectivity between different...""" start="00:36:04.000" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""[Speaker 4]: How many window managers have you used?""" start="00:36:06.960" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""I've used that before.""" start="00:36:11.120" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""I've also used, like right now I'm using""" start="00:36:13.440" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""Sway. I've used Xmonad,""" start="00:36:14.720" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""DWM.""" start="00:36:16.260" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""[Speaker 2]: This is awesome. What is the other 1?""" start="00:36:23.040" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""I can't remember the name.""" start="00:36:25.680" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""But it was like a few years ago.""" start="00:36:27.900" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""I've been doing some DWM for like the last""" start="00:36:30.800" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""[Speaker 4]: I remember that. Go ahead.""" start="00:36:36.260" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""[Speaker 2]: year, I think. Or 3. know,""" start="00:36:37.740" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""it's that I was... I don't know.""" start="00:36:41.940" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""[Speaker 0]: I don't a couple""" start="00:36:43.440" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""[Speaker 2]: I'd like to have of days of my...""" start="00:36:44.040" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""[Speaker 4]: I remember that that window manager seemed to""" start="00:36:48.280" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""have some unique ideas that weren't""" start="00:36:53.300" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""necessarily available on like EWM and XMLNAD.""" start="00:36:56.280" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""[Speaker 2]: So SoundLM, it's an interesting project.""" start="00:37:02.540" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""But for example, I'll change...""" start="00:37:05.140" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""So I don't have in this computer,""" start="00:37:06.720" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""but in my other computer,""" start="00:37:08.240" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""I change the mod line or bar,""" start="00:37:13.840" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""top bar, whatever, because the ThunderLVM""" start="00:37:18.220" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""doesn't only update it when you click,""" start="00:37:21.500" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""or you do some events or happen 1 minute.""" start="00:37:25.280" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""So you can see here, this is not changing""" start="00:37:27.560" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""until I click.""" start="00:37:28.320" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""[Speaker 0]: That's it.""" start="00:37:33.500" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""[Speaker 3]: AUDIENCE 1 Matthew, sorry.""" start="00:37:34.360" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""I have a quick question for Matthew.""" start="00:37:36.160" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""So is your talk going to be posted or did you""" start="00:37:43.520" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""[Speaker 4]: Go ahead. I gave them a recording.""" start="00:37:47.420" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""My talk was the K outline for journaling""" start="00:37:50.140" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""[Speaker 3]: give it live? right right it was I woke up""" start="00:37:53.080" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""too late for it Sorry,""" start="00:37:54.020" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""so I came in and I just saw Bob Weiner""" start="00:37:58.420" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""answering questions So is your talk going to""" start="00:38:03.240" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""be on the page for your talk?""" start="00:38:06.560" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""I don't""" start="00:38:07.740" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""[Speaker 0]: see it there.""" start="00:38:08.560" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""[Speaker 4]: I could give you a link to it,""" start="00:38:11.940" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""because I had, I hosted it on Mega to give it""" start="00:38:17.480" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""to them, because when I emailed it,""" start="00:38:18.840" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""[Speaker 3]: Oh, okay. Is it""" start="00:38:22.080" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""[Speaker 4]: it didn't work. on a monkey?""" start="00:38:22.360" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""Download and watch it.""" start="00:38:23.600" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""I'm probably going to post it on YouTube""" start="00:38:29.440" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""later. I, I had my face record with it,""" start="00:38:33.600" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""but I never got it edited together in time""" start="00:38:36.020" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""[Speaker 3]: Okay, if you could if you can put the link""" start="00:38:40.320" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""onto the onto the ether pad or something or""" start="00:38:43.140" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""onto the wiki then then I can find it and""" start="00:38:46.000" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""check it out. All right,""" start="00:38:49.920" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""thanks. Sorry to interrupt your time,""" start="00:38:53.040" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""Fermin, but I figure we're heavily into the""" start="00:38:56.300" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""break anyways. FERMIN GENZIERIA-CHAPMANI""" start="00:38:57.260" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""[Speaker 2]: No problem. I'm in an EMAX conference talking""" start="00:39:00.920" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""about all that I mean I'm already doing""" start="00:39:02.860" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""blasphemy so I""" start="00:39:04.280" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""think that's oh yeah notes so the thing is""" start="00:39:24.600" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""then as my point of view,""" start="00:39:26.640" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""and the point of view probably of Sasaki-san,""" start="00:39:28.860" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""just a moment, I think,""" start="00:39:30.240" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""is very focused on an IDE more than a""" start="00:39:34.960" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""node-taking editor. More like an integrated""" start="00:39:40.580" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""development environment.""" start="00:39:41.540" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""So node is like a second thing.""" start="00:39:45.040" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""So not exactly the main focus.""" start="00:39:51.500" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""And I know that Emacs does have a very strong""" start="00:39:54.440" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""community of Ormode users that use Emacs for""" start="00:39:58.440" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""Ormode, which is the killer feature,""" start="00:40:00.140" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""1 of I'll do a feature.""" start="00:40:01.080" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""I'll do a feature of Emacs.""" start="00:40:04.456" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""So I'm not the maintainer of porthole.""" start="00:40:09.160" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""I'm sorry. I did add it to so I don't""" start="00:40:20.220" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""maintain the remote. I'm sorry,""" start="00:40:22.700" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""I'll pothole the USB. I'm only using it on""" start="00:40:27.400" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""the Lamington. I cannot change anything.""" start="00:40:31.120" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""[Speaker 4]: What are some interesting things you have""" start="00:40:39.520" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""with your window manager?""" start="00:40:40.760" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""I do have elsewhere.""" start="00:40:43.780" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""[Speaker 2]: I can connect to it and hack it from my""" start="00:40:49.400" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""editor, which I think is really fun.""" start="00:40:53.040" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""The way I can write, so I wrote a few""" start="00:40:56.820" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""packages for Soundallium.""" start="00:40:58.500" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""So 1 of them is Proton,""" start="00:41:06.740" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""which basically launches like a...""" start="00:41:10.360" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""So Proton is like this wine thing that Valve""" start="00:41:18.480" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""[Speaker 4]: Yeah, I'm a user.""" start="00:41:22.000" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""[Speaker 2]: did. OK, so this basically,""" start="00:41:24.140" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""you have like a list of,""" start="00:41:26.480" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""let me check. No, we're just,""" start="00:41:32.280" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""sorry. This, So these all games are bought by""" start="00:41:38.780" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""me. They're not pirates in any way.""" start="00:41:41.280" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""I can use this to to launch it.""" start="00:41:45.800" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""[Speaker 4]: Was that Dmenu or was that StumpWM menu?""" start="00:41:50.700" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""[Speaker 2]: This is Dmenu. So I have,""" start="00:41:54.800" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""I also contribute the Dmenu integration into""" start="00:42:02.300" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""StumwM. So I use Dmenu.""" start="00:42:05.820" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""So like this, right?""" start="00:42:07.480" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""[Speaker 4]: Yeah that's pretty cool.""" start="00:42:13.300" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""You don't know how nice those things are""" start="00:42:15.720" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""until you start using those.""" start="00:42:16.880" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""[Speaker 2]: The menu is very interesting and very...""" start="00:42:21.280" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""Also I was using RoFi,""" start="00:42:24.060" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""but...""" start="00:42:25.680" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""[Speaker 4]: I was also more... The other thing I was more""" start="00:42:29.100" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""mentioning is that also,""" start="00:42:31.240" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""being able to use D-Menu,""" start="00:42:32.860" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""but being able to just have keyboard""" start="00:42:34.800" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""oriented? Everything fuzzy search narrowed""" start="00:42:38.680" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""and No tabs no status bars like all of a""" start="00:42:45.420" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""sudden your mental model on how your computer""" start="00:42:47.160" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""operates goes through the roof and a lot of""" start="00:42:51.420" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""Emacs users Know what that is like Especially""" start="00:42:57.900" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""In conjunction with a window manager?""" start="00:43:01.240" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""[Speaker 2]: Yeah, I think so. I remember when I was...""" start="00:43:06.740" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""So for me, I tried the Emacs window manager,""" start="00:43:11.320" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""but it wasn't for me. Having a single thread""" start="00:43:16.840" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""window manager is scary.""" start="00:43:18.460" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""And also games and some stuff wasn't working""" start="00:43:22.500" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""correctly, which it makes sense in some""" start="00:43:25.040" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""regards, using Emacs for window manager.""" start="00:43:27.340" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""Oh""" start="00:43:30.660" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""[Speaker 4]: I've used it before I found that it wasn't as""" start="00:43:34.480" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""like it. It's not as bad in practice because""" start="00:43:39.240" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""The paper cuts you don't like to hit them""" start="00:43:43.020" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""every day So you make sure So you make sure""" start="00:43:45.800" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""your Emacs config is a lot nicer and doesn't""" start="00:43:48.080" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""have those slowdowns. Or you avoid those""" start="00:43:51.040" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""things. It forces you to make your Emacs""" start="00:43:54.440" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""config a lot more robust to speed.""" start="00:43:59.440" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""[Speaker 2]: Yeah, yeah. That's true,""" start="00:44:02.040" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""yeah. The thing, yeah,""" start="00:44:04.200" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""but still, I don't know,""" start="00:44:05.600" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""[Speaker 4]: You'll still get the paper cuts,""" start="00:44:08.680" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""but...""" start="00:44:09.060" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""[Speaker 2]: like... Yeah, and my experience was not""" start="00:44:12.360" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""great. I'm not a person,""" start="00:44:16.500" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""like, I don't want to have...""" start="00:44:17.860" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""Not with LEM or Emacs.""" start="00:44:19.960" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""I like to have different programs.""" start="00:44:22.660" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""I don't want to like, I never was in like""" start="00:44:25.840" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""Emacs or you know, only Emacs.""" start="00:44:28.040" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""I really love Emacs, GNU Emacs,""" start="00:44:30.480" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""but only Emacs? No, no,""" start="00:44:33.920" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""I like my browser, I like my,""" start="00:44:35.300" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""you know, my Windows Manager,""" start="00:44:37.500" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""my, you know, I wasn't Emacs only.""" start="00:44:41.280" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""Emacs is my OS. Some people are,""" start="00:44:45.520" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""which is good. Different kind of a...""" start="00:44:48.600" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""I have to say that I come from Vim,""" start="00:44:51.600" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""like a long time ago. But I come from Vim,""" start="00:44:57.340" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""so I'm using Evil Mode.""" start="00:44:58.660" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""And I maybe have this kind of a...""" start="00:45:00.280" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""Yeah. So regarding Summoner.vm,""" start="00:45:05.700" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""it's... I like it because it's common Lisp,""" start="00:45:10.080" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""but it don't have some,""" start="00:45:13.940" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""this, I removed this. So I'm using another""" start="00:45:18.120" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""model line because the model line is not""" start="00:45:21.040" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""great. Everything else is a little bit weird""" start="00:45:24.440" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""because you have frames similar to Emacs.""" start="00:45:28.940" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""You have a frame. You have this window,""" start="00:45:33.560" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""and then there's no nothing here.""" start="00:45:35.600" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""[Speaker 4]: Yeah, I've used it before.""" start="00:45:37.700" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""That was definitely weird.""" start="00:45:39.720" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""It's also nice to be able to just...""" start="00:45:41.680" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""Can't you put multiple windows?""" start="00:45:43.660" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""Can't you duplicate windows?""" start="00:45:46.100" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""Show the same window in 2 frames?""" start="00:45:48.040" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""NIGEL""" start="00:45:48.560" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""[Speaker 2]: GANSZELA-WALSH Never tried that.""" start="00:45:51.020" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""Never occurred to me that.""" start="00:45:54.400" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""I don't know. Never tried that,""" start="00:45:57.840" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""to be honest. Let me check.""" start="00:46:01.480" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""No idea. Item? I think so.""" start="00:46:07.280" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""Because when you try to,""" start="00:46:10.080" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""at least not in an easy way.""" start="00:46:11.520" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""When you try to, so if I try to put a window""" start="00:46:13.940" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""here, let me move it so it,""" start="00:46:16.020" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""and if I try to like, so it's,""" start="00:46:20.060" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""yeah, no other window.""" start="00:46:21.680" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""[Speaker 4]: So can you open the, what is that,""" start="00:46:24.100" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""discord or your browser?""" start="00:46:25.080" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""Could you open that in both your frames?""" start="00:46:26.840" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""[Speaker 2]: I can I Side by side, but not the same""" start="00:46:34.620" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""[Speaker 0]: I mean I do I can I can have I know""" start="00:46:37.740" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""[Speaker 4]: can't your frames? 2 browsers you can do that""" start="00:46:38.400" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""[Speaker 2]: browser I never occurred to me that,""" start="00:46:42.600" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""[Speaker 4]: in DWM? You can't do that in XMLNet,""" start="00:46:46.300" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""at least I don't know what configuration""" start="00:46:48.560" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""you'd have to do to get to be able to do that""" start="00:46:50.820" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""in XMONAD.""" start="00:46:51.140" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""[Speaker 2]: wow. Interesting. Maybe you can.""" start="00:46:54.060" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""I never tried. Maybe you can?""" start="00:46:57.700" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""No idea. The interesting thing that I never""" start="00:47:03.240" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""use is that floating windows.""" start="00:47:05.860" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""Never use floating windows,""" start="00:47:09.520" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""but normal windows. You know,""" start="00:47:13.480" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""not. And SoundWM does have a weird support""" start="00:47:17.780" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""for it. Now it works. But I don't like it.""" start="00:47:24.720" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""For me, it was a little bit rough,""" start="00:47:26.680" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""the use of floating windows in SoundWM.""" start="00:47:29.480" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""I think they're way better now.""" start="00:47:32.480" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""I think, but yeah, I don't use it so...""" start="00:47:36.580" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""But there is.""" start="00:47:40.600" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""[Speaker 4]: You know, for me with the,""" start="00:47:43.520" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""like, Emacs doing everything,""" start="00:47:45.060" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""it's like, you got like Emacs,""" start="00:47:46.880" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""you got shell, and then you got the gooey""" start="00:47:50.320" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""Wild West. Yeah. Like,""" start="00:47:56.520" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""with Emacs, I know, I'll generally get,""" start="00:47:58.940" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""oh, this is going to be configured in?""" start="00:48:01.280" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""It's either gonna be shell script,""" start="00:48:04.160" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""Python or Emacs. Oh wait,""" start="00:48:06.180" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""no, it's gonna be Emacs.""" start="00:48:07.000" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""Variable's gonna be written in SecQ,""" start="00:48:09.680" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""period.""" start="00:48:10.380" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""[Speaker 2]: Well, I don't use too much scripting,""" start="00:48:16.640" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""but I'd like to, for example,""" start="00:48:18.260" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""I had to do a, so the automatic installer""" start="00:48:21.540" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""for, for Debian base, Debian stuff for Linux""" start="00:48:26.000" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""for, for LEM. I was thinking of doing in bash""" start="00:48:30.340" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""and I say, I don't want to do it in Bash.""" start="00:48:32.520" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""So I just did it in SVC and Commodisp,""" start="00:48:35.380" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""which does have like a scripting feature.""" start="00:48:37.660" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""You can put a script and it will create your""" start="00:48:40.920" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""own script.""" start="00:48:41.160" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""[Speaker 4]: 1 of the main people behind Next,""" start="00:48:45.860" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""he did a talk on using Common Lisp as a""" start="00:48:50.760" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""replacement for a shell.""" start="00:48:51.720" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""[Speaker 2]: Yes, it was... I know him.""" start="00:48:58.700" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""I know that he exists.""" start="00:49:00.680" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""Next, I think it's a main maintainer of Nix,""" start="00:49:04.600" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""[Speaker 4]: Yeah, although his website's kind of,""" start="00:49:09.140" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""I think he took it down.""" start="00:49:10.380" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""[Speaker 2]: Ambrevar. Yeah, I think he,""" start="00:49:12.280" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""yeah, he took it down.""" start="00:49:14.480" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""[Speaker 4]: So if you want to, you can look at it in Time""" start="00:49:17.360" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""Machine.""" start="00:49:17.680" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""[Speaker 2]: Yeah, I do have that article in my bookmarks,""" start="00:49:23.940" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""I think, somewhere. I remember reading that.""" start="00:49:26.740" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""So also, I would like to keep separated""" start="00:49:30.360" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""things in that way to have shell and then""" start="00:49:32.880" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""Emacs or LEM. Like for Emacs I use Viter.""" start="00:49:37.940" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""I don't like that it has different,""" start="00:49:40.760" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""you know.""" start="00:49:41.760" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""[Speaker 4]: On the same time though,""" start="00:49:44.900" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""I also don't like my terminal not to be able""" start="00:49:46.960" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""to click URLs and I like I like my terminal""" start="00:49:52.340" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""to have history and you know to scroll""" start="00:49:54.560" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""position copy paste You can do some of that""" start="00:49:58.040" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""stuff, but you know how that stuff go on the""" start="00:50:00.020" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""killer ring I kind of view it as like an""" start="00:50:01.960" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""alternative to shell.""" start="00:50:02.800" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""[Speaker 2]: Fair enough, but I think when some for my""" start="00:50:06.940" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""terminal, I only use it for navigate,""" start="00:50:08.720" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""remove stuff, so basic stuff.""" start="00:50:11.280" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""When I have to like, I don't know,""" start="00:50:14.280" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""edit something, just open the...""" start="00:50:17.640" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""[Speaker 4]: I like to use completion and narrowing to""" start="00:50:22.120" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""find my files. I kind of wish I could do that""" start="00:50:24.480" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""[Speaker 0]: on the shell or like if you use""" start="00:50:26.320" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""[Speaker 4]: more D-Menu to do that.""" start="00:50:27.400" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""That would be, I'm sure,""" start="00:50:28.440" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""nicer.""" start="00:50:28.760" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""[Speaker 2]: There's a lot of tools for terminals to do""" start="00:50:38.140" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""that, right? But you have to configure all of""" start="00:50:39.800" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""them. Beam users are very aware of those""" start="00:50:41.580" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""tools. You know, having very good fuzzy""" start="00:50:46.980" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""finding of files and then all by the""" start="00:50:49.240" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""terminal. I do have a friend who is a user of""" start="00:50:53.680" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""the Forbidden Editor, he's good,""" start="00:50:56.820" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""that does have a lot of small,""" start="00:51:01.900" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""like fuzzy finding, and so complete commands,""" start="00:51:09.480" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""and call those images in the terminal,""" start="00:51:12.240" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""all sorts of crazy stuff.""" start="00:51:14.300" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""That I think are not overkill,""" start="00:51:16.120" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""but I mean, if you want to use it,""" start="00:51:20.380" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""go ahead. So yeah. The thing is that,""" start="00:51:29.540" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""So trickling back a little bit to LEM,""" start="00:51:32.360" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""I think an interesting thought that I have""" start="00:51:35.600" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""about LEM and I can do Emacs.""" start="00:51:37.280" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""Not now, because LEM is a very small,""" start="00:51:40.680" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""like literally people,""" start="00:51:43.740" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""at least developers and users,""" start="00:51:46.000" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""I don't know, maybe 10 less.""" start="00:51:50.280" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""But people may think, split the community,""" start="00:51:56.780" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""right? That's the main thing that should come""" start="00:51:58.740" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""to my mind, split the community,""" start="00:51:59.960" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""maybe you, because that's true.""" start="00:52:01.840" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""I mean, I'm not developing that much in Nui""" start="00:52:04.000" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""MacLisp because I'm developing them.""" start="00:52:06.260" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""That's not that I'm a force that you might""" start="00:52:12.080" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""think exists or anything,""" start="00:52:13.360" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""but you know, you're splitting a very small""" start="00:52:17.220" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""community. Not that LEM wants to do that or""" start="00:52:21.600" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""anything, or will be able to in any way,""" start="00:52:24.160" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""but you know what I mean.""" start="00:52:25.280" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""I thought about that, And I think it's an""" start="00:52:32.360" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""interesting concern. But that concern also""" start="00:52:40.600" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""stops innovation in some way.""" start="00:52:42.180" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""[Speaker 4]: I think you can, if you look at the example""" start="00:52:46.960" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""of how many EMAX talks are related to""" start="00:52:50.200" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""knowledge management and not all and like for""" start="00:52:54.760" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""instance denote and Orgrim don't really work""" start="00:52:57.840" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""together all that well they split the""" start="00:53:01.740" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""community so to say I don't think they make""" start="00:53:03.740" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""it weaker at all, though.""" start="00:53:04.720" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""I think you were saying competition is good,""" start="00:53:08.560" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""but yeah, competition is good.""" start="00:53:10.000" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""[Speaker 2]: Yeah, I agree on that.""" start="00:53:12.100" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""I want to put it in the...""" start="00:53:13.280" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""But, you know, I'm doing the devil's advocate""" start="00:53:15.400" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""[Speaker 0]: something, that's... The developer gates in""" start="00:53:18.252" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""this regard. Like""" start="00:53:18.308" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""[Speaker 2]: in this regard. If someone wants to say if""" start="00:53:18.327" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""someone wants to like say something that""" start="00:53:19.280" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""maybe, you know, because some people still""" start="00:53:22.920" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""remember the Emacs versus X Emacs thing in""" start="00:53:30.800" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""the past, you know, that the split of the and""" start="00:53:34.860" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""That was good in some way but also bad in""" start="00:53:38.100" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""others like the compatibility was a little""" start="00:53:39.800" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""bit of a hell You know at the end Emacs""" start="00:53:42.560" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""failed, no Emacs But at that time it wasn't""" start="00:53:46.160" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""that clear and some people like it wasn't""" start="00:53:50.140" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""there. And I can understand that kind of a""" start="00:53:53.200" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""feeling.""" start="00:53:53.360" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""[Speaker 4]: Well sometimes the steps forward you end up""" start="00:53:58.820" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""going Like you're on a hill and you want to""" start="00:54:02.640" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""[Speaker 0]: the way the path to get up to""" start="00:54:05.820" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""[Speaker 4]: get to a higher hill, but that higher hill""" start="00:54:06.440" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""goes down and up. It doesn't mean that even""" start="00:54:10.920" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""if you know you're going down,""" start="00:54:12.240" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""it doesn't mean that it was a mistake.""" start="00:54:13.840" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""[Speaker 2]: Okay, fair enough. And also another""" start="00:54:19.740" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""interesting thing that I want to envision in""" start="00:54:22.120" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""the future, if I have time or someone wants""" start="00:54:25.520" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""to help me with, is I want them to have""" start="00:54:28.400" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""different language for extension,""" start="00:54:30.240" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""different Lisp for extension,""" start="00:54:32.560" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""not only common Lisp, but Scheme closure.""" start="00:54:36.340" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""And maybe not EmacLisp probably,""" start="00:54:39.680" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""[Speaker 4]: that what Guile Emacs is trying to do?""" start="00:54:46.500" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""[Speaker 2]: but yeah. And funny enough- Isn't Guile Emacs""" start="00:54:47.860" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""tried to add Guile support to,""" start="00:54:50.060" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""but Guile is not scheme.""" start="00:54:52.040" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""Well, it's kind of scheme,""" start="00:54:53.560" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""but it's not all schemes,""" start="00:54:54.440" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""which is, you know, and it was just to""" start="00:54:58.580" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""replace EmacLisp with Gile.""" start="00:55:02.540" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""You have 2 both. It was similar in that way,""" start="00:55:06.940" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""but the thing is, Common Lisp does have a lot""" start="00:55:12.100" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""of interesting things.""" start="00:55:12.900" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""So someone wrote a closure in Common Lisp.""" start="00:55:16.120" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""Which is called Cloture.""" start="00:55:20.640" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""Someone wrote, well it's on the way but it's""" start="00:55:29.720" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""getting there, a standard scheme in Common""" start="00:55:35.440" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""Lisp. So to add support to LEM,""" start="00:55:39.440" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""will be as easy as import package,""" start="00:55:44.440" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""and you have, And if that language,""" start="00:55:46.360" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""which usually does, supports very well""" start="00:55:49.640" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""interaction between the host language and the""" start="00:55:51.740" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""language that tries to provide,""" start="00:55:52.920" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""you will mostly automatically have new""" start="00:55:57.040" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""language for the editor.""" start="00:55:58.060" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""[Speaker 4]: I think the more interesting hanging fruit""" start="00:56:05.640" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""would be like using Next to scrape websites,""" start="00:56:09.280" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""download CSV bank statements,""" start="00:56:12.500" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""integrating with like password managers and""" start="00:56:15.940" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""or using... yeah you could still do with""" start="00:56:27.880" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""[Speaker 2]: But isn't that more like next thing oh yeah""" start="00:56:30.120" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""yeah I""" start="00:56:31.460" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""[Speaker 4]: common list though mean what's your your""" start="00:56:32.400" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""other options would be Selenium,""" start="00:56:34.760" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""JavaScript, Next already gives you the REPL""" start="00:56:41.200" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""for that. Or when you had that Ambryvar talk,""" start="00:56:47.940" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""when he, I don't know if you watched it,""" start="00:56:50.060" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""but when you use a shell and a command takes""" start="00:56:52.920" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""takes a while It just automatically takes you""" start="00:56:56.060" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""back into your shell and says I'll just let""" start="00:56:58.440" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""this run in the background or being able to""" start="00:57:00.520" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""more easily run commands in parallel.""" start="00:57:02.760" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""[Speaker 2]: But that's not like Nix stuff,""" start="00:57:13.620" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""[Speaker 4]: The Ambrivar, the shell 1,""" start="00:57:18.740" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""[Speaker 2]: right? Not like? When he did it,""" start="00:57:21.540" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""he. Because 1""" start="00:57:23.380" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""[Speaker 4]: wasn't. of the things He did in that when he""" start="00:57:25.340" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""was using the repl in place of the shell is 1""" start="00:57:30.040" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""of the things in there was if,""" start="00:57:31.240" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""let's say you were compiling a program,""" start="00:57:33.720" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""that takes a while. If it took longer than""" start="00:57:36.820" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""like 3 seconds or something along those""" start="00:57:40.240" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""lines, it would kick you back into the shell""" start="00:57:42.560" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""and say, oh, we're waiting for this program""" start="00:57:44.260" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""[Speaker 2]: Oh, interesting. And""" start="00:57:48.160" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""[Speaker 4]: to run, to finish. then you could,""" start="00:57:48.840" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""and then it had back reference support.""" start="00:57:51.200" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""So you could say, Oh, app search for this""" start="00:57:55.260" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""program. And then with the,""" start="00:57:58.480" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""with the shell, I, when I want to search,""" start="00:58:00.780" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""I'll then grep through that list to narrow it""" start="00:58:04.460" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""down even further, but I do a whole new""" start="00:58:06.900" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""search. It just says, oh,""" start="00:58:08.400" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""just grep through what I already searched.""" start="00:58:10.600" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""Just grep through the results of the command""" start="00:58:14.180" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""that's 3 commands ago.""" start="00:58:15.940" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""[Speaker 2]: Interesting. So it""" start="00:58:17.980" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""[Speaker 4]: runs instantly. Or look for my build errors""" start="00:58:23.880" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""in my compilation output,""" start="00:58:25.840" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""[Speaker 0]: rather than trying to build it again grepping""" start="00:58:29.700" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""for the errors.""" start="00:58:30.360" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""[Speaker 2]: I was checking, so where's that project?""" start="00:58:33.640" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""I was looking for it. You know,""" start="00:58:36.420" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""the... Yeah, I want to check the,""" start="00:58:44.540" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""[Speaker 4]: There was a talk. I also had a webpage.""" start="00:58:48.000" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""[Speaker 2]: you know... This red bull?""" start="00:58:55.080" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""No, this is not what I meant.""" start="00:58:58.260" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""[Speaker 0]: What is it? What is it?""" start="00:59:34.174" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""I cannot find the... I was trying to find""" start="00:59:47.664" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""[Speaker 2]: the repo for... It's C-L-E-S-H,""" start="00:59:54.180" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""like a unit shell for interface with for""" start="00:59:59.640" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""common Lisp? Is that the thing?""" start="01:00:02.080" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""[Speaker 0]: I don't know. I'm""" start="01:00:09.000" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""[Speaker 4]: trying to find the link to his old,""" start="01:00:12.260" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""no longer website. Website.""" start="01:00:16.560" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""[Speaker 2]: Skip. Technical issues.""" start="01:00:21.500" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""Maybe this 1.""" start="01:00:23.400" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""I cannot find it.""" start="01:00:35.820" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""[Speaker 4]: I got it.""" start="01:00:37.800" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""[Speaker 0]: Go to that link. Okay.""" start="01:00:51.140" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""[Speaker 4]: There's also a FOSDM target associated with""" start="01:01:02.020" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""it too.""" start="01:01:02.380" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""[Speaker 2]: Oh yeah, interesting. Clash and CH.""" start="01:01:07.600" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""CH. Oh, I was looking at the clesh.""" start="01:01:13.520" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""Clish, so the, let's check for it.""" start="01:01:18.640" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""The other 1 is shell and camel.""" start="01:01:23.560" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""This 1.""" start="01:01:24.120" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""[Speaker 0]: Interesting. Oops. Close Oops.""" start="01:01:37.505" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""[Speaker 2]: Oh, it's a GNU project.""" start="01:01:40.900" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""Oh, interesting.""" start="01:01:44.660" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""[Speaker 4]: The other thing that was interesting there is""" start="01:01:51.400" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""you use those disk images,""" start="01:01:52.760" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""LISP images, to have some of your common LISP""" start="01:02:00.140" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""utilities or programming libraries that you""" start="01:02:05.920" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""utilize in tandem with your REPL.""" start="01:02:07.660" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""So you can easily pull up a more featureful""" start="01:02:13.700" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""or a REPL that has more tools in it than by""" start="01:02:18.160" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""default.""" start="01:02:18.400" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""[Speaker 2]: Interesting. So yeah, that's,""" start="01:02:21.740" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""yeah, I mean, that will be,""" start="01:02:24.380" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""it will be fairly, no,""" start="01:02:26.800" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""no, easy. Well, easy, but not,""" start="01:02:28.700" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""But this can be integrated into LEM probably.""" start="01:02:33.080" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""Very, you know, not that easy because you""" start="01:02:36.060" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""have to change the few things.""" start="01:02:38.520" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""But this can be, you know.""" start="01:02:43.780" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""[Speaker 4]: Well, as example, he just...""" start="01:02:47.100" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""Well, 1 of the things that was in the talk,""" start="01:02:49.360" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""1 of the main ideas was,""" start="01:02:51.080" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""let's just, rather than trying to make the""" start="01:02:56.160" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""shell closer to a REPL,""" start="01:02:57.600" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""let's make a REPL closer to a shell,""" start="01:03:00.780" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""make it to where we can easily run Linux""" start="01:03:03.380" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""programs in it, and then use the rest of the""" start="01:03:07.280" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""REPL goodness, make it to where parentheses""" start="01:03:10.120" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""are easy to use, like paraedit,""" start="01:03:12.080" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""And then all of a sudden you have a nicer""" start="01:03:20.920" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""shell. Not really shell,""" start="01:03:24.320" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""but.""" start="01:03:24.640" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""[Speaker 2]: Oh, this is huge.""" start="01:03:30.020" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""[Speaker 6]: Hi, folks. Sorry for the interruption.""" start="01:03:33.520" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""It's Leo from the general track.""" start="01:03:35.200" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""We are about to go back live on the""" start="01:03:39.380" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""development track, so you can continue the""" start="01:03:41.880" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""discussion. You know, we are recording""" start="01:03:43.080" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""everything and you seem to be having a great""" start="01:03:45.200" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""amount of fun to issue the need for lunch,""" start="01:03:47.520" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""at least for the people in the US.""" start="01:03:49.080" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""I just want to let you know,""" start="01:03:51.160" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""in 2 minutes' time, we will be moving back to""" start="01:03:53.680" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""the rest of the talk for the afternoon,""" start="01:03:54.840" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""but feel free to stay in a room and keep""" start="01:03:56.840" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""discussing. All right?""" start="01:03:57.760" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""[Speaker 2]: Thank you. All right.""" start="01:04:01.160" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""[Speaker 6]: It might be a little brutal in 2 minutes,""" start="01:04:03.640" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""so if you have your watch synchronized at 7""" start="01:04:07.920" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""sharps, so in 2 minutes,""" start="01:04:09.080" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""it'll cut off.""" start="01:04:10.040" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""[Speaker 2]: Okay. Bye-bye. Bye. Oh my.""" start="01:04:19.600" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""Yeah. Interesting stuff indeed.""" start="01:04:23.860" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""[Speaker 4]: to listen to it after you're done with the""" start="01:04:29.380" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""[Speaker 0]: I guess you have Have you""" start="01:04:32.380" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""[Speaker 4]: comp. ever listened to that talk before?""" start="01:04:33.480" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""The 1 that's in that webpage,""" start="01:04:38.320" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""the FOSDEM 1.""" start="01:04:39.380" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""[Speaker 2]: Which 1? Sorry? 0 yeah,""" start="01:04:40.840" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""I in fact saw him live in the FOSDEM 2020.""" start="01:04:44.480" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""[Speaker 0]: So I a little bit. 2020.""" start="01:04:50.053" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""So we him""" start="01:04:50.166" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""[Speaker 2]: talked with him a little bit The first time""" start="01:04:51.760" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""is here in well here in Europe here in""" start="01:04:55.760" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""Brussels like 3 hours away or 2 hours away in""" start="01:05:01.320" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""plane from where I am.""" start="01:05:02.320" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""[Speaker 0]: 1 of the things that's kind of interesting""" start="01:05:05.320" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""with, you have some of""" start="01:05:06.900" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""[Speaker 4]: the people who come from Europe to the US and""" start="01:05:09.060" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""they're like, oh, I want to visit all the""" start="01:05:11.820" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""corners of the US in a couple of days.""" start="01:05:13.780" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""And it's like, No, US is the size of Europe.""" start="01:05:17.920" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""[Speaker 0]: The""" start="01:05:19.740" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""[Speaker 4]: states are the size of their countries.""" start="01:05:21.160" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""You don't...""" start="01:05:23.140" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""[Speaker 2]: I know. I know. It's very...""" start="01:05:27.100" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""It's huge. And it's like 6 hours different""" start="01:05:30.660" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""from coast to coast, something like that.""" start="01:05:32.280" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""[Speaker 4]: Yeah, and that's driving as fast as you can""" start="01:05:38.000" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""on the freeway, on the best roads that you""" start="01:05:39.960" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""possibly can, not taking...""" start="01:05:41.160" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""[Speaker 2]: Yeah, that would be...""" start="01:05:45.700" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""So the thing that I try to do also with LEM""" start="01:05:53.400" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""is to move my workflow from LEM to Emax,""" start="01:05:57.880" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""so for Emax to LEM, use it more.""" start="01:06:01.620" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""And I hope to, we still have a long way to go""" start="01:06:07.080" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""in terms of usability,""" start="01:06:08.440" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""in terms of other things,""" start="01:06:10.600" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""because we need more power.""" start="01:06:12.640" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""So This is also my attempt to do some""" start="01:06:18.420" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""publicity to the Blend project itself,""" start="01:06:20.320" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""to need to add more users,""" start="01:06:23.100" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""to be willing to try and to fail trying,""" start="01:06:26.200" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""because we still have some rough edges.""" start="01:06:29.640" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""Yeah, just trying to do that,""" start="01:06:38.320" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""which is, and I apologize to the Emaclist""" start="01:06:41.720" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""community, which I'm part of,""" start="01:06:43.580" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""but I don't want to like,""" start="01:06:44.660" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""disencourage the use of getting Emacs anyway.""" start="01:06:47.020" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""I think both are awesome.""" start="01:06:48.960" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""I want to anyone to get a real impression.""" start="01:06:51.300" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""[Speaker 0]: What do""" start="01:06:57.040" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""[Speaker 2]: you think? PlasmaStrike,""" start="01:06:57.740" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""you have a very powerful name.""" start="01:07:01.560" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""[Speaker 4]: I don't think that's something to worry""" start="01:07:07.580" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""about. I don't personally,""" start="01:07:09.660" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""but I'm going to watch the EMMS talk.""" start="01:07:15.380" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""That's something that I don't really use too""" start="01:07:17.360" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""much on my Emacs config.""" start="01:07:20.800" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""So I'm going to let you go.""" start="01:07:22.600" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""[Speaker 2]: OK, yeah, I'm going to go.""" start="01:07:24.440" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""I'm going to maybe watch the garbage""" start="01:07:26.320" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""collector talk, which is interesting.""" start="01:07:27.800" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""So thank you all very much.""" start="01:07:32.540" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""I'm gonna go. Thanks for the questions and""" start="01:07:35.860" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""all that. I think I hope I answered correctly""" start="01:07:40.811" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""[Speaker 4]: is part of the value of being part of this is""" start="01:07:47.040" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""[Speaker 2]: all of them. Yeah, I figure this that's a way""" start="01:07:50.580" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""[Speaker 4]: conversations. So of saying thank you for""" start="01:07:52.540" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""people sharing interesting talks.""" start="01:07:54.480" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""[Speaker 2]: Indeed. Thank you all very much for going to""" start="01:07:57.780" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""the Emacs conf and to watch me.""" start="01:08:02.380" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""So thank you all very much.""" start="01:08:06.440" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""I'm going to go do that.""" start="01:08:09.360" video="qanda-emacsen" id="subtitle"]]
+[[!template text="""[Speaker 0]: See you.""" start="01:08:10.640" video="qanda-emacsen" id="subtitle"]]
+
+</div>Questions or comments? Please e-mail [emacsconf-org-private@gnu.org](mailto:emacsconf-org-private@gnu.org?subject=Comment%20for%20EmacsConf%202023%20emacsen%3A%20The%20Emacsen%20family%2C%20the%20design%20of%20an%20Emacs%20and%20the%20importance%20of%20Lisp)
<!-- End of emacsconf-publish-after-page -->
diff --git a/2023/info/emacsen-before.md b/2023/info/emacsen-before.md
index bc240465..4334b31b 100644
--- a/2023/info/emacsen-before.md
+++ b/2023/info/emacsen-before.md
@@ -1,12 +1,31 @@
<!-- Automatically generated by emacsconf-publish-before-page -->
[[!toc ]]
-Format: 20-min talk followed by e-mail after the event Q&A
-Discuss on IRC: [#emacsconf](https://chat.emacsconf.org/?join=emacsconf)
-Status: Waiting for video from speaker
+Format: 19-min talk ; Q&A: BigBlueButton conference room
+Status: TO_INDEX_QA
+# Talk
+
+<div class="vid mainVideo"><video controls preload="none" id="mainVideo-emacsen"><source src="https://media.emacsconf.org/2023/emacsconf-2023-emacsen--the-emacsen-family-the-design-of-an-emacs-and-the-importance-of-lisp--fermin--main.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2023/captions/emacsconf-2023-emacsen--the-emacsen-family-the-design-of-an-emacs-and-the-importance-of-lisp--fermin--main.vtt" default />"""<track kind="chapters" label="Chapters" src="/2023/captions/emacsconf-2023-emacsen--the-emacsen-family-the-design-of-an-emacs-and-the-importance-of-lisp--fermin--main--chapters.vtt" /><p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video>[[!template id="chapters" vidid="mainVideo-emacsen" data="""
+00:00.000 Introduction
+00:17.000 Why Lisp matters
+01:26.640 Why Emacs Lisp was chosen
+02:54.841 Other "Emacsen"
+03:38.581 Why not Common Lisp?
+06:39.120 Common Lisp is still not dead or is always dead
+08:30.080 Lem is a nice Emacsen implementation
+08:58.260 Why not just use GNU Emacs?
+10:31.080 Why Lem
+14:03.080 Similarities and differences
+15:49.600 Demo
+
+"""]]<div></div>Duration: 18:28 minutes<div class="files resources"><ul><li><a href="https://pad.emacsconf.org/2023-emacsen">Open Etherpad</a></li><li><a href="https://bbb.emacsverse.org/playback/presentation/2.0/playback.html?meetingId=93478b7dbe4fb34ded741ea7c8dfefa78a3ce8fd-1701620297196">Play recording from BigBlueButton</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-emacsen--the-emacsen-family-the-design-of-an-emacs-and-the-importance-of-lisp--fermin--intro.vtt">Download --intro.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-emacsen--the-emacsen-family-the-design-of-an-emacs-and-the-importance-of-lisp--fermin--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-emacsen--the-emacsen-family-the-design-of-an-emacs-and-the-importance-of-lisp--fermin--main--chapters.vtt">Download --main--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-emacsen--the-emacsen-family-the-design-of-an-emacs-and-the-importance-of-lisp--fermin--main.opus">Download --main.opus (11MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-emacsen--the-emacsen-family-the-design-of-an-emacs-and-the-importance-of-lisp--fermin--main.vtt">Download --main.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-emacsen--the-emacsen-family-the-design-of-an-emacs-and-the-importance-of-lisp--fermin--main.webm">Download --main.webm (32MB)</a></li><li><a href="https://toobnix.org/w/qgJ84RLV2FZYyeSusDskwU">View on Toobnix</a></li><li><a href="https://www.youtube.com/watch?v=7SGcLpjC5CE">View on Youtube</a></li></ul></div></div>
+
+# Q&A
+
+<div class="vid qanda"><video controls preload="none" id="qanda-emacsen"><source src="https://media.emacsconf.org/2023/emacsconf-2023-emacsen--the-emacsen-family-the-design-of-an-emacs-and-the-importance-of-lisp--fermin--answers.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2023/captions/emacsconf-2023-emacsen--the-emacsen-family-the-design-of-an-emacs-and-the-importance-of-lisp--fermin--answers.vtt" default />"""<p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video><div>Listen to just the audio:<br /><audio controls preload="none" id="qanda-emacsen-audio" src="https://media.emacsconf.org/2023/emacsconf-2023-emacsen--the-emacsen-family-the-design-of-an-emacs-and-the-importance-of-lisp--fermin--answers.opus"></audio></div><div></div>Duration: 1:08:14 minutes<div class="files resources"><ul><li><a href="https://pad.emacsconf.org/2023-emacsen">Open Etherpad</a></li><li><a href="https://bbb.emacsverse.org/playback/presentation/2.0/playback.html?meetingId=93478b7dbe4fb34ded741ea7c8dfefa78a3ce8fd-1701620297196">Play recording from BigBlueButton</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-emacsen--the-emacsen-family-the-design-of-an-emacs-and-the-importance-of-lisp--fermin--answers.opus">Download --answers.opus (39MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-emacsen--the-emacsen-family-the-design-of-an-emacs-and-the-importance-of-lisp--fermin--answers.vtt">Download --answers.vtt</a> (unedited)</li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-emacsen--the-emacsen-family-the-design-of-an-emacs-and-the-importance-of-lisp--fermin--answers.webm">Download --answers.webm (253MB)</a></li></ul></div></div>
# Description
<!-- End of emacsconf-publish-before-page --> \ No newline at end of file
diff --git a/2023/info/emacsen-nav.md b/2023/info/emacsen-nav.md
index 018c5511..c89089bd 100644
--- a/2023/info/emacsen-nav.md
+++ b/2023/info/emacsen-nav.md
@@ -1,7 +1,7 @@
<div class="talk-nav">
Back to the [[talks]]
-Previous by track: <a href="/2023/talks/steno">Programming at 200 wpm</a>
-Next by track: <a href="/2023/talks/sat-open">Saturday opening remarks</a>
-Track: <span class="sched-track Development">Development</span>
+Previous by track: <a href="/2023/talks/flat">A modern Emacs look-and-feel without pain</a>
+Next by track: <a href="/2023/talks/gc">emacs-gc-stats: Does garbage collection actually slow down Emacs?</a>
+Track: <span class="sched-track Development">Development</span> - <strong><a href="https://emacsconf.org/2023/watch/dev">Watch</a></strong>
</div>
diff --git a/2023/info/emms-after.md b/2023/info/emms-after.md
index fc154d30..532fc6a2 100644
--- a/2023/info/emms-after.md
+++ b/2023/info/emms-after.md
@@ -1,7 +1,1317 @@
<!-- Automatically generated by emacsconf-publish-after-page -->
-Questions or comments? Please e-mail [emacsconf-org-private@gnu.org](mailto:emacsconf-org-private@gnu.org?subject=Comment%20for%20EmacsConf%202022%20emms%3A%20Emacs%20MultiMedia%20System%20%28EMMS%29)
+<div class="transcript transcript-mainVideo"><a name="emms-mainVideo-transcript"></a><h1>Transcript</h1>
+
+
+<div class="transcript-heading">[[!template new="1" text="""Introduction""" start="00:00:00.000" video="mainVideo-emms" id="subtitle"]]</div>[[!template text="""The Sound of Emacs, Emms, The Emacs Multimedia System.""" start="00:00:00.000" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""Hi, I'm Yoni Rabkin and I'll be talking about Emms;""" start="00:00:05.400" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""the Emacs Multimedia System.""" start="00:00:09.160" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""What is Emms?""" start="00:00:11.520" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""Emms displays and plays media from within Emacs""" start="00:00:14.560" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""using a variety of external players""" start="00:00:18.120" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""and from different media sources.""" start="00:00:20.520" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""Emms can run as a minimalistic player""" start="00:00:23.540" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""which is controlled with no more than""" start="00:00:26.680" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""a handful of simple M-x commands,""" start="00:00:28.560" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""or as a fully-fledged interactive media browser and player.""" start="00:00:31.120" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""Emms can display album art, play streaming audio,""" start="00:00:36.060" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""tag music files, search for lyrics,""" start="00:00:40.640" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""provide MPD connectivity, control the volume,""" start="00:00:43.440" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""and more. Much more.""" start="00:00:46.680" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""The Emms project acts like Emacs in microcosm.""" start="00:00:49.620" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""It slowly but surely grows bigger""" start="00:00:53.880" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""and gets ever more features.""" start="00:00:56.560" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""Perhaps Emms will one day even have a text editor.""" start="00:00:58.480" video="mainVideo-emms" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""The structure of this talk""" start="00:01:03.320" video="mainVideo-emms" id="subtitle"]]</div>[[!template text="""The structure of this talk:""" start="00:01:03.320" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""We'll start with an introduction to Emms.""" start="00:01:05.600" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""This is the practical part.""" start="00:01:08.160" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""Then, a bit about how Emms works. That's the technical part.""" start="00:01:10.560" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""Finally, how we work. All about Emms development.""" start="00:01:15.880" video="mainVideo-emms" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Introduction to Emms: The practical part""" start="00:01:21.320" video="mainVideo-emms" id="subtitle"]]</div>[[!template text="""Introduction to Emms: The practical part:""" start="00:01:21.320" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""I want this talk to be of immediate use to people,""" start="00:01:25.021" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""so I'm going to present a quick TL;DR of the Emms manual""" start="00:01:28.680" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""concerning installation and use.""" start="00:01:33.520" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""By the end of this part you should be able to""" start="00:01:36.400" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""install, configure, and use Emms in a variety of ways.""" start="00:01:38.440" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""Where can I get Emms?""" start="00:01:45.280" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""Emms is distributed primarily via GNU ELPA.""" start="00:01:48.120" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""So it's really only a M-x list-packages away at any moment.""" start="00:01:54.320" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""There's also a website hosted at gnu.org.""" start="00:02:02.080" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""Among other things on the website, you'll find""" start="00:02:07.720" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""a copy of the friendly, robust, and up-to-date user manual.""" start="00:02:11.020" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""Installing Emms has become progressively easier over time""" start="00:02:21.280" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""and will continue to get easier.""" start="00:02:25.920" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""In the bad old days, it required downloading a tarball""" start="00:02:28.720" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""and compiling a C language shim""" start="00:02:32.560" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""to enable reading metadata from media files.""" start="00:02:35.060" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""But those days are long gone, and installing Emms is now""" start="00:02:38.920" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""as easy as invoking M-x list-packages,""" start="00:02:43.360" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""installing the Emms package, and placing as few as""" start="00:02:47.040" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""2 or 3 lines of configuration in your Emacs initialization.""" start="00:02:51.840" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""So after the package is installed via ELPA,""" start="00:02:57.720" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""you can add these few lines.""" start="00:03:02.840" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""`emms-all` will make available all of the stable features""" start="00:03:08.440" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""which are shipped with Emms.""" start="00:03:12.360" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""The `emms-player-list` variable is a list of players""" start="00:03:15.740" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""like MPV, MPlayer, VLC, etc.""" start="00:03:20.840" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""Emms will call and control these external players""" start="00:03:25.600" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""to play your media.""" start="00:03:29.400" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""The variable `emms-info-functions` is a list of ways""" start="00:03:32.000" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""for Emms to read the metadata in your media files""" start="00:03:36.660" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""so that Emms can display song title, artist name,""" start="00:03:40.960" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""year of production, etc.""" start="00:03:45.280" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""The `emms-info-native` feature in the setup example""" start="00:03:49.480" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""is the built-in metadata reader""" start="00:03:55.200" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""written entirely in Emacs Lisp.""" start="00:03:58.160" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""But there are also other backends""" start="00:04:01.800" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""which can call external programs for info""" start="00:04:04.240" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""such as TinyTag, the TagLib library, exiftool, and so on.""" start="00:04:07.720" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""You can then old-school restart your Emacs""" start="00:04:14.720" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""or simply evaluate the above couple of lines to get going.""" start="00:04:17.560" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""Now that we have Emms installed and configured,""" start="00:04:22.800" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""we should load some media for player.""" start="00:04:26.280" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""There are multiple ways to load media into Emms for playing.""" start="00:04:29.240" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""They can be directories with local files,""" start="00:04:32.720" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""synchronized from a remote instance of""" start="00:04:36.280" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""a music player daemon, PLS or M3U playlists,""" start="00:04:38.520" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""a list of URLs for streaming,""" start="00:04:44.720" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""or even Emms' own native playlist format""" start="00:04:47.440" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""which is unsurprisingly a just serialized Emacs Lisp.""" start="00:04:51.120" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""No matter how you add tracks to Emms,""" start="00:04:57.200" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""you'll end up with a playlist.""" start="00:05:00.200" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""A fundamental strength of Emms is that each playlist""" start="00:05:03.880" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""is a regular Emacs buffer and the track listing therein""" start="00:05:08.960" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""is nothing more than text lines with property overlays.""" start="00:05:13.480" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""This means that you can navigate, search, copy,""" start="00:05:17.860" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""and edit an Emms playlist buffer""" start="00:05:21.360" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""just as you would any Emacs buffer.""" start="00:05:24.880" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""If you want to reorganize the tracks in the playlist,""" start="00:05:28.680" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""then you can simply kill yank the tracks""" start="00:05:31.320" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""just as you would any buffer with lines of text,""" start="00:05:33.960" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""and the same can be done between multiple playlist buffers.""" start="00:05:36.760" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""One of the most straightforward ways to add media""" start="00:05:42.960" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""is to invoke a command like `M-x emms-add-directory-tree`.""" start="00:05:46.120" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""You can point it to the top of a set of directories""" start="00:05:51.940" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""with playable files for Emms to traverse.""" start="00:05:55.680" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""Another rather convenient method is to mark files in Dired""" start="00:06:00.280" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""and to invoke `emms-add-dired`.""" start="00:06:05.200" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""I definitely use this one a lot.""" start="00:06:09.680" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""The Emms playlist mode binds""" start="00:06:11.680" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""a number of useful keys and commands.""" start="00:06:16.120" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""It's highly recommended that you either""" start="00:06:19.880" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""read the friendly manual""" start="00:06:23.960" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""or hit &quot;C-h m&quot; in a playlist buffer to discover them.""" start="00:06:25.960" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""Now we have a playlist buffer with a number of tracks,""" start="00:06:32.320" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""so the next step is going to be playback.""" start="00:06:35.960" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""Emms can be used as a minimalistic player""" start="00:06:40.820" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""with nothing more than a handful of commands.""" start="00:06:44.400" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""Once there is a current Emms playlist,""" start="00:06:48.320" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""invoking emms-start will begin playing the current track.""" start="00:06:51.360" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""Now of course in a new playlist""" start="00:06:57.560" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""that would be the first track.""" start="00:07:00.040" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""Now emms-next, emms-pause, and emms-stop""" start="00:07:02.580" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""do exactly what you think they do.""" start="00:07:07.200" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""To visit the current playlist,""" start="00:07:11.260" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""you can invoke M-x emms-playlist-mode-go,""" start="00:07:13.200" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""which is a long command I personally bind to &quot;M-f12&quot;.""" start="00:07:17.640" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""You'll be taken to the current playlist buffer.""" start="00:07:22.700" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""While you can have multiple playlist buffers,""" start="00:07:25.320" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""only one is current for the purposes of playback commands.""" start="00:07:29.240" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""The playlist buffer has keys bound""" start="00:07:35.780" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""to control the media being played.""" start="00:07:38.120" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""`emms-seek-forward` and `emms-seek-backwards` allow you""" start="00:07:39.920" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""to scrub along the media being played.""" start="00:07:44.200" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""Which commands are available is a function of""" start="00:07:49.040" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""the player backend being employed.""" start="00:07:51.720" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""The simplest of players may have nothing more""" start="00:07:54.200" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""than the ability to play, stop, and seek,""" start="00:07:56.600" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""but others may implement a plethora of commands.""" start="00:07:59.560" video="mainVideo-emms" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""The modeline""" start="00:08:04.240" video="mainVideo-emms" id="subtitle"]]</div>[[!template text="""The Modeline: Emms will by default display""" start="00:08:04.240" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""the name of the currently playing track in the mode line""" start="00:08:08.880" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""with information such as playing time.""" start="00:08:11.840" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""The mode line format is controlled""" start="00:08:15.000" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""via the `emms-mode-line-format` variable""" start="00:08:15.560" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""and the `emms-mode-line-playlist-current` function.""" start="00:08:20.640" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""Metadata and the cache.""" start="00:08:27.140" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""It would be sufficient for emms to simply list""" start="00:08:31.040" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""the file names or urls of each piece of media,""" start="00:08:34.800" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""but unless you name your music and media""" start="00:08:38.620" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""with obsessive consistency and precision,""" start="00:08:41.000" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""not that there is anything wrong with that""" start="00:08:43.940" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""then the resulting list will be a bit of an eyesore.""" start="00:08:46.680" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""Moreover, there are a lot of other useful metadata""" start="00:08:50.860" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""in the media files, including cool stuff like album art.""" start="00:08:54.120" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""So instead of just files, Emms will try""" start="00:08:58.620" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""to extract metadata from each track""" start="00:09:01.920" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""and display a nicely-formatted track listing.""" start="00:09:04.400" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""The format can be controlled by customizing""" start="00:09:08.220" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""the variable `emms-track-description-function`.""" start="00:09:10.800" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""Emms uses so-called info methods to extract""" start="00:09:15.460" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""the metadata from each file.""" start="00:09:19.640" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""`emms-info-native`, which I mentioned before,""" start="00:09:22.440" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""is the built-in metadata reader written in Emacs Lisp.""" start="00:09:25.680" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""It provides support for Ogg Vorbis, Ogg Opus, FLAC, and MP3.""" start="00:09:30.360" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""However, if you have media in other formats,""" start="00:09:37.660" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""you can also add info methods""" start="00:09:40.360" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""to the `emms-info-functions` list,""" start="00:09:42.440" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""which call external programs such as exiftool,""" start="00:09:45.240" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""the LibTag library, tiny-tag, etc. to read file metadata.""" start="00:09:48.700" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""Since reading metadata takes time""" start="00:09:55.420" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""and that metadata doesn't change very often,""" start="00:09:58.200" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""Emms builds a cache as it extracts""" start="00:10:01.340" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""the information from each file.""" start="00:10:04.080" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""The first time loading of thousands of tracks""" start="00:10:06.860" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""into the emms cache may take a while,""" start="00:10:09.880" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""but as is the nature of caching, subsequent loads""" start="00:10:13.260" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""will be nearly instantaneous.""" start="00:10:17.000" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""To ease loading huge media collections,""" start="00:10:20.060" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""emms also can populate the cache asynchronously,""" start="00:10:22.720" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""so that your emacs isn't locked up in the interim.""" start="00:10:26.520" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""Let's talk about streams and URLs.""" start="00:10:30.520" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""Not all playlist entries need to be associated with files.""" start="00:10:33.780" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""It's possible to add streaming playlists""" start="00:10:37.620" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""and URLs to any playlist.""" start="00:10:39.840" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""Emms also comes with a built-in eclectic list""" start="00:10:42.640" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""of streaming audio stations to get you started.""" start="00:10:46.120" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""Any playlist entry can be a URL,""" start="00:10:50.040" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""and that URL will be passed on to the media player backend,""" start="00:10:52.640" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""which can play it, if any.""" start="00:10:56.720" video="mainVideo-emms" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Meta-playlist mode""" start="00:11:01.200" video="mainVideo-emms" id="subtitle"]]</div>[[!template text="""Meta-playlist mode:""" start="00:11:01.200" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""Emms also has meta-playlist mode""" start="00:11:03.680" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""to help manage multiple playlists.""" start="00:11:08.300" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""When you invoke meta-playlist mode,""" start="00:11:11.960" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""you will see a listing of all of the current Emms playlists,""" start="00:11:13.880" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""and this mode binds a handful of useful keybindings""" start="00:11:16.960" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""to help manage those playlists.""" start="00:11:22.000" video="mainVideo-emms" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""The browser""" start="00:11:29.860" video="mainVideo-emms" id="subtitle"]]</div>[[!template text="""The Browser:""" start="00:11:29.860" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""Music doesn't always lend itself to being viewed""" start="00:11:31.760" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""as a series of discrete files.""" start="00:11:35.440" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""While there may be a good taxonomy of music""" start="00:11:38.200" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""that can be reflected using directories and filenames,""" start="00:11:41.560" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""there are other aspects which cannot.""" start="00:11:45.460" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""This is especially true when you consider that""" start="00:11:49.100" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""unlike many computer file taxonomies,""" start="00:11:51.600" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""music files may contain""" start="00:11:55.300" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""a lot of self-descriptive information""" start="00:11:56.720" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""in the form of metadata,""" start="00:11:58.760" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""such as the year a work was published, the composer,""" start="00:12:00.620" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""the performing artist, etc.""" start="00:12:04.280" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""Therefore, it makes sense for Emms to enable""" start="00:12:07.520" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""a different view into a media collection""" start="00:12:11.080" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""which is based on the cached metadata.""" start="00:12:13.200" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""The browser interface binds a host of keys""" start="00:12:17.060" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""to help navigate the tree structure""" start="00:12:19.840" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""of the metadata information.""" start="00:12:22.080" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""Since browser display""" start="00:12:24.540" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""is not predicated upon directory structure,""" start="00:12:25.840" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""you can invoke functions such as `emms-browse-by-album`,""" start="00:12:28.280" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""or `emms-browse-by-artist`, etc.""" start="00:12:32.940" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""to view the collection in different ways.""" start="00:12:35.640" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""Emms can do a lot more,""" start="00:12:42.180" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""but covering it all would take too much time.""" start="00:12:43.760" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""I do recommend opening the fine Emms manual""" start="00:12:47.020" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""and getting to know some additional features""" start="00:12:50.240" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""such as sorting tracks in playlists,""" start="00:12:52.320" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""sorting and filtering in the browser,""" start="00:12:55.000" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""editing track information,""" start="00:12:57.200" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""deriving a new playlist from an existing playlist,""" start="00:12:59.080" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""the music player daemon, lyrics display, volume control,""" start="00:13:01.920" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""bookmarks, GNU FM, and Dbus/Mpris support.""" start="00:13:07.040" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""I hope this was a useful introduction to Emms.""" start="00:13:13.360" video="mainVideo-emms" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""How Emms works: The technical part""" start="00:13:19.920" video="mainVideo-emms" id="subtitle"]]</div>[[!template text="""How Emms Works: The technical part:""" start="00:13:19.920" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""This part is an overview of how Emms works.""" start="00:13:23.220" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""By the end of this, you should be familiar enough""" start="00:13:26.820" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""with Emms internals to hack on it. Hint hint.""" start="00:13:29.760" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""A short history of Emms""" start="00:13:34.740" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""Emms is 20 years old as of the time of writing.""" start="00:13:37.680" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""Old enough to drink in many countries.""" start="00:13:42.940" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""This means it was developed back in 2003""" start="00:13:45.400" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""for emacs 21.2 or thereabouts.""" start="00:13:48.880" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""As developers, we don't go around looking to""" start="00:13:53.440" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""replace code just because it's old.""" start="00:13:56.280" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""On the other hand, some parts were inadequate""" start="00:13:58.840" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""or just didn't age gracefully.""" start="00:14:01.840" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""And we have been partially or completely rewriting those.""" start="00:14:04.920" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""I became the maintainer of Emms about a decade ago,""" start="00:14:10.360" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""but I didn't start the project.""" start="00:14:13.720" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""Jorgen Schäfer started the project.""" start="00:14:16.100" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""I reached out to Jorgen""" start="00:14:21.020" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""and he kindly shared some of his recollections.""" start="00:14:22.520" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""Jorgen states that Emms was born back""" start="00:14:25.620" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""when the music format wars raged.""" start="00:14:28.200" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""MP3 was the standard, but overshadowed with patent issues.""" start="00:14:31.280" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""In fact, Technicolor and Fraunhofer IIS""" start="00:14:38.700" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""only stopped licensing their patents for MP3""" start="00:14:42.480" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""as recently as April of 2017.""" start="00:14:45.560" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""Jorgen said that, and I quote,""" start="00:14:49.360" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""&quot;I needed a tool that was player agnostic""" start="00:14:53.540" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""and that could deal with a large collection of music files.""" start="00:14:56.080" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""And I did not want any of the GUI music players""" start="00:14:59.440" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""that existed back then.""" start="00:15:02.800" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""Primarily, actually, because I did not want""" start="00:15:04.040" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""to be switching windows to skip to the next song.""" start="00:15:07.520" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""If I remember correctly,""" start="00:15:11.400" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""I had just a shell script before that.""" start="00:15:12.880" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""But I figured I lived in Emacs, so why not write a tool""" start="00:15:16.280" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""that I can control my music from Emacs""" start="00:15:20.160" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""without ever having to leave Emacs?&quot; Unquote.""" start="00:15:23.040" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""We can see that Jorgen's motivations were of the best kind,""" start="00:15:27.760" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""to stay in Emacs.""" start="00:15:32.120" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""Emms, an architecture of sensible abstractions.""" start="00:15:35.320" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""Emms can be divided into a number of parts.""" start="00:15:40.680" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""The core, tracks, playlists, sources, players,""" start="00:15:44.040" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""info, cache, and ancillary.""" start="00:15:48.120" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""Now David J. Wheeler once said""" start="00:15:51.760" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""that all problems in computer science""" start="00:15:53.680" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""can be solved by another level of indirection,""" start="00:15:56.000" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""except of course for the problem""" start="00:15:59.800" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""of too many layers of indirection.""" start="00:16:01.640" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""Emms core has survived this long""" start="00:16:04.420" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""because it makes sensible and flexible coding abstractions.""" start="00:16:07.000" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""Keep this in mind as we explore the implementation.""" start="00:16:11.620" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""This following part of the talk will also be invaluable""" start="00:16:15.500" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""if you want to hack on Emacs.""" start="00:16:18.880" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""Another hint.""" start="00:16:21.560" video="mainVideo-emms" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""The Emms core""" start="00:16:23.820" video="mainVideo-emms" id="subtitle"]]</div>[[!template text="""The Emms core.""" start="00:16:23.820" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""The core defines tracks, playlists,""" start="00:16:25.360" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""a way to start and stop playback,""" start="00:16:29.080" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""as well as ways to proceed to the next track.""" start="00:16:31.760" video="mainVideo-emms" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Tracks""" start="00:16:36.440" video="mainVideo-emms" id="subtitle"]]</div>[[!template text="""Tracks:""" start="00:16:36.440" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""Emms tracks consist of a list whose CAR is the symbol track,""" start="00:16:38.460" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""and CADR is an alist starting with""" start="00:16:44.780" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""the association of `type'.""" start="00:16:47.080" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""Type can be something like file, streamlist, URL, etc.""" start="00:16:50.640" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""A track of classical music from Bach's Art of Fugue""" start="00:16:56.740" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""may look something like this.""" start="00:17:00.080" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""While a track may contain many associations,""" start="00:17:04.380" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""the number of associations remains a small constant""" start="00:17:07.600" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""from the perspective of computational steps required""" start="00:17:11.080" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""to find any particular association.""" start="00:17:14.200" video="mainVideo-emms" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Playlist""" start="00:17:18.460" video="mainVideo-emms" id="subtitle"]]</div>[[!template text="""Playlist:""" start="00:17:18.460" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""An Emms playlist consists of an Emacs buffer""" start="00:17:20.620" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""with a buffer-local non-nil variable,""" start="00:17:23.480" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""`emms-playlist-buffer-p`.""" start="00:17:26.460" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""The buffer can contain anything, any amount or type of text,""" start="00:17:29.820" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""or anything else.""" start="00:17:33.720" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""Emms tracks are stored in text properties within the buffer,""" start="00:17:35.960" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""with the unimaginatively named text property `emms-track`.""" start="00:17:40.500" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""For Emms, to go to the next track consists of""" start="00:17:46.400" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""nothing more than looking for the next text property change""" start="00:17:49.240" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""containing `emms-track`, wherever that is.""" start="00:17:52.840" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""That means that there is a healthy decoupling between""" start="00:17:57.180" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""the visual representation of a playlist""" start="00:18:00.540" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""and its contents as far as Emms is concerned.""" start="00:18:03.840" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""This decoupling allows Emms playlist buffers""" start="00:18:08.260" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""to look like anything as long as that anything consists of""" start="00:18:11.600" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""one or more `emms-track` text properties.""" start="00:18:15.320" video="mainVideo-emms" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Sources""" start="00:18:22.080" video="mainVideo-emms" id="subtitle"]]</div>[[!template text="""Sources:""" start="00:18:22.080" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""A source is how you tell Emms:""" start="00:18:23.580" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""&quot;Go and get those things and turn them into tracks.&quot;""" start="00:18:25.840" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""More specifically, an Emms source is a function called in""" start="00:18:29.780" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""a playlist buffer in order to add tracks.""" start="00:18:34.480" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""And even more specifically, a source is really""" start="00:18:37.260" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""a family of related functions""" start="00:18:40.200" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""defined by the macro `define-emms-source`.""" start="00:18:42.680" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""A straightforward example""" start="00:18:47.680" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""is the function `emms-add-directory`,""" start="00:18:49.960" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""which adds an entire directory of files""" start="00:18:52.960" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""to the current playlist.""" start="00:18:55.880" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""It accepts, or interactively queries for, a directory""" start="00:18:57.440" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""and iterates over each file in that directory,""" start="00:19:02.320" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""adding them as tracks to the playlist buffer as it goes.""" start="00:19:06.120" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""Emms comes with sources for files, directories, URLs,""" start="00:19:10.760" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""playlists of various formats,""" start="00:19:15.040" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""files from dired mode, and etc.""" start="00:19:17.320" video="mainVideo-emms" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Players""" start="00:19:22.160" video="mainVideo-emms" id="subtitle"]]</div>[[!template text="""Players:""" start="00:19:22.160" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""An Emms player is, at its simplest, a data structure""" start="00:19:24.880" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""with three functions.""" start="00:19:28.960" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""One to start playing, one to stop,""" start="00:19:30.840" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""and one which returns true if the player knows""" start="00:19:34.520" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""how to play a given track.""" start="00:19:38.180" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""However, if your player also knows how to pause, resume,""" start="00:19:41.280" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""seek, etc, then additional functions can be added""" start="00:19:44.760" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""to the player data structure.""" start="00:19:48.280" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""This is abstract enough to be able to, for example,""" start="00:19:51.320" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""define a simple player for images with the help of""" start="00:19:55.400" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""the `define-emms-simple-player` macro.""" start="00:19:58.840" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""The above will define a player called `emms-player-display`,""" start="00:20:04.580" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""which would call ImageMagick's `display` command""" start="00:20:09.560" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""on each file in our playlist""" start="00:20:12.960" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""with the image file extension we listed.""" start="00:20:15.640" video="mainVideo-emms" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Info""" start="00:20:20.520" video="mainVideo-emms" id="subtitle"]]</div>[[!template text="""Info:""" start="00:20:20.520" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""As previously described, Emms comes with info methods,""" start="00:20:23.060" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""which are functions to add""" start="00:20:28.020" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""descriptive information to tracks.""" start="00:20:29.640" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""Emms is set up so that""" start="00:20:32.340" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""the hook `emms-track-initialize-functions` is called""" start="00:20:34.640" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""when a track is created, and that ends up calling""" start="00:20:37.720" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""the info methods listed in the `emms-info-functions` list.""" start="00:20:41.640" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""These will modify the track data structure to add metadata.""" start="00:20:46.280" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""One of the coolest recent features of Emms""" start="00:20:51.200" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""is `emms-info-native`, written by Petteri Hintsanen;""" start="00:20:54.320" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""again, sorry for the pronunciation.""" start="00:20:58.700" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""`emms-info-native` is a purely Emacs Lisp implementation""" start="00:21:01.326" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""which reads Ogg Vorbis, Ogg Opus, FLAC, and MP3 files""" start="00:21:06.520" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""and parses out the metadata.""" start="00:21:11.440" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""This is in comparison with other info readers""" start="00:21:14.680" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""which Emms supports, which all involve calling out""" start="00:21:17.520" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""to external processes and parsing the values returned.""" start="00:21:20.560" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""`emms-info-native` works by unpacking and examining""" start="00:21:25.620" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""the binary data in the media file headers""" start="00:21:29.320" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""and parsing the data layout specifications.""" start="00:21:32.040" video="mainVideo-emms" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""The cache""" start="00:21:36.660" video="mainVideo-emms" id="subtitle"]]</div>[[!template text="""The Cache:""" start="00:21:36.660" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""The Emms cache is a mapping between a full path name""" start="00:21:38.880" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""and its associated information.""" start="00:21:43.280" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""Once information is extracted from a file""" start="00:21:45.720" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""using an info method, that information is then""" start="00:21:48.200" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""associated with that file in the cache.""" start="00:21:50.760" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""One thing to bear in mind is that the caching system""" start="00:21:53.980" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""was originally written back""" start="00:21:57.160" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""when slow spinning disks were common.""" start="00:21:58.360" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""A 32GB SSD drive cost close to $700 in 2006,""" start="00:22:00.760" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""which is the equivalent of about $1,000""" start="00:22:07.520" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""at the time of writing.""" start="00:22:10.280" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""But despite the speed of modern drives,""" start="00:22:12.440" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""the caching system is still worth using""" start="00:22:15.260" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""for larger music collections.""" start="00:22:17.440" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""The caching system is also a prerequisite""" start="00:22:19.680" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""for being able to use the Emms browser.""" start="00:22:22.440" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""The cache implementation is relatively naive.""" start="00:22:26.600" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""For instance, moving a file will invalidate""" start="00:22:30.380" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""that cache entry for that file""" start="00:22:33.200" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""and will require a refresh.""" start="00:22:35.800" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""However, relatively little work has been done""" start="00:22:37.580" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""to the cache implementation over the years""" start="00:22:40.600" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""since it has proven to be good enough""" start="00:22:42.780" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""for the majority of situations.""" start="00:22:45.000" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""Which is to say, nobody complained.""" start="00:22:47.060" video="mainVideo-emms" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Healthy back and forth: mpv, mpd, and GNU.FM""" start="00:22:51.620" video="mainVideo-emms" id="subtitle"]]</div>[[!template text="""Healthy back and forth. MPV, MPD, GNU.FM""" start="00:22:51.620" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""Process communication with a simple media player""" start="00:22:56.240" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""can be as straightforward""" start="00:23:00.120" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""as starting an asynchronous process""" start="00:23:01.760" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""and waiting for that process to complete""" start="00:23:03.800" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""in order to move to the next track.""" start="00:23:05.800" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""This is how the example above""" start="00:23:08.620" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""with ImageMagick's display binary worked.""" start="00:23:10.880" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""However, Emms also handles asynchronous""" start="00:23:13.760" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""two-way communication with processes.""" start="00:23:17.440" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""A simple example of this would be sending strings""" start="00:23:20.300" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""to a running process such as the pause command to VLC.""" start="00:23:23.960" video="mainVideo-emms" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""MPV""" start="00:23:31.560" video="mainVideo-emms" id="subtitle"]]</div>[[!template text="""MPV:""" start="00:23:31.560" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""MPV is a popular media player forked""" start="00:23:33.380" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""in a roundabout way from mplayer.""" start="00:23:37.040" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""One of its most notable features is""" start="00:23:39.900" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""support for a robust client API.""" start="00:23:42.080" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""Mike Kazantsev has been working since 2018""" start="00:23:46.600" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""to develop the excellent `emms-player-mpv.el'.""" start="00:23:52.960" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""It can communicate with a long running MPV process""" start="00:23:58.350" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""via Unix sockets or IP sockets.""" start="00:24:02.000" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""This allows for MPV to do things""" start="00:24:07.180" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""like update ICY metadata for streaming audio.""" start="00:24:11.170" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""So that, for example, when a song changes""" start="00:24:14.890" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""while you're listening to a streaming audio via Emms,""" start="00:24:17.640" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""the song title displayed in the mode line""" start="00:24:22.050" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""and track listing can update as well.""" start="00:24:24.680" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""This means that deep inside the code""" start="00:24:28.330" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""there is an Emacs `make-network-process` call.""" start="00:24:30.400" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""The fact that Mike has put this together""" start="00:24:35.630" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""in fewer than 1,000 lines of legible Emacs Lisp""" start="00:24:37.920" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""is a testament to some serious coding ability.""" start="00:24:42.640" video="mainVideo-emms" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""MPD""" start="00:24:47.470" video="mainVideo-emms" id="subtitle"]]</div>[[!template text="""MPD:""" start="00:24:47.470" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""Similar to MPV but potentially""" start="00:24:49.610" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""on a completely different machine""" start="00:24:52.400" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""is Emms support for the Music Player Daemon.""" start="00:24:54.120" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""Music Player Daemon or MPD is a media player""" start="00:24:58.460" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""with an explicit client-server design""" start="00:25:01.520" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""and communicates with Emms via a network process.""" start="00:25:03.960" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""Unfortunately, MPD support has never been all that great.""" start="00:25:09.950" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""But this isn't the emms developers fault!""" start="00:25:16.090" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""Because unlike every other media player""" start="00:25:20.470" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""that Emms interfaces with MPD is designed around""" start="00:25:25.600" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""its own internal playlist database.""" start="00:25:29.730" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""This is a surprising design decision""" start="00:25:31.930" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""on the MPD developers' part""" start="00:25:35.270" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""since it goes against the client-server mindset.""" start="00:25:37.650" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""A consequence is that we end up having to try and coordinate""" start="00:25:41.750" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""and harmonize the MPD playlist with the Emms playlist.""" start="00:25:45.960" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""I can foresee writing a completely new MPD mode for Emms""" start="00:25:51.400" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""which is designed to be a true pure MPD client.""" start="00:25:56.690" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""Unless of course someone volunteers to beat me to it.""" start="00:26:01.510" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""Hint hint.""" start="00:26:05.340" video="mainVideo-emms" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""GNU FM and Libre FM""" start="00:26:07.440" video="mainVideo-emms" id="subtitle"]]</div>[[!template text="""GNU FM and Libre FM:""" start="00:26:07.440" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""Libre FM is a music community which allows you""" start="00:26:10.960" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""to share your listening habits with other users of the site.""" start="00:26:13.640" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""A kind of online listening party.""" start="00:26:17.450" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""In the case of `emms-librefm-scrobber.el`""" start="00:26:21.270" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""we use Emacs' `url-retrieve` function""" start="00:26:25.650" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""to asynchronously send to a URL""" start="00:26:28.640" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""and then fire a callback function to process the response.""" start="00:26:32.450" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""This represents numerous challenges""" start="00:26:40.050" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""to implement within Emacs.""" start="00:26:42.680" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""The primary issue being that Emacs itself""" start="00:26:45.090" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""is pretty weak at doing anything""" start="00:26:47.400" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""truly and really asynchronously.""" start="00:26:50.100" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""I can say with confident sarcasm""" start="00:26:54.220" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""and with tongue firmly planted in cheek""" start="00:26:56.400" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""that it is almost as if the original designers""" start="00:26:59.530" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""of Emacs didn't foresee their text editor""" start="00:27:02.880" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""needing to play music""" start="00:27:05.840" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""while interacting with a remote network server.""" start="00:27:07.040" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""How myopic!""" start="00:27:09.820" video="mainVideo-emms" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""How we work: Emms development""" start="00:27:12.560" video="mainVideo-emms" id="subtitle"]]</div>[[!template text="""How we work: Emms development:""" start="00:27:12.560" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""This part is an overview of how Emms is developed.""" start="00:27:15.700" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""By the end of this part you should be able to understand""" start="00:27:19.620" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""how we hacked this project, and how you can too.""" start="00:27:23.900" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""Where it's at.""" start="00:27:28.720" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""How to find our forge.""" start="00:27:29.950" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""Emms has been hosted at the FSF's forge, Savannah,""" start="00:27:32.370" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""since around 2003.""" start="00:27:36.500" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""Emms is distributed via GNU ELPA and integrated into Emacs.""" start="00:27:39.840" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""Before ELPA it was distributed as a tarball""" start="00:27:46.230" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""via ftp.gnu.org but that stopped back in 2020.""" start="00:27:49.800" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""I was initially resistant to ELPA but around the time""" start="00:27:55.140" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""when the thousandth person asked me why Emms isn't on ELPA,""" start="00:27:58.720" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""I realized that it had to happen.""" start="00:28:03.850" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""Emms can also be found in other places""" start="00:28:07.210" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""such as Melpa or GitHub but we, the developers of Emms,""" start="00:28:10.600" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""have nothing to do with that""" start="00:28:16.080" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""and we don't monitor those channels.""" start="00:28:18.000" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""If you want the source straight from, well, the source,""" start="00:28:21.760" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""then go to the Savannah Git repository.""" start="00:28:26.300" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""Look who's talking: Where development discussion happens.""" start="00:28:30.370" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""If you want to talk to us, discussions all happen""" start="00:28:34.990" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""on emms-help@gnu.org.""" start="00:28:38.000" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""We used to use emms-patches@gnu.org""" start="00:28:41.430" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""but didn't feel like the volume of incoming patches""" start="00:28:45.560" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""justified a separate mailing list.""" start="00:28:48.280" video="mainVideo-emms" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""The Rime Of The Ancient Maintainer""" start="00:28:52.590" video="mainVideo-emms" id="subtitle"]]</div>[[!template text="""The Rime Of The Ancient Maintainer:""" start="00:28:52.590" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""There are a number of activities""" start="00:28:55.720" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""particular to being a maintainer.""" start="00:28:57.480" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""These are all part of a project's lifecycle.""" start="00:29:00.100" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""Let's review some of them.""" start="00:29:03.390" video="mainVideo-emms" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""The life and times of an Emms patch""" start="00:29:06.080" video="mainVideo-emms" id="subtitle"]]</div>[[!template text="""The life and times of an Emms patch:""" start="00:29:06.080" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""A maintainer needs to be able to accept, critique,""" start="00:29:10.000" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""and integrate patches from contributors and developers.""" start="00:29:13.240" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""This means, among other things, that the maintainer""" start="00:29:17.560" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""needs to keep on top of copyright issues.""" start="00:29:20.560" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""Before being able to add Emms to GNU/ELPA,""" start="00:29:24.470" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""we had to make sure that the copyright situation""" start="00:29:29.360" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""was in order.""" start="00:29:31.880" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""This long process required reaching out to people""" start="00:29:33.850" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""and having them assign the copyright""" start="00:29:37.520" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""for their work to the FSF,""" start="00:29:39.960" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""or even removing their code entirely""" start="00:29:42.510" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""if they couldn't be reached.""" start="00:29:45.200" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""The experience left me with the conviction""" start="00:29:47.970" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""that the easiest way to fix""" start="00:29:50.630" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""the copyright situation of your package""" start="00:29:52.400" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""is to ensure that it never gets broken in the first place.""" start="00:29:54.520" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""Often a person will write in to the emms-help mailing list,""" start="00:30:00.640" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""or perhaps raise an issue on IRC.""" start="00:30:04.440" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""If it's a bug report or feature request, we'll discuss it,""" start="00:30:08.030" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""and when it's fixed, we'll ask the reporter""" start="00:30:11.680" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""to test the result and provide feedback.""" start="00:30:14.160" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""If it's a patch, then we'll typically go one of three ways.""" start="00:30:17.640" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""A trivial patch, such as fixing a typo""" start="00:30:22.040" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""or corrections on a single line of code,""" start="00:30:24.800" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""will simply be applied by one of the developers.""" start="00:30:27.280" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""A non-trivial, but one-time patch,""" start="00:30:32.040" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""will have to be cleared from a copyright perspective.""" start="00:30:34.520" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""This means assigning copyright for the changes to the FSF.""" start="00:30:37.990" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""Once that's cleared, then the patch will be applied.""" start="00:30:42.420" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""Finally, if it's a non-trivial patch,""" start="00:30:46.320" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""which looks like it would be the start""" start="00:30:49.880" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""of a long-term development work (my favorite),""" start="00:30:52.080" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""then after copyright is cleared,""" start="00:30:56.010" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""that person will be offered to be added""" start="00:30:57.880" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""to the members with Git repo access on Savannah.""" start="00:31:00.800" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""From there, we usually use a dedicated branch""" start="00:31:05.020" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""to do all the playing around""" start="00:31:08.200" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""before merging it with the main Git repo.""" start="00:31:09.640" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""If you have ever sent a patch, feature request,""" start="00:31:13.630" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""or bug report into Emms (small or large), we thank you.""" start="00:31:16.880" video="mainVideo-emms" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Let It Go: The release process""" start="00:31:24.080" video="mainVideo-emms" id="subtitle"]]</div>[[!template text="""Let It Go, The Release Process:""" start="00:31:24.080" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""The maintainer is responsible for the release process.""" start="00:31:27.790" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""I found that a consistent schedule works well,""" start="00:31:31.610" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""which is not to say that we have to release on schedule,""" start="00:31:35.130" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""but that aiming for a consistent release schedule""" start="00:31:39.380" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""provides structure and a goal.""" start="00:31:42.760" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""The main Git branch in the repository is stable""" start="00:31:46.050" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""and more often than not of release quality.""" start="00:31:50.160" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""Releases are done about every three months.""" start="00:31:53.240" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""And with such a stable main branch,""" start="00:31:56.650" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""the process of releasing often involves little more""" start="00:31:59.000" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""than writing a NEWS entry.""" start="00:32:02.320" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""As a consequence, new and wonderful features""" start="00:32:05.060" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""which aren't quite ready for prime time""" start="00:32:08.440" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""when a release comes around,""" start="00:32:11.440" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""will remain safely in their branch on the Git repo""" start="00:32:13.500" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""until after the ELPA release.""" start="00:32:18.200" video="mainVideo-emms" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""It Is Not In Our Stars, But In Ourselves: Future directions""" start="00:32:23.400" video="mainVideo-emms" id="subtitle"]]</div>[[!template text="""It Is Not In Our Stars, But In Ourselves; Future Directions:""" start="00:32:23.400" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""One aspect of Emms that needs to improve is ease of setup.""" start="00:32:29.630" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""Now that might surprise you, since at the time of writing,""" start="00:32:34.900" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""it's already pretty easy.""" start="00:32:37.720" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""But my ideal is that the user would need to do""" start="00:32:40.070" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""nothing at all after installation.""" start="00:32:43.880" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""And with that, as a goal in mind,""" start="00:32:46.840" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""there is more work to be done.""" start="00:32:49.360" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""We are working on a player discovery feature.""" start="00:32:52.750" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""The idea is simple.""" start="00:32:55.500" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""The code looks for binaries of popular media players""" start="00:32:57.040" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""on the user's machine,""" start="00:33:00.080" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""and for each one found, it asks the user""" start="00:33:01.640" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""if they want the associated Emms player backend""" start="00:33:04.520" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""to be configured.""" start="00:33:07.520" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""In effect, this code is already working,""" start="00:33:09.810" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""but currently an undocumented, unofficial feature.""" start="00:33:12.590" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""You can try it for yourself with""" start="00:33:16.290" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""`emms-setup-discover-players`.""" start="00:33:17.720" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""So what's the holdup?""" start="00:33:21.080" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""`emms-setup-discover-players` currently configures""" start="00:33:22.970" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""the `emms-player-list` variable,""" start="00:33:26.040" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""but doesn't write it to disk.""" start="00:33:27.840" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""And that means that the configuration""" start="00:33:29.900" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""isn't preserved between Emacs sessions.""" start="00:33:31.680" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""The question then becomes,""" start="00:33:35.040" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""what is the best way to preserve this setting?""" start="00:33:36.900" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""I personally don't like anything""" start="00:33:40.310" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""to edit my .emacs except me,""" start="00:33:42.600" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""and I wouldn't do that to anyone else.""" start="00:33:46.200" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""Now we already write state to the .emacs.d/emms/ directory,""" start="00:33:49.280" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""but that would require care not to""" start="00:33:55.960" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""clobber a user's existing setup.""" start="00:33:58.360" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""Having the user set up their system in one place,""" start="00:34:01.910" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""such as a .emacs or a .emmsrc,""" start="00:34:04.720" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""while saving state to a different place""" start="00:34:08.840" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""is asking for confusion.""" start="00:34:11.420" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""This is a good example which I bring up""" start="00:34:14.210" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""of where a maintainer needs to""" start="00:34:16.720" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""solicit opinions from developers,""" start="00:34:18.400" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""both the Emacs developers,""" start="00:34:21.309" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""asking them where packages should save state,""" start="00:34:23.900" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""and the Emms developers, and also users.""" start="00:34:28.170" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""Then, the maintainer needs to""" start="00:34:33.170" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""carefully choose a path forward.""" start="00:34:35.440" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""It is typical of the kind of issue you have to have in mind""" start="00:34:38.020" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""when you're maintaining a package.""" start="00:34:41.560" video="mainVideo-emms" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Development policies: Interface language""" start="00:34:44.849" video="mainVideo-emms" id="subtitle"]]</div>[[!template text="""Development Policies: Interface Language.""" start="00:34:44.849" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""A maintainer of an interactive program such as Emms""" start="00:34:49.160" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""needs to think about user interaction.""" start="00:34:52.360" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""Emms doesn't use key bindings which are familiar""" start="00:34:55.360" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""to people who are used to GUI media players,""" start="00:34:58.400" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""and that can, and has, caused friction.""" start="00:35:02.720" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""Some new users are confused when they press the spacebar""" start="00:35:06.560" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""on an entry in the Emms browser,""" start="00:35:09.960" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""only to find that nothing starts playing.""" start="00:35:12.530" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""Indeed, all that does is to expand the browser tree""" start="00:35:15.460" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""at that point.""" start="00:35:18.680" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""Then they might press RET on the same entry,""" start="00:35:20.470" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""and be further frustrated at the continuing silence.""" start="00:35:23.000" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""Since what return does is just to add that entry at point""" start="00:35:28.260" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""to the current playlist.""" start="00:35:33.400" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""The discussion then arises""" start="00:35:36.170" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""about how Emms should handle that situation.""" start="00:35:37.760" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""On one hand, we want to make it as easy as possible""" start="00:35:41.820" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""for new users to learn Emms,""" start="00:35:45.560" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""and adopt a do-what-I-mean interface approach.""" start="00:35:48.820" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""On the other hand, this is an Emacs project.""" start="00:35:52.760" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""It isn't a stand-alone GUI media player,""" start="00:35:56.750" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""and should integrate into Emacs,""" start="00:35:59.440" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""and serve Emacs users first and foremost.""" start="00:36:01.400" video="mainVideo-emms" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Development policies: Freedom""" start="00:36:05.980" video="mainVideo-emms" id="subtitle"]]</div>[[!template text="""Development policies: Freedom.""" start="00:36:05.980" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""Another maintainer job is to think of Emms' posture""" start="00:36:10.290" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""in regards to software freedom.""" start="00:36:15.000" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""Here are a few examples.""" start="00:36:17.380" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""Back with MP3 was still a patent encumbered format,""" start="00:36:19.730" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""we pushed hard for Vorbis everywhere""" start="00:36:23.760" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""along with the PlayOgg campaign.""" start="00:36:26.081" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""A then popular music streaming service,""" start="00:36:29.640" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""which will remain unnamed,""" start="00:36:32.700" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""changed their stance towards third-party applications,""" start="00:36:34.930" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""and required individual API keys which could not be shared.""" start="00:36:38.620" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""We stood firm, said &quot;no&quot;,""" start="00:36:43.130" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""and removed support for that service.""" start="00:36:45.400" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""A recent suggestion to add support for YouTube""" start="00:36:48.670" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""was also nixed,""" start="00:36:51.360" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""because the particular backend""" start="00:36:53.890" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""was found to download and run proprietary javascript""" start="00:36:55.680" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""on the user's machine.""" start="00:36:58.960" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""Saying no to potentially useful or wanted features""" start="00:37:01.850" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""because it involves non-free software""" start="00:37:05.400" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""is often an unpopular decision and can alienate people.""" start="00:37:07.920" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""A maintainer needs to think carefully""" start="00:37:13.490" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""about each of these decisions,""" start="00:37:15.560" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""as they are rarely straightforward and one-sided.""" start="00:37:17.400" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""And as you see above, they also change over time""" start="00:37:21.920" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""and need to be re-evaluated.""" start="00:37:25.840" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""One of the most useful things a maintainer can do""" start="00:37:30.300" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""is to coordinate the development effort""" start="00:37:33.000" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""and help new people join the project.""" start="00:37:35.520" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""In light of that, if you want to work on a project""" start="00:37:39.230" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""which has a bit of everything,""" start="00:37:41.840" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""you could do worse than hacking on Emms.""" start="00:37:44.060" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""There is inter-process communication,""" start="00:37:47.810" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""displaying graphics, parsing binary files,""" start="00:37:49.720" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""caching, asynchronous processes, user interface design.""" start="00:37:52.480" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""We also are a project that insists on""" start="00:37:56.530" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""keeping a well-written and up-to-date manual.""" start="00:37:59.600" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""If you can write English or hack Emacs Lisp at all,""" start="00:38:02.960" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""chances are that there is something you can do for Emms.""" start="00:38:06.760" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""Just saying.""" start="00:38:09.940" video="mainVideo-emms" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Acknowledgements""" start="00:38:12.370" video="mainVideo-emms" id="subtitle"]]</div>[[!template text="""Acknowledgements:""" start="00:38:12.370" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""I'd like to express my deep gratitude for all of the people""" start="00:38:14.190" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""who have hacked on Emms""" start="00:38:18.080" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""during my time as a maintainer and before it.""" start="00:38:19.560" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""It is often the case that I'm just the person""" start="00:38:23.170" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""holding the rudder and steering the ship,""" start="00:38:25.760" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""with all of these developers""" start="00:38:28.560" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""rowing furiously to provide the power""" start="00:38:30.040" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""which actually moves the ship forward.""" start="00:38:33.180" video="mainVideo-emms" id="subtitle"]]
+[[!template text="""Thank you to all.""" start="00:38:36.370" video="mainVideo-emms" id="subtitle"]]
+
+</div>
+
+Captioner: yoni
+
+<div class="transcript transcript-qanda"><a name="emms-qanda-transcript"></a><h1>Q&A transcript (unedited)</h1>
+
+[[!template text="""[Speaker 0]: And I think we are live.""" start="00:00:06.140" video="qanda-emms" id="subtitle"]]
+[[!template text="""Hi, Yanny, how are you doing?""" start="00:00:07.580" video="qanda-emms" id="subtitle"]]
+[[!template text="""[Speaker 1]: Excellent, excellent. Doing very well,""" start="00:00:10.460" video="qanda-emms" id="subtitle"]]
+[[!template text="""thank you.""" start="00:00:10.960" video="qanda-emms" id="subtitle"]]
+[[!template text="""[Speaker 0]: So that was a wonderful presentation.""" start="00:00:13.980" video="qanda-emms" id="subtitle"]]
+[[!template text="""I first want to commend you on your ability""" start="00:00:17.440" video="qanda-emms" id="subtitle"]]
+[[!template text="""to both do the how the user encounters the""" start="00:00:22.040" video="qanda-emms" id="subtitle"]]
+[[!template text="""MMS, how the developer might be interested""" start="00:00:24.960" video="qanda-emms" id="subtitle"]]
+[[!template text="""about how it works, and I feel like you've""" start="00:00:28.680" video="qanda-emms" id="subtitle"]]
+[[!template text="""done a wonderful job of talking to absolutely""" start="00:00:30.720" video="qanda-emms" id="subtitle"]]
+[[!template text="""everyone in our audience,""" start="00:00:31.800" video="qanda-emms" id="subtitle"]]
+[[!template text="""whatever their skill level.""" start="00:00:32.840" video="qanda-emms" id="subtitle"]]
+[[!template text="""So thank you so much for this.""" start="00:00:34.120" video="qanda-emms" id="subtitle"]]
+[[!template text="""[Speaker 1]: Yeah, that of course runs the risk of being,""" start="00:00:37.800" video="qanda-emms" id="subtitle"]]
+[[!template text="""you know, good for some,""" start="00:00:41.580" video="qanda-emms" id="subtitle"]]
+[[!template text="""but excellent for none.""" start="00:00:42.980" video="qanda-emms" id="subtitle"]]
+[[!template text="""But hopefully the result is that people can""" start="00:00:46.960" video="qanda-emms" id="subtitle"]]
+[[!template text="""get something out of it.""" start="00:00:48.380" video="qanda-emms" id="subtitle"]]
+[[!template text="""I think it's very important to make sure that""" start="00:00:51.820" video="qanda-emms" id="subtitle"]]
+[[!template text="""everyone feels that they have access to""" start="00:00:55.680" video="qanda-emms" id="subtitle"]]
+[[!template text="""Emacs, they have access to EMMS,""" start="00:00:57.239" video="qanda-emms" id="subtitle"]]
+[[!template text="""that they can do this in whatever capacity""" start="00:01:00.640" video="qanda-emms" id="subtitle"]]
+[[!template text="""they want. It's for everyone.""" start="00:01:02.800" video="qanda-emms" id="subtitle"]]
+[[!template text="""I really believe that.""" start="00:01:05.440" video="qanda-emms" id="subtitle"]]
+[[!template text="""[Speaker 0]: Yeah, and I understand this risk about having""" start="00:01:09.440" video="qanda-emms" id="subtitle"]]
+[[!template text="""a talk that is kind of a jack-of-all-trades,""" start="00:01:10.680" video="qanda-emms" id="subtitle"]]
+[[!template text="""but frankly you've done a wonderful job of""" start="00:01:14.440" video="qanda-emms" id="subtitle"]]
+[[!template text="""making it interesting for everyone,""" start="00:01:16.560" video="qanda-emms" id="subtitle"]]
+[[!template text="""because also I think the parts worked really""" start="00:01:19.540" video="qanda-emms" id="subtitle"]]
+[[!template text="""well, and people always had something to look""" start="00:01:21.820" video="qanda-emms" id="subtitle"]]
+[[!template text="""forward in terms of their expertise of what""" start="00:01:24.240" video="qanda-emms" id="subtitle"]]
+[[!template text="""particularly spoke to them.""" start="00:01:25.360" video="qanda-emms" id="subtitle"]]
+[[!template text="""So thank you again. What I'm going to do,""" start="00:01:27.560" video="qanda-emms" id="subtitle"]]
+[[!template text="""we have about 14 minutes of Q&A,""" start="00:01:29.440" video="qanda-emms" id="subtitle"]]
+[[!template text="""So I'll invite people,""" start="00:01:30.760" video="qanda-emms" id="subtitle"]]
+[[!template text="""as I usually do, to add their questions in""" start="00:01:33.400" video="qanda-emms" id="subtitle"]]
+[[!template text="""the other pad that you can find on the talks""" start="00:01:35.320" video="qanda-emms" id="subtitle"]]
+[[!template text="""or on IRC. You can also join us in the""" start="00:01:38.560" video="qanda-emms" id="subtitle"]]
+[[!template text="""discussion. I will make sure this time to""" start="00:01:40.200" video="qanda-emms" id="subtitle"]]
+[[!template text="""ping Sasha to open the Q&A.""" start="00:01:42.180" video="qanda-emms" id="subtitle"]]
+[[!template text="""Can you open, I-V-E-M-M-S.""" start="00:01:44.680" video="qanda-emms" id="subtitle"]]
+[[!template text="""All right, and in the meantime,""" start="00:01:48.700" video="qanda-emms" id="subtitle"]]
+[[!template text="""whilst we wait for people to join us in the""" start="00:01:50.940" video="qanda-emms" id="subtitle"]]
+[[!template text="""room, I will start reading some of the""" start="00:01:52.360" video="qanda-emms" id="subtitle"]]
+[[!template text="""questions off the pad.""" start="00:01:53.960" video="qanda-emms" id="subtitle"]]
+[[!template text="""So we had the first question about the music""" start="00:01:57.180" video="qanda-emms" id="subtitle"]]
+[[!template text="""that we played during the launch break,""" start="00:01:58.780" video="qanda-emms" id="subtitle"]]
+[[!template text="""and It's 1 of our dear friends,""" start="00:02:01.320" video="qanda-emms" id="subtitle"]]
+[[!template text="""Shoshin Ganshangroh, a free album,""" start="00:02:05.200" video="qanda-emms" id="subtitle"]]
+[[!template text="""Basement Dazed. I've put the link in the pad""" start="00:02:09.360" video="qanda-emms" id="subtitle"]]
+[[!template text="""and we've been using Shoshin's music for the""" start="00:02:12.520" video="qanda-emms" id="subtitle"]]
+[[!template text="""last 3 years, I think,""" start="00:02:13.420" video="qanda-emms" id="subtitle"]]
+[[!template text="""and everyone, people are so excited.""" start="00:02:15.060" video="qanda-emms" id="subtitle"]]
+[[!template text="""Some people say, why is it so noisy in the""" start="00:02:17.220" video="qanda-emms" id="subtitle"]]
+[[!template text="""background? But it's just because there's 1""" start="00:02:18.480" video="qanda-emms" id="subtitle"]]
+[[!template text="""part of the different tracks that sounds like""" start="00:02:20.940" video="qanda-emms" id="subtitle"]]
+[[!template text="""static and it always gets people.""" start="00:02:24.280" video="qanda-emms" id="subtitle"]]
+[[!template text="""We should probably do something about this,""" start="00:02:25.900" video="qanda-emms" id="subtitle"]]
+[[!template text="""but frankly it makes me laugh every time.""" start="00:02:27.520" video="qanda-emms" id="subtitle"]]
+[[!template text="""Starting with the first actual question,""" start="00:02:30.460" video="qanda-emms" id="subtitle"]]
+[[!template text="""well actually it's a bit of a meme question,""" start="00:02:32.640" video="qanda-emms" id="subtitle"]]
+[[!template text="""for the next Emacs Con,""" start="00:02:34.340" video="qanda-emms" id="subtitle"]]
+[[!template text="""could we have an eMMS playlist to follow the""" start="00:02:37.280" video="qanda-emms" id="subtitle"]]
+[[!template text="""talks along?""" start="00:02:37.760" video="qanda-emms" id="subtitle"]]
+[[!template text="""[Speaker 1]: Oh that sounds like an excellent idea but I""" start="00:02:43.940" video="qanda-emms" id="subtitle"]]
+[[!template text="""guess I'm wondering what they mean exactly by""" start="00:02:46.560" video="qanda-emms" id="subtitle"]]
+[[!template text="""that. Is that a shareable playlist that we""" start="00:02:48.960" video="qanda-emms" id="subtitle"]]
+[[!template text="""can pass along and just have people go to a""" start="00:02:54.560" video="qanda-emms" id="subtitle"]]
+[[!template text="""URL and just be able to play that?""" start="00:02:56.320" video="qanda-emms" id="subtitle"]]
+[[!template text="""I think that's an excellent idea.""" start="00:02:58.620" video="qanda-emms" id="subtitle"]]
+[[!template text="""It should be a relatively low bandwidth""" start="00:03:00.660" video="qanda-emms" id="subtitle"]]
+[[!template text="""process.""" start="00:03:01.780" video="qanda-emms" id="subtitle"]]
+[[!template text="""[Speaker 0]: And it's typically the type of stuff that is""" start="00:03:06.580" video="qanda-emms" id="subtitle"]]
+[[!template text="""right of our alley. I'm thinking about the""" start="00:03:10.840" video="qanda-emms" id="subtitle"]]
+[[!template text="""ICS file that we produce for all the events""" start="00:03:15.480" video="qanda-emms" id="subtitle"]]
+[[!template text="""that are related to Emacs.""" start="00:03:17.020" video="qanda-emms" id="subtitle"]]
+[[!template text="""You know the workshop that happened in Paris""" start="00:03:18.820" video="qanda-emms" id="subtitle"]]
+[[!template text="""or in New York, LA? Sasha compiles a list of""" start="00:03:22.360" video="qanda-emms" id="subtitle"]]
+[[!template text="""all the events and when they happen,""" start="00:03:23.560" video="qanda-emms" id="subtitle"]]
+[[!template text="""and then we provide this to everyone.""" start="00:03:25.360" video="qanda-emms" id="subtitle"]]
+[[!template text="""And we can do very much the same with""" start="00:03:27.040" video="qanda-emms" id="subtitle"]]
+[[!template text="""EmacsConf. You could have a playlist for""" start="00:03:29.380" video="qanda-emms" id="subtitle"]]
+[[!template text="""EmacsConf 2023, where you get all the talks""" start="00:03:31.980" video="qanda-emms" id="subtitle"]]
+[[!template text="""and perhaps also the Q&A sessions so that you""" start="00:03:34.760" video="qanda-emms" id="subtitle"]]
+[[!template text="""can relieve the 16 hours of content that""" start="00:03:36.780" video="qanda-emms" id="subtitle"]]
+[[!template text="""we're producing. That'd be great,""" start="00:03:37.800" video="qanda-emms" id="subtitle"]]
+[[!template text="""that's a great idea I think.""" start="00:03:39.240" video="qanda-emms" id="subtitle"]]
+[[!template text="""[Speaker 1]: Absolutely, and if there are any limitations""" start="00:03:43.660" video="qanda-emms" id="subtitle"]]
+[[!template text="""in the Emacs playlist structure that things""" start="00:03:48.060" video="qanda-emms" id="subtitle"]]
+[[!template text="""are missing in the playlist structure,""" start="00:03:49.640" video="qanda-emms" id="subtitle"]]
+[[!template text="""then it would be a great impetus to implement""" start="00:03:53.040" video="qanda-emms" id="subtitle"]]
+[[!template text="""those and extend the playlist structure.""" start="00:03:55.080" video="qanda-emms" id="subtitle"]]
+[[!template text="""Because after all, it's Lisp,""" start="00:03:57.380" video="qanda-emms" id="subtitle"]]
+[[!template text="""it really is data and functions all mixed""" start="00:04:01.360" video="qanda-emms" id="subtitle"]]
+[[!template text="""together, so we can do that.""" start="00:04:03.160" video="qanda-emms" id="subtitle"]]
+[[!template text="""It would be very interesting to dive into it""" start="00:04:06.180" video="qanda-emms" id="subtitle"]]
+[[!template text="""and see what's missing.""" start="00:04:07.000" video="qanda-emms" id="subtitle"]]
+[[!template text="""That would be even more informative than what""" start="00:04:10.020" video="qanda-emms" id="subtitle"]]
+[[!template text="""it can do.""" start="00:04:10.680" video="qanda-emms" id="subtitle"]]
+[[!template text="""[Speaker 0]: Great. All right, moving on to the next""" start="00:04:14.900" video="qanda-emms" id="subtitle"]]
+[[!template text="""question. I like to use music and audiobooks""" start="00:04:17.000" video="qanda-emms" id="subtitle"]]
+[[!template text="""in very different ways.""" start="00:04:18.279" video="qanda-emms" id="subtitle"]]
+[[!template text="""With music, I like shuffling by artists and""" start="00:04:21.440" video="qanda-emms" id="subtitle"]]
+[[!template text="""with audiobooks, I want to read sequentially""" start="00:04:23.300" video="qanda-emms" id="subtitle"]]
+[[!template text="""and pick the same playlist over a couple of""" start="00:04:27.260" video="qanda-emms" id="subtitle"]]
+[[!template text="""days or weeks. Do you have any tips for using""" start="00:04:29.240" video="qanda-emms" id="subtitle"]]
+[[!template text="""these 2 opposing media's workflow?""" start="00:04:30.860" video="qanda-emms" id="subtitle"]]
+[[!template text="""[Speaker 1]: Yes, so I have similar situations where I""" start="00:04:38.520" video="qanda-emms" id="subtitle"]]
+[[!template text="""have very long endurance races that I watch,""" start="00:04:43.920" video="qanda-emms" id="subtitle"]]
+[[!template text="""which I do all my media consumption is done""" start="00:04:47.160" video="qanda-emms" id="subtitle"]]
+[[!template text="""via EMMS. I also listened to music.""" start="00:04:50.720" video="qanda-emms" id="subtitle"]]
+[[!template text="""And so there's also a middle in between.""" start="00:04:54.020" video="qanda-emms" id="subtitle"]]
+[[!template text="""There's 1 end in which you have popular""" start="00:04:57.980" video="qanda-emms" id="subtitle"]]
+[[!template text="""music. These are standalone songs that are""" start="00:05:01.560" video="qanda-emms" id="subtitle"]]
+[[!template text="""typically 3 to 4 minute long and they are""" start="00:05:04.860" video="qanda-emms" id="subtitle"]]
+[[!template text="""best consumed in a random you know order""" start="00:05:07.900" video="qanda-emms" id="subtitle"]]
+[[!template text="""because they are designed around,""" start="00:05:09.780" video="qanda-emms" id="subtitle"]]
+[[!template text="""you know, a commercial radio distribution.""" start="00:05:12.080" video="qanda-emms" id="subtitle"]]
+[[!template text="""I guess I'm dating myself by saying radio,""" start="00:05:15.140" video="qanda-emms" id="subtitle"]]
+[[!template text="""but you know all the that.""" start="00:05:17.120" video="qanda-emms" id="subtitle"]]
+[[!template text="""In the middle there are longer works like""" start="00:05:20.940" video="qanda-emms" id="subtitle"]]
+[[!template text="""musicals and classical where these are units""" start="00:05:26.100" video="qanda-emms" id="subtitle"]]
+[[!template text="""where they might be very long but you would""" start="00:05:30.200" video="qanda-emms" id="subtitle"]]
+[[!template text="""have several tracks that you do want to have""" start="00:05:33.160" video="qanda-emms" id="subtitle"]]
+[[!template text="""1 after the other, and you want to be able to""" start="00:05:35.600" video="qanda-emms" id="subtitle"]]
+[[!template text="""stop and go to the next track.""" start="00:05:38.360" video="qanda-emms" id="subtitle"]]
+[[!template text="""And then at the very, very other end,""" start="00:05:40.760" video="qanda-emms" id="subtitle"]]
+[[!template text="""you have extremely long format,""" start="00:05:44.020" video="qanda-emms" id="subtitle"]]
+[[!template text="""which is included in a single file,""" start="00:05:46.360" video="qanda-emms" id="subtitle"]]
+[[!template text="""such as an audio book,""" start="00:05:47.920" video="qanda-emms" id="subtitle"]]
+[[!template text="""a movie, a tutorial that you're watching,""" start="00:05:51.400" video="qanda-emms" id="subtitle"]]
+[[!template text="""or in my case, you know,""" start="00:05:54.100" video="qanda-emms" id="subtitle"]]
+[[!template text="""a 24 hour, the 24 hours of Le Mans,""" start="00:05:56.580" video="qanda-emms" id="subtitle"]]
+[[!template text="""just the 24 hour race,""" start="00:05:58.040" video="qanda-emms" id="subtitle"]]
+[[!template text="""which, you know, that's 1 heck of a file.""" start="00:06:01.120" video="qanda-emms" id="subtitle"]]
+[[!template text="""So that is 1 of the reasons eMMS has a number""" start="00:06:07.380" video="qanda-emms" id="subtitle"]]
+[[!template text="""of elements such as the meta playlist mode""" start="00:06:10.160" video="qanda-emms" id="subtitle"]]
+[[!template text="""and multiple playlists.""" start="00:06:11.260" video="qanda-emms" id="subtitle"]]
+[[!template text="""So I would say that they would open a number""" start="00:06:16.160" video="qanda-emms" id="subtitle"]]
+[[!template text="""of playlists in eMMS, generate a number of""" start="00:06:19.540" video="qanda-emms" id="subtitle"]]
+[[!template text="""playlists that have each class of media.""" start="00:06:26.040" video="qanda-emms" id="subtitle"]]
+[[!template text="""So the shorter form songs,""" start="00:06:28.940" video="qanda-emms" id="subtitle"]]
+[[!template text="""the more pop songs you have in 1 playlist""" start="00:06:33.580" video="qanda-emms" id="subtitle"]]
+[[!template text="""where you can sort, shuffle it,""" start="00:06:35.920" video="qanda-emms" id="subtitle"]]
+[[!template text="""you know, save it, do whatever you want.""" start="00:06:37.800" video="qanda-emms" id="subtitle"]]
+[[!template text="""Then a separate playlist for the long form""" start="00:06:41.980" video="qanda-emms" id="subtitle"]]
+[[!template text="""stuff. Sometimes that playlist will have even""" start="00:06:44.340" video="qanda-emms" id="subtitle"]]
+[[!template text="""only 1 file in it if it's long enough,""" start="00:06:48.960" video="qanda-emms" id="subtitle"]]
+[[!template text="""then have a key combination which takes you""" start="00:06:52.120" video="qanda-emms" id="subtitle"]]
+[[!template text="""directly to 1 playlist or the other,""" start="00:06:55.280" video="qanda-emms" id="subtitle"]]
+[[!template text="""and within the long-form playlist,""" start="00:06:57.340" video="qanda-emms" id="subtitle"]]
+[[!template text="""looking at the bookmarking function of EMMS,""" start="00:07:01.980" video="qanda-emms" id="subtitle"]]
+[[!template text="""which is designed around being able to save a""" start="00:07:06.560" video="qanda-emms" id="subtitle"]]
+[[!template text="""particular stopping point or multiple""" start="00:07:10.080" video="qanda-emms" id="subtitle"]]
+[[!template text="""stopping points, bookmarks in the audio,""" start="00:07:12.240" video="qanda-emms" id="subtitle"]]
+[[!template text="""and being able to jump back into that audio.""" start="00:07:15.300" video="qanda-emms" id="subtitle"]]
+[[!template text="""The point to remember about the bookmarking""" start="00:07:18.600" video="qanda-emms" id="subtitle"]]
+[[!template text="""feature is that sometimes it really depends""" start="00:07:23.720" video="qanda-emms" id="subtitle"]]
+[[!template text="""on you have to have the right back end.""" start="00:07:25.960" video="qanda-emms" id="subtitle"]]
+[[!template text="""Not all back ends with replaying,""" start="00:07:28.900" video="qanda-emms" id="subtitle"]]
+[[!template text="""not all types of media work well with a""" start="00:07:33.120" video="qanda-emms" id="subtitle"]]
+[[!template text="""bookmarking function, and bug reports""" start="00:07:36.200" video="qanda-emms" id="subtitle"]]
+[[!template text="""welcome. But also there are other backends""" start="00:07:38.960" video="qanda-emms" id="subtitle"]]
+[[!template text="""such as MPV where you can configure it that""" start="00:07:44.820" video="qanda-emms" id="subtitle"]]
+[[!template text="""when you quit playing the song or the media""" start="00:07:49.860" video="qanda-emms" id="subtitle"]]
+[[!template text="""with, you know, cue internally.""" start="00:07:55.080" video="qanda-emms" id="subtitle"]]
+[[!template text="""So sometimes the back end has to continue""" start="00:07:58.140" video="qanda-emms" id="subtitle"]]
+[[!template text="""playing that song. That's what I do in order""" start="00:08:04.400" video="qanda-emms" id="subtitle"]]
+[[!template text="""to, on 1 hand, switch over to a...""" start="00:08:07.560" video="qanda-emms" id="subtitle"]]
+[[!template text="""I want to hear... I'm coding,""" start="00:08:09.620" video="qanda-emms" id="subtitle"]]
+[[!template text="""I want to hear some music,""" start="00:08:10.800" video="qanda-emms" id="subtitle"]]
+[[!template text="""I go to my playlist of short songs,""" start="00:08:12.860" video="qanda-emms" id="subtitle"]]
+[[!template text="""then I'm sitting back and I want to watch a""" start="00:08:16.280" video="qanda-emms" id="subtitle"]]
+[[!template text="""long form something from where I left off and""" start="00:08:20.340" video="qanda-emms" id="subtitle"]]
+[[!template text="""there I go to the other playlist and use""" start="00:08:22.420" video="qanda-emms" id="subtitle"]]
+[[!template text="""bookmarks or the features of the back end""" start="00:08:26.140" video="qanda-emms" id="subtitle"]]
+[[!template text="""that I'm using.""" start="00:08:26.780" video="qanda-emms" id="subtitle"]]
+[[!template text="""[Speaker 0]: Okay, thank you for the answer.""" start="00:08:31.200" video="qanda-emms" id="subtitle"]]
+[[!template text="""We have about 7 minutes and we have more""" start="00:08:34.440" video="qanda-emms" id="subtitle"]]
+[[!template text="""questions, so that's great.""" start="00:08:35.280" video="qanda-emms" id="subtitle"]]
+[[!template text="""Moving on to the next 1.""" start="00:08:37.440" video="qanda-emms" id="subtitle"]]
+[[!template text="""Is there a way to search a music selection by""" start="00:08:40.080" video="qanda-emms" id="subtitle"]]
+[[!template text="""lyrics? Assuming those lyrics are in the""" start="00:08:42.080" video="qanda-emms" id="subtitle"]]
+[[!template text="""metadata or are available elsewhere,""" start="00:08:43.580" video="qanda-emms" id="subtitle"]]
+[[!template text="""it would be neat to call songs up from the""" start="00:08:46.300" video="qanda-emms" id="subtitle"]]
+[[!template text="""lyrics to the song. Perhaps is this""" start="00:08:48.660" video="qanda-emms" id="subtitle"]]
+[[!template text="""implemented so that you can all aliases,""" start="00:08:50.860" video="qanda-emms" id="subtitle"]]
+[[!template text="""so they can use aliases for the song that you""" start="00:08:54.560" video="qanda-emms" id="subtitle"]]
+[[!template text="""like, defining those aliases or shortcuts""" start="00:08:56.640" video="qanda-emms" id="subtitle"]]
+[[!template text="""either inside or outside eMMS?""" start="00:08:58.200" video="qanda-emms" id="subtitle"]]
+[[!template text="""Okay, so I think you've got 2 questions.""" start="00:08:59.760" video="qanda-emms" id="subtitle"]]
+[[!template text="""First about the lyrics and then the aliases.""" start="00:09:01.500" video="qanda-emms" id="subtitle"]]
+[[!template text="""[Speaker 1]: Yeah, so it's effectively not possible to do""" start="00:09:08.360" video="qanda-emms" id="subtitle"]]
+[[!template text="""right now. There's a sense in which it is,""" start="00:09:10.880" video="qanda-emms" id="subtitle"]]
+[[!template text="""but not really. What actually needs to""" start="00:09:14.820" video="qanda-emms" id="subtitle"]]
+[[!template text="""happen? The problem is that the caching""" start="00:09:18.840" video="qanda-emms" id="subtitle"]]
+[[!template text="""system is extremely naive.""" start="00:09:21.780" video="qanda-emms" id="subtitle"]]
+[[!template text="""It's just really a hash that's written to""" start="00:09:24.800" video="qanda-emms" id="subtitle"]]
+[[!template text="""disk. And maybe now with SQLite integration""" start="00:09:30.560" video="qanda-emms" id="subtitle"]]
+[[!template text="""or other or just the fact that computers have""" start="00:09:35.200" video="qanda-emms" id="subtitle"]]
+[[!template text="""a lot more speed and space than they used to""" start="00:09:39.220" video="qanda-emms" id="subtitle"]]
+[[!template text="""have, we need to expand the cache to be a lot""" start="00:09:43.340" video="qanda-emms" id="subtitle"]]
+[[!template text="""more greedy and a lot more flexible so that""" start="00:09:47.020" video="qanda-emms" id="subtitle"]]
+[[!template text="""we can store things such as lyrics in as part""" start="00:09:52.580" video="qanda-emms" id="subtitle"]]
+[[!template text="""of the metadata. There's no reason not to do""" start="00:09:56.000" video="qanda-emms" id="subtitle"]]
+[[!template text="""that. Unless your collection would have to be""" start="00:10:02.220" video="qanda-emms" id="subtitle"]]
+[[!template text="""truly enormous in order to slow things down.""" start="00:10:06.560" video="qanda-emms" id="subtitle"]]
+[[!template text="""We wouldn't even need to compress the lyrics""" start="00:10:09.860" video="qanda-emms" id="subtitle"]]
+[[!template text="""in order to store them like that.""" start="00:10:11.320" video="qanda-emms" id="subtitle"]]
+[[!template text="""But that is a goal. So our rewrite of the""" start="00:10:15.920" video="qanda-emms" id="subtitle"]]
+[[!template text="""cache is currently in progress,""" start="00:10:17.840" video="qanda-emms" id="subtitle"]]
+[[!template text="""and the goal is to have a system where you""" start="00:10:21.680" video="qanda-emms" id="subtitle"]]
+[[!template text="""can put any related information,""" start="00:10:24.920" video="qanda-emms" id="subtitle"]]
+[[!template text="""including lyrics, and map that to a""" start="00:10:30.060" video="qanda-emms" id="subtitle"]]
+[[!template text="""particular piece of the media,""" start="00:10:31.400" video="qanda-emms" id="subtitle"]]
+[[!template text="""be it a URL or a... So you could have in a""" start="00:10:36.900" video="qanda-emms" id="subtitle"]]
+[[!template text="""sense, you could have a URL to a lecture and""" start="00:10:40.080" video="qanda-emms" id="subtitle"]]
+[[!template text="""the metadata associated would be some text,""" start="00:10:44.440" video="qanda-emms" id="subtitle"]]
+[[!template text="""some notes or something else like that.""" start="00:10:47.600" video="qanda-emms" id="subtitle"]]
+[[!template text="""[Speaker 0]: Right, so that was about the lyrics.""" start="00:10:51.140" video="qanda-emms" id="subtitle"]]
+[[!template text="""I'm not sure how it answers the question""" start="00:10:53.040" video="qanda-emms" id="subtitle"]]
+[[!template text="""about the aliases. I mean you can still""" start="00:10:54.560" video="qanda-emms" id="subtitle"]]
+[[!template text="""filter what you've mentioned about the cache.""" start="00:10:56.380" video="qanda-emms" id="subtitle"]]
+[[!template text="""I think it's... Do we consider the aliases to""" start="00:10:59.240" video="qanda-emms" id="subtitle"]]
+[[!template text="""be anything within the metadata?""" start="00:11:01.120" video="qanda-emms" id="subtitle"]]
+[[!template text="""[Speaker 1]: No, you're right. That is a separate""" start="00:11:08.040" video="qanda-emms" id="subtitle"]]
+[[!template text="""question. I don't have a great answer for""" start="00:11:12.380" video="qanda-emms" id="subtitle"]]
+[[!template text="""that right now.""" start="00:11:12.980" video="qanda-emms" id="subtitle"]]
+[[!template text="""[Speaker 0]: Okay, great. Well, we'll put a pin on this""" start="00:11:16.280" video="qanda-emms" id="subtitle"]]
+[[!template text="""and we can return to it.""" start="00:11:17.440" video="qanda-emms" id="subtitle"]]
+[[!template text="""You can return to it at a later stage.""" start="00:11:19.690" video="qanda-emms" id="subtitle"]]
+[[!template text="""Yeah. All right, moving on to the next""" start="00:11:21.880" video="qanda-emms" id="subtitle"]]
+[[!template text="""question, then. I'll just,""" start="00:11:22.800" video="qanda-emms" id="subtitle"]]
+[[!template text="""we'll put a pin on this.""" start="00:11:25.180" video="qanda-emms" id="subtitle"]]
+[[!template text="""All right, next question.""" start="00:11:26.420" video="qanda-emms" id="subtitle"]]
+[[!template text="""Are there plans for managing metadata with""" start="00:11:29.020" video="qanda-emms" id="subtitle"]]
+[[!template text="""online resource backends,""" start="00:11:30.040" video="qanda-emms" id="subtitle"]]
+[[!template text="""i.e. Discogs or music brains?""" start="00:11:32.020" video="qanda-emms" id="subtitle"]]
+[[!template text="""What about something like Beats and Emacs or""" start="00:11:34.360" video="qanda-emms" id="subtitle"]]
+[[!template text="""part of the EMMS?""" start="00:11:34.920" video="qanda-emms" id="subtitle"]]
+[[!template text="""[Speaker 1]: Yeah, so that's an active discussion on the""" start="00:11:40.520" video="qanda-emms" id="subtitle"]]
+[[!template text="""mailing list right now.""" start="00:11:42.140" video="qanda-emms" id="subtitle"]]
+[[!template text="""We don't want to replicate what Beats does""" start="00:11:47.340" video="qanda-emms" id="subtitle"]]
+[[!template text="""very, very well in eMMS.""" start="00:11:49.680" video="qanda-emms" id="subtitle"]]
+[[!template text="""We don't want a clunky interface with Beats.""" start="00:11:53.860" video="qanda-emms" id="subtitle"]]
+[[!template text="""We do want some kind of,""" start="00:11:57.440" video="qanda-emms" id="subtitle"]]
+[[!template text="""and so it's hard to tell exactly where to""" start="00:12:00.100" video="qanda-emms" id="subtitle"]]
+[[!template text="""draw that line. So the big answer is yes,""" start="00:12:03.160" video="qanda-emms" id="subtitle"]]
+[[!template text="""absolutely, there is a plan to do that.""" start="00:12:04.960" video="qanda-emms" id="subtitle"]]
+[[!template text="""The details become complicated because for 1""" start="00:12:09.760" video="qanda-emms" id="subtitle"]]
+[[!template text="""thing, the backend, the database that""" start="00:12:15.900" video="qanda-emms" id="subtitle"]]
+[[!template text="""MusicBrain uses, AcoustID,""" start="00:12:18.140" video="qanda-emms" id="subtitle"]]
+[[!template text="""I don't remember if AcoustID is the binary or""" start="00:12:21.500" video="qanda-emms" id="subtitle"]]
+[[!template text="""the database, but that's actually for""" start="00:12:25.680" video="qanda-emms" id="subtitle"]]
+[[!template text="""non-commercial use only.""" start="00:12:27.500" video="qanda-emms" id="subtitle"]]
+[[!template text="""So not only do you need to compile a piece of""" start="00:12:31.320" video="qanda-emms" id="subtitle"]]
+[[!template text="""software on your computer as a shim,""" start="00:12:35.280" video="qanda-emms" id="subtitle"]]
+[[!template text="""which is what you need to do in order to set""" start="00:12:37.540" video="qanda-emms" id="subtitle"]]
+[[!template text="""up beats to do fingerprinting.""" start="00:12:39.180" video="qanda-emms" id="subtitle"]]
+[[!template text="""But it also crosses this line between""" start="00:12:44.720" video="qanda-emms" id="subtitle"]]
+[[!template text="""completely free software to completely free""" start="00:12:47.660" video="qanda-emms" id="subtitle"]]
+[[!template text="""software interfacing with a non-commercial""" start="00:12:49.400" video="qanda-emms" id="subtitle"]]
+[[!template text="""only service. So a lot of the discussion""" start="00:12:56.000" video="qanda-emms" id="subtitle"]]
+[[!template text="""that's going on now is what is the contour?""" start="00:12:58.660" video="qanda-emms" id="subtitle"]]
+[[!template text="""Where would be where we would be effective""" start="00:13:02.160" video="qanda-emms" id="subtitle"]]
+[[!template text="""for EMMS to do management and where not?""" start="00:13:08.720" video="qanda-emms" id="subtitle"]]
+[[!template text="""For 1 thing, I would love to be able to...""" start="00:13:11.600" video="qanda-emms" id="subtitle"]]
+[[!template text="""1 thing that we definitely would love to be""" start="00:13:13.980" video="qanda-emms" id="subtitle"]]
+[[!template text="""able to do is when you hit E on a file and""" start="00:13:18.340" video="qanda-emms" id="subtitle"]]
+[[!template text="""you get all the metadata to be able to then""" start="00:13:21.540" video="qanda-emms" id="subtitle"]]
+[[!template text="""give a command to say,""" start="00:13:23.000" video="qanda-emms" id="subtitle"]]
+[[!template text="""hey, play to music brains and see if you can""" start="00:13:25.320" video="qanda-emms" id="subtitle"]]
+[[!template text="""improve that metadata.""" start="00:13:26.200" video="qanda-emms" id="subtitle"]]
+[[!template text="""Do you have better metadata,""" start="00:13:29.020" video="qanda-emms" id="subtitle"]]
+[[!template text="""more complete metadata to complete that?""" start="00:13:33.400" video="qanda-emms" id="subtitle"]]
+[[!template text="""That is definitely in the pipeline.""" start="00:13:35.840" video="qanda-emms" id="subtitle"]]
+[[!template text="""How best to do it, that's a discussion.""" start="00:13:40.900" video="qanda-emms" id="subtitle"]]
+[[!template text="""[Speaker 0]: Okay, Yoni, we have about 2 minutes until we""" start="00:13:45.460" video="qanda-emms" id="subtitle"]]
+[[!template text="""need to go to the next talk.""" start="00:13:46.960" video="qanda-emms" id="subtitle"]]
+[[!template text="""Okay, I'll risk it. 1 more question and a""" start="00:13:52.960" video="qanda-emms" id="subtitle"]]
+[[!template text="""short answer if you can.""" start="00:13:53.800" video="qanda-emms" id="subtitle"]]
+[[!template text="""Have the developers considered using Emacs""" start="00:13:57.440" video="qanda-emms" id="subtitle"]]
+[[!template text="""customized functionality to persistently""" start="00:13:59.060" video="qanda-emms" id="subtitle"]]
+[[!template text="""store settings when using eMMS setup discover""" start="00:14:01.720" video="qanda-emms" id="subtitle"]]
+[[!template text="""players?""" start="00:14:02.120" video="qanda-emms" id="subtitle"]]
+[[!template text="""[Speaker 1]: Yes, absolutely. That's another active place,""" start="00:14:08.000" video="qanda-emms" id="subtitle"]]
+[[!template text="""especially with the discover players.""" start="00:14:11.840" video="qanda-emms" id="subtitle"]]
+[[!template text="""How to do it exactly without annoying people""" start="00:14:14.440" video="qanda-emms" id="subtitle"]]
+[[!template text="""and clobbering their own settings,""" start="00:14:17.840" video="qanda-emms" id="subtitle"]]
+[[!template text="""we just need to be very careful about that.""" start="00:14:20.360" video="qanda-emms" id="subtitle"]]
+[[!template text="""Yes, that's in the coming releases.""" start="00:14:23.040" video="qanda-emms" id="subtitle"]]
+[[!template text="""[Speaker 0]: All right, well, Younif,""" start="00:14:26.520" video="qanda-emms" id="subtitle"]]
+[[!template text="""thank you so much for your time.""" start="00:14:27.900" video="qanda-emms" id="subtitle"]]
+[[!template text="""Feel free to stay in the room.""" start="00:14:29.440" video="qanda-emms" id="subtitle"]]
+[[!template text="""I see that some people have started joining""" start="00:14:30.920" video="qanda-emms" id="subtitle"]]
+[[!template text="""on BBB. If you have more questions,""" start="00:14:33.720" video="qanda-emms" id="subtitle"]]
+[[!template text="""feel free to unmute yourself and ask them""" start="00:14:36.780" video="qanda-emms" id="subtitle"]]
+[[!template text="""live. Younid, I could ask you also to perhaps""" start="00:14:39.520" video="qanda-emms" id="subtitle"]]
+[[!template text="""answer the question. I've put the link to the""" start="00:14:41.600" video="qanda-emms" id="subtitle"]]
+[[!template text="""pad in the BBB chat, so if you look at the...""" start="00:14:43.980" video="qanda-emms" id="subtitle"]]
+[[!template text="""Here, I think, we're not mirrored on BBB.""" start="00:14:47.220" video="qanda-emms" id="subtitle"]]
+[[!template text="""If you look at the left you should be able to""" start="00:14:49.080" video="qanda-emms" id="subtitle"]]
+[[!template text="""see the chat and the questions and if you""" start="00:14:51.500" video="qanda-emms" id="subtitle"]]
+[[!template text="""could just answer the last question that""" start="00:14:52.720" video="qanda-emms" id="subtitle"]]
+[[!template text="""would be great. For us on the general track""" start="00:14:55.440" video="qanda-emms" id="subtitle"]]
+[[!template text="""we will be moving to the next talk and""" start="00:14:57.980" video="qanda-emms" id="subtitle"]]
+[[!template text="""Yannick do you have any last thing to say in""" start="00:14:59.700" video="qanda-emms" id="subtitle"]]
+[[!template text="""[Speaker 1]: Thank everyone who put together the""" start="00:15:02.720" video="qanda-emms" id="subtitle"]]
+[[!template text="""conference and thank you to everyone who""" start="00:15:04.320" video="qanda-emms" id="subtitle"]]
+[[!template text="""helps with the EMMS.""" start="00:15:06.680" video="qanda-emms" id="subtitle"]]
+[[!template text="""[Speaker 0]: 10 seconds? All right,""" start="00:15:08.160" video="qanda-emms" id="subtitle"]]
+[[!template text="""well, thank you so much,""" start="00:15:09.160" video="qanda-emms" id="subtitle"]]
+[[!template text="""Yoni. We'll probably see you later.""" start="00:15:10.940" video="qanda-emms" id="subtitle"]]
+[[!template text="""Bye-bye. Wonderful. And I think we are off""" start="00:15:17.720" video="qanda-emms" id="subtitle"]]
+[[!template text="""air. Thank you so much,""" start="00:15:18.620" video="qanda-emms" id="subtitle"]]
+[[!template text="""Juni. I need to step out and go take care of""" start="00:15:20.800" video="qanda-emms" id="subtitle"]]
+[[!template text="""[Speaker 1]: Okay, wonderful. Thank you very much.""" start="00:15:23.260" video="qanda-emms" id="subtitle"]]
+[[!template text="""[Speaker 0]: the next talk. Bye-bye.""" start="00:15:24.080" video="qanda-emms" id="subtitle"]]
+[[!template text="""And just to, I forgot to mention,""" start="00:15:25.520" video="qanda-emms" id="subtitle"]]
+[[!template text="""but you can still talk here and everything is""" start="00:15:27.160" video="qanda-emms" id="subtitle"]]
+[[!template text="""still being recorded. So,""" start="00:15:28.320" video="qanda-emms" id="subtitle"]]
+[[!template text="""I'll see you later.""" start="00:15:28.880" video="qanda-emms" id="subtitle"]]
+[[!template text="""[Speaker 2]: Excellent. Bye-bye. Bye.""" start="00:15:32.320" video="qanda-emms" id="subtitle"]]
+[[!template text="""[Speaker 3]: Oh, hello.""" start="00:15:35.600" video="qanda-emms" id="subtitle"]]
+[[!template text="""[Speaker 1]: Wait, you're still, I cannot hear you yet.""" start="00:15:40.600" video="qanda-emms" id="subtitle"]]
+[[!template text="""[Speaker 4]: You are currently the only person in this""" start="00:15:42.900" video="qanda-emms" id="subtitle"]]
+[[!template text="""conference.""" start="00:15:43.080" video="qanda-emms" id="subtitle"]]
+[[!template text="""[Speaker 2]: Okay.""" start="00:16:12.600" video="qanda-emms" id="subtitle"]]
+[[!template text="""[Speaker 3]: Can you hear me now? I just wanted to say hi""" start="00:16:18.120" video="qanda-emms" id="subtitle"]]
+[[!template text="""and thank you. My name's Grant.""" start="00:16:19.840" video="qanda-emms" id="subtitle"]]
+[[!template text="""I've, you helped me contribute to EMMS maybe""" start="00:16:23.740" video="qanda-emms" id="subtitle"]]
+[[!template text="""2 or 3 years ago. I was trying to do the""" start="00:16:26.820" video="qanda-emms" id="subtitle"]]
+[[!template text="""[Speaker 2]: So,""" start="00:16:28.480" video="qanda-emms" id="subtitle"]]
+[[!template text="""[Speaker 3]: track tag stuff. yeah.""" start="00:16:29.340" video="qanda-emms" id="subtitle"]]
+[[!template text="""So I just wanted to say thank you.""" start="00:16:32.148" video="qanda-emms" id="subtitle"]]
+[[!template text="""[Speaker 1]: Thank you for continuing and going through""" start="00:16:35.400" video="qanda-emms" id="subtitle"]]
+[[!template text="""that entire process. I know that 1 of the""" start="00:16:38.560" video="qanda-emms" id="subtitle"]]
+[[!template text="""things that happens is that people want to""" start="00:16:40.380" video="qanda-emms" id="subtitle"]]
+[[!template text="""contribute, but it's not as slick as GitHub""" start="00:16:43.940" video="qanda-emms" id="subtitle"]]
+[[!template text="""and stuff like that, especially with the""" start="00:16:46.080" video="qanda-emms" id="subtitle"]]
+[[!template text="""copper assignment. And objectively,""" start="00:16:53.400" video="qanda-emms" id="subtitle"]]
+[[!template text="""it's not that. It's just harder than what""" start="00:16:56.920" video="qanda-emms" id="subtitle"]]
+[[!template text="""they imagine it might be.""" start="00:16:58.680" video="qanda-emms" id="subtitle"]]
+[[!template text="""[Speaker 3]: Yeah. Well, I appreciate it.""" start="00:17:01.500" video="qanda-emms" id="subtitle"]]
+[[!template text="""I think you're doing a wonderful job as a""" start="00:17:03.340" video="qanda-emms" id="subtitle"]]
+[[!template text="""maintainer. I still hang out on the list and""" start="00:17:07.200" video="qanda-emms" id="subtitle"]]
+[[!template text="""enjoy listening in on the discussions.""" start="00:17:09.380" video="qanda-emms" id="subtitle"]]
+[[!template text="""So.""" start="00:17:09.960" video="qanda-emms" id="subtitle"]]
+[[!template text="""[Speaker 2]: Yeah. But that's it. I think that's it.""" start="00:17:14.240" video="qanda-emms" id="subtitle"]]
+[[!template text="""I think that's it. And I think that's it.""" start="00:17:16.700" video="qanda-emms" id="subtitle"]]
+[[!template text="""And I think that's it.""" start="00:17:17.640" video="qanda-emms" id="subtitle"]]
+[[!template text="""I appreciate it. And I'll leave you to all of""" start="00:17:23.339" video="qanda-emms" id="subtitle"]]
+[[!template text="""you to go on from being a product.""" start="00:17:27.781" video="qanda-emms" id="subtitle"]]
+[[!template text="""And that she valued to all of us long term""" start="00:17:28.088" video="qanda-emms" id="subtitle"]]
+[[!template text="""being a project.""" start="00:17:28.180" video="qanda-emms" id="subtitle"]]
+[[!template text="""[Speaker 1]: If you're not super duper active,""" start="00:17:31.460" video="qanda-emms" id="subtitle"]]
+[[!template text="""being there long term,""" start="00:17:33.420" video="qanda-emms" id="subtitle"]]
+[[!template text="""people tend to find it easier trying to""" start="00:17:37.360" video="qanda-emms" id="subtitle"]]
+[[!template text="""continue contributing to the project if""" start="00:17:40.840" video="qanda-emms" id="subtitle"]]
+[[!template text="""there's a consistency there,""" start="00:17:42.360" video="qanda-emms" id="subtitle"]]
+[[!template text="""if there isn't a churn,""" start="00:17:43.520" video="qanda-emms" id="subtitle"]]
+[[!template text="""if there is a kind of a core group.""" start="00:17:47.720" video="qanda-emms" id="subtitle"]]
+[[!template text="""I guess it's like, you think it's constant.""" start="00:17:52.440" video="qanda-emms" id="subtitle"]]
+[[!template text="""Eliezer Etzke and RMS,""" start="00:17:58.280" video="qanda-emms" id="subtitle"]]
+[[!template text="""whatever on the next mailing list,""" start="00:18:00.420" video="qanda-emms" id="subtitle"]]
+[[!template text="""You know, okay, there are certain people that""" start="00:18:03.040" video="qanda-emms" id="subtitle"]]
+[[!template text="""I think so. So thank you for that.""" start="00:18:05.600" video="qanda-emms" id="subtitle"]]
+[[!template text="""That's very important.""" start="00:18:06.340" video="qanda-emms" id="subtitle"]]
+[[!template text="""That helps.""" start="00:18:07.540" video="qanda-emms" id="subtitle"]]
+[[!template text="""[Speaker 3]: Yeah, I'm, I feel like when I started using""" start="00:18:12.560" video="qanda-emms" id="subtitle"]]
+[[!template text="""EMMS several years ago,""" start="00:18:14.180" video="qanda-emms" id="subtitle"]]
+[[!template text="""it's, it's improved a lot since then.""" start="00:18:16.500" video="qanda-emms" id="subtitle"]]
+[[!template text="""And I notice your focus on helping new users""" start="00:18:19.540" video="qanda-emms" id="subtitle"]]
+[[!template text="""get started quickly. And I think the talk""" start="00:18:22.540" video="qanda-emms" id="subtitle"]]
+[[!template text="""today will help with that too.""" start="00:18:23.840" video="qanda-emms" id="subtitle"]]
+[[!template text="""So""" start="00:18:24.160" video="qanda-emms" id="subtitle"]]
+[[!template text="""[Speaker 1]: yeah, I want to put you know,""" start="00:18:32.380" video="qanda-emms" id="subtitle"]]
+[[!template text="""the, especially the TLDR,""" start="00:18:33.860" video="qanda-emms" id="subtitle"]]
+[[!template text="""like how to start it on the link that to the""" start="00:18:37.500" video="qanda-emms" id="subtitle"]]
+[[!template text="""website, find somehow that we can get on to""" start="00:18:44.080" video="qanda-emms" id="subtitle"]]
+[[!template text="""prepare for that. And this together.""" start="00:18:52.900" video="qanda-emms" id="subtitle"]]
+[[!template text="""Now, question for you,""" start="00:18:54.700" video="qanda-emms" id="subtitle"]]
+[[!template text="""Where would you like to see EMMS go?""" start="00:18:58.260" video="qanda-emms" id="subtitle"]]
+[[!template text="""Where do you see it landing?""" start="00:18:59.440" video="qanda-emms" id="subtitle"]]
+[[!template text="""What do you feel like this is what this is""" start="00:19:02.780" video="qanda-emms" id="subtitle"]]
+[[!template text="""we're sorely missing these things?""" start="00:19:04.540" video="qanda-emms" id="subtitle"]]
+[[!template text="""[Speaker 3]: I don't know. I mean, I picked it up,""" start="00:19:09.740" video="qanda-emms" id="subtitle"]]
+[[!template text="""because I both use it to play my music""" start="00:19:13.540" video="qanda-emms" id="subtitle"]]
+[[!template text="""collection, but also, like I record my own""" start="00:19:17.100" video="qanda-emms" id="subtitle"]]
+[[!template text="""music. And I wanted to be able to edit my""" start="00:19:20.140" video="qanda-emms" id="subtitle"]]
+[[!template text="""metadata in Emacs, because editing metadata""" start="00:19:23.500" video="qanda-emms" id="subtitle"]]
+[[!template text="""elsewhere sucks. And so that's kind of why I""" start="00:19:29.100" video="qanda-emms" id="subtitle"]]
+[[!template text="""got involved with that.""" start="00:19:30.280" video="qanda-emms" id="subtitle"]]
+[[!template text="""And I was like, being able to edit metadata,""" start="00:19:33.440" video="qanda-emms" id="subtitle"]]
+[[!template text="""especially for content that maybe you're""" start="00:19:37.580" video="qanda-emms" id="subtitle"]]
+[[!template text="""creating or because I have a bunch of files""" start="00:19:41.760" video="qanda-emms" id="subtitle"]]
+[[!template text="""of just unlabeled stuff I've recorded on,""" start="00:19:44.340" video="qanda-emms" id="subtitle"]]
+[[!template text="""you know, different quarters,""" start="00:19:45.340" video="qanda-emms" id="subtitle"]]
+[[!template text="""things like that. So that's kind of where I""" start="00:19:47.440" video="qanda-emms" id="subtitle"]]
+[[!template text="""was focusing on it. It's the only media tool""" start="00:19:50.320" video="qanda-emms" id="subtitle"]]
+[[!template text="""that lets me do that, you know,""" start="00:19:52.540" video="qanda-emms" id="subtitle"]]
+[[!template text="""I can play the music back and have quick""" start="00:19:54.520" video="qanda-emms" id="subtitle"]]
+[[!template text="""editing. So I know there was a couple of""" start="00:19:58.260" video="qanda-emms" id="subtitle"]]
+[[!template text="""things we had talked about in terms of maybe""" start="00:20:00.860" video="qanda-emms" id="subtitle"]]
+[[!template text="""improving kind of the user interface for the""" start="00:20:03.260" video="qanda-emms" id="subtitle"]]
+[[!template text="""tag editor, things like that.""" start="00:20:05.440" video="qanda-emms" id="subtitle"]]
+[[!template text="""So I don't have any grand visions for where""" start="00:20:09.300" video="qanda-emms" id="subtitle"]]
+[[!template text="""EMMS should go. I know pretty much all the""" start="00:20:15.660" video="qanda-emms" id="subtitle"]]
+[[!template text="""things I've heard about it already.""" start="00:20:16.920" video="qanda-emms" id="subtitle"]]
+[[!template text="""You can hook up to GNU FM,""" start="00:20:20.200" video="qanda-emms" id="subtitle"]]
+[[!template text="""the Scrabbling Service,""" start="00:20:21.940" video="qanda-emms" id="subtitle"]]
+[[!template text="""and all that kind of stuff.""" start="00:20:23.200" video="qanda-emms" id="subtitle"]]
+[[!template text="""I don't really feel like it's missing much,""" start="00:20:26.920" video="qanda-emms" id="subtitle"]]
+[[!template text="""especially being able to choose the back""" start="00:20:29.020" video="qanda-emms" id="subtitle"]]
+[[!template text="""ends. I guess, if anything,""" start="00:20:31.880" video="qanda-emms" id="subtitle"]]
+[[!template text="""it's the interface. How can it be even more""" start="00:20:34.960" video="qanda-emms" id="subtitle"]]
+[[!template text="""intuitive for users? And I think that,""" start="00:20:38.160" video="qanda-emms" id="subtitle"]]
+[[!template text="""you know, we need more people playing around""" start="00:20:41.500" video="qanda-emms" id="subtitle"]]
+[[!template text="""with it, I guess. Yeah.""" start="00:20:43.380" video="qanda-emms" id="subtitle"]]
+[[!template text="""[Speaker 2]: I think a really good""" start="00:20:46.220" video="qanda-emms" id="subtitle"]]
+[[!template text="""[Speaker 1]: Well, yeah. example of that is,""" start="00:20:47.520" video="qanda-emms" id="subtitle"]]
+[[!template text="""because I'm sure there are lots of people""" start="00:20:49.240" video="qanda-emms" id="subtitle"]]
+[[!template text="""playing around with it,""" start="00:20:50.440" video="qanda-emms" id="subtitle"]]
+[[!template text="""arriving at a conclusion,""" start="00:20:51.460" video="qanda-emms" id="subtitle"]]
+[[!template text="""keeping it to themselves and moving on.""" start="00:20:53.860" video="qanda-emms" id="subtitle"]]
+[[!template text="""Yeah. Which, and I know that a lot of bits of""" start="00:20:59.160" video="qanda-emms" id="subtitle"]]
+[[!template text="""software put a send a bug report feature in""" start="00:21:01.820" video="qanda-emms" id="subtitle"]]
+[[!template text="""and stuff like that and no 1 uses those""" start="00:21:04.660" video="qanda-emms" id="subtitle"]]
+[[!template text="""either. So that's the frictional cost.""" start="00:21:07.600" video="qanda-emms" id="subtitle"]]
+[[!template text="""I think the context switch for people between""" start="00:21:10.440" video="qanda-emms" id="subtitle"]]
+[[!template text="""this doesn't work to actually formulating in""" start="00:21:16.120" video="qanda-emms" id="subtitle"]]
+[[!template text="""words what didn't work,""" start="00:21:17.840" video="qanda-emms" id="subtitle"]]
+[[!template text="""that is a very expensive context which most""" start="00:21:21.380" video="qanda-emms" id="subtitle"]]
+[[!template text="""people will not do. And we're poorer for""" start="00:21:24.800" video="qanda-emms" id="subtitle"]]
+[[!template text="""that. So, I think that when we integrate""" start="00:21:32.220" video="qanda-emms" id="subtitle"]]
+[[!template text="""music brains and other things like that into.""" start="00:21:34.740" video="qanda-emms" id="subtitle"]]
+[[!template text="""Now, of course, music brains will probably,""" start="00:21:37.460" video="qanda-emms" id="subtitle"]]
+[[!template text="""it would be very funny if you pull up your""" start="00:21:41.200" video="qanda-emms" id="subtitle"]]
+[[!template text="""stuff, right? Something that you wrote and""" start="00:21:43.480" video="qanda-emms" id="subtitle"]]
+[[!template text="""you say, hey, music brains match this and""" start="00:21:46.080" video="qanda-emms" id="subtitle"]]
+[[!template text="""it's not there, then it'll probably suggest""" start="00:21:48.600" video="qanda-emms" id="subtitle"]]
+[[!template text="""[Speaker 3]: Yeah, I've heard that.""" start="00:21:51.720" video="qanda-emms" id="subtitle"]]
+[[!template text="""[Speaker 1]: some wild things. Yeah,""" start="00:21:52.660" video="qanda-emms" id="subtitle"]]
+[[!template text="""because there are, there was a system I was""" start="00:21:58.260" video="qanda-emms" id="subtitle"]]
+[[!template text="""looking at its code for researching stuff for""" start="00:22:02.060" video="qanda-emms" id="subtitle"]]
+[[!template text="""EMS And I'm trying to remember what it's""" start="00:22:04.480" video="qanda-emms" id="subtitle"]]
+[[!template text="""named. It begins with a J,""" start="00:22:05.720" video="qanda-emms" id="subtitle"]]
+[[!template text="""it's this media player,""" start="00:22:07.160" video="qanda-emms" id="subtitle"]]
+[[!template text="""free floss media player that it's like a""" start="00:22:13.780" video="qanda-emms" id="subtitle"]]
+[[!template text="""media server that can cast to a television""" start="00:22:17.020" video="qanda-emms" id="subtitle"]]
+[[!template text="""and stuff like that. And I asked it to""" start="00:22:20.940" video="qanda-emms" id="subtitle"]]
+[[!template text="""automatically label things and the results""" start="00:22:24.280" video="qanda-emms" id="subtitle"]]
+[[!template text="""were horrible. It thought that half of my""" start="00:22:28.180" video="qanda-emms" id="subtitle"]]
+[[!template text="""songs were movies. It thought that JPEGs were""" start="00:22:32.960" video="qanda-emms" id="subtitle"]]
+[[!template text="""songs. It just, it did some,""" start="00:22:35.800" video="qanda-emms" id="subtitle"]]
+[[!template text="""it did incredibly, it's not a solved problem,""" start="00:22:40.520" video="qanda-emms" id="subtitle"]]
+[[!template text="""I think. So the, what I'm thinking with""" start="00:22:44.660" video="qanda-emms" id="subtitle"]]
+[[!template text="""MusicBrainz and those services is that you""" start="00:22:49.340" video="qanda-emms" id="subtitle"]]
+[[!template text="""hit a button and you have you get another""" start="00:22:51.840" video="qanda-emms" id="subtitle"]]
+[[!template text="""pane with a suggestion and you either and you""" start="00:22:57.040" video="qanda-emms" id="subtitle"]]
+[[!template text="""can copy through you can say okay copy this""" start="00:22:59.060" video="qanda-emms" id="subtitle"]]
+[[!template text="""and this in this field over or reject the""" start="00:23:01.560" video="qanda-emms" id="subtitle"]]
+[[!template text="""suggestion and maybe get another 1.""" start="00:23:03.960" video="qanda-emms" id="subtitle"]]
+[[!template text="""So,""" start="00:23:04.940" video="qanda-emms" id="subtitle"]]
+[[!template text="""[Speaker 3]: Yeah, I like that a lot.""" start="00:23:07.360" video="qanda-emms" id="subtitle"]]
+[[!template text="""That's more like a diff,""" start="00:23:09.160" video="qanda-emms" id="subtitle"]]
+[[!template text="""right? Like you get the diff between the 2""" start="00:23:11.280" video="qanda-emms" id="subtitle"]]
+[[!template text="""and you can apply which changes you like.""" start="00:23:13.540" video="qanda-emms" id="subtitle"]]
+[[!template text="""Yeah. Was it Jellyfin?""" start="00:23:15.580" video="qanda-emms" id="subtitle"]]
+[[!template text="""Is that... Jellyfin? Yeah,""" start="00:23:18.220" video="qanda-emms" id="subtitle"]]
+[[!template text="""[Speaker 1]: Jellyfin, yes.""" start="00:23:19.460" video="qanda-emms" id="subtitle"]]
+[[!template text="""[Speaker 3]: Yeah, And when that happened,""" start="00:23:22.340" video="qanda-emms" id="subtitle"]]
+[[!template text="""did it clobber all your metadata?""" start="00:23:24.960" video="qanda-emms" id="subtitle"]]
+[[!template text="""Or does it just label stuff?""" start="00:23:27.440" video="qanda-emms" id="subtitle"]]
+[[!template text="""[Speaker 2]: No, it...""" start="00:23:28.860" video="qanda-emms" id="subtitle"]]
+[[!template text="""[Speaker 1]: Escalate things somewhere inside it and to""" start="00:23:38.240" video="qanda-emms" id="subtitle"]]
+[[!template text="""looking for really, not allow me to do very""" start="00:23:49.020" video="qanda-emms" id="subtitle"]]
+[[!template text="""easily. So I was, so, you know,""" start="00:23:54.640" video="qanda-emms" id="subtitle"]]
+[[!template text="""on 1 hand, it makes me feel,""" start="00:23:56.660" video="qanda-emms" id="subtitle"]]
+[[!template text="""oh, we're not the only ones dealing with""" start="00:23:58.980" video="qanda-emms" id="subtitle"]]
+[[!template text="""this. We're not the only ones struggling with""" start="00:24:00.680" video="qanda-emms" id="subtitle"]]
+[[!template text="""this. On the other hand,""" start="00:24:01.440" video="qanda-emms" id="subtitle"]]
+[[!template text="""it would be nice if that's a paragon that we""" start="00:24:05.660" video="qanda-emms" id="subtitle"]]
+[[!template text="""can look to and say, this is a wonderful way""" start="00:24:08.460" video="qanda-emms" id="subtitle"]]
+[[!template text="""of doing it. Let's incorporate as much of""" start="00:24:11.320" video="qanda-emms" id="subtitle"]]
+[[!template text="""[Speaker 3]: Yeah, it's a tricky problem,""" start="00:24:15.180" video="qanda-emms" id="subtitle"]]
+[[!template text="""especially if you're modifying people's media""" start="00:24:18.220" video="qanda-emms" id="subtitle"]]
+[[!template text="""files you know so""" start="00:24:19.780" video="qanda-emms" id="subtitle"]]
+[[!template text="""[Speaker 1]: that as we can. yeah I'm also very convinced""" start="00:24:23.040" video="qanda-emms" id="subtitle"]]
+[[!template text="""that so I'm not a mainframe for MMS because""" start="00:24:31.560" video="qanda-emms" id="subtitle"]]
+[[!template text="""I'm old and curmudgeonly essentially in my,""" start="00:24:35.020" video="qanda-emms" id="subtitle"]]
+[[!template text="""in the way they do it.""" start="00:24:37.660" video="qanda-emms" id="subtitle"]]
+[[!template text="""And honestly, I rarely ever,""" start="00:24:40.080" video="qanda-emms" id="subtitle"]]
+[[!template text="""I use the MMS browser when I need to debug""" start="00:24:42.780" video="qanda-emms" id="subtitle"]]
+[[!template text="""the MS browser. I don't,""" start="00:24:44.240" video="qanda-emms" id="subtitle"]]
+[[!template text="""I use very simple commands and I even rarely""" start="00:24:48.740" video="qanda-emms" id="subtitle"]]
+[[!template text="""look at the playlists.""" start="00:24:50.440" video="qanda-emms" id="subtitle"]]
+[[!template text="""That was 1 of the things because when I got""" start="00:24:53.940" video="qanda-emms" id="subtitle"]]
+[[!template text="""into MMS originally when my eyesight started""" start="00:24:56.680" video="qanda-emms" id="subtitle"]]
+[[!template text="""going so I had to rely less and less on GUI""" start="00:24:59.640" video="qanda-emms" id="subtitle"]]
+[[!template text="""interfaces. So that was,""" start="00:25:02.800" video="qanda-emms" id="subtitle"]]
+[[!template text="""so to this day that's how I use EMMS.""" start="00:25:06.340" video="qanda-emms" id="subtitle"]]
+[[!template text="""[Speaker 3]: Yeah, it's interesting.""" start="00:25:08.560" video="qanda-emms" id="subtitle"]]
+[[!template text="""I remember running into a browser bug because""" start="00:25:13.260" video="qanda-emms" id="subtitle"]]
+[[!template text="""I think just my age, like,""" start="00:25:15.480" video="qanda-emms" id="subtitle"]]
+[[!template text="""I want to be able to tab through and like""" start="00:25:18.120" video="qanda-emms" id="subtitle"]]
+[[!template text="""that was a huge that that changed recently""" start="00:25:20.060" video="qanda-emms" id="subtitle"]]
+[[!template text="""right where you tab and it unfolds in the""" start="00:25:22.640" video="qanda-emms" id="subtitle"]]
+[[!template text="""browser but yeah I realized that people use""" start="00:25:27.620" video="qanda-emms" id="subtitle"]]
+[[!template text="""emms in so many different ways just like any""" start="00:25:30.600" video="qanda-emms" id="subtitle"]]
+[[!template text="""piece of emacs there's there's many ways to""" start="00:25:36.020" video="qanda-emms" id="subtitle"]]
+[[!template text="""do it but appreciate your time I'm gonna""" start="00:25:39.960" video="qanda-emms" id="subtitle"]]
+[[!template text="""actually put together this Christmas tree""" start="00:25:41.880" video="qanda-emms" id="subtitle"]]
+[[!template text="""[Speaker 0]: So. Wonderful.""" start="00:25:43.400" video="qanda-emms" id="subtitle"]]
+[[!template text="""[Speaker 3]: behind me. Yeah, just wanted to say hi,""" start="00:25:45.260" video="qanda-emms" id="subtitle"]]
+[[!template text="""meet you in person. But yeah.""" start="00:25:50.900" video="qanda-emms" id="subtitle"]]
+[[!template text="""[Speaker 1]: Yeah, excellent. I appreciate it a lot and we""" start="00:25:54.340" video="qanda-emms" id="subtitle"]]
+[[!template text="""generate""" start="00:25:55.080" video="qanda-emms" id="subtitle"]]
+[[!template text="""[Speaker 2]: some interesting questions.""" start="00:25:59.960" video="qanda-emms" id="subtitle"]]
+[[!template text="""Yeah, thank you.""" start="00:26:00.780" video="qanda-emms" id="subtitle"]]
+[[!template text="""[Speaker 4]: You are currently the only person in this""" start="00:26:03.760" video="qanda-emms" id="subtitle"]]
+[[!template text="""conference.""" start="00:26:03.960" video="qanda-emms" id="subtitle"]]
+[[!template text="""[Speaker 1]: I'm going to have a look at the questions""" start="00:26:13.480" video="qanda-emms" id="subtitle"]]
+[[!template text="""here.""" start="00:26:14.060" video="qanda-emms" id="subtitle"]]
+[[!template text="""Let's see. Let's see. So there is,""" start="00:26:29.440" video="qanda-emms" id="subtitle"]]
+[[!template text="""okay. There's a question here.""" start="00:26:32.900" video="qanda-emms" id="subtitle"]]
+[[!template text="""I like what you said about balancing the""" start="00:26:34.540" video="qanda-emms" id="subtitle"]]
+[[!template text="""concern for software freedom with the worry""" start="00:26:36.140" video="qanda-emms" id="subtitle"]]
+[[!template text="""that this might alienate the package user.""" start="00:26:38.360" video="qanda-emms" id="subtitle"]]
+[[!template text="""I wonder if you have advice for other""" start="00:26:39.960" video="qanda-emms" id="subtitle"]]
+[[!template text="""maintainers how to communicate this sort of""" start="00:26:41.720" video="qanda-emms" id="subtitle"]]
+[[!template text="""thing diplomatically? Yes,""" start="00:26:43.660" video="qanda-emms" id="subtitle"]]
+[[!template text="""when you have to deny implementing a feature""" start="00:26:45.660" video="qanda-emms" id="subtitle"]]
+[[!template text="""for a freedom reason. This in fact happens""" start="00:26:48.480" video="qanda-emms" id="subtitle"]]
+[[!template text="""all the time. A recent example of this was a""" start="00:26:56.140" video="qanda-emms" id="subtitle"]]
+[[!template text="""YouTube download, right,""" start="00:26:58.380" video="qanda-emms" id="subtitle"]]
+[[!template text="""the YouTube download feature.""" start="00:26:59.540" video="qanda-emms" id="subtitle"]]
+[[!template text="""At the time, okay, so stepping back,""" start="00:27:04.040" video="qanda-emms" id="subtitle"]]
+[[!template text="""the request was to have a YouTube download""" start="00:27:07.440" video="qanda-emms" id="subtitle"]]
+[[!template text="""feature integrated strongly into eMMS so that""" start="00:27:11.940" video="qanda-emms" id="subtitle"]]
+[[!template text="""you put in a YouTube URL and you can download""" start="00:27:16.260" video="qanda-emms" id="subtitle"]]
+[[!template text="""the video and play it.""" start="00:27:17.640" video="qanda-emms" id="subtitle"]]
+[[!template text="""And the question isn't really whether you can""" start="00:27:22.080" video="qanda-emms" id="subtitle"]]
+[[!template text="""chain YouTube Downloader or 1 of those things""" start="00:27:24.660" video="qanda-emms" id="subtitle"]]
+[[!template text="""into your EMMS configuration.""" start="00:27:26.600" video="qanda-emms" id="subtitle"]]
+[[!template text="""You can do whatever you want.""" start="00:27:28.140" video="qanda-emms" id="subtitle"]]
+[[!template text="""But the question is, does EMMS actually""" start="00:27:30.840" video="qanda-emms" id="subtitle"]]
+[[!template text="""integrate with it really,""" start="00:27:33.340" video="qanda-emms" id="subtitle"]]
+[[!template text="""really strongly to the extent where it tells""" start="00:27:35.740" video="qanda-emms" id="subtitle"]]
+[[!template text="""you oh you don't need to download install""" start="00:27:37.800" video="qanda-emms" id="subtitle"]]
+[[!template text="""please go ahead and install that or whatever""" start="00:27:40.320" video="qanda-emms" id="subtitle"]]
+[[!template text="""and at the time we checked it we found out""" start="00:27:43.740" video="qanda-emms" id="subtitle"]]
+[[!template text="""that you know the version that we were""" start="00:27:45.800" video="qanda-emms" id="subtitle"]]
+[[!template text="""looking at of the YouTube download or YTDLP""" start="00:27:49.280" video="qanda-emms" id="subtitle"]]
+[[!template text="""or whatever it was called,""" start="00:27:51.720" video="qanda-emms" id="subtitle"]]
+[[!template text="""actually downloaded a good amount of""" start="00:27:56.200" video="qanda-emms" id="subtitle"]]
+[[!template text="""proprietary JavaScript onto your machine and""" start="00:27:59.200" video="qanda-emms" id="subtitle"]]
+[[!template text="""ran it, just as if you were going on to the""" start="00:28:02.300" video="qanda-emms" id="subtitle"]]
+[[!template text="""YouTube page, which is not for me to tell""" start="00:28:06.560" video="qanda-emms" id="subtitle"]]
+[[!template text="""people not to do if they want to do that,""" start="00:28:09.980" video="qanda-emms" id="subtitle"]]
+[[!template text="""but it's absolutely for me not to cause to""" start="00:28:16.240" video="qanda-emms" id="subtitle"]]
+[[!template text="""happen on the user's machine without them.""" start="00:28:18.540" video="qanda-emms" id="subtitle"]]
+[[!template text="""1 of the last thing that I want to do in the""" start="00:28:21.480" video="qanda-emms" id="subtitle"]]
+[[!template text="""world is have a user inside Emacs press a""" start="00:28:25.980" video="qanda-emms" id="subtitle"]]
+[[!template text="""button and have proprietary software get""" start="00:28:29.760" video="qanda-emms" id="subtitle"]]
+[[!template text="""downloaded behind their back and run on their""" start="00:28:32.300" video="qanda-emms" id="subtitle"]]
+[[!template text="""machine that would be disastrous so we had to""" start="00:28:38.240" video="qanda-emms" id="subtitle"]]
+[[!template text="""say no we had to say that's I'm sorry that's""" start="00:28:41.380" video="qanda-emms" id="subtitle"]]
+[[!template text="""beyond the pale and in fact in doing so some""" start="00:28:47.060" video="qanda-emms" id="subtitle"]]
+[[!template text="""people who were using this system said,""" start="00:28:51.100" video="qanda-emms" id="subtitle"]]
+[[!template text="""actually I had no idea it was doing this""" start="00:28:53.900" video="qanda-emms" id="subtitle"]]
+[[!template text="""behind my back. I thought it was just magic.""" start="00:28:56.660" video="qanda-emms" id="subtitle"]]
+[[!template text="""I thought it was a YouTube video without any""" start="00:28:58.860" video="qanda-emms" id="subtitle"]]
+[[!template text="""freedom issues. I'm going to look into it or""" start="00:29:01.580" video="qanda-emms" id="subtitle"]]
+[[!template text="""I'm going to stop using it.""" start="00:29:03.120" video="qanda-emms" id="subtitle"]]
+[[!template text="""So my advice would be Stand firm and just be""" start="00:29:11.180" video="qanda-emms" id="subtitle"]]
+[[!template text="""Not not preachy. Don't tell people what they""" start="00:29:15.040" video="qanda-emms" id="subtitle"]]
+[[!template text="""need to do be very clear about what you stand""" start="00:29:19.580" video="qanda-emms" id="subtitle"]]
+[[!template text="""for and what the project stands for,""" start="00:29:21.900" video="qanda-emms" id="subtitle"]]
+[[!template text="""and so they very clearly know where you""" start="00:29:28.660" video="qanda-emms" id="subtitle"]]
+[[!template text="""stand. And I think that people actually""" start="00:29:30.460" video="qanda-emms" id="subtitle"]]
+[[!template text="""appreciate that more than a political answer,""" start="00:29:36.540" video="qanda-emms" id="subtitle"]]
+[[!template text="""right? That has been my experience.""" start="00:29:43.540" video="qanda-emms" id="subtitle"]]
+[[!template text="""Now, excuse me, taking into account that 1 or""" start="00:29:49.800" video="qanda-emms" id="subtitle"]]
+[[!template text="""2 people will tell you,""" start="00:29:52.200" video="qanda-emms" id="subtitle"]]
+[[!template text="""this is terrible. I'm leaving.""" start="00:29:54.960" video="qanda-emms" id="subtitle"]]
+[[!template text="""[Speaker 2]: If you do this,""" start="00:30:00.550" video="qanda-emms" id="subtitle"]]
+[[!template text="""[Speaker 1]: This is useless. you're free software or""" start="00:30:01.460" video="qanda-emms" id="subtitle"]]
+[[!template text="""whatever, and just leave.""" start="00:30:03.400" video="qanda-emms" id="subtitle"]]
+[[!template text="""But some people are ornery.""" start="00:30:05.860" video="qanda-emms" id="subtitle"]]
+[[!template text="""That's not necessarily something bad that you""" start="00:30:09.360" video="qanda-emms" id="subtitle"]]
+[[!template text="""did. But that has happened.""" start="00:30:11.680" video="qanda-emms" id="subtitle"]]
+[[!template text="""There are multiple stories.""" start="00:30:14.200" video="qanda-emms" id="subtitle"]]
+[[!template text="""Because the MMS is so old,""" start="00:30:16.840" video="qanda-emms" id="subtitle"]]
+[[!template text="""there are multiple points in which non-free""" start="00:30:20.080" video="qanda-emms" id="subtitle"]]
+[[!template text="""software intersected with the EMS because of""" start="00:30:23.940" video="qanda-emms" id="subtitle"]]
+[[!template text="""multimedia and we had to go the other""" start="00:30:28.580" video="qanda-emms" id="subtitle"]]
+[[!template text="""direction and so far it has served EMS well""" start="00:30:33.300" video="qanda-emms" id="subtitle"]]
+[[!template text="""like the project has died as a result.""" start="00:30:38.240" video="qanda-emms" id="subtitle"]]
+[[!template text="""Of course, can't prove a negative,""" start="00:30:39.800" video="qanda-emms" id="subtitle"]]
+[[!template text="""don't know where we would be if we had taken,""" start="00:30:42.040" video="qanda-emms" id="subtitle"]]
+[[!template text="""gone down that route. I'm pretty sure we""" start="00:30:44.760" video="qanda-emms" id="subtitle"]]
+[[!template text="""would need a new ELPA,""" start="00:30:46.100" video="qanda-emms" id="subtitle"]]
+[[!template text="""and I think being so clearly integrated with""" start="00:30:50.860" video="qanda-emms" id="subtitle"]]
+[[!template text="""emacs is a huge benefit to eMMS because it's""" start="00:30:55.040" video="qanda-emms" id="subtitle"]]
+[[!template text="""it allows people to install it very easily.""" start="00:30:57.660" video="qanda-emms" id="subtitle"]]
+[[!template text="""And those are all the questions that I can""" start="00:31:08.760" video="qanda-emms" id="subtitle"]]
+[[!template text="""see.""" start="00:31:09.020" video="qanda-emms" id="subtitle"]]
+[[!template text="""[Speaker 2]: You""" start="00:31:15.060" video="qanda-emms" id="subtitle"]]
+
+</div>Questions or comments? Please e-mail [emacsconf-org-private@gnu.org](mailto:emacsconf-org-private@gnu.org?subject=Comment%20for%20EmacsConf%202023%20emms%3A%20Emacs%20MultiMedia%20System%20%28EMMS%29)
<!-- End of emacsconf-publish-after-page -->
diff --git a/2023/info/emms-before.md b/2023/info/emms-before.md
index 6fa31cc8..876b22c8 100644
--- a/2023/info/emms-before.md
+++ b/2023/info/emms-before.md
@@ -1,12 +1,46 @@
<!-- Automatically generated by emacsconf-publish-before-page -->
[[!toc ]]
-Format: 40-min talk
-Discuss on IRC: [#emacsconf](https://chat.emacsconf.org/?join=emacsconf)
-Status: Waiting for video from speaker
+Format: 39-min talk ; Q&A: BigBlueButton conference room
+Status: Q&A to be extracted from the room recordings
+# Talk
+
+<div class="vid mainVideo"><video controls preload="none" id="mainVideo-emms"><source src="https://media.emacsconf.org/2023/emacsconf-2023-emms--emacs-multimedia-system-emms--yoni-rabkin--main.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2023/captions/emacsconf-2023-emms--emacs-multimedia-system-emms--yoni-rabkin--main.vtt" default />"""<track kind="chapters" label="Chapters" src="/2023/captions/emacsconf-2023-emms--emacs-multimedia-system-emms--yoni-rabkin--main--chapters.vtt" /><p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video>[[!template id="chapters" vidid="mainVideo-emms" data="""
+00:00.000 Introduction
+01:03.320 The structure of this talk
+01:21.320 Introduction to Emms: The practical part
+08:04.240 The modeline
+11:01.200 Meta-playlist mode
+11:29.860 The browser
+13:19.920 How Emms works: The technical part
+16:23.820 The Emms core
+16:36.440 Tracks
+17:18.460 Playlist
+18:22.080 Sources
+19:22.160 Players
+20:20.520 Info
+21:36.660 The cache
+22:51.620 Healthy back and forth: mpv, mpd, and GNU.FM
+23:31.560 MPV
+24:47.470 MPD
+26:07.440 GNU FM and Libre FM
+27:12.560 How we work: Emms development
+28:52.590 The Rime Of The Ancient Maintainer
+29:06.080 The life and times of an Emms patch
+31:24.080 Let It Go: The release process
+32:23.400 It Is Not In Our Stars, But In Ourselves: Future directions
+34:44.849 Development policies: Interface language
+36:05.980 Development policies: Freedom
+38:12.370 Acknowledgements
+
+"""]]<div></div>Duration: 38:38 minutes<div class="files resources"><ul><li><a href="https://pad.emacsconf.org/2023-emms">Open Etherpad</a></li><li><a href="https://bbb.emacsverse.org/playback/presentation/2.0/playback.html?meetingId=8b33cba3581e35350526d5dfcaf8fdacae21884f-1701622838637">Play recording from BigBlueButton</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-emms--emacs-multimedia-system-emms--yoni-rabkin--intro.vtt">Download --intro.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-emms--emacs-multimedia-system-emms--yoni-rabkin--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-emms--emacs-multimedia-system-emms--yoni-rabkin--main--chapters.vtt">Download --main--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-emms--emacs-multimedia-system-emms--yoni-rabkin--main.opus">Download --main.opus (21MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-emms--emacs-multimedia-system-emms--yoni-rabkin--main.vtt">Download --main.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-emms--emacs-multimedia-system-emms--yoni-rabkin--main.webm">Download --main.webm (139MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-emms--emacs-multimedia-system-emms--yoni-rabkin.outline">Download .outline</a></li><li><a href="https://toobnix.org/w/ppdF62LysvxpXgZVaeF9wk">View on Toobnix</a></li><li><a href="https://www.youtube.com/watch?v=kII413hkyis">View on Youtube</a></li></ul></div></div>
+
+# Q&A
+
+<div class="vid qanda"><video controls preload="none" id="qanda-emms"><source src="https://media.emacsconf.org/2023/emacsconf-2023-emms--emacs-multimedia-system-emms--yoni-rabkin--answers.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2023/captions/emacsconf-2023-emms--emacs-multimedia-system-emms--yoni-rabkin--answers.vtt" default />"""<p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video><div>Listen to just the audio:<br /><audio controls preload="none" id="qanda-emms-audio" src="https://media.emacsconf.org/2023/emacsconf-2023-emms--emacs-multimedia-system-emms--yoni-rabkin--answers.opus"></audio></div><div></div>Duration: 32:38 minutes<div class="files resources"><ul><li><a href="https://pad.emacsconf.org/2023-emms">Open Etherpad</a></li><li><a href="https://bbb.emacsverse.org/playback/presentation/2.0/playback.html?meetingId=8b33cba3581e35350526d5dfcaf8fdacae21884f-1701622838637">Play recording from BigBlueButton</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-emms--emacs-multimedia-system-emms--yoni-rabkin--answers.json">Download --answers.json (1.3MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-emms--emacs-multimedia-system-emms--yoni-rabkin--answers.opus">Download --answers.opus (19MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-emms--emacs-multimedia-system-emms--yoni-rabkin--answers.vtt">Download --answers.vtt</a> (unedited)</li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-emms--emacs-multimedia-system-emms--yoni-rabkin--answers.webm">Download --answers.webm (52MB)</a></li></ul></div></div>
# Description
<!-- End of emacsconf-publish-before-page --> \ No newline at end of file
diff --git a/2023/info/emms-nav.md b/2023/info/emms-nav.md
index f79dc12e..b38582cc 100644
--- a/2023/info/emms-nav.md
+++ b/2023/info/emms-nav.md
@@ -1,7 +1,7 @@
<div class="talk-nav">
Back to the [[talks]]
-Previous by track: <a href="/2023/talks/eat">Eat and Eat powered Eshell, fast featureful terminal inside Emacs</a>
-Next by track: <a href="/2023/talks/mentor">Mentoring VS-Coders as an Emacsian (or How to show not tell people about the wonders of Emacs)</a>
-Track: <span class="sched-track General">General</span>
+Previous by track: <a href="/2023/talks/cubing">Speedcubing in Emacs</a>
+Next by track: <a href="/2023/talks/steno">Programming with steno</a>
+Track: <span class="sched-track General">General</span> - <strong><a href="https://emacsconf.org/2023/watch/gen">Watch</a></strong>
</div>
diff --git a/2023/info/eval-after.md b/2023/info/eval-after.md
index 8815b464..780cdf3c 100644
--- a/2023/info/eval-after.md
+++ b/2023/info/eval-after.md
@@ -1,7 +1,218 @@
<!-- Automatically generated by emacsconf-publish-after-page -->
-Questions or comments? Please e-mail [Alhassy@gmail.com](mailto:Alhassy@gmail.com?subject=Comment%20for%20EmacsConf%202022%20eval%3A%20Editor%20Integrated%20REPL%20Driven%20Development%20for%20all%20languages)
+<div class="transcript transcript-mainVideo"><a name="eval-mainVideo-transcript"></a><h1>Transcript</h1>
+
+
+<div class="transcript-heading">[[!template new="1" text="""Introduction""" start="00:00:04.880" video="mainVideo-eval" id="subtitle"]]</div>[[!template text="""Hello, and welcome to EmacsConf 2023!""" start="00:00:04.880" video="mainVideo-eval" id="subtitle"]]
+[[!template text="""My name is Musa Al-hassy,""" start="00:00:10.001" video="mainVideo-eval" id="subtitle"]]
+[[!template text="""and I will be talking about &quot;REPL-driven development.&quot;""" start="00:00:12.109" video="mainVideo-eval" id="subtitle"]]
+[[!template text="""I like programming languages so much.""" start="00:00:15.549" video="mainVideo-eval" id="subtitle"]]
+[[!template text="""I want to use them all over the place.""" start="00:00:18.269" video="mainVideo-eval" id="subtitle"]]
+[[!template text="""I got a PhD in the topic.""" start="00:00:20.269" video="mainVideo-eval" id="subtitle"]]
+[[!template text="""So let's just dive in.""" start="00:00:23.069" video="mainVideo-eval" id="subtitle"]]
+[[!template text="""This is a lightning talk,""" start="00:00:25.349" video="mainVideo-eval" id="subtitle"]]
+[[!template text="""so the details will be available in the repository.""" start="00:00:27.949" video="mainVideo-eval" id="subtitle"]]
+[[!template text="""Links to longer videos and GIFs""" start="00:00:31.309" video="mainVideo-eval" id="subtitle"]]
+[[!template text="""for those who are interested.""" start="00:00:33.469" video="mainVideo-eval" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""The wonders of C-x C-e""" start="00:00:35.989" video="mainVideo-eval" id="subtitle"]]</div>[[!template text="""So the wonderful thing about Emacs""" start="00:00:35.989" video="mainVideo-eval" id="subtitle"]]
+[[!template text="""is that you can execute Lisp anywhere.""" start="00:00:37.309" video="mainVideo-eval" id="subtitle"]]
+[[!template text="""For example, I can go to this piece of Lisp,""" start="00:00:40.589" video="mainVideo-eval" id="subtitle"]]
+[[!template text="""press Ctrl-x Ctrl-e (`C-x C-e`)""" start="00:00:42.829" video="mainVideo-eval" id="subtitle"]]
+[[!template text="""and get a little pop-up.""" start="00:00:45.576" video="mainVideo-eval" id="subtitle"]]
+[[!template text="""Alright, so here I pressed `C-x C-e`""" start="00:00:47.549" video="mainVideo-eval" id="subtitle"]]
+[[!template text="""and this is what it ran.""" start="00:00:49.669" video="mainVideo-eval" id="subtitle"]]
+[[!template text="""And what this package gives you""" start="00:00:51.389" video="mainVideo-eval" id="subtitle"]]
+[[!template text="""is the same ability""" start="00:00:52.776" video="mainVideo-eval" id="subtitle"]]
+[[!template text="""for any language of your choosing.""" start="00:00:54.509" video="mainVideo-eval" id="subtitle"]]
+[[!template text="""So for example, here is some Java,""" start="00:00:56.909" video="mainVideo-eval" id="subtitle"]]
+[[!template text="""and I bound it to Ctrl-x, Ctrl-j (`C-x C-j`).""" start="00:00:59.229" video="mainVideo-eval" id="subtitle"]]
+[[!template text="""So I say `C-x C-j`, and this runs some code,""" start="00:01:02.469" video="mainVideo-eval" id="subtitle"]]
+[[!template text="""and over here I get a little pop-up.""" start="00:01:07.149" video="mainVideo-eval" id="subtitle"]]
+[[!template text="""The wonderful thing about""" start="00:01:13.709" video="mainVideo-eval" id="subtitle"]]
+[[!template text="""being able to run code from anywhere""" start="00:01:15.069" video="mainVideo-eval" id="subtitle"]]
+[[!template text="""is that you can keep it in normal text files""" start="00:01:16.829" video="mainVideo-eval" id="subtitle"]]
+[[!template text="""or any kind of file you like.""" start="00:01:19.029" video="mainVideo-eval" id="subtitle"]]
+[[!template text="""For example, you can have hyperlinks,""" start="00:01:20.629" video="mainVideo-eval" id="subtitle"]]
+[[!template text="""as it were…, like this one.""" start="00:01:23.669" video="mainVideo-eval" id="subtitle"]]
+[[!template text="""`C-x C-e`, and now we can see this down here.""" start="00:01:25.109" video="mainVideo-eval" id="subtitle"]]
+[[!template text="""Learn about it.""" start="00:01:28.549" video="mainVideo-eval" id="subtitle"]]
+[[!template text="""But being able to run other languages besides Emacs""" start="00:01:30.789" video="mainVideo-eval" id="subtitle"]]
+[[!template text="""lets us do some interesting things.""" start="00:01:34.189" video="mainVideo-eval" id="subtitle"]]
+[[!template text="""For example, in the middle of a JavaScript program,""" start="00:01:36.149" video="mainVideo-eval" id="subtitle"]]
+[[!template text="""you might write a line like this. `C-x C-n`.""" start="00:01:39.589" video="mainVideo-eval" id="subtitle"]]
+[[!template text="""And that says down here""" start="00:01:43.429" video="mainVideo-eval" id="subtitle"]]
+[[!template text="""`javascript-eval` in the mode line,""" start="00:01:45.229" video="mainVideo-eval" id="subtitle"]]
+[[!template text="""and so this just checks that some endpoint""" start="00:01:47.269" video="mainVideo-eval" id="subtitle"]]
+[[!template text="""is working as intended.""" start="00:01:49.643" video="mainVideo-eval" id="subtitle"]]
+[[!template text="""So you don't need to use an external tool""" start="00:01:51.189" video="mainVideo-eval" id="subtitle"]]
+[[!template text="""to check endpoints.""" start="00:01:52.749" video="mainVideo-eval" id="subtitle"]]
+[[!template text="""You can just use Emacs in your favorite language.""" start="00:01:53.589" video="mainVideo-eval" id="subtitle"]]
+[[!template text="""You know, you can keep your spirit up.""" start="00:01:57.469" video="mainVideo-eval" id="subtitle"]]
+[[!template text="""So, `C-x C-a` runs `applescript-eval`.""" start="00:01:59.629" video="mainVideo-eval" id="subtitle"]]
+[[!template text="""[Computer]: You can do it, buddy.""" start="00:02:03.709" video="mainVideo-eval" id="subtitle"]]
+[[!template text="""[Musa]: Maybe you heard that in the background?""" start="00:02:06.376" video="mainVideo-eval" id="subtitle"]]
+[[!template text="""The cool thing is, your code immediately takes form.""" start="00:02:13.269" video="mainVideo-eval" id="subtitle"]]
+[[!template text="""Right away, you see it doing things, you know,""" start="00:02:15.389" video="mainVideo-eval" id="subtitle"]]
+[[!template text="""altering your environment.""" start="00:02:18.469" video="mainVideo-eval" id="subtitle"]]
+[[!template text="""For example, this is JavaScript,""" start="00:02:20.349" video="mainVideo-eval" id="subtitle"]]
+[[!template text="""and JavaScript here is gonna change Emacs for us.""" start="00:02:24.429" video="mainVideo-eval" id="subtitle"]]
+[[!template text="""So `C-x C-n`. And you can see down here""" start="00:02:28.349" video="mainVideo-eval" id="subtitle"]]
+[[!template text="""`javascript-eval` was invoked.""" start="00:02:32.109" video="mainVideo-eval" id="subtitle"]]
+[[!template text="""It returned true, and this line of JavaScript""" start="00:02:34.669" video="mainVideo-eval" id="subtitle"]]
+[[!template text="""altered our Emacs. So that's really nice.""" start="00:02:38.789" video="mainVideo-eval" id="subtitle"]]
+[[!template text="""So you don't need to use just Emacs Lisp if you like.""" start="00:02:41.709" video="mainVideo-eval" id="subtitle"]]
+[[!template text="""You can use other systems.""" start="00:02:43.749" video="mainVideo-eval" id="subtitle"]]
+[[!template text="""As you saw, the output is shown in overlays.""" start="00:02:46.149" video="mainVideo-eval" id="subtitle"]]
+[[!template text="""So here's, for example, `C-x C-p` to run""" start="00:02:50.069" video="mainVideo-eval" id="subtitle"]]
+[[!template text="""some Python code.""" start="00:02:52.869" video="mainVideo-eval" id="subtitle"]]
+[[!template text="""Notice it blinked in red""" start="00:02:54.109" video="mainVideo-eval" id="subtitle"]]
+[[!template text="""because I thought red was nice.""" start="00:02:55.476" video="mainVideo-eval" id="subtitle"]]
+[[!template text="""You can configure as you like.""" start="00:02:56.869" video="mainVideo-eval" id="subtitle"]]
+[[!template text="""And if you hover over it,""" start="00:02:58.389" video="mainVideo-eval" id="subtitle"]]
+[[!template text="""you can see the solution there,""" start="00:02:59.409" video="mainVideo-eval" id="subtitle"]]
+[[!template text="""and you can see it in a variety of familiar ways""" start="00:03:01.869" video="mainVideo-eval" id="subtitle"]]
+[[!template text="""if you use `C-x C-e` regularly.""" start="00:03:04.669" video="mainVideo-eval" id="subtitle"]]
+[[!template text="""You can insert the results.""" start="00:03:08.709" video="mainVideo-eval" id="subtitle"]]
+[[!template text="""You can find documentation about them.""" start="00:03:09.989" video="mainVideo-eval" id="subtitle"]]
+[[!template text="""The idea here is that""" start="00:03:14.269" video="mainVideo-eval" id="subtitle"]]
+[[!template text="""you have this familiar Lisp workflow""" start="00:03:15.989" video="mainVideo-eval" id="subtitle"]]
+[[!template text="""with `C-x C-e`, and this package ports it over""" start="00:03:20.389" video="mainVideo-eval" id="subtitle"]]
+[[!template text="""to your favorite language out.""" start="00:03:24.989" video="mainVideo-eval" id="subtitle"]]
+[[!template text="""So you can eval things,""" start="00:03:27.069" video="mainVideo-eval" id="subtitle"]]
+[[!template text="""you can insert them, and do as you like.""" start="00:03:28.343" video="mainVideo-eval" id="subtitle"]]
+[[!template text="""I think that's really neat.""" start="00:03:30.789" video="mainVideo-eval" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""An overview of REPL Driven Development""" start="00:03:35.809" video="mainVideo-eval" id="subtitle"]]</div>[[!template text="""This package allows you to do""" start="00:03:35.809" video="mainVideo-eval" id="subtitle"]]
+[[!template text="""REPL driven development.""" start="00:03:37.209" video="mainVideo-eval" id="subtitle"]]
+[[!template text="""In that, you can use it to grow your program.""" start="00:03:39.109" video="mainVideo-eval" id="subtitle"]]
+[[!template text="""You don't need to restart it.""" start="00:03:42.309" video="mainVideo-eval" id="subtitle"]]
+[[!template text="""You can see changes live.""" start="00:03:43.709" video="mainVideo-eval" id="subtitle"]]
+[[!template text="""So here's, for example, this is in a Java runtime.""" start="00:03:45.549" video="mainVideo-eval" id="subtitle"]]
+[[!template text="""You can see some balls bouncing around.""" start="00:03:50.149" video="mainVideo-eval" id="subtitle"]]
+[[!template text="""I don't really know which one is the second one,""" start="00:03:52.869" video="mainVideo-eval" id="subtitle"]]
+[[!template text="""but let's increase its size. `C-x C-j`.""" start="00:03:54.509" video="mainVideo-eval" id="subtitle"]]
+[[!template text="""And this one increased in size,""" start="00:03:57.229" video="mainVideo-eval" id="subtitle"]]
+[[!template text="""and you can see down here I pressed `C-x C-j`.""" start="00:04:00.189" video="mainVideo-eval" id="subtitle"]]
+[[!template text="""Let's change the color to blue,""" start="00:04:02.189" video="mainVideo-eval" id="subtitle"]]
+[[!template text="""`C-x C-j`, the color is blue.""" start="00:04:05.549" video="mainVideo-eval" id="subtitle"]]
+[[!template text="""So all these changes are happening live.""" start="00:04:09.309" video="mainVideo-eval" id="subtitle"]]
+[[!template text="""Three balls isn't really a ball pit.""" start="00:04:12.376" video="mainVideo-eval" id="subtitle"]]
+[[!template text="""Let's go to 50 balls. There you go.""" start="00:04:14.429" video="mainVideo-eval" id="subtitle"]]
+[[!template text="""So it's nice that you can do this""" start="00:04:18.989" video="mainVideo-eval" id="subtitle"]]
+[[!template text="""without leaving your environment,""" start="00:04:21.469" video="mainVideo-eval" id="subtitle"]]
+[[!template text="""without building, you can rapidly modify and see.""" start="00:04:23.209" video="mainVideo-eval" id="subtitle"]]
+[[!template text="""I think that's nice.""" start="00:04:26.189" video="mainVideo-eval" id="subtitle"]]
+[[!template text="""Unfortunately, I'm at the halfway point,""" start="00:04:29.776" video="mainVideo-eval" id="subtitle"]]
+[[!template text="""so I won't be able to work through""" start="00:04:32.829" video="mainVideo-eval" id="subtitle"]]
+[[!template text="""some of these nice problems,""" start="00:04:35.309" video="mainVideo-eval" id="subtitle"]]
+[[!template text="""but you can see the videos""" start="00:04:37.109" video="mainVideo-eval" id="subtitle"]]
+[[!template text="""or GIFs on the associated repo.""" start="00:04:38.676" video="mainVideo-eval" id="subtitle"]]
+[[!template text="""Likewise for this one.""" start="00:04:41.509" video="mainVideo-eval" id="subtitle"]]
+[[!template text="""This one would have been a lot of fun,""" start="00:04:42.709" video="mainVideo-eval" id="subtitle"]]
+[[!template text="""but unfortunately, we're running short on time.""" start="00:04:43.909" video="mainVideo-eval" id="subtitle"]]
+[[!template text="""Apologies.""" start="00:04:46.509" video="mainVideo-eval" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""REPL Driven Development with Java""" start="00:04:51.143" video="mainVideo-eval" id="subtitle"]]</div>[[!template text="""The neat thing here is: this package tries to""" start="00:04:51.143" video="mainVideo-eval" id="subtitle"]]
+[[!template text="""bring the feeling of Lisp to other languages.""" start="00:04:56.209" video="mainVideo-eval" id="subtitle"]]
+[[!template text="""So the idea of a REPL, or a Read Eval Print Loop""" start="00:05:00.269" video="mainVideo-eval" id="subtitle"]]
+[[!template text="""is R and P are data interchange protocols.""" start="00:05:03.509" video="mainVideo-eval" id="subtitle"]]
+[[!template text="""Unfortunately, not every language has those,""" start="00:05:06.949" video="mainVideo-eval" id="subtitle"]]
+[[!template text="""but this package kind of encourages us to""" start="00:05:09.869" video="mainVideo-eval" id="subtitle"]]
+[[!template text="""implement them if we don't have them.""" start="00:05:12.709" video="mainVideo-eval" id="subtitle"]]
+[[!template text="""Let me show you an example.""" start="00:05:14.643" video="mainVideo-eval" id="subtitle"]]
+[[!template text="""What do I mean here?""" start="00:05:16.909" video="mainVideo-eval" id="subtitle"]]
+[[!template text="""This is a Java file.""" start="00:05:20.589" video="mainVideo-eval" id="subtitle"]]
+[[!template text="""I've loaded this definition in.""" start="00:05:22.709" video="mainVideo-eval" id="subtitle"]]
+[[!template text="""We can press `C-x C-j`,""" start="00:05:25.189" video="mainVideo-eval" id="subtitle"]]
+[[!template text="""and you see it's a list of person.""" start="00:05:28.543" video="mainVideo-eval" id="subtitle"]]
+[[!template text="""I didn't give this a name, so its name is $59.""" start="00:05:30.909" video="mainVideo-eval" id="subtitle"]]
+[[!template text="""If I hover over it, we can see the definition again.""" start="00:05:33.829" video="mainVideo-eval" id="subtitle"]]
+[[!template text="""So it's a person called Hamid, age 5,""" start="00:05:40.829" video="mainVideo-eval" id="subtitle"]]
+[[!template text="""another person called Jaafar, age 6.""" start="00:05:44.429" video="mainVideo-eval" id="subtitle"]]
+[[!template text="""This pretty printing is nice for me as a human,""" start="00:05:46.229" video="mainVideo-eval" id="subtitle"]]
+[[!template text="""but I can't execute this. This isn't valid Java.""" start="00:05:52.229" video="mainVideo-eval" id="subtitle"]]
+[[!template text="""So I could do `C-u C-x C-j`.""" start="00:05:56.349" video="mainVideo-eval" id="subtitle"]]
+[[!template text="""If I have the help of a read protocol inserted.""" start="00:06:00.609" video="mainVideo-eval" id="subtitle"]]
+[[!template text="""Sorry, `C-x C-j`. There it is.""" start="00:06:05.109" video="mainVideo-eval" id="subtitle"]]
+[[!template text="""So look, it gives me a `new Person`""" start="00:06:09.469" video="mainVideo-eval" id="subtitle"]]
+[[!template text="""with the construction everything.""" start="00:06:12.549" video="mainVideo-eval" id="subtitle"]]
+[[!template text="""Now I can work with.""" start="00:06:14.349" video="mainVideo-eval" id="subtitle"]]
+[[!template text="""Java can work with this.""" start="00:06:16.549" video="mainVideo-eval" id="subtitle"]]
+[[!template text="""So this can be quite useful for regression testing""" start="00:06:17.949" video="mainVideo-eval" id="subtitle"]]
+[[!template text="""or just to find out what your method spits out.""" start="00:06:21.709" video="mainVideo-eval" id="subtitle"]]
+[[!template text="""We can do the same thing. Here's a bigger example.""" start="00:06:25.749" video="mainVideo-eval" id="subtitle"]]
+[[!template text="""Trying to see it in the overlay is a bit cramped.""" start="00:06:29.869" video="mainVideo-eval" id="subtitle"]]
+[[!template text="""We can say `C-u C-x C-j`.""" start="00:06:32.389" video="mainVideo-eval" id="subtitle"]]
+[[!template text="""All right, and now we have executable code.""" start="00:06:34.589" video="mainVideo-eval" id="subtitle"]]
+[[!template text="""Okay, this is neat.""" start="00:06:38.669" video="mainVideo-eval" id="subtitle"]]
+[[!template text="""If you want to do something with it.""" start="00:06:40.876" video="mainVideo-eval" id="subtitle"]]
+[[!template text="""I'm not really interested. I have four new persons.""" start="00:06:42.389" video="mainVideo-eval" id="subtitle"]]
+[[!template text="""If I really want to look at this,""" start="00:06:45.789" video="mainVideo-eval" id="subtitle"]]
+[[!template text="""I can say `M-x java-eval-navigate-output`,""" start="00:06:49.309" video="mainVideo-eval" id="subtitle"]]
+[[!template text="""and now I see my output as this hierarchical tree.""" start="00:06:55.649" video="mainVideo-eval" id="subtitle"]]
+[[!template text="""I go down, I can see what's inside these,""" start="00:07:00.829" video="mainVideo-eval" id="subtitle"]]
+[[!template text="""what's the type of this thing, what's in there.""" start="00:07:03.589" video="mainVideo-eval" id="subtitle"]]
+[[!template text="""All right, so that's nice.""" start="00:07:06.709" video="mainVideo-eval" id="subtitle"]]
+[[!template text="""The idea is that we're not limited to""" start="00:07:09.349" video="mainVideo-eval" id="subtitle"]]
+[[!template text="""just textual output.""" start="00:07:14.189" video="mainVideo-eval" id="subtitle"]]
+[[!template text="""We can render output,""" start="00:07:15.629" video="mainVideo-eval" id="subtitle"]]
+[[!template text="""thanks to the power of Emacs, in any way we want.""" start="00:07:19.589" video="mainVideo-eval" id="subtitle"]]
+[[!template text="""In a browser, in a LaTeX file, in an Org mode (file),""" start="00:07:22.229" video="mainVideo-eval" id="subtitle"]]
+[[!template text="""however we really desire.""" start="00:07:26.749" video="mainVideo-eval" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Bring your own Read Protocol""" start="00:07:28.029" video="mainVideo-eval" id="subtitle"]]</div>[[!template text="""And if our language doesn't have an easy protocol,""" start="00:07:28.029" video="mainVideo-eval" id="subtitle"]]
+[[!template text="""so what I did for Java in particular was:""" start="00:07:32.989" video="mainVideo-eval" id="subtitle"]]
+[[!template text="""you take a blob, and you use some""" start="00:07:36.143" video="mainVideo-eval" id="subtitle"]]
+[[!template text="""parsing expression grammars, or if you really want""" start="00:07:38.643" video="mainVideo-eval" id="subtitle"]]
+[[!template text="""regular expression pattern matching,""" start="00:07:43.149" video="mainVideo-eval" id="subtitle"]]
+[[!template text="""and you get some property list out,""" start="00:07:44.949" video="mainVideo-eval" id="subtitle"]]
+[[!template text="""and then you construct an executable expression""" start="00:07:46.829" video="mainVideo-eval" id="subtitle"]]
+[[!template text="""out of that. Like this `new Person`.""" start="00:07:51.349" video="mainVideo-eval" id="subtitle"]]
+[[!template text="""It's nice that you can do these kind of things""" start="00:07:53.149" video="mainVideo-eval" id="subtitle"]]
+[[!template text="""and that this software encourages you to do them.""" start="00:07:56.749" video="mainVideo-eval" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Use Case: RDD & Job Interviews""" start="00:07:59.669" video="mainVideo-eval" id="subtitle"]]</div>[[!template text="""So one use case I actually use""" start="00:07:59.669" video="mainVideo-eval" id="subtitle"]]
+[[!template text="""besides learning things is…""" start="00:08:07.549" video="mainVideo-eval" id="subtitle"]]
+[[!template text="""oops oops oopsies oopsies showing you metadata""" start="00:08:10.909" video="mainVideo-eval" id="subtitle"]]
+[[!template text="""you shouldn't be looking at.""" start="00:08:14.776" video="mainVideo-eval" id="subtitle"]]
+[[!template text="""Don't look at my metadata. Sorry about that.""" start="00:08:15.509" video="mainVideo-eval" id="subtitle"]]
+[[!template text="""One place I actually use this besides learning""" start="00:08:19.409" video="mainVideo-eval" id="subtitle"]]
+[[!template text="""and trying new libraries and APIs""" start="00:08:23.209" video="mainVideo-eval" id="subtitle"]]
+[[!template text="""and stuff like that is,""" start="00:08:25.029" video="mainVideo-eval" id="subtitle"]]
+[[!template text="""for example, when I interviewed for jobs""" start="00:08:26.776" video="mainVideo-eval" id="subtitle"]]
+[[!template text="""last year (I was changing jobs),""" start="00:08:29.509" video="mainVideo-eval" id="subtitle"]]
+[[!template text="""I would share my screen,""" start="00:08:33.229" video="mainVideo-eval" id="subtitle"]]
+[[!template text="""and if the interviewer gave me""" start="00:08:34.676" video="mainVideo-eval" id="subtitle"]]
+[[!template text="""some inputs and outputs to play with,""" start="00:08:37.869" video="mainVideo-eval" id="subtitle"]]
+[[!template text="""I could do essentially""" start="00:08:39.949" video="mainVideo-eval" id="subtitle"]]
+[[!template text="""some sort of test driven development""" start="00:08:41.576" video="mainVideo-eval" id="subtitle"]]
+[[!template text="""and constantly evaluate things""" start="00:08:42.976" video="mainVideo-eval" id="subtitle"]]
+[[!template text="""right in front of the interviewer.""" start="00:08:45.149" video="mainVideo-eval" id="subtitle"]]
+[[!template text="""For some design questions""" start="00:08:46.589" video="mainVideo-eval" id="subtitle"]]
+[[!template text="""rather than sketching out my ideas in a Google Doc,""" start="00:08:49.949" video="mainVideo-eval" id="subtitle"]]
+[[!template text="""I would share my screen and be like,""" start="00:08:53.909" video="mainVideo-eval" id="subtitle"]]
+[[!template text="""&quot;Hey, here's actual executable code,""" start="00:08:55.509" video="mainVideo-eval" id="subtitle"]]
+[[!template text="""we can stub some things out""" start="00:08:57.989" video="mainVideo-eval" id="subtitle"]]
+[[!template text="""and have some types,&quot;""" start="00:08:59.229" video="mainVideo-eval" id="subtitle"]]
+[[!template text="""and the idea is we can still check things""" start="00:09:00.576" video="mainVideo-eval" id="subtitle"]]
+[[!template text="""and run them right there and then,""" start="00:09:03.476" video="mainVideo-eval" id="subtitle"]]
+[[!template text="""which I thought was quite nice, and it helps to""" start="00:09:05.643" video="mainVideo-eval" id="subtitle"]]
+[[!template text="""clarify your thought process, I guess.""" start="00:09:08.143" video="mainVideo-eval" id="subtitle"]]
+[[!template text="""Anyhow, so that's my time,""" start="00:09:10.309" video="mainVideo-eval" id="subtitle"]]
+[[!template text="""I hope you've enjoyed this little package,""" start="00:09:15.149" video="mainVideo-eval" id="subtitle"]]
+[[!template text="""and again, sorry for the rush,""" start="00:09:19.829" video="mainVideo-eval" id="subtitle"]]
+[[!template text="""it's a lightning talk.""" start="00:09:22.869" video="mainVideo-eval" id="subtitle"]]
+[[!template text="""Feel free to find everything on the associated repo.""" start="00:09:24.149" video="mainVideo-eval" id="subtitle"]]
+[[!template text="""And have a wonderful December Saturday.""" start="00:09:29.069" video="mainVideo-eval" id="subtitle"]]
+[[!template text="""Take care! Bye bye, everyone.""" start="00:09:34.389" video="mainVideo-eval" id="subtitle"]]
+
+</div>
+
+Captioner: bhavin192
+
+Questions or comments? Please e-mail [Alhassy@gmail.com](mailto:Alhassy@gmail.com?subject=Comment%20for%20EmacsConf%202023%20eval%3A%20Editor%20Integrated%20REPL%20Driven%20Development%20for%20all%20languages)
<!-- End of emacsconf-publish-after-page -->
diff --git a/2023/info/eval-before.md b/2023/info/eval-before.md
index f1f6f49a..18c605cc 100644
--- a/2023/info/eval-before.md
+++ b/2023/info/eval-before.md
@@ -1,12 +1,20 @@
<!-- Automatically generated by emacsconf-publish-before-page -->
[[!toc ]]
-Format: 10-min talk followed by live web conference Q&A
-Discuss on IRC: [#emacsconf](https://chat.emacsconf.org/?join=emacsconf)
-Status: Waiting for video from speaker
+Format: 10-min talk ; Q&A: ask questions via Etherpad/IRC; we'll e-mail the speaker and post answers on this wiki page after the conference
+Status: All done
+<div class="vid mainVideo"><video controls preload="none" id="mainVideo-eval"><source src="https://media.emacsconf.org/2023/emacsconf-2023-eval--editor-integrated-repl-driven-development-for-all-languages--musa-alhassy--main.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2023/captions/emacsconf-2023-eval--editor-integrated-repl-driven-development-for-all-languages--musa-alhassy--main.vtt" default />"""<track kind="chapters" label="Chapters" src="/2023/captions/emacsconf-2023-eval--editor-integrated-repl-driven-development-for-all-languages--musa-alhassy--main--chapters.vtt" /><p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video>[[!template id="chapters" vidid="mainVideo-eval" data="""
+00:04.880 Introduction
+00:35.989 The wonders of C-x C-e
+03:35.809 An overview of REPL Driven Development
+04:51.143 REPL Driven Development with Java
+07:28.029 Bring your own Read Protocol
+07:59.669 Use Case: RDD & Job Interviews
+
+"""]]<div></div>Duration: 09:37 minutes<div class="files resources"><ul><li><a href="https://pad.emacsconf.org/2023-eval">Open Etherpad</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-eval--editor-integrated-repl-driven-development-for-all-languages--musa-alhassy--intro.vtt">Download --intro.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-eval--editor-integrated-repl-driven-development-for-all-languages--musa-alhassy--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-eval--editor-integrated-repl-driven-development-for-all-languages--musa-alhassy--main--chapters.vtt">Download --main--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-eval--editor-integrated-repl-driven-development-for-all-languages--musa-alhassy--main.opus">Download --main.opus (4.2MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-eval--editor-integrated-repl-driven-development-for-all-languages--musa-alhassy--main.vtt">Download --main.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-eval--editor-integrated-repl-driven-development-for-all-languages--musa-alhassy--main.webm">Download --main.webm (29MB)</a></li><li><a href="https://toobnix.org/w/74srjNx1cgMr5MsJ9NWNNi">View on Toobnix</a></li><li><a href="https://www.youtube.com/watch?v=1bk0pqpMCfQ">View on Youtube</a></li></ul></div></div>
# Description
<!-- End of emacsconf-publish-before-page --> \ No newline at end of file
diff --git a/2023/info/eval-nav.md b/2023/info/eval-nav.md
index cf6caaa8..2a1de627 100644
--- a/2023/info/eval-nav.md
+++ b/2023/info/eval-nav.md
@@ -1,7 +1,7 @@
<div class="talk-nav">
Back to the [[talks]]
-Previous by track: <a href="/2023/talks/overlay">Improving compiler diagnostics with Overlays</a>
+Previous by track: <a href="/2023/talks/overlay">Improving compiler diagnostics with overlays</a>
Next by track: <a href="/2023/talks/repl">REPLs in strange places: Lua, LaTeX, LPeg, LPegRex, TikZ</a>
-Track: <span class="sched-track Development">Development</span>
+Track: <span class="sched-track Development">Development</span> - <strong><a href="https://emacsconf.org/2023/watch/dev">Watch</a></strong>
</div>
diff --git a/2023/info/extending-nav.md b/2023/info/extending-nav.md
index 7aa9500a..5a84a12c 100644
--- a/2023/info/extending-nav.md
+++ b/2023/info/extending-nav.md
@@ -1,7 +1,7 @@
<div class="talk-nav">
Back to the [[talks]]
-Previous by track: <a href="/2023/talks/hyperdrive">hyperdrive.el: Peer-to-peer filesystem in Emacs</a>
-Next by track: <a href="/2023/talks/scheme">Bringing joy to Scheme programming</a>
+Previous by track: <a href="/2023/talks/test">What I learned by writing test cases for GNU Hyperbole</a>
+Next by track: <a href="/2023/talks/flat">A modern Emacs look-and-feel without pain</a>
Track: <span class="sched-track Development">Development</span>
</div>
diff --git a/2023/info/flat-after.md b/2023/info/flat-after.md
index 98c4782f..8135bc6c 100644
--- a/2023/info/flat-after.md
+++ b/2023/info/flat-after.md
@@ -1,7 +1,261 @@
<!-- Automatically generated by emacsconf-publish-after-page -->
-Questions or comments? Please e-mail [emacsconf-org-private@gnu.org](mailto:emacsconf-org-private@gnu.org?subject=Comment%20for%20EmacsConf%202022%20flat%3A%20A%20modern%20Emacs%20look-and-feel%20without%20pain)
+<div class="transcript transcript-mainVideo"><a name="flat-mainVideo-transcript"></a><h1>Transcript (unedited)</h1>
+
+[[!template text="""That's how I came into this.""" start="00:00:01.880" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""Finally, the next big thing was starting""" start="00:00:10.120" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""2005, I went fully Linux and then for Mac OS,""" start="00:00:16.100" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""and I switched to vanilla self-compiled""" start="00:00:19.540" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""versions of Emacs. So what do I want to show?""" start="00:00:25.279" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""Couple of time ago in the development list""" start="00:00:30.540" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""there was a short exchange about the nil and""" start="00:00:34.540" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""the flood button, flood button button styles,""" start="00:00:38.400" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""saying that it was equivalent and they are""" start="00:00:42.480" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""not. So instead of starting a Flame Wars,""" start="00:00:45.480" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""I thought it was better to go and publicize""" start="00:00:49.220" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""the goodies you get with Flood Button.""" start="00:00:54.520" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""And this is what I'm going to be showing you""" start="00:00:57.260" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""practically. Why Flood Button?""" start="00:01:00.140" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""2005, more or less, I came across DOOM Emacs,""" start="00:01:06.020" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""which was nice. And I,""" start="00:01:07.660" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""especially I liked the DOOM mode line,""" start="00:01:12.180" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""which was, I think it is,""" start="00:01:13.740" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""it is, and it was cool at that time.""" start="00:01:15.560" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""I was using other themes and it was not that""" start="00:01:20.280" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""easy to adapt for these other themes and even""" start="00:01:23.760" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""less when you are in an environment with""" start="00:01:26.080" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""dynamic themes like mine because I tend to""" start="00:01:30.060" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""adapt the theme to the light conditions in my""" start="00:01:36.500" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""working place. So what I did at the end was""" start="00:01:40.520" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""coming up with a style for faces called flood""" start="00:01:44.540" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""button for boxes, called flood button as a""" start="00:01:49.020" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""simple way to get modern looking buttons and""" start="00:01:52.640" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""bars. So flood button is a face style for""" start="00:01:59.160" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""boxes within buttons that automatically sets""" start="00:02:02.380" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""the border color to the background of the""" start="00:02:05.240" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""face, as opposed to nil,""" start="00:02:08.440" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""which uses the foreground.""" start="00:02:10.440" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""And this produces a very doom mode line-ish""" start="00:02:14.380" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""look and feel. And if you want to know where""" start="00:02:18.400" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""I use it, basically for the mode line and I'm""" start="00:02:21.580" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""using tab line for a long time now.""" start="00:02:24.720" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""So for the mode line and for tab line to""" start="00:02:28.480" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""organize my windows. And since an image is""" start="00:02:35.080" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""worth more than a thousand words,""" start="00:02:37.160" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""I'm just going to stop this and start sharing""" start="00:02:40.860" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""a small Emacs environment I have ready for""" start="00:02:44.120" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""this talk where I'm going to show you a flat""" start="00:02:47.020" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""button in real life. So if you hold with me,""" start="00:02:50.220" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""I'm going to share a window.""" start="00:02:56.100" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""It's going to be this 1.""" start="00:02:58.840" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""Share and share. Here we are.""" start="00:03:01.386" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""And share. Here we are.""" start="00:03:01.780" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""So this is an Emacs which is recent,""" start="00:03:08.040" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""reasonably recent. Nothing especially it was""" start="00:03:13.460" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""compiled, it's Emacs 30.""" start="00:03:14.900" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""And I think what I have here is something""" start="00:03:18.480" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""that I compiled last weekend.""" start="00:03:19.900" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""I was tempted to use something compiled this""" start="00:03:24.940" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""morning, but I saw a patch by Ellie regarding""" start="00:03:28.080" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""something in the faces and I didn't want to""" start="00:03:30.640" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""live a too risky life here,""" start="00:03:34.160" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""so I'm going to use this.""" start="00:03:36.220" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""I'm not starting the ZMAC from the normal""" start="00:03:40.740" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""Emacs directory. I have my own,""" start="00:03:44.160" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""I have a special customization directory for""" start="00:03:49.440" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""Emacs, and this is this 1.""" start="00:03:51.560" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""And here what I have is basically an early""" start="00:03:57.760" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""init and an init. So the early init,""" start="00:04:01.880" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""which is quite stupid as you see,""" start="00:04:03.680" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""the only thing that it does is getting rid of""" start="00:04:07.800" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""most of the things that I'm not going to be""" start="00:04:10.640" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""using here. So I have no toolbar,""" start="00:04:12.740" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""no scroll bar, no tool tips.""" start="00:04:15.700" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""I don't like global highlighting my line art,""" start="00:04:20.560" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""so I'm not using that.""" start="00:04:21.720" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""I'm not using dialogues.""" start="00:04:22.800" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""And to start up easier,""" start="00:04:25.560" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""I don't inhibit, I don't use any startups""" start="00:04:29.440" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""screen. So just to make sure that everything""" start="00:04:34.540" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""is correct, that everything is as I want,""" start="00:04:41.360" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""just to show you my Emacs.""" start="00:04:44.840" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""As you see the Emacs 30,""" start="00:04:49.240" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""which was built on the 26th of November which""" start="00:04:53.900" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""was not very long ago.""" start="00:04:55.520" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""And now here comes the real magic.""" start="00:04:57.880" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""My init and my init file.""" start="00:05:00.540" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""Maybe I go to my init file here.""" start="00:05:04.020" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""What I have is just a variable saying that I""" start="00:05:11.880" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""want an extra 8 pixels for my mode line.""" start="00:05:15.880" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""And I have 2 functions.""" start="00:05:18.240" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""1 is modifying the mode line,""" start="00:05:23.800" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""both the active and the inactive,""" start="00:05:25.920" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""using the nil style with this line width of 8""" start="00:05:32.180" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""pixels and to compare with it what I have""" start="00:05:36.380" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""here is another function which will customize""" start="00:05:39.140" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""the face for mode line and instead of using""" start="00:05:42.400" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""nil I'm using here flat button.""" start="00:05:44.960" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""So this is my all the magic that I need.""" start="00:05:49.440" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""I'm going to copy that and I'm going to go to""" start="00:05:53.240" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""the scratch buffer which is always the best""" start="00:05:57.340" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""way of checking these things.""" start="00:05:58.780" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""When I normally work with themes,""" start="00:06:05.660" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""what I do is if I want to further modify the""" start="00:06:09.320" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""themes, I add an advice to load a theme after""" start="00:06:13.620" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""the theme is loaded. In this first case,""" start="00:06:17.800" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""what I'm going to be doing is adding the nil""" start="00:06:21.280" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""sign so that you can see it.""" start="00:06:22.680" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""And once this is done,""" start="00:06:30.240" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""I'm going to load 1 of the Modo Soprandi""" start="00:06:33.000" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""themes, the tinted 1. Here we are.""" start="00:06:42.600" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""And as you can see, when I loaded the theme,""" start="00:06:56.400" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""what I see here is my mode line with the""" start="00:07:01.880" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""x-ray pixels using since I'm using the nil""" start="00:07:05.320" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""style it's using the background color and""" start="00:07:09.520" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""this gives you this thick black line there""" start="00:07:12.620" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""furthermore if you have the inactive line you""" start="00:07:17.080" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""see that it is grayed out so it's always""" start="00:07:20.660" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""using the foreground color.""" start="00:07:22.800" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""So now what I'm going to do is to load the""" start="00:07:33.300" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""models we have any which is the dark theme""" start="00:07:35.200" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""and this case what you see is the love deal""" start="00:07:40.080" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""the lines always using the foreground color""" start="00:07:43.220" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""use the Give you an extra 8 pixels of a white""" start="00:07:49.200" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""color here, which is not what we really want.""" start="00:07:53.000" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""At least not what I wanted to have.""" start="00:07:58.900" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""So what I'm going to do now is I'm going to""" start="00:08:01.560" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""remove this advice and add the flat style""" start="00:08:08.940" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""thing, flat style function,""" start="00:08:12.800" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""so that we're going to do the same.""" start="00:08:15.480" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""But now when I load the themes I'm going to""" start="00:08:18.380" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""have a flat button style for the mode line""" start="00:08:20.760" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""and you'll see the difference.""" start="00:08:21.880" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""So if I now load Modo Software Andy theme,""" start="00:08:29.480" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""tint it, what I get here is as you see I get""" start="00:08:35.380" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""a solid mode line which is a bit more which""" start="00:08:40.520" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""is wider than the normal mode line And if I""" start="00:08:49.240" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""go to the dark theme, I am going to see,""" start="00:08:53.140" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""you're going to see that now the theme""" start="00:08:55.440" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""changes and I have a mode line which is,""" start="00:08:59.860" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""if not the doom mode line,""" start="00:09:02.700" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""quite close to the Doom mode line.""" start="00:09:08.260" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""Where do I use this? Personally,""" start="00:09:11.200" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""I use it for the mode line and for the tab""" start="00:09:15.280" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""line, as I've said. And it gives me this""" start="00:09:18.960" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""clean themes with thicker mode line and tab""" start="00:09:27.040" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""lines which at least in my personal feeling""" start="00:09:33.620" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""look quite modern. And this will be my""" start="00:09:40.160" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""demonstration. So I'm going to stop sharing""" start="00:09:43.820" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""the screen and I'm going to try and see if""" start="00:09:46.820" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""there's anything on the on the chat.""" start="00:09:49.400" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""And I just wanted to know if there are any""" start="00:09:57.040" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""questions. Thank you Pedro.""" start="00:10:01.240" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""Yeah We are now into the Q&A portion of the""" start="00:10:05.000" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""talk. So if folks have questions,""" start="00:10:06.420" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""please post them on IRC or on the pad and""" start="00:10:10.080" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""we'll take them up here.""" start="00:10:11.040" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""Okay, I see a question here saying,""" start="00:10:25.400" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""do you plan to upstream the style into""" start="00:10:28.520" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""core-remix? It's part of core-remix since""" start="00:10:32.580" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""Emacs 29, so you have it.""" start="00:10:35.800" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""How difficult to...I mean,""" start="00:10:49.060" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""you already have the flat button style in""" start="00:10:54.320" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""Core Remax. And you've seen that the main""" start="00:10:57.660" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""thing is, if you want to have a thing like""" start="00:11:00.740" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""that, you just have to customize the face.""" start="00:11:06.660" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""I don't think it's too difficult to do.""" start="00:11:10.920" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""It's adding the style that you want.""" start="00:11:13.380" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""So if you want to see it again,""" start="00:11:17.360" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""I'm going to go and share the screen once""" start="00:11:20.860" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""again and show you the only thing that you""" start="00:11:23.980" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""really need to do. And control X 1,""" start="00:11:31.740" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""control X buffer to init.""" start="00:11:34.680" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""So this is what you would have to do to get""" start="00:11:41.040" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""your mode line or mode line inactive with a""" start="00:11:48.880" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""flat button style. So what you do is you get""" start="00:11:52.360" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""your face like this, the face that you want""" start="00:11:56.120" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""to modify. You say that you inherit from the""" start="00:11:59.640" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""original face and what you do is that you add""" start="00:12:02.920" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""a box with the line width that you want and""" start="00:12:06.820" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""the style plug button.""" start="00:12:08.040" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""I don't think it's too difficult to do.""" start="00:12:10.900" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""How much work was involved in implementing""" start="00:12:23.100" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""this style? It is not 1 of the biggest""" start="00:12:27.360" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""patches you have in Emacs.""" start="00:12:28.940" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""It was my first patch,""" start="00:12:32.260" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""so it was like 20 liners.""" start="00:12:34.500" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""It's not too much. Yes,""" start="00:12:40.280" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""I am going to go and...""" start="00:12:44.540" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""Oops. SKB and... There you are.""" start="00:12:54.733" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""And there you are. I've checked it for copy""" start="00:12:58.660" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""and paste. Of course, then what you have to""" start="00:13:05.440" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""do is to add an advice and add this thing""" start="00:13:09.440" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""after the add this code after the well after""" start="00:13:16.680" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""you've loaded the theme.""" start="00:13:17.760" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""It says, ModeLine and ModeLineInactive.""" start="00:13:22.420" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""I'm also using it for TabLine and""" start="00:13:27.400" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""TabLineInactive and all this kind of things.""" start="00:13:29.820" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""Thanks.""" start="00:13:30.060" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""Thanks. Any other questions?""" start="00:14:00.660" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""Reactions? Thank you. Thank you.""" start="00:14:35.020" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""Okay, I think we still have about 6 or 7 more""" start="00:15:04.160" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""minutes of live Q&A on stream,""" start="00:15:05.840" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""so if folks have any more questions,""" start="00:15:07.400" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""please do feel free to post them on the pad.""" start="00:15:09.940" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""Silence. Silence. Silence.""" start="00:15:30.060" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""Well, do you teach eMAX to any of your""" start="00:16:02.280" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""university students? As such,""" start="00:16:04.700" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""there's no course that we teach,""" start="00:16:08.080" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""but in tutorships and in tutoring sessions,""" start="00:16:12.800" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""when we do practical things,""" start="00:16:15.460" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""and I do a lot, I tend to use Emacs for all""" start="00:16:21.100" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""the tasks so that the students get involved""" start="00:16:24.480" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""in it. I also have a small introduction to""" start="00:16:28.220" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""Emacs that I share with my students.""" start="00:16:29.640" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""So So every year I have 2 or 3 new adepts.""" start="00:16:33.400" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""We have a question on IRC.""" start="00:17:43.900" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""Someone asking can you please show what the""" start="00:17:46.920" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""tab line looks like? Just a second.""" start="00:17:53.160" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""This would be like this.""" start="00:17:56.880" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""For that I'm going to use my regular Emacs.""" start="00:18:03.096" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""Just my my regular emacs so just let me fire""" start="00:18:06.220" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""it up. Sure.""" start="00:18:09.220" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""And""" start="00:18:23.540" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""That's my current situation with the tab""" start="00:18:39.760" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""line. I do have a couple of functions.""" start="00:18:42.660" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""So this is 1 of the things that I use.""" start="00:18:44.680" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""As you see, both the tab line here and the""" start="00:18:51.500" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""mode line change. And the other thing is I""" start="00:18:57.040" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""can, this is for some situations,""" start="00:19:00.520" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""not currently because it's just later,""" start="00:19:03.600" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""it's a bit too dark. But this is for light""" start="00:19:06.420" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""days. I have like 3 or 4 themes that I can""" start="00:19:10.260" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""switch to these are the themes that I""" start="00:19:15.020" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""normally use This is how the tab line looks.""" start="00:19:18.120" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""This is how the tab line here looks with the""" start="00:19:22.660" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""with a flat button style.""" start="00:19:28.280" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""Looks great, Thank you for sharing.""" start="00:19:35.640" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""You're welcome.""" start="00:19:37.200" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""Okay, I think we have 2 or 3 more minutes.""" start="00:19:50.720" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""So if folks, if you have any final questions""" start="00:19:53.600" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""for Pedro, please post them in.""" start="00:19:55.480" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""Okay. Okay.""" start="00:20:37.360" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""Okay.""" start="00:20:54.260" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""No further questions. Yeah,""" start="00:21:34.540" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""it seems we don't have any further questions.""" start="00:21:36.380" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""Just another audience member also thanking""" start="00:21:39.100" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""you on the chat. So with that,""" start="00:21:44.060" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""I'll say Thank you very much,""" start="00:21:45.320" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""Pedro, for your great talk and for the Q&A,""" start="00:21:47.080" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""for your work and for helping spreading the""" start="00:21:50.220" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""joy of Emacs. Okay, thanks.""" start="00:21:52.360" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""Thank you. Bye-bye. It was a nice experience""" start="00:21:56.140" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""here. Very nice tool. Cheers.""" start="00:21:59.200" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""Awesome. Take care. Bye.""" start="00:22:01.640" video="mainVideo-flat" id="subtitle"]]
+[[!template text="""Bye. Bye.""" start="00:22:02.720" video="mainVideo-flat" id="subtitle"]]
+
+</div>Questions or comments? Please e-mail [emacsconf-org-private@gnu.org](mailto:emacsconf-org-private@gnu.org?subject=Comment%20for%20EmacsConf%202023%20flat%3A%20A%20modern%20Emacs%20look-and-feel%20without%20pain)
<!-- End of emacsconf-publish-after-page -->
diff --git a/2023/info/flat-before.md b/2023/info/flat-before.md
index f1f6f49a..d3827603 100644
--- a/2023/info/flat-before.md
+++ b/2023/info/flat-before.md
@@ -1,12 +1,12 @@
<!-- Automatically generated by emacsconf-publish-before-page -->
[[!toc ]]
-Format: 10-min talk followed by live web conference Q&A
-Discuss on IRC: [#emacsconf](https://chat.emacsconf.org/?join=emacsconf)
-Status: Waiting for video from speaker
+Format: 23-min talk ; Q&A: BigBlueButton conference room
+Status: Q&A to be extracted from the room recordings
+<div class="vid mainVideo"><video controls preload="none" id="mainVideo-flat"><source src="https://media.emacsconf.org/2023/emacsconf-2023-flat--a-modern-emacs-lookandfeel-without-pain--pedro-a-aranda--main.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2023/captions/emacsconf-2023-flat--a-modern-emacs-lookandfeel-without-pain--pedro-a-aranda--main.vtt" default />"""<p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video><div></div>Duration: 22:20 minutes<div class="files resources"><ul><li><a href="https://pad.emacsconf.org/2023-flat">Open Etherpad</a></li><li><a href="https://bbb.emacsverse.org/playback/presentation/2.0/playback.html?meetingId=865d185560bbda4ee85399dc236c6f7eb2ee635d-1701616925579">Play recording from BigBlueButton</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-flat--a-modern-emacs-lookandfeel-without-pain--pedro-a-aranda--intro.vtt">Download --intro.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-flat--a-modern-emacs-lookandfeel-without-pain--pedro-a-aranda--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-flat--a-modern-emacs-lookandfeel-without-pain--pedro-a-aranda--main.json">Download --main.json</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-flat--a-modern-emacs-lookandfeel-without-pain--pedro-a-aranda--main.opus">Download --main.opus (10MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-flat--a-modern-emacs-lookandfeel-without-pain--pedro-a-aranda--main.vtt">Download --main.vtt</a> (unedited)</li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-flat--a-modern-emacs-lookandfeel-without-pain--pedro-a-aranda--main.webm">Download --main.webm (121MB)</a></li><li><a href="https://toobnix.org/w/1DRDY8vZK3SW5M8zAPJQSp">View on Toobnix</a></li><li><a href="https://www.youtube.com/watch?v=E1u6DcHis9M">View on Youtube</a></li></ul></div></div>
# Description
<!-- End of emacsconf-publish-before-page --> \ No newline at end of file
diff --git a/2023/info/flat-nav.md b/2023/info/flat-nav.md
index 41a7cdee..a3ff71bc 100644
--- a/2023/info/flat-nav.md
+++ b/2023/info/flat-nav.md
@@ -1,7 +1,7 @@
<div class="talk-nav">
Back to the [[talks]]
-Previous by track: <a href="/2023/talks/test">What I learned by writing test cases for GNU Hyperbole</a>
-Next by track: <a href="/2023/talks/gc">emacs-gc-stats: Does garbage collection actually slow down Emacs?</a>
-Track: <span class="sched-track Development">Development</span>
+Previous by track: <a href="/2023/talks/world">GNU Emacs: A World of Possibilities</a>
+Next by track: <a href="/2023/talks/emacsen">The Emacsen family, the design of an Emacs and the importance of Lisp</a>
+Track: <span class="sched-track Development">Development</span> - <strong><a href="https://emacsconf.org/2023/watch/dev">Watch</a></strong>
</div>
diff --git a/2023/info/gc-after.md b/2023/info/gc-after.md
index 7bb9e043..f4eef3e2 100644
--- a/2023/info/gc-after.md
+++ b/2023/info/gc-after.md
@@ -1,7 +1,604 @@
<!-- Automatically generated by emacsconf-publish-after-page -->
-Questions or comments? Please e-mail [yantar92@posteo.net](mailto:yantar92@posteo.net?subject=Comment%20for%20EmacsConf%202022%20gc%3A%20emacs-gc-stats%3A%20Does%20garbage%20collection%20actually%20slow%20down%20Emacs%3F)
+<div class="transcript transcript-mainVideo"><a name="gc-mainVideo-transcript"></a><h1>Transcript</h1>
+
+
+<div class="transcript-heading">[[!template new="1" text="""Introduction""" start="00:00:00.000" video="mainVideo-gc" id="subtitle"]]</div>[[!template text="""Hello everyone, my name is Ihor Radchenko,""" start="00:00:00.000" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""and you may know me from Org Mailing List.""" start="00:00:04.640" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""However, today I'm not going to talk about Org Mode.""" start="00:00:07.600" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""Today I'm going to talk about""" start="00:00:09.800" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""Emacs performance and how it's affected""" start="00:00:11.920" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""by its memory management code.""" start="00:00:14.960" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""First, I will introduce the basic concepts""" start="00:00:19.040" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""of Emacs memory management and what garbage collection is.""" start="00:00:21.640" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""Then I will show you user statistics""" start="00:00:26.440" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""collected from volunteer users over the last half year""" start="00:00:30.560" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""and I will end with some guidelines""" start="00:00:34.960" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""on how to tweak Emacs garbage collection customizations""" start="00:00:39.320" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""to optimize Emacs performance""" start="00:00:44.720" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""and when it's necessary or not to do.""" start="00:00:47.480" video="mainVideo-gc" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""About garbage collection in Emacs""" start="00:00:51.080" video="mainVideo-gc" id="subtitle"]]</div>[[!template text="""Let's begin. What is garbage collection?""" start="00:00:51.080" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""To understand what is garbage collection,""" start="00:00:54.520" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""we need to realize that anything you do in Emacs""" start="00:00:56.520" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""is some kind of command. Any command is most likely""" start="00:00:59.040" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""running some Elisp code. Every time you run Elisp code,""" start="00:01:02.120" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""you most likely need to locate certain memory in RAM.""" start="00:01:05.840" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""Some of this memory is retained for a long time""" start="00:01:09.240" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""and some of this memory is transient.""" start="00:01:12.880" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""Of course, Emacs has to clear this transient memory""" start="00:01:15.560" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""from time to time, to not occupy all the possible RAM""" start="00:01:19.120" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""in the computer. In this small example,""" start="00:01:21.440" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""we have one global variable""" start="00:01:21.448" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""that is assigned a value,""" start="00:01:28.640" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""but when assigning the value,""" start="00:01:31.280" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""we first allocate a temporary variable""" start="00:01:33.080" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""and then a temporary list""" start="00:01:35.680" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""and only retain some part of this list""" start="00:01:37.120" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""in this global variable.""" start="00:01:40.080" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""In terms of memory graph""" start="00:01:42.080" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""we can represent this as two variable slots,""" start="00:01:44.800" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""one transient, one permanent,""" start="00:01:50.360" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""and then a list of three cons cells,""" start="00:01:53.160" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""part of which is retained as a global variable""" start="00:01:56.200" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""but part of it which is a temporary variable symbol.""" start="00:02:01.960" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""The first term of the list is not used""" start="00:02:05.000" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""and it might be cleared at some point.""" start="00:02:07.680" video="mainVideo-gc" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Garbage collection in Emacs""" start="00:02:09.760" video="mainVideo-gc" id="subtitle"]]</div>[[!template text="""So that's what Emacs does.""" start="00:02:09.760" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""Every now and then, Emacs goes through all the memory""" start="00:02:12.240" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""and identifies which part of the memory are not used""" start="00:02:15.920" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""and then clear them so that it can free up the RAM.""" start="00:02:19.120" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""This process is called garbage collection""" start="00:02:23.760" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""and Emacs uses a very simple and old algorithm""" start="00:02:25.920" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""which is called Mark & Sweep.""" start="00:02:28.920" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""So doing this mark and sweep process""" start="00:02:30.560" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""is basically two stages.""" start="00:02:33.760" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""First, Emacs scans all the memory that is allocated""" start="00:02:34.880" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""and then identifies which memory is still in use""" start="00:02:40.040" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""which is linked to some variables, for example,""" start="00:02:42.760" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""and which memory is not used anymore""" start="00:02:45.520" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""even though it was allocated in the past.""" start="00:02:47.600" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""The second stage [??] whenever a memory is not,""" start="00:02:49.560" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""that is not allocated. During the process""" start="00:02:53.000" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""Emacs cannot do anything now.""" start="00:02:59.320" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""So basically, every time Emacs scans the memory,""" start="00:03:00.760" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""it freezes up and doesn't respond to anything,""" start="00:03:04.160" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""and if it takes too much time so that users can notice it,""" start="00:03:07.200" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""then of course Emacs is not responsive at all,""" start="00:03:10.960" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""and if this garbage collection is triggered too frequently,""" start="00:03:13.400" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""then it's not just not responsive every now and then.""" start="00:03:19.440" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""It's also not responsive all the time,""" start="00:03:22.400" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""almost all the time,""" start="00:03:24.680" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""so it cannot even normally type or stuff""" start="00:03:26.080" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""or do some normal commands.""" start="00:03:27.680" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""This mark and sweep algorithm is taking longer""" start="00:03:32.440" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""the more memory Emacs uses. So basically,""" start="00:03:36.720" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""the more buffers you open, the more packages you load,""" start="00:03:40.200" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""the more complex commands you run, the more memory is used,""" start="00:03:44.440" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""and basically, the longer Emacs takes""" start="00:03:48.320" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""to perform a single garbage collection.""" start="00:03:52.280" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""Of course, Emacs being Emacs""" start="00:03:57.920" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""this garbage collection can be tweaked.""" start="00:04:02.280" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""In particular users can tweak""" start="00:04:06.040" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""how frequently Emacs does garbage collection""" start="00:04:08.280" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""using two basic variables: `gc-cons-threshold`""" start="00:04:10.640" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""and `gc-cons-percentage`.""" start="00:04:13.880" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""`gc-cons-threshold` is the raw number of kilobytes""" start="00:04:15.520" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""Emacs needs to allocate""" start="00:04:21.600" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""before triggering another garbage collection,""" start="00:04:22.480" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""and the `gc-cons-percentage` is similar,""" start="00:04:25.960" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""but it's defined in terms of fraction""" start="00:04:27.800" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""of already-allocated memory.""" start="00:04:30.400" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""If you follow various Emacs forums,""" start="00:04:34.760" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""you may be familiar with people complaining about""" start="00:04:38.240" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""garbage collection. There are many many suggestions""" start="00:04:41.960" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""about what to do with it.""" start="00:04:46.480" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""Most frequently, you see `gc-cons-threshold`""" start="00:04:48.040" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""recommended to be increased,""" start="00:04:54.080" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""and a number of pre-packaged Emacs distributions""" start="00:04:56.880" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""like Doom Emacs do increase it.""" start="00:05:01.440" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""I have seen suggestions which are actually horrible""" start="00:05:04.320" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""to disable garbage collection temporarily""" start="00:05:07.280" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""or for a long time.""" start="00:05:10.480" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""Which is nice... You can see it quite frequently,""" start="00:05:14.360" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""which indicates there might be some problem.""" start="00:05:17.520" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""However, every time one user poses about this problem,""" start="00:05:19.400" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""it's just one data point and it doesn't mean""" start="00:05:23.960" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""that everyone actually suffers from it.""" start="00:05:26.880" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""It doesn't mean that everyone should do it.""" start="00:05:28.880" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""So in order to understand if this garbage collection""" start="00:05:33.720" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""is really a problem which is a common problem""" start="00:05:35.920" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""we do need some kind of statistics""" start="00:05:39.960" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""and only using the actual statistics""" start="00:05:44.920" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""we can understand if it should be recommended for everyone""" start="00:05:46.920" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""to tweak the defaults or like whether""" start="00:05:52.760" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""it should be recommended for certain users""" start="00:05:55.000" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""or maybe it should be asked Emacs devs""" start="00:05:57.160" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""to do something about the defaults.""" start="00:05:59.480" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""And what I did some time ago is exactly this.""" start="00:06:01.560" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""I tried to collect the user statistics.""" start="00:06:07.960" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""So I wrote a small package on Elp""" start="00:06:09.960" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""and some users installed this package""" start="00:06:14.520" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""and then reported back these statistics""" start="00:06:18.160" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""of the garbage collection for their particular use.""" start="00:06:22.120" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""By now we have obtained 129 user submissions""" start="00:06:24.280" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""with over 1 million GC records in there.""" start="00:06:30.800" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""So like some of these submissions""" start="00:06:34.040" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""used default GC settings without any customizations.""" start="00:06:38.120" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""Some used increased GC cost threshold""" start="00:06:43.160" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""and GC cost percentage.""" start="00:06:46.040" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""So using this data we can try to draw""" start="00:06:47.800" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""some reliable conclusions on what should be done""" start="00:06:53.320" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""and whether should anything be done about garbage collection""" start="00:06:56.880" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""on Emacs dev level or at least on user level.""" start="00:06:59.920" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""Of course we need to keep in mind""" start="00:07:02.640" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""that there's some kind of bias""" start="00:07:05.640" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""because it's more likely""" start="00:07:07.280" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""that users already have problems with GC""" start="00:07:09.000" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""or they think they have problems with GC""" start="00:07:11.720" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""will report and submit the data.""" start="00:07:13.240" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""But anyway having s statistics is much more useful""" start="00:07:15.920" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""than just having anecdotal evidences""" start="00:07:20.000" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""from one or other reddit posts.""" start="00:07:22.080" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""And just one thing I will do""" start="00:07:25.520" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""during the rest of my presentation""" start="00:07:28.760" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""is that for all the statistics""" start="00:07:30.880" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""I will normalize user data""" start="00:07:32.840" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""so that every user contributes equally.""" start="00:07:35.680" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""For example if one user submits like""" start="00:07:37.880" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""100 hours Emacs uptime statistics""" start="00:07:40.280" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""and other users submit one hour Emacs uptime""" start="00:07:43.120" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""then I will anyway make it so that they contribute equally.""" start="00:07:46.280" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""Let's start from one of the most obvious things""" start="00:07:52.880" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""we can look into is""" start="00:07:56.360" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""which is the time it takes for garbage collection""" start="00:07:57.680" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""to single garbage collection process.""" start="00:08:00.600" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""Here you see frequency distribution of GC duration""" start="00:08:05.880" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""for all the 129 users we got""" start="00:08:11.840" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""and you can see that most of the garbage collections""" start="00:08:15.000" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""are done quite quickly in less than 0.1 second""" start="00:08:22.280" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""and less than 0.1 second is usually just not noticeable.""" start="00:08:27.000" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""So even though there is garbage collection""" start="00:08:32.200" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""it will not interrupt the work in Emacs.""" start="00:08:34.520" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""However there is a fraction of users""" start="00:08:39.640" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""who experience garbage collection""" start="00:08:43.280" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""it takes like 0.2, 0.3 or even half a second""" start="00:08:45.280" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""which will be quite noticeable.""" start="00:08:48.400" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""For the purposes of this study""" start="00:08:50.400" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""I will consider that anything that is less than 0.1 second""" start="00:08:55.280" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""which is insignificant so like you will not notice it""" start="00:08:59.400" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""and it's like obviously""" start="00:09:02.640" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""all the Emacs usage will be just normal.""" start="00:09:04.160" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""But if it's more than 0.1 or 0.2 seconds""" start="00:09:07.480" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""then it will be very noticeable""" start="00:09:11.640" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""and you will see that Emacs hang for a little while""" start="00:09:13.800" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""or not so little while. In terms of numbers""" start="00:09:16.080" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""it's better to plot the statistics not as a distribution""" start="00:09:21.320" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""but as a cumulative distribution.""" start="00:09:26.240" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""So like at every point of this graph""" start="00:09:28.200" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""you'll see like for example here 0.4 seconds""" start="00:09:31.560" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""you have this percent of like almost 90% of users""" start="00:09:37.160" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""have no more than 0.4 gc duration.""" start="00:09:42.280" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""So like we can look here if we take one""" start="00:09:49.280" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""gc critical gc duration which is 0.1 second""" start="00:09:53.240" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""0.1 second and look at how many users have""" start="00:09:56.880" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""it so we have 56% which is like""" start="00:10:00.280" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""44% users have less than 0.1 second gc duration""" start="00:10:02.440" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""and the rest 56% have more than 0.1 second.""" start="00:10:09.440" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""So you can see like more than half of users""" start="00:10:12.840" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""actually have noticeable gc delay""" start="00:10:16.280" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""so the Emacs freezes for some noticeable time""" start="00:10:20.560" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""and a quarter of users actually have very noticeable""" start="00:10:23.000" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""so like Emacs freezes such that you see an actual delay""" start="00:10:27.480" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""that Emacs actually has""" start="00:10:31.800" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""which is quite significant and important point.""" start="00:10:36.880" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""But apart from the duration of each individual gc""" start="00:10:44.080" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""it is important to see how frequent it is""" start="00:10:47.720" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""because even if you do notice a delay""" start="00:10:49.840" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""even a few seconds delay""" start="00:10:52.880" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""it doesn't matter if it happens once""" start="00:10:54.960" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""during the whole Emacs session.""" start="00:10:57.000" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""So if you look into frequency distribution again here""" start="00:10:59.200" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""I plot time between subsequent garbage collections""" start="00:11:05.040" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""versus how frequent it is and we have very clear trend""" start="00:11:13.640" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""that most of the garbage collections are quite frequent""" start="00:11:17.960" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""like we talk about every few seconds a few tens of seconds.""" start="00:11:21.800" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""There's a few outliers which are at very round numbers""" start="00:11:25.160" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""like 60 seconds, 120 seconds, 300 seconds.""" start="00:11:30.040" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""These are usually timers so like""" start="00:11:35.840" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""you have something running on timer""" start="00:11:37.880" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""and then it is complex command""" start="00:11:40.320" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""and it triggers garbage collection""" start="00:11:43.600" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""but it's not the majority.""" start="00:11:45.080" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""Again to run the numbers""" start="00:11:48.080" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""it's better to look into cumulative distribution""" start="00:11:51.280" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""and see that 50% of garbage collections""" start="00:11:53.680" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""are basically less than 10 seconds apart.""" start="00:11:56.040" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""And we can combine it with previous data""" start="00:11:58.280" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""and we look into whatever garbage collection""" start="00:12:02.360" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""takes less than 10 seconds from each other""" start="00:12:07.480" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""and also takes more than say 0.1 seconds.""" start="00:12:09.960" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""So and then we see that""" start="00:12:13.120" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""one quarter of all garbage collections""" start="00:12:15.320" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""are just noticeable and also frequent""" start="00:12:17.640" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""and 9% are not like""" start="00:12:21.040" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""more than 0.2% very noticeable and also frequent.""" start="00:12:23.680" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""So basically it constitutes Emacs freezing.""" start="00:12:27.200" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""So 9% of all the garbage collection Emacs freezing.""" start="00:12:30.080" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""Of course if you remember there is a bias""" start="00:12:33.560" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""but 9% is quite significant number.""" start="00:12:37.320" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""So garbage collection can really slow down things""" start="00:12:40.520" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""not for everyone but for significant fraction of users.""" start="00:12:44.320" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""Another thing I'd like to look into""" start="00:12:48.240" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""is what I call agglomerated GCs.""" start="00:12:52.160" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""What I mean by agglomerated is""" start="00:12:55.400" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""when you have one garbage collection""" start="00:12:57.960" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""and then another garbage immediately after it.""" start="00:13:00.360" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""So in terms of numbers I took""" start="00:13:03.000" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""every subsequent garbage collection""" start="00:13:05.560" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""which is either immediately after""" start="00:13:08.720" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""or no more than one second after each.""" start="00:13:10.400" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""So from point of view of users is like""" start="00:13:13.040" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""multiple garbage collection they add up together""" start="00:13:16.160" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""into one giant garbage collection.""" start="00:13:20.000" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""And if you look into numbers""" start="00:13:23.000" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""of how many agglomerated garbage collections there are""" start="00:13:25.840" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""you can see even numbers over 100.""" start="00:13:29.560" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""So 100 garbage collection going one after another.""" start="00:13:32.120" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""Even if you think about each garbage collection""" start="00:13:35.480" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""taking 0.1 second we look into 100 of them""" start="00:13:39.160" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""it's total 10 seconds.""" start="00:13:42.720" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""It's like Emacs hanging forever""" start="00:13:44.640" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""or like a significant number is also 10.""" start="00:13:46.840" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""So again this would be very annoying to meet such thing.""" start="00:13:53.520" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""How frequently does it happen?""" start="00:13:56.000" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""Again we can plot cumulative distribution""" start="00:13:57.880" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""and we see that 20 percent like 19 percent""" start="00:14:00.280" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""of all the garbage collection are at least two together""" start="00:14:03.880" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""and 8 percent like more than 10. So like you think about oh""" start="00:14:07.200" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""each garbage collection is not taking much time""" start="00:14:13.680" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""but when you have 10 of them yeah that becomes a problem.""" start="00:14:15.640" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""Another thing is to answer a question""" start="00:14:24.480" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""that some people complain about is that""" start="00:14:29.920" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""longer you use Emacs the slower Emacs become.""" start="00:14:32.960" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""Of course it may be caused by garbage collection""" start="00:14:35.800" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""and I wanted to look into how garbage collection time""" start="00:14:43.040" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""and other statistics,""" start="00:14:48.520" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""other parameters are evolving over time.""" start="00:14:49.680" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""And what I can see here is a cumulative distribution""" start="00:14:53.200" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""of GC duration for like first 10 minutes of Emacs uptime""" start="00:14:58.560" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""first 100 minutes first 1000 minutes.""" start="00:15:03.720" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""And if you look closer then you see""" start="00:15:06.480" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""that each individual garbage collection on average""" start="00:15:10.200" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""takes longer as you use Emacs longer.""" start="00:15:14.520" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""However this longer is not much it's like maybe 10 percent""" start="00:15:18.960" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""like basically garbage collection gets like""" start="00:15:24.040" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""slow Emacs down more as you use Emacs more but not much.""" start="00:15:29.480" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""So basically if you do you see Emacs""" start="00:15:34.720" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""being slower and slower over time""" start="00:15:38.360" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""it's probably not really garbage collection""" start="00:15:40.640" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""because it doesn't change too much.""" start="00:15:43.160" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""And if you look into time""" start="00:15:45.840" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""between individual garbage collections""" start="00:15:48.120" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""and you see that the time actually increases""" start="00:15:50.840" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""as you use Emacs longer which makes sense""" start="00:15:53.720" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""because initially like first few minutes""" start="00:15:56.720" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""you have all kind of packages loading""" start="00:15:58.840" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""like all the port loading and then later""" start="00:16:01.480" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""everything is loaded and things become more stable.""" start="00:16:04.240" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""So the conclusion on this part is that""" start="00:16:07.240" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""if Emacs becomes slower in a long session""" start="00:16:12.880" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""it's probably not caused by garbage collection.""" start="00:16:16.400" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""And one word of warning of course is that""" start="00:16:18.480" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""it's all nice and all when I present the statistics""" start="00:16:23.680" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""but it's only an average""" start="00:16:27.920" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""and if you are an actual user like here is one example""" start="00:16:29.280" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""which shows a total garbage collection time""" start="00:16:34.080" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""like accumulated together over Emacs uptime""" start="00:16:37.160" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""and you see different lines""" start="00:16:40.120" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""which correspond to different sessions of one user""" start="00:16:43.200" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""and you see they are wildly different""" start="00:16:45.560" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""like one time there is almost no garbage collection""" start="00:16:48.680" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""another time you see garbage collection""" start="00:16:51.440" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""because probably Emacs is used more early""" start="00:16:54.680" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""or like different pattern of usage""" start="00:16:57.000" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""and even during a single Emacs session""" start="00:16:59.600" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""you see a different slope""" start="00:17:03.160" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""of this curve which means that""" start="00:17:04.600" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""sometimes garbage collection is infrequent""" start="00:17:06.440" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""and sometimes it's much more frequent""" start="00:17:09.280" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""so it's probably much more noticeable one time""" start="00:17:11.480" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""and less noticeable other time.""" start="00:17:14.480" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""So if you think about these statistics of course""" start="00:17:15.640" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""they only represent an average usage""" start="00:17:19.720" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""but sometimes it can get worse sometimes it can get better.""" start="00:17:23.360" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""The last parameter I'd like to talk about is""" start="00:17:26.360" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""garbage collection during Emacs init.""" start="00:17:33.760" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""Basically if you think about what happens during Emacs init""" start="00:17:35.800" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""like when Emacs just starting up""" start="00:17:40.440" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""then whatever garbage collection""" start="00:17:41.920" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""there it's one or it's several times""" start="00:17:44.480" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""it all contributes to Emacs taking longer to start.""" start="00:17:46.760" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""And again we can look into the statistic""" start="00:17:51.240" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""and see what is the total GC duration after Emacs init""" start="00:17:56.560" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""and we see that 50% of all the submissions""" start="00:18:01.160" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""garbage collection adds up more than one second""" start="00:18:06.160" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""to Emacs init time and for 20% of users""" start="00:18:10.280" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""it's extra three seconds Emacs start time""" start="00:18:14.920" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""which is very significant""" start="00:18:17.080" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""especially for people who are used to Vim""" start="00:18:18.480" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""which can start in like a fraction of a second""" start="00:18:21.480" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""and here it just does garbage collection""" start="00:18:23.920" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""because garbage collection is not""" start="00:18:26.240" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""everything Emacs does during startup""" start="00:18:27.440" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""adds up more to the load.""" start="00:18:29.240" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""Okay that's all nice and all""" start="00:18:32.000" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""but what can we do about these statistics""" start="00:18:36.120" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""can we draw any conclusions""" start="00:18:38.680" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""and the answer is of course""" start="00:18:40.160" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""like the most important conclusion here is that""" start="00:18:43.240" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""yes garbage collection can slow down Emacs""" start="00:18:46.080" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""at least for some people and what to do about it""" start="00:18:49.440" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""there are two variables which you can tweak""" start="00:18:52.680" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""it's because gcconce threshold gcconce percentage""" start="00:18:55.320" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""and having the statistics I can at least look a little bit""" start="00:18:58.720" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""into what is the effect of increasing these variables""" start="00:19:03.160" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""like most people just increase gcconce threshold""" start="00:19:08.880" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""and like all the submissions people did increase""" start="00:19:12.440" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""and doesn't make much sense to decrease it""" start="00:19:16.960" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""like to make things worse""" start="00:19:19.920" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""of course for these statistics""" start="00:19:21.080" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""the exact values of this increased thresholds""" start="00:19:27.640" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""are not always the same""" start="00:19:31.560" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""but at least we can look into some trends""" start="00:19:33.840" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""so first and obvious thing we can observe""" start="00:19:36.480" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""is when we compare""" start="00:19:44.760" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""the standard gc settings standard thresholds""" start="00:19:46.760" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""and increased thresholds for time between""" start="00:19:50.400" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""subsequent gcs and as one may expect""" start="00:19:54.000" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""if you increase the threshold""" start="00:19:57.480" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""Emacs will do garbage collection less frequently""" start="00:19:59.560" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""so the spacing between garbage collection increases""" start="00:20:02.680" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""okay the only thing is that""" start="00:20:05.280" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""if garbage collection is less frequent""" start="00:20:07.600" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""then each individual garbage collection becomes longer""" start="00:20:10.720" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""so if you think about increasing""" start="00:20:14.080" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""garbage collection thresholds be prepared""" start="00:20:18.160" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""that in each individual time Emacs freezes will take longer""" start="00:20:22.240" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""this is one caveat when we talk about""" start="00:20:26.520" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""this agglomerated gcs which are one after other""" start="00:20:31.600" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""like if you increase the threshold sufficiently""" start="00:20:34.080" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""then whatever happened that garbage collections""" start="00:20:36.760" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""were like done one after other""" start="00:20:42.320" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""we can now make it so that they are actually separated""" start="00:20:44.400" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""so like you don't see one giant freeze caused by""" start="00:20:47.600" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""like 10 gcs in a row""" start="00:20:51.560" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""instead you can make it so that they are separated""" start="00:20:52.920" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""and in statistics it's very clear""" start="00:20:55.760" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""that the number of agglomerated garbage collections""" start="00:20:59.080" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""decreases dramatically when you increase the thresholds""" start="00:21:02.960" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""it's particularly evident when we look into startup time""" start="00:21:06.920" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""if you look at gc duration during Emacs startup""" start="00:21:11.760" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""and if we look into what happens""" start="00:21:17.280" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""when you increase the thresholds""" start="00:21:19.160" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""it's very clear that Emacs startup become faster""" start="00:21:20.880" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""when you increase gc thresholds""" start="00:21:23.800" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""so that's all for actual user statistics""" start="00:21:26.280" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""and now let's try to run into""" start="00:21:33.360" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""some like actual recommendations""" start="00:21:35.440" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""on what numbers to set and before we start""" start="00:21:38.080" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""let me explain a little bit about""" start="00:21:42.640" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""the difference between these two variables""" start="00:21:44.400" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""which is gc constant threshold and gc constant percentage""" start="00:21:46.480" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""so if you think about Emacs memory""" start="00:21:48.880" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""like there's a certain memory allocated by Emacs""" start="00:21:52.360" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""and then as you run commands and turn using Emacs""" start="00:21:55.240" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""there is more memory allocated""" start="00:21:58.480" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""and Emacs decides when to do garbage collection""" start="00:22:00.080" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""according these two variables""" start="00:22:04.640" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""and actually what it does it chooses the larger one""" start="00:22:06.080" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""so say you have you are late in Emacs session""" start="00:22:08.760" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""you have a lot of Emacs memory allocated""" start="00:22:12.120" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""then you have gc constant percentage""" start="00:22:14.040" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""which is percent of the already allocated memory""" start="00:22:17.120" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""and that percent is probably going to be the largest""" start="00:22:19.920" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""because you have more memory""" start="00:22:25.120" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""and memory means that percent of it is larger""" start="00:22:28.320" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""so like you have a larger number cost""" start="00:22:32.560" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""by gc constant percentage""" start="00:22:36.360" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""so in this scenario when Emacs session is already running""" start="00:22:37.720" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""for a long time and there is a lot of memory allocated""" start="00:22:43.080" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""you have gc constant percentage""" start="00:22:45.320" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""controlling the garbage collection""" start="00:22:50.120" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""while early in Emacs there is not much memory placed""" start="00:22:52.280" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""Emacs just starting up then gc constant threshold""" start="00:22:55.000" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""is controlling how frequently garbage collection happens""" start="00:22:58.720" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""because smaller allocated memory""" start="00:23:01.640" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""means its percentage will be a small number""" start="00:23:04.800" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""so in terms of default values at least""" start="00:23:06.840" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""gc constant threshold is 800 kilobytes""" start="00:23:12.320" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""and gc constant percentage is 10""" start="00:23:14.240" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""so gc constant percentage becomes larger than that threshold""" start="00:23:18.800" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""when you have more than eight megabytes of allocated memory""" start="00:23:24.160" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""by Emacs which is quite early""" start="00:23:28.920" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""and it will probably hold just during the startup""" start="00:23:31.040" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""and once you start using your maximum""" start="00:23:34.280" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""and once you load all the histories""" start="00:23:36.800" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""all the kinds of buffers it's probably going to take""" start="00:23:38.920" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""more than much more than eight megabytes""" start="00:23:42.040" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""so now we understand this""" start="00:23:43.960" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""we can draw certain recommendations""" start="00:23:50.640" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""about tweaking the gc thresholds""" start="00:23:53.280" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""so first of all I need to emphasize""" start="00:23:57.280" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""that any time you increase gc threshold""" start="00:24:01.160" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""an individual garbage collection time increases""" start="00:24:03.640" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""so it's not free at all""" start="00:24:07.200" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""if you don't have problems with garbage collection""" start="00:24:08.760" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""which is half of the users don't have much problem""" start="00:24:11.000" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""you don't need to tweak anything""" start="00:24:13.520" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""only when gc is frequent and slow""" start="00:24:15.080" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""when Emacs is really really present frequently""" start="00:24:19.360" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""you may consider increasing gc thresholds only""" start="00:24:23.400" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""and in particular I recommend""" start="00:24:27.120" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""increasing gc constant percentage""" start="00:24:31.480" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""because that's what mostly controls gc""" start="00:24:33.280" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""when Emacs is running for long session""" start="00:24:36.360" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""and the numbers are probably like""" start="00:24:40.080" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""yeah we can estimate the effect of these numbers""" start="00:24:43.040" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""like for example if you have a default value of 0.1 percent""" start="00:24:46.520" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""for gc constant percentage 0.1 which is 10 percent""" start="00:24:49.680" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""and then increase it twice""" start="00:24:52.760" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""obviously you get twice less frequent gcs""" start="00:24:55.040" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""but it will come at the cost of extra 10 percent gc time""" start="00:24:58.640" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""and if you increase 10 times you can think about""" start="00:25:02.560" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""10 less 10 x less frequent gcs""" start="00:25:05.840" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""but almost twice longer individual garbage collection time""" start="00:25:08.720" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""so probably you want to set the number closer to 0.1""" start="00:25:12.200" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""another part of the users may actually""" start="00:25:16.920" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""try to optimize Emacs startup time""" start="00:25:23.400" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""which is quite frequent problem""" start="00:25:28.360" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""in this case it's probably better to increase gc constant""" start="00:25:30.760" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""but not too much so like""" start="00:25:34.920" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""first of all it makes sense to check""" start="00:25:38.200" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""whether garbage collection is a problem at all""" start="00:25:40.240" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""during startup and there are two variables""" start="00:25:43.320" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""which can show what is happening this garbage collection""" start="00:25:46.000" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""so gc done is a variable that shows""" start="00:25:50.200" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""how many garbage collection""" start="00:25:53.720" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""like what is the number of garbage collections triggered""" start="00:25:55.040" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""like when you check the value""" start="00:26:00.160" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""or right after you start Emacs""" start="00:26:02.600" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""you will see that""" start="00:26:04.040" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""number and gc elapsed variable""" start="00:26:04.800" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""which gives you a number of seconds""" start="00:26:08.520" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""which Emacs spent in doing garbage collection""" start="00:26:11.600" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""so this is probably the most important variable""" start="00:26:14.960" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""and if you see it's large then you may consider tweaking it""" start="00:26:16.880" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""for the Emacs startup we can estimate some bounds""" start="00:26:20.720" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""because in the statistics I never saw anything""" start="00:26:26.800" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""that is more than 10 seconds extra""" start="00:26:30.040" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""which even 10 seconds is probably like""" start="00:26:32.440" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""a really really hard upper bound so""" start="00:26:34.440" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""or say if you want to decrease the gc contribution""" start="00:26:39.120" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""like order of magnitude or like two orders of magnitudes""" start="00:26:44.480" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""let's say like as a really hard top estimate""" start="00:26:47.480" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""then it corresponds to 80 megabytes gc constant""" start="00:26:50.880" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""and probably much less so like""" start="00:26:55.080" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""there's no point setting it""" start="00:26:58.960" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""to a few hundred megabytes of course""" start="00:27:00.680" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""there's one caveat which is important to keep in""" start="00:27:04.160" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""mind though that increasing the gc thresholds""" start="00:27:08.440" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""is not just increasing individual gc time""" start="00:27:14.040" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""there's also an actual real impact on the RAM usage""" start="00:27:16.400" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""so like if you increase gc threshold""" start="00:27:20.400" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""it increases the RAM usage of Emacs""" start="00:27:23.840" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""and you shouldn't think that like okay""" start="00:27:26.880" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""I increased the threshold by like 100 megabytes""" start="00:27:29.640" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""then 100 megabytes extra RAM usage doesn't matter""" start="00:27:33.160" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""it's not 100 megabytes""" start="00:27:37.120" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""because less frequent garbage collection means""" start="00:27:38.680" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""it will lead to memory fragmentation""" start="00:27:42.320" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""so in practice if you increase the thresholds""" start="00:27:45.640" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""to tens or hundreds of megabytes""" start="00:27:50.440" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""we are talking about gigabytes extra RAM usage""" start="00:27:52.800" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""for me personally when I tried to play with gc thresholds""" start="00:27:55.920" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""I have seen Emacs taking two gigabytes like""" start="00:27:59.720" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""compared to several times less""" start="00:28:02.880" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""when with default settings so it's not free at all""" start="00:28:05.520" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""and only like either when you have a lot of free RAM""" start="00:28:09.040" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""and you don't care or when your Emacs is really slow""" start="00:28:13.640" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""then you may need to consider this""" start="00:28:16.840" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""tweaking these defaults so again don't tweak defaults""" start="00:28:19.560" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""if you don't really have a problem""" start="00:28:23.240" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""and of course this RAM problem is a big big deal""" start="00:28:24.240" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""for Emacs devs because from from the point of single user""" start="00:28:29.840" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""you have like normal laptop most likely like normal PC""" start="00:28:35.680" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""with a lot of RAM you don't care about these things too much""" start="00:28:38.840" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""but Emacs in general can run on like all kinds of machines""" start="00:28:42.080" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""including low-end machines with very limited RAM""" start="00:28:49.000" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""and anytime Emacs developers consider increasing""" start="00:28:51.680" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""the defaults for garbage collection""" start="00:28:55.360" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""it's like they always have to consider""" start="00:28:57.960" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""if you increase them too much""" start="00:29:01.480" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""then Emacs may just stop running on certain platforms""" start="00:29:02.960" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""so that's a very big consideration in terms""" start="00:29:07.920" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""of the global defaults for everyone""" start="00:29:14.440" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""although I have to I would say that it might be related""" start="00:29:16.640" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""to the safe to increase GCCons threshold""" start="00:29:22.200" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""because it mostly affects startup and during startup""" start="00:29:24.480" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""it's probably not the peak usage of Emacs""" start="00:29:27.920" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""and like as Emacs runs for longer""" start="00:29:31.280" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""it's probably where most of RAM will be used later""" start="00:29:35.600" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""on the other hand GCCons percentage is much more debating""" start="00:29:38.200" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""because it has pros and cons""" start="00:29:44.400" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""it will increase the RAM usage""" start="00:29:46.160" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""it will increase the individual GC time so""" start="00:29:47.720" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""if we consider changing it it's much more tricky""" start="00:29:51.000" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""and we have discussing probably measure the impact on users""" start="00:29:56.120" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""and a final note on or from the point of view""" start="00:29:59.480" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""of Emacs development is""" start="00:30:05.800" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""that this simple mark-and-sweep algorithm""" start="00:30:07.320" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""is like a very old and not the state-of-the-art algorithm""" start="00:30:11.040" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""there are variants of garbage collection""" start="00:30:14.120" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""that are like totally non-blocking""" start="00:30:17.800" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""so Emacs just doesn't have to freeze""" start="00:30:19.480" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""during the garbage collection""" start="00:30:22.480" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""or there are variants of garbage collection algorithm""" start="00:30:24.280" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""that do not scan all the memory just fraction of it""" start="00:30:26.840" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""and scan another fraction less frequently""" start="00:30:30.080" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""so there are actually ways just to change""" start="00:30:33.440" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""the garbage collection algorithm to make things much faster""" start="00:30:37.000" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""of course like just changing the numbers of variables""" start="00:30:39.800" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""like the numbers of variable values""" start="00:30:44.200" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""is much more tricky and one has to implement it""" start="00:30:47.080" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""obviously it would be nice if someone implements it""" start="00:30:50.080" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""but so far it's not happening so yeah it would be nice""" start="00:30:52.240" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""but maybe not not so quickly""" start="00:30:55.640" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""there is more chance to change the defaults here""" start="00:30:59.360" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""to conclude let me reiterate the most important points""" start="00:31:02.160" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""so from point of view of users you need to understand that""" start="00:31:07.480" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""yes garbage collection may be a problem""" start="00:31:11.920" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""but not for everyone so like""" start="00:31:14.480" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""you should only think about changing the variables""" start="00:31:16.680" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""when you really know that garbage collection""" start="00:31:21.080" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""is the problem for you so if you have slow Emacs startup""" start="00:31:23.560" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""slow Emacs startup and you know that it's caused by""" start="00:31:27.480" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""garbage collection like by""" start="00:31:30.920" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""you can check the GC elapsed variable""" start="00:31:32.480" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""then you may increase GC count threshold""" start="00:31:36.000" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""like to few tens of megabytes not more""" start="00:31:39.680" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""it doesn't make sense to increase it much more""" start="00:31:42.120" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""and if you really have major problems""" start="00:31:44.480" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""with Emacs being slaggy""" start="00:31:48.240" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""then you can increase GC count percentage""" start="00:31:49.760" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""to like 0.2 0.3 maybe""" start="00:31:52.520" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""one is probably overkill""" start="00:31:56.000" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""but do watch your Emacs ROM usage it may be really impacted""" start="00:31:57.680" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""for Emacs developers I'd like to emphasize""" start="00:32:02.760" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""that there is a real problem with garbage collection""" start="00:32:09.720" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""and nine percent of all the garbage collection""" start="00:32:12.440" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""data points we have correspond""" start="00:32:17.960" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""to really slow noticeable Emacs precision""" start="00:32:22.080" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""and really frequent less than 10 seconds""" start="00:32:24.960" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""I'd say that it's really worth""" start="00:32:28.040" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""increasing GC count threshold at least during startup""" start="00:32:32.320" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""because it really impacts the Emacs startup time""" start="00:32:35.280" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""making Emacs startup much faster""" start="00:32:40.160" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""ideally we need to reimplement""" start="00:32:41.520" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""the garbage collection algorithm of course it's not easy""" start="00:32:44.800" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""but it would be really nice""" start="00:32:48.600" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""and for GC count percentage defaults it's hard to say""" start="00:32:50.160" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""we may consider changing it but it's up to discussion""" start="00:32:56.400" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""and we probably need to be conservative here""" start="00:33:00.760" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""so we came to the end of my talk""" start="00:33:03.120" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""and this presentation""" start="00:33:06.040" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""all the data will be available publicly""" start="00:33:09.320" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""and you can reproduce all the statistic graphs if you wish""" start="00:33:11.840" video="mainVideo-gc" id="subtitle"]]
+[[!template text="""and thank you for attention""" start="00:33:17.080" video="mainVideo-gc" id="subtitle"]]
+
+</div>Questions or comments? Please e-mail [yantar92@posteo.net](mailto:yantar92@posteo.net?subject=Comment%20for%20EmacsConf%202023%20gc%3A%20emacs-gc-stats%3A%20Does%20garbage%20collection%20actually%20slow%20down%20Emacs%3F)
<!-- End of emacsconf-publish-after-page -->
diff --git a/2023/info/gc-before.md b/2023/info/gc-before.md
index 4b1ecdba..8167b2a4 100644
--- a/2023/info/gc-before.md
+++ b/2023/info/gc-before.md
@@ -1,12 +1,12 @@
<!-- Automatically generated by emacsconf-publish-before-page -->
[[!toc ]]
-Format: 20-min talk followed by live web conference and Etherpad - for longer/late questions, it is better to use public mailing list emacs-gc-stats@gnu.org Q&A
-Discuss on IRC: [#emacsconf](https://chat.emacsconf.org/?join=emacsconf)
-Status: Waiting for video from speaker
+Format: 34-min talk ; Q&A: BigBlueButton conference room
+Status: Q&A to be extracted from the room recordings
+<div class="vid mainVideo"><video controls preload="none" id="mainVideo-gc"><source src="https://media.emacsconf.org/2023/emacsconf-2023-gc--emacsgcstats-does-garbage-collection-actually-slow-down-emacs--ihor-radchenko--main.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2023/captions/emacsconf-2023-gc--emacsgcstats-does-garbage-collection-actually-slow-down-emacs--ihor-radchenko--main.vtt" default />"""<p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video><div></div>Duration: 33:22 minutes<div class="files resources"><ul><li><a href="https://pad.emacsconf.org/2023-gc">Open Etherpad</a></li><li><a href="https://bbb.emacsverse.org/playback/presentation/2.0/playback.html?meetingId=b0f325d396963155a01854970e055fe7440abf61-1701624602181">Play recording from BigBlueButton</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-gc--emacsgcstats-does-garbage-collection-actually-slow-down-emacs--ihor-radchenko--intro.vtt">Download --intro.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-gc--emacsgcstats-does-garbage-collection-actually-slow-down-emacs--ihor-radchenko--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-gc--emacsgcstats-does-garbage-collection-actually-slow-down-emacs--ihor-radchenko--main.opus">Download --main.opus (22MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-gc--emacsgcstats-does-garbage-collection-actually-slow-down-emacs--ihor-radchenko--main.vtt">Download --main.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-gc--emacsgcstats-does-garbage-collection-actually-slow-down-emacs--ihor-radchenko--main.webm">Download --main.webm (80MB)</a></li><li><a href="https://toobnix.org/w/ngenUPBLDDkZGmsxK8vimJ">View on Toobnix</a></li><li><a href="https://www.youtube.com/watch?v=YA1RJxH4xfQ">View on Youtube</a></li></ul></div></div>
# Description
<!-- End of emacsconf-publish-before-page --> \ No newline at end of file
diff --git a/2023/info/gc-nav.md b/2023/info/gc-nav.md
index 5b60d7ad..59675d1e 100644
--- a/2023/info/gc-nav.md
+++ b/2023/info/gc-nav.md
@@ -1,7 +1,7 @@
<div class="talk-nav">
Back to the [[talks]]
-Previous by track: <a href="/2023/talks/flat">A modern Emacs look-and-feel without pain</a>
-Next by track: <a href="/2023/talks/lspocaml">Writing a language server in OCaml for Emacs, fun, and profit</a>
-Track: <span class="sched-track Development">Development</span>
+Previous by track: <a href="/2023/talks/emacsen">The Emacsen family, the design of an Emacs and the importance of Lisp</a>
+Next by track: <a href="/2023/talks/hyperdrive">hyperdrive.el: Peer-to-peer filesystem in Emacs</a>
+Track: <span class="sched-track Development">Development</span> - <strong><a href="https://emacsconf.org/2023/watch/dev">Watch</a></strong>
</div>
diff --git a/2023/info/hn-before.md b/2023/info/hn-before.md
index f1f6f49a..2700a0ea 100644
--- a/2023/info/hn-before.md
+++ b/2023/info/hn-before.md
@@ -1,8 +1,14 @@
<!-- Automatically generated by emacsconf-publish-before-page -->
+
+The following image shows where the talk is in the schedule for Sun 2023-12-03. Solid lines show talks with Q&A via BigBlueButton. Dashed lines show talks with Q&A via IRC or Etherpad.<div class="schedule-in-context schedule-svg-container" data-slug="hn">
+<svg width="800" height="150" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> <title> Schedule for Sunday</title> <rect width="800" height="150" x="0" y="0" fill="white"></rect> <text font-size="10" fill="black" y="12" x="3"> Sunday</text> <a href="/2023/talks/sun-open" title="Sunday opening remarks" data-slug="sun-open"> <title> 9:00- 9:05 Sunday opening remarks</title> <rect x="0" y="15" opacity="0.5" width="7" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect> <g transform="translate(5,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> sun-open</text></g></a> <a href="/2023/talks/hyperamp" title="Top 10 ways Hyperbole amps up Emacs" data-slug="hyperamp"> <title> 9:05- 9:25 Top 10 ways Hyperbole amps up Emacs</title> <rect x="7" y="15" opacity="0.5" width="31" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect> <g transform="translate(36,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> hyperamp</text></g></a> <a href="/2023/talks/koutline" title="Using Koutline for stream of thought journaling" data-slug="koutline"> <title> 9:40-10:00 Using Koutline for stream of thought journaling</title> <rect x="62" y="15" opacity="0.5" width="31" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect> <g transform="translate(91,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> koutline</text></g></a> <a href="/2023/talks/parallel" title="Parallel Text Replacement: Does P = NP?" data-slug="parallel"> <title> 10:10-10:20 Parallel Text Replacement: Does P = NP?</title> <rect x="109" y="15" opacity="0.5" width="15" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect> <g transform="translate(122,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> parallel</text></g></a> <a href="/2023/talks/eat" title="Eat and Eat powered Eshell, fast featureful terminal inside Emacs" data-slug="eat"> <title> 10:35-10:45 Eat and Eat powered Eshell, fast featureful terminal inside Emacs</title> <rect x="149" y="15" opacity="0.5" width="15" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect> <g transform="translate(162,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> eat</text></g></a> <a href="/2023/talks/poltys" title="The browser in a buffer" data-slug="poltys"> <title> 11:00-11:20 The browser in a buffer</title> <rect x="188" y="15" opacity="0.5" width="31" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect> <g transform="translate(217,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> poltys</text></g></a> <a href="/2023/talks/cubing" title="Speedcubing in Emacs" data-slug="cubing"> <title> 11:35-11:55 Speedcubing in Emacs</title> <rect x="243" y="15" opacity="0.5" width="31" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect> <g transform="translate(272,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> cubing</text></g></a> <a href="/2023/talks/emms" title="Emacs MultiMedia System (EMMS)" data-slug="emms"> <title> 1:00- 1:40 Emacs MultiMedia System (EMMS)</title> <rect x="376" y="15" opacity="0.5" width="62" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect> <g transform="translate(436,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> emms</text></g></a> <a href="/2023/talks/steno" title="Programming at 200 wpm" data-slug="steno"> <title> 1:55- 2:25 Programming at 200 wpm</title> <rect x="462" y="15" opacity="0.5" width="47" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect> <g transform="translate(507,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> steno</text></g></a> <a href="/2023/talks/mentor" title="Mentoring VS-Coders as an Emacsian (or How to show not tell people about the wonders of Emacs)" data-slug="mentor"> <title> 2:35- 2:45 Mentoring VS-Coders as an Emacsian (or How to show not tell people about the wonders of Emacs)</title> <rect x="525" y="15" opacity="0.5" width="15" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect> <g transform="translate(538,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> mentor</text></g></a> <a href="/2023/talks/hn" title="The many ways to browse Hacker News from Emacs" data-slug="hn"> <title> 3:00- 3:10 The many ways to browse Hacker News from Emacs</title> <rect stroke-width="3" x="564" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect> <g transform="translate(577,73)"> <text font-weight="bold" fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> hn</text></g></a> <a href="/2023/talks/web" title="Emacs saves the Web" data-slug="web"> <title> 3:25- 4:05 Emacs saves the Web</title> <rect x="603" y="15" opacity="0.5" width="62" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect> <g transform="translate(663,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> web</text></g></a> <a href="/2023/talks/sharing" title="Sharing Emacs is Caring Emacs: Emacs education and why I embraced video" data-slug="sharing"> <title> 4:20- 4:40 Sharing Emacs is Caring Emacs: Emacs education and why I embraced video</title> <rect x="690" y="15" opacity="0.5" width="31" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect> <g transform="translate(719,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> sharing</text></g></a> <a href="/2023/talks/sun-close" title="Sunday closing remarks" data-slug="sun-close"> <title> 4:55- 5:05 Sunday closing remarks</title> <rect x="745" y="15" opacity="0.5" width="15" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect> <g transform="translate(758,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> sun-close</text></g></a> <a href="/2023/talks/scheme" title="Bringing joy to Scheme programming" data-slug="scheme"> <title> 10:00-10:20 Bringing joy to Scheme programming</title> <rect x="94" y="75" opacity="0.5" width="31" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect> <g transform="translate(123,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> scheme</text></g></a> <a href="/2023/talks/test" title="What I learned by writing test cases for GNU Hyperbole" data-slug="test"> <title> 10:35-10:55 What I learned by writing test cases for GNU Hyperbole</title> <rect x="149" y="75" opacity="0.5" width="31" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect> <g transform="translate(178,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> test</text></g></a> <a href="/2023/talks/world" title="GNU Emacs: A World of Possibilities" data-slug="world"> <title> 11:10-11:30 GNU Emacs: A World of Possibilities</title> <rect x="203" y="75" opacity="0.5" width="31" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect> <g transform="translate(232,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> world</text></g></a> <a href="/2023/talks/flat" title="A modern Emacs look-and-feel without pain" data-slug="flat"> <title> 11:45-11:55 A modern Emacs look-and-feel without pain</title> <rect x="258" y="75" opacity="0.5" width="15" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect> <g transform="translate(271,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> flat</text></g></a> <a href="/2023/talks/gc" title="emacs-gc-stats: Does garbage collection actually slow down Emacs?" data-slug="gc"> <title> 1:00- 1:20 emacs-gc-stats: Does garbage collection actually slow down Emacs?</title> <rect x="376" y="75" opacity="0.5" width="31" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect> <g transform="translate(405,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> gc</text></g></a> <a href="/2023/talks/hyperdrive" title="hyperdrive.el: Peer-to-peer filesystem in Emacs" data-slug="hyperdrive"> <title> 1:35- 2:15 hyperdrive.el: Peer-to-peer filesystem in Emacs</title> <rect x="431" y="75" opacity="0.5" width="62" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect> <g transform="translate(491,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> hyperdrive</text></g></a> <a href="/2023/talks/lspocaml" title="Writing a language server in OCaml for Emacs, fun, and profit" data-slug="lspocaml"> <title> 2:30- 2:40 Writing a language server in OCaml for Emacs, fun, and profit</title> <rect x="517" y="75" opacity="0.5" width="15" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect> <g transform="translate(530,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> lspocaml</text></g></a> <a href="/2023/talks/windows" title="Windows into Freedom" data-slug="windows"> <title> 2:55- 3:35 Windows into Freedom</title> <rect x="556" y="75" opacity="0.5" width="62" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect> <g transform="translate(616,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> windows</text></g></a> <a href="/2023/talks/emacsen" title="The Emacsen family, the design of an Emacs and the importance of Lisp" data-slug="emacsen"> <title> 3:50- 4:10 The Emacsen family, the design of an Emacs and the importance of Lisp</title> <rect x="643" y="75" opacity="0.5" width="31" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect> <g transform="translate(672,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> emacsen</text></g></a> <g transform="translate(0,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="133" font-size="10" text-anchor="left"> 9 AM</text></g> <g transform="translate(94,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="133" font-size="10" text-anchor="left"> 10 AM</text></g> <g transform="translate(188,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="133" font-size="10" text-anchor="left"> 11 AM</text></g> <g transform="translate(282,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="133" font-size="10" text-anchor="left"> 12 PM</text></g> <g transform="translate(376,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="133" font-size="10" text-anchor="left"> 1 PM</text></g> <g transform="translate(470,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="133" font-size="10" text-anchor="left"> 2 PM</text></g> <g transform="translate(564,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="133" font-size="10" text-anchor="left"> 3 PM</text></g> <g transform="translate(658,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="133" font-size="10" text-anchor="left"> 4 PM</text></g> <g transform="translate(752,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="133" font-size="10" text-anchor="left"> 5 PM</text></g></svg>
+</div>
+
[[!toc ]]
-Format: 10-min talk followed by live web conference Q&A
+Format: 10-min talk followed by live web conference Q&A
Discuss on IRC: [#emacsconf](https://chat.emacsconf.org/?join=emacsconf)
Status: Waiting for video from speaker
+<div>Times in different timezones:</div><div class="times" start="2023-12-03T20:00:00Z" end="2023-12-03T20:00:00Z"><div class="conf-time">Sunday, Dec 3 2023, ~3:00 PM - 3:00 PM EST (US/Eastern)</div><div class="others"><div>which is the same as:</div>Sunday, Dec 3 2023, ~2:00 PM - 2:00 PM CST (US/Central)<br />Sunday, Dec 3 2023, ~1:00 PM - 1:00 PM MST (US/Mountain)<br />Sunday, Dec 3 2023, ~12:00 PM - 12:00 PM PST (US/Pacific)<br />Sunday, Dec 3 2023, ~8:00 PM - 8:00 PM UTC <br />Sunday, Dec 3 2023, ~9:00 PM - 9:00 PM CET (Europe/Paris)<br />Sunday, Dec 3 2023, ~10:00 PM - 10:00 PM EET (Europe/Athens)<br />Monday, Dec 4 2023, ~1:30 AM - 1:30 AM IST (Asia/Kolkata)<br />Monday, Dec 4 2023, ~4:00 AM - 4:00 AM +08 (Asia/Singapore)<br />Monday, Dec 4 2023, ~5:00 AM - 5:00 AM JST (Asia/Tokyo)</div></div><div><a href="/2023/watch/gen/">Find out how to watch and participate</a></div>
diff --git a/2023/info/hn-nav.md b/2023/info/hn-nav.md
index 5ba03aeb..72fa004e 100644
--- a/2023/info/hn-nav.md
+++ b/2023/info/hn-nav.md
@@ -1,7 +1,7 @@
<div class="talk-nav">
Back to the [[talks]]
-Previous by track: <a href="/2023/talks/mentor">Mentoring VS-Coders as an Emacsian (or How to show not tell people about the wonders of Emacs)</a>
-Next by track: <a href="/2023/talks/web">Emacs saves the Web</a>
+Previous by time: <a href="/2023/talks/windows">Windows into Freedom</a>
+Next by time: <a href="/2023/talks/web">Emacs saves the Web</a>
Track: <span class="sched-track General">General</span>
</div>
diff --git a/2023/info/hyperamp-after.md b/2023/info/hyperamp-after.md
index ef11968b..044bc930 100644
--- a/2023/info/hyperamp-after.md
+++ b/2023/info/hyperamp-after.md
@@ -1,7 +1,1350 @@
<!-- Automatically generated by emacsconf-publish-after-page -->
-Questions or comments? Please e-mail [rsw@gnu.org](mailto:rsw@gnu.org?subject=Comment%20for%20EmacsConf%202022%20hyperamp%3A%20Top%2010%20ways%20Hyperbole%20amps%20up%20Emacs)
+<div class="transcript transcript-mainVideo"><a name="hyperamp-mainVideo-transcript"></a><h1>Transcript (unedited)</h1>
+
+[[!template text="""[Speaker 0]: 5 seconds. Oh, actually,""" start="00:00:01.719" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""[Speaker 1]: Sorry, I keep delaying.""" start="00:00:07.279" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""I keep forgetting that we have an""" start="00:00:08.320" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""introduction now. The introduction is flying.""" start="00:00:09.559" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""[Speaker 0]: a little more. You're going to give a""" start="00:00:02.600" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""[Speaker 1]: Well, it's about 5 seconds now.""" start="00:00:22.260" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""[Speaker 0]: 30-second, right? Just say go when you want""" start="00:00:19.675" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""[Speaker 1]: Sure. You'll hear me anyway.""" start="00:00:29.060" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""[Speaker 0]: me to go. Okay.""" start="00:00:27.560" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""[Speaker 1]: All right, I think we are live now.""" start="00:00:33.260" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""So hi again, everyone.""" start="00:00:35.220" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""I promised you we would be back in about 30""" start="00:00:36.100" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""seconds. I lied, it was actually 1 minute,""" start="00:00:37.900" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""but we are here with Bob.""" start="00:00:40.160" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""Hi, Bob, how are you doing?""" start="00:00:41.760" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""[Speaker 0]: Hi, doing great. Glad to""" start="00:00:43.380" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""[Speaker 1]: be with you. Yeah, glad to be here,""" start="00:00:46.940" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""and so are we. We're glad to have you again""" start="00:00:50.600" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""this year. So what we're going to do,""" start="00:00:52.580" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""we're not going to waste any time right now""" start="00:00:54.440" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""with chit-chats. What we're going to do,""" start="00:00:56.140" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""we're going to move straight into your""" start="00:00:57.880" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""presentation, Bob, so that you have as much""" start="00:00:59.059" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""time as you can. I'm going to recede into the""" start="00:01:01.120" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""background. I am going to full screen your""" start="00:01:04.239" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""presentation on a stream.""" start="00:01:07.440" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""And Bob, the floor is all yours.""" start="00:01:09.860" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""[Speaker 0]: Thank you very much, Leo.""" start="00:01:12.940" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""Glad to be here. I hope everybody has an idea""" start="00:01:15.040" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""of what Hyperbole is, but it's a broad""" start="00:01:18.400" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""information management system inside Emacs""" start="00:01:22.900" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""that works in all major modes.""" start="00:01:26.400" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""It's a global minor mode that you can turn on""" start="00:01:28.860" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""and off very rapidly so that you can just get""" start="00:01:31.760" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""in and out of hyperbole.""" start="00:01:34.760" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""And it works mostly from a mini buffer menu""" start="00:01:36.760" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""that if we just hit ctrl H H we see at the""" start="00:01:41.400" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""bottom of the screen here and as you see in""" start="00:01:44.040" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""some of this text right here,""" start="00:01:47.420" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""Dee will show you a demo with all these video""" start="00:01:51.040" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""links of Hyperbole now.""" start="00:01:55.680" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""But let's just get into the top 10 reasons to""" start="00:01:57.900" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""use Hyperbole. Number 10 is a key series""" start="00:02:01.780" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""curly braces. So you just put curly braces""" start="00:02:10.160" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""around any set of key sequences that you want""" start="00:02:12.600" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""and hyperbole magically turns that into what""" start="00:02:19.760" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""we call an implicit button a hyper button and""" start="00:02:22.440" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""any kind of text that you have so if we go""" start="00:02:25.640" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""down here and we just click click here we see""" start="00:02:28.580" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""it that was a complex button that said let's""" start="00:02:35.820" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""start a shell, let's set an environment""" start="00:02:40.400" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""variable as you see the command right up""" start="00:02:43.320" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""there, and then let's do a grep over the""" start="00:02:45.140" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""hyperbole code and find all instances of a""" start="00:02:47.420" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""particular label. So if we hit made a return,""" start="00:02:50.680" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""that's called the action key.""" start="00:02:55.400" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""That's what you use throughout hyperbole when""" start="00:02:57.280" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""you just want to activate any kind of button.""" start="00:02:59.340" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""So you see it jumped to the grep output and""" start="00:03:02.020" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""this is in a shell buffer it's not in a""" start="00:03:06.380" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""compilation buffer so anywhere that you have""" start="00:03:08.440" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""this sort of thing it's also an implicit""" start="00:03:11.180" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""button and any sort of grep output or""" start="00:03:13.780" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""compiler output you can just jump to with the""" start="00:03:17.040" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""same key, made a return.""" start="00:03:22.120" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""So that's key series, the first part.""" start="00:03:23.960" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""And then just to note that you can also just""" start="00:03:29.440" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""do a, well I'll just do it here and show you""" start="00:03:33.880" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""that you can do a recursive grep with this""" start="00:03:39.000" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""hyperbole command, HYPBR grep.""" start="00:03:43.380" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""And if you're in an Emacs list buffer,""" start="00:03:46.060" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""it will only grep across the Emacs list.""" start="00:03:50.860" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""So a very handy way to just go through your""" start="00:03:54.760" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""code very rapidly and then jump to various""" start="00:03:58.340" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""points in it. So we have a lot to cover""" start="00:04:01.040" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""today, so I'm going to go through this""" start="00:04:04.280" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""rapidly. This isn't a tutorial,""" start="00:04:05.800" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""it's just to get you interested in some of""" start="00:04:07.800" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""the features, and then there's a ton of""" start="00:04:10.340" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""reference material and videos now available""" start="00:04:13.060" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""for Hyperlink. So let's go to number 9.""" start="00:04:15.980" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""Path names become implicit buttons.""" start="00:04:20.019" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""You don't even have to quote them.""" start="00:04:22.500" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""You can add environment variables or elist""" start="00:04:24.060" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""variables with the syntax right here.""" start="00:04:26.920" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""So here we have a shell script that's""" start="00:04:29.380" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""somewhere on our path.""" start="00:04:32.180" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""And notice path is an environment variable""" start="00:04:33.680" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""with many different paths within it,""" start="00:04:36.380" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""right? But Hyperbole knows that and it""" start="00:04:39.140" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""searches the path, gets the first match,""" start="00:04:42.600" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""finds it, and finds the actual shell script.""" start="00:04:45.600" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""So you can just embed that anywhere.""" start="00:04:48.660" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""Here we have a list variable,""" start="00:04:50.540" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""hyperbdur, which is the home directory for""" start="00:04:52.280" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""hyperbole, and then a markdown file,""" start="00:04:54.360" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""and a link to a direct section in the file,""" start="00:04:58.320" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""and the 5 colon 5 means go to line 5 within""" start="00:05:01.780" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""that section and column 5.""" start="00:05:05.220" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""So let's just try it. Boom,""" start="00:05:07.380" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""we're right there, and we're on another link""" start="00:05:09.420" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""that we could activate as well.""" start="00:05:11.500" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""So notice the next line is the same link but""" start="00:05:13.420" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""this is how you normally have to do it in a""" start="00:05:17.960" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""markdown file. You have to change the section""" start="00:05:20.280" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""header to have dashes but with hyperbole you""" start="00:05:23.160" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""don't have to. You can just put it exactly""" start="00:05:25.640" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""like you see it in your file.""" start="00:05:28.140" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""Here the pound syntax for sections is really""" start="00:05:30.540" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""a generic syntax in the hyperbole.""" start="00:05:34.660" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""And so it works in all different kinds of""" start="00:05:37.360" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""files, your programming files.""" start="00:05:39.840" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""Here's a shell script and we said let's just""" start="00:05:42.100" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""go to the first comment that has alias in it.""" start="00:05:45.240" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""Notice we didn't have to say the whole line,""" start="00:05:49.120" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""just the first part of it.""" start="00:05:51.700" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""And it matched to it. Here we have a link to""" start="00:05:53.160" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""our hyperbole structured outliner called the""" start="00:05:58.140" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""K Outliner. And you can see it auto-numbers""" start="00:06:01.680" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""all these cells. But in addition to just""" start="00:06:05.080" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""displaying, you can also add a pipe symbol""" start="00:06:08.000" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""near the end and use this view syntax to clip""" start="00:06:10.640" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""to 2 lines and show blank lines.""" start="00:06:14.900" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""So let's see if each node gets clipped to 2""" start="00:06:17.500" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""lines. So you see they're all just 2 now with""" start="00:06:19.920" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""the ellipses and then we can expand them.""" start="00:06:22.680" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""So a lot of power there just with path names.""" start="00:06:25.320" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""Let's continue to number 8.""" start="00:06:29.380" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""[Speaker 1]: Can I just interrupt you just a bit?""" start="00:06:31.120" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""[Speaker 0]: Yes.""" start="00:06:33.420" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""[Speaker 1]: I think your phone, so we have your phone set""" start="00:06:34.740" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""up in case your internet misbehaves and we've""" start="00:06:37.720" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""set this up before we started,""" start="00:06:40.640" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""but I think the vibration is a little loud""" start="00:06:42.100" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""whenever it does. Can you maybe move it a""" start="00:06:44.380" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""little bit? I think so.""" start="00:06:46.160" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""It will have to vibrate again.""" start="00:06:50.380" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""[Speaker 0]: Is that okay? No, my phone...""" start="00:06:47.740" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""Okay. It shouldn't have been vibrating.""" start="00:06:54.380" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""[Speaker 1]: have been another device,""" start="00:06:59.480" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""but definitely we had vibration.""" start="00:07:01.280" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""Anyway, carry on. Sorry for the interruption.""" start="00:07:02.800" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""[Speaker 0]: It could be me. It might So number 8,""" start="00:06:57.640" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""special prefixes. There are 3 prefixes you""" start="00:07:07.800" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""can attach to path names.""" start="00:07:10.520" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""The first, if you want to load,""" start="00:07:11.820" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""instead of just finding a file,""" start="00:07:13.820" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""an ELIST file, you can actually load it.""" start="00:07:16.620" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""And so I can just hit made a return on this,""" start="00:07:19.540" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""and you see in the mini buffer,""" start="00:07:22.200" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""it loaded it as compiled e-list.""" start="00:07:25.200" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""I could put a .el on here,""" start="00:07:27.240" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""a .elc, .gz, all of that'll work,""" start="00:07:29.500" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""and just put a dash in front to load it.""" start="00:07:33.580" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""If you want to run a shell command,""" start="00:07:36.580" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""just put an exclamation mark in front of""" start="00:07:38.720" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""something and again you can have the""" start="00:07:41.040" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""environment variable. So here we're saying""" start="00:07:42.540" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""run the program date and you see,""" start="00:07:44.620" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""let's see, let's do it again.""" start="00:07:48.400" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""There we go. It ran date and you see the""" start="00:07:50.160" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""output right there. And what if you want to""" start="00:07:53.240" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""run a graphical program on your system?""" start="00:07:55.680" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""Well here, we want to open a PDF file and I'm""" start="00:07:58.620" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""just using XDG Open on Linux,""" start="00:08:01.760" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""you could use Open on Mac and you just put an""" start="00:08:05.660" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""ampersand in front and there's the Hyperbole""" start="00:08:09.440" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""manual instantly displayed.""" start="00:08:14.120" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""So lots of power there and all of that""" start="00:08:16.120" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""actually .pdf's and many other file types are""" start="00:08:18.820" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""automatically linked to various programs by""" start="00:08:22.360" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""Hyperbole. So you could just use the path""" start="00:08:25.080" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""name itself and it would probably behave the""" start="00:08:27.340" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""same way. Number 7, bookmarks on steroids.""" start="00:08:29.340" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""So Hyperbole gives you a personal button""" start="00:08:35.460" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""file, which is on the menu you see here under""" start="00:08:37.419" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""button files, and then personal.""" start="00:08:40.400" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""So here we'll just display it.""" start="00:08:43.039" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""And you can put whatever you want in here,""" start="00:08:45.480" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""these implicit buttons of any type.""" start="00:08:47.720" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""You can name them the way here and you can""" start="00:08:49.860" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""activate either the name with MetaReturn or""" start="00:08:52.660" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""the button itself. So,""" start="00:08:55.560" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""of course, if we did MetaReturn here,""" start="00:08:56.920" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""we'd just display that in a web browser.""" start="00:08:59.860" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""I'll just do a few of these.""" start="00:09:03.940" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""So here's a section of line.""" start="00:09:05.540" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""Let's just jump there.""" start="00:09:07.200" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""But these can be all sorts of different""" start="00:09:09.120" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""actions that are going on.""" start="00:09:11.400" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""And you just, whatever cross references you""" start="00:09:13.140" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""want, you put in here.""" start="00:09:16.040" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""And the neat thing is that this then becomes""" start="00:09:17.840" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""a list of what we call global buttons.""" start="00:09:20.940" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""So when I go into the menu and I go control""" start="00:09:23.620" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""HHGA to activate a global button,""" start="00:09:26.540" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""you can see that all the names from this file""" start="00:09:30.720" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""appear here. So only the name buttons appear,""" start="00:09:33.220" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""and I could like go to the hyperbole to-do""" start="00:09:36.160" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""list and things like that.""" start="00:09:40.240" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""So very, very quick access to all your""" start="00:09:42.500" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""information whenever you need it.""" start="00:09:45.660" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""And that could be an org file as well if you""" start="00:09:47.440" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""prefer that. So we just took care of that.""" start="00:09:49.600" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""Number 6, instant test case running and""" start="00:09:53.540" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""debugging. This is a fairly new feature.""" start="00:09:57.000" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""What we're seeing here is a pre-release of""" start="00:10:00.100" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""version 9, which should be out within the""" start="00:10:02.240" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""next week. But the instructions at the""" start="00:10:04.440" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""beginning of the presentation tell you how to""" start="00:10:07.560" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""get the development version of HyperBlade,""" start="00:10:10.680" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""which is right now 8.01""" start="00:10:14.040" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""pre, but that's virtually the same as what 9""" start="00:10:15.880" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""will be. So you can grab that as of today.""" start="00:10:19.120" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""So let's just jump to a test file.""" start="00:10:24.140" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""What you see here is called an explicit""" start="00:10:27.700" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""button. You can actually make buttons where""" start="00:10:30.360" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""similar to org, where you just see a bit of""" start="00:10:33.120" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""the button and all of the metadata is hidden.""" start="00:10:35.820" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""I can say control A J and I see all about""" start="00:10:39.060" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""that button, exactly what it's going to do""" start="00:10:42.040" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""before I activate it and even who created it""" start="00:10:43.940" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""or last modified it. Then just queue out of""" start="00:10:47.200" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""here and you're back where you were.""" start="00:10:50.680" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""So now, what this did is link us to an ERT""" start="00:10:52.700" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""test. If you write tests in Emacs,""" start="00:10:56.920" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""you probably use ERT tests.""" start="00:10:59.920" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""So if I hit made a return on here it'll just""" start="00:11:02.220" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""run the test tell me it passed great okay but""" start="00:11:05.220" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""maybe I had a problem so let me use control""" start="00:11:08.520" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""you made a return and that will e-debug the""" start="00:11:11.760" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""test instantly. So now I'll step through it""" start="00:11:17.080" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""and it says, well, let's,""" start="00:11:20.080" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""this single line actually creates that""" start="00:11:23.000" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""explicit button. You see we have an empty""" start="00:11:25.580" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""buffer here that we're in.""" start="00:11:27.800" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""Now I step through that and now there's the""" start="00:11:29.480" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""explicit button that got put in there.""" start="00:11:31.780" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""Now the next line I step through it and this""" start="00:11:34.160" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""is going to check if we have the right action""" start="00:11:36.940" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""type and it returns true so that's good and""" start="00:11:39.160" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""now we should be it should be associated with""" start="00:11:42.260" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""the temp buffer returns true good And that's""" start="00:11:45.220" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""why what you saw before is this passed.""" start="00:11:48.680" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""The whole thing passed.""" start="00:11:51.720" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""So lots of power there.""" start="00:11:53.000" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""Simple to use. You're just using your made a""" start="00:11:55.080" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""return and prefix arguments.""" start="00:11:57.600" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""It's something everybody who develops should""" start="00:12:00.040" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""have. So number, let's go on.""" start="00:12:03.240" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""I think we're making pretty good time here,""" start="00:12:07.640" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""but I turned off my timer.""" start="00:12:09.720" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""Let's go to number 5. This is a very new""" start="00:12:13.000" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""feature, which is very cool too.""" start="00:12:15.800" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""You used to have to use the mouse probably""" start="00:12:17.720" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""and you could drag across windows to go from""" start="00:12:20.440" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""a source to a referent buffer and that would""" start="00:12:23.880" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""create a hyperlink for you.""" start="00:12:26.820" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""But now we've installed it and made it even""" start="00:12:28.340" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""easier on, we've installed it on a,""" start="00:12:30.880" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""on the hyperbole menus.""" start="00:12:34.860" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""So let's just go back to our presentation""" start="00:12:37.040" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""here and say we want to link to this line""" start="00:12:40.680" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""that we're on there. And I'll just create the""" start="00:12:43.660" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""button in our scratch buffer here so it""" start="00:12:46.160" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""doesn't really mess anything up.""" start="00:12:48.480" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""So I just put my point in where I want the""" start="00:12:50.900" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""button to appear and then I put point where I""" start="00:12:53.980" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""want it to link to in the other the other""" start="00:12:56.920" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""buffer and then I just say control HH to get""" start="00:13:00.060" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""my menu, I for implicit button,""" start="00:13:02.800" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""and then L for link. Boom,""" start="00:13:05.380" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""it inserts it, right at point.""" start="00:13:07.960" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""What did it do? It knew that this was in the""" start="00:13:10.680" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""hyperbole directory and I have a variable for""" start="00:13:12.880" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""that, so that if you sent this link to your""" start="00:13:15.080" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""friend who uses Hyperbole,""" start="00:13:17.780" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""it would still work right because they have a""" start="00:13:19.440" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""different hyperbole there.""" start="00:13:21.440" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""And then I want to go directly to line 116.""" start="00:13:23.100" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""So boom, it just took me there.""" start="00:13:28.360" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""So that's it. And Hyperbole is doing all this""" start="00:13:30.820" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""for you. You just say I want a link to this""" start="00:13:33.900" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""thing and it figures out what's at point and""" start="00:13:36.420" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""it determines the right type of implicit link""" start="00:13:38.940" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""to put there. And that's the whole point is""" start="00:13:42.240" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""that you're just working like when you're""" start="00:13:45.520" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""programming or you're writing an article and""" start="00:13:47.320" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""you just hit made a return or or pull up a""" start="00:13:50.500" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""menu and hit a key binding and you're off to""" start="00:13:53.520" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""the races. So that was implicit linking We""" start="00:13:57.180" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""can also create those explicit link buttons,""" start="00:14:02.400" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""and as well as the global link,""" start="00:14:06.200" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""where we would just give it a name,""" start="00:14:07.760" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""and it would automatically put it in our""" start="00:14:09.580" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""global button file without us even having""" start="00:14:11.640" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""that on screen. So lots of power there as""" start="00:14:14.640" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""well, lots of consistency.""" start="00:14:18.380" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""Now let's take a look at the K Outliner a""" start="00:14:21.900" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""little more. I'm just going to show you 1""" start="00:14:25.040" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""feature actually. I don't have time to show""" start="00:14:28.040" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""you the K Outliner in detail,""" start="00:14:29.820" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""but it's a really cool structured outliner""" start="00:14:31.800" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""that even if you love Org Mode,""" start="00:14:34.280" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""you should try it. And this is 1 thing that""" start="00:14:36.580" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""you can't get with Org Mode,""" start="00:14:39.280" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""is let's say Hyperlink comes with an example""" start="00:14:41.320" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""file which teaches you about the K Outliner.""" start="00:14:45.100" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""So we'll just use that right here.""" start="00:14:48.960" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""And when you're in the K Outliner,""" start="00:14:51.180" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""you can bring up and go into the K Outliner""" start="00:14:53.080" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""menu right here at the bottom.""" start="00:14:55.900" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""And there's a format menu there.""" start="00:14:58.200" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""You always take the first letter of a menu,""" start="00:15:00.360" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""the first capital letter of a menu item.""" start="00:15:02.600" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""So F for format and then D for display in""" start="00:15:05.240" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""browser. So just let's do it.""" start="00:15:08.720" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""We have with 1 button or 1 key we've produced""" start="00:15:12.740" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""the entire outline in a collapsible outline""" start="00:15:17.780" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""in HTML. So I can go here.""" start="00:15:23.720" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""I just have to use my mouse.""" start="00:15:27.620" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""So I can expand and collapse these trees live""" start="00:15:29.600" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""with very basic coding.""" start="00:15:34.220" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""We tried to keep this as simple as possible.""" start="00:15:39.760" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""But you see it maintains the structure of the""" start="00:15:42.880" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""outline and even tables.""" start="00:15:45.580" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""So all the formatting is maintained and again""" start="00:15:55.120" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""it's instant. Or you can just export it to a""" start="00:15:57.620" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""file without displaying it.""" start="00:16:00.100" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""Very efficient kinds of operations.""" start="00:16:03.900" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""So that was number 4. Number 3 is a""" start="00:16:06.420" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""subsystem, another subsystem in Hyperbole""" start="00:16:10.960" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""called Hycontrol, which is for window and""" start="00:16:13.440" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""frame management. And I just wanted to show""" start="00:16:16.080" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""you 1 thing in there. It's got a lot of""" start="00:16:18.600" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""capabilities. But I always had the problem""" start="00:16:20.920" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""that Emacs wouldn't let me scale my fonts,""" start="00:16:24.480" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""all of my faces at the same time.""" start="00:16:28.380" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""I wanted to zoom. I didn't want to increase""" start="00:16:30.840" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""the default font size and all the others stay""" start="00:16:33.680" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""the same. So let's just display our faces""" start="00:16:36.260" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""right here and then we have a choice of""" start="00:16:41.260" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""either controlling frames or windows.""" start="00:16:45.200" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""So let's start by controlling frames.""" start="00:16:47.920" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""So you get another submenu when you're in""" start="00:16:50.460" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""high control to tell you what to do here.""" start="00:16:52.760" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""And there's just lowercase z and uppercase z.""" start="00:16:56.320" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""So let's try it. So it's scaling the entire""" start="00:16:59.480" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""frame. And you can see from the list of faces""" start="00:17:03.400" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""that they're all scaling at the same time.""" start="00:17:06.260" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""And I can go back down.""" start="00:17:08.599" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""Now if I switch to window mode,""" start="00:17:10.760" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""and there's a special fast way to do that,""" start="00:17:13.619" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""just hit T to toggle. And if you look at the""" start="00:17:16.099" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""bottom menu it says frames right now now it""" start="00:17:18.819" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""says windows when I hit T so now if I do the""" start="00:17:21.819" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""same Z to increase it's just this window and""" start="00:17:25.599" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""but it's you know it's the faces in there so""" start="00:17:30.640" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""a lot of power again but I just haven't found""" start="00:17:37.200" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""anywhere else that you can get that kind of""" start="00:17:40.680" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""control over your faces very rapidly.""" start="00:17:43.220" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""So that's number 3. Now number 2,""" start="00:17:45.920" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""let's put that in there.""" start="00:17:55.360" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""So the HiROLO is the final subsystem in""" start="00:17:58.340" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""Hyperbole and this has gotten much cooler.""" start="00:18:03.320" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""So it started off as a contact management""" start="00:18:06.500" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""system, but it's really just a hierarchical""" start="00:18:08.680" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""record management system that lets you have""" start="00:18:11.880" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""as many files, directories as you want,""" start="00:18:15.060" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""and you can search across all of them without""" start="00:18:18.120" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""any external utilities necessary,""" start="00:18:20.280" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""just what's built into Emacs and Hyperlink.""" start="00:18:23.960" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""So as you can see, we've expanded it to""" start="00:18:26.760" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""handle org files, markdown,""" start="00:18:29.920" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""K outlines, Emacs outlines.""" start="00:18:32.300" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""So what I'm going to do is just say,""" start="00:18:34.780" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""I want to search using my Hyberlo file list.""" start="00:18:36.820" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""You just set that to what you wanted to""" start="00:18:40.680" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""search. But now you have all this""" start="00:18:43.140" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""flexibility. You can use environment""" start="00:18:44.820" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""variables in it. You can just specify a""" start="00:18:46.620" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""directory and it will find all those matching""" start="00:18:48.840" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""files below that directory recursively.""" start="00:18:51.340" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""You can give it the markdown file here and""" start="00:18:55.240" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""you can use file wildcards as well.""" start="00:18:58.460" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""I mean, look at this. It's got a list""" start="00:19:01.160" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""variable in it and a wildcard,""" start="00:19:04.340" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""and it's just all I'm gonna do is I change""" start="00:19:06.540" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""this from a Lisp expression to make it a""" start="00:19:09.840" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""hyper button. You just change the outer""" start="00:19:13.380" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""parens to angle brackets,""" start="00:19:15.380" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""and then it's automatically an implicit""" start="00:19:17.120" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""button that you can activate with made a""" start="00:19:21.040" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""return so just ran that and now I've set my""" start="00:19:22.840" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""file list so now let's do a search it would""" start="00:19:26.800" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""be ctrl H H roll it X R and then S for search""" start="00:19:29.440" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""But I'll just do it this way.""" start="00:19:34.820" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""And boom, it found everything that fast.""" start="00:19:37.200" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""And I can just get like,""" start="00:19:41.060" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""show the top items in there.""" start="00:19:43.180" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""So I kind of have outlining in this buffer.""" start="00:19:45.520" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""I can just move to each match that I hit.""" start="00:19:48.340" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""And notice, although everything was""" start="00:19:51.980" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""collapsed, it's expanding here.""" start="00:19:53.680" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""When I move in and out of each of the entry""" start="00:19:55.640" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""matches, it expands or collapses as I move to""" start="00:19:58.540" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""the next 1. So a lot of power there.""" start="00:20:02.380" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""What else? So just tabbing through these""" start="00:20:06.820" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""things. And you notice that it's working""" start="00:20:09.120" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""across all of these different types,""" start="00:20:11.200" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""and it's telling you which file everything""" start="00:20:13.340" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""came from right up here.""" start="00:20:16.360" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""So I could just made a return here,""" start="00:20:17.840" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""should work. Yes, revisit the file normally.""" start="00:20:20.220" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""And it just pulls it right up.""" start="00:20:23.800" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""So everything is live and hyperbole.""" start="00:20:25.920" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""You've got hyperlinks everywhere.""" start="00:20:28.580" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""Let's just get rid of that.""" start="00:20:31.300" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""Go back to our demo. So if you are fans of""" start="00:20:34.020" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""Vertico and Consult, you can now use that""" start="00:20:41.600" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""with the High Rollo. So all you have to do is""" start="00:20:46.560" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""let's just format our windows,""" start="00:20:49.300" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""and then I'll say, let's use ConsultGrep over""" start="00:20:51.760" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""the Rolodex. Now, it found all the matches""" start="00:20:55.720" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""there, and I can just move live through them""" start="00:20:58.940" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""in the buffer like you may be used to or I""" start="00:21:02.220" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""can filter back down and say using orderless""" start="00:21:04.640" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""joystick or anything that has joy in it just""" start="00:21:10.240" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""match to those lines and then I can you know""" start="00:21:13.700" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""either jump there or quit out of here.""" start="00:21:17.160" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""I'll just quit out of it right now.""" start="00:21:20.020" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""So very cool. And all of that is using""" start="00:21:22.540" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""whatever you personally set as the set of""" start="00:21:25.240" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""files and directories you want to search.""" start="00:21:28.640" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""And finally, our number 1 feature of""" start="00:21:31.380" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""Hyperbole is you can customize this to give""" start="00:21:35.940" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""you these kinds of implicit buttons,""" start="00:21:40.440" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""whatever kind you want.""" start="00:21:44.660" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""And there are 3 levels of doing this.""" start="00:21:46.560" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""The first is for non-programmers.""" start="00:21:49.540" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""You can just set a string,""" start="00:21:51.900" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""like a URL with a parameter in it.""" start="00:21:54.400" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""So the %s represents the parameter,""" start="00:21:57.180" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""and This is how you do a search on""" start="00:21:59.680" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""DuckDuckGo. So all I have to do is evaluate""" start="00:22:01.440" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""this defal for action link.""" start="00:22:04.320" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""And now I have a new implicit button type""" start="00:22:07.800" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""that I can put between angle brackets.""" start="00:22:11.040" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""And I just give it that name,""" start="00:22:13.740" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""DDG, and some parameter,""" start="00:22:16.020" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""whatever I want to search for,""" start="00:22:18.280" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""and this is a button that does that search.""" start="00:22:20.080" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""Very cool, right? So you can embed these.""" start="00:22:25.320" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""This could be a hyperlink in,""" start="00:22:28.680" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""you know, a comment in a programming file.""" start="00:22:32.140" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""Anything on the entire web that you want to""" start="00:22:35.320" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""link to, whatever kind of compact notation""" start="00:22:38.160" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""you want to give it. So that's what we're""" start="00:22:42.840" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""going to learn as we get more advanced here""" start="00:22:44.800" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""you can give it even more compact notations.""" start="00:22:47.140" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""So as you get more advanced you can say,""" start="00:22:49.840" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""well I don't like this angle bracket,""" start="00:22:52.380" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""I want to have an implicit button that uses""" start="00:22:54.240" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""these square brackets and then an angle""" start="00:22:57.280" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""bracket inside it. So then you need the""" start="00:22:59.620" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""defile for implicit link.""" start="00:23:02.080" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""This lets you specify your start and end""" start="00:23:06.040" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""delimiters for your new type and and then you""" start="00:23:08.860" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""can give it a function that you wanted to run""" start="00:23:12.180" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""and that will take the text of whatever is in""" start="00:23:15.040" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""the button, in this case,""" start="00:23:18.320" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""test release here, and feed it to the""" start="00:23:19.900" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""function that I gave here.""" start="00:23:23.760" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""So what this function does is grep over my""" start="00:23:26.080" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""git log and find any commits that include the""" start="00:23:29.540" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""term test release in it.""" start="00:23:33.420" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""So let's try it. First I have to add the""" start="00:23:35.360" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""button type and that's all it takes and it""" start="00:23:38.200" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""defined it now. So anywhere in Emacs now I""" start="00:23:41.740" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""can use this button type essentially.""" start="00:23:44.800" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""So let me try to activate it.""" start="00:23:47.180" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""Okay, and it says yeah let's save it.""" start="00:23:49.200" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""Okay so now it's running a git log command.""" start="00:23:53.080" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""It found all the commits and now of course if""" start="00:23:56.320" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""I had made a return on this commit it""" start="00:23:59.440" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""recognizes it as an implicit link,""" start="00:24:02.980" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""and if I search for what was a test release,""" start="00:24:05.680" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""there it is. So this commit had that in""" start="00:24:09.600" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""there. So all these matches,""" start="00:24:11.960" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""so I don't know how other people do this,""" start="00:24:14.180" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""but for me this makes it a lot simpler.""" start="00:24:16.280" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""So a lot of power that any programmer can""" start="00:24:21.280" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""use. And finally, if you've mastered Emacs""" start="00:24:24.800" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""Lisp, or you're starting to,""" start="00:24:27.500" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""you can look in the hib types file in""" start="00:24:29.440" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""Hyperbole and see all sorts of uses of defib,""" start="00:24:33.740" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""which is defined implicit button.""" start="00:24:37.500" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""And that's the full power of e-LISP when you""" start="00:24:39.660" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""want to define 1. So what we're going to do""" start="00:24:42.660" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""here is I wanted to know,""" start="00:24:45.060" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""given a date, what the day of the week is.""" start="00:24:47.080" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""And because the date primitives weren't quite""" start="00:24:49.900" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""written the way I might like,""" start="00:24:53.040" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""it's a little longer than some.""" start="00:24:55.080" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""But I'm just going to evaluate this list.""" start="00:24:57.520" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""And I've now defined DOW as an action type.""" start="00:25:00.720" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""Now, how do I know I'm doing that?""" start="00:25:06.140" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""So I can always say Control-H,""" start="00:25:08.500" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""capital A here to see what a button's going""" start="00:25:11.000" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""to do. And it tells me When I'm there,""" start="00:25:13.580" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""I'm at a hyperbole button,""" start="00:25:15.840" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""and the type is from category DOW.""" start="00:25:18.400" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""And what's it gonna do?""" start="00:25:24.000" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""It takes a mark, it's gonna do a message""" start="00:25:25.120" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""action. Okay, so let's try it.""" start="00:25:27.440" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""It tells me that's a date,""" start="00:25:31.300" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""and it falls on a Sunday,""" start="00:25:32.800" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""which is today. That's correct.""" start="00:25:34.220" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""So 2 days from today is a Tuesday.""" start="00:25:36.100" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""Beautiful. So we've just totally transformed""" start="00:25:39.800" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""what we can do with text.""" start="00:25:44.840" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""You notice there's no markup here.""" start="00:25:46.980" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""And this is working with all of the other""" start="00:25:49.000" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""implicit types that we have everywhere in""" start="00:25:53.440" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""Emacs. It's only going to match to this kind""" start="00:25:55.600" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""of pattern and anywhere else,""" start="00:25:57.920" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""you know, it just won't trigger that type.""" start="00:26:00.720" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""So lots of power. You just need to get""" start="00:26:03.460" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""started with Hyperbole.""" start="00:26:06.480" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""There's great documentation both inside the""" start="00:26:07.960" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""code and in the manual.""" start="00:26:10.860" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""There's a fast demo that you can start with""" start="00:26:12.520" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""and there's about 10 different videos.""" start="00:26:15.520" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""There'll be 3 presentations on hyperbole here""" start="00:26:18.260" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""at the conference, and I hope you've enjoyed""" start="00:26:21.560" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""this presentation. I'd love to answer your""" start="00:26:25.760" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""questions and get some new users for""" start="00:26:28.200" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""Hyperbole. So lastly, I'd like to thank my""" start="00:26:31.200" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""co-maintainer, Matt, who's going to speak""" start="00:26:36.040" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""later about the extensive test protocols we""" start="00:26:38.040" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""have in Hyperbole. Hyperbole works on every""" start="00:26:42.040" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""version of Emacs from 27.1""" start="00:26:46.120" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""up, and every operating system and Windows""" start="00:26:48.480" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""system that you use. And thanks so much to""" start="00:26:52.600" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""the volunteers and the speakers at EmacsConf.""" start="00:26:56.120" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""You do a great job, and we're all really""" start="00:26:59.200" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""appreciative that you take all the time that""" start="00:27:02.000" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""you do to make this happen.""" start="00:27:04.400" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""Thank you very much.""" start="00:27:06.540" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""[Speaker 1]: And thank you so much Bob.""" start="00:27:09.960" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""So I'll let you do the gymnastics to join us""" start="00:27:11.400" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""back on BBB and put your webcam.""" start="00:27:14.680" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""In the meantime, I'll invite people,""" start="00:27:17.020" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""as Sasha told you in the introduction,""" start="00:27:19.120" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""to go put your question in the pad.""" start="00:27:21.060" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""The link is on the talks page and also on""" start="00:27:23.600" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""IRC. So take your time.""" start="00:27:25.900" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""We've already got some people who've asked""" start="00:27:28.320" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""questions. You can also start joining the""" start="00:27:29.900" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""room. Let me just ping Sasha.""" start="00:27:33.060" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""Ping to open ID HyperAmp.""" start="00:27:35.540" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""So, you'll be able to join us on""" start="00:27:39.280" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""BigBlueButton as well to go chat with Bob""" start="00:27:41.120" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""more directly. I'm not sure if people have""" start="00:27:43.260" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""joined already. Not yet.""" start="00:27:45.020" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""So, Bob, what I'll do,""" start="00:27:50.220" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""we already have 4 questions.""" start="00:27:51.060" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""I'm gonna read them to you and you can take""" start="00:27:52.280" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""your time answering them,""" start="00:27:54.080" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""but we do have about 7 minutes until we go to""" start="00:27:54.900" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""the next talk, so we need to be a little bit""" start="00:27:57.340" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""[Speaker 0]: Okay.""" start="00:28:00.420" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""[Speaker 1]: chop-chop. All right, so reading the first""" start="00:27:59.080" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""questions, and I'm also going to display them""" start="00:28:03.260" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""for the stream to see,""" start="00:28:05.460" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""do buttons keep their metadata within the""" start="00:28:07.580" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""same file? E.g., would I see it if I change""" start="00:28:09.740" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""to fundamental mode, for instance?""" start="00:28:12.380" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""[Speaker 0]: So all of the things that I was showing you,""" start="00:28:15.820" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""implicit buttons have no metadata.""" start="00:28:19.340" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""That's the great thing about them,""" start="00:28:21.900" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""is you just type them in the buffer and what""" start="00:28:23.800" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""you see is all there is to that button and""" start="00:28:27.400" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""hyperbole generates all the smarts associated""" start="00:28:30.020" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""with them. When you create an explicit""" start="00:28:33.320" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""button, which I showed you 1 or 2 examples""" start="00:28:35.940" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""of, that metadata is, there is metadata with""" start="00:28:38.760" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""that, and that is stored in a separate file""" start="00:28:42.720" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""in the same directory called .hypb.""" start="00:28:45.860" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""So it's hidden away and it doesn't affect the""" start="00:28:49.240" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""format of the buffer that it's in.""" start="00:28:51.500" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""So again, what you see is what you get.""" start="00:28:53.940" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""You just see the delimiters around the""" start="00:28:56.600" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""explicit button and that's it.""" start="00:28:58.740" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""So Hyperbole takes care of all that for you.""" start="00:29:01.840" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""However, if you embed them into like a mail""" start="00:29:04.860" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""message, which you can,""" start="00:29:08.360" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""you can mail buttons, then there is a hidden""" start="00:29:09.440" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""area at the end of the mail message that""" start="00:29:12.180" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""encodes the metadata for the explicit""" start="00:29:14.760" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""buttons.""" start="00:29:17.120" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""[Speaker 1]: Ok, great. Next question.""" start="00:29:19.540" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""Is it possible to link to a file by its ID,""" start="00:29:21.980" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""like the node, org ID or some similar unique""" start="00:29:24.720" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""string inside?""" start="00:29:27.340" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""[Speaker 0]: Yes, In fact, that's 1 of the new features in""" start="00:29:29.380" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""9. You just made a return on an ID and it""" start="00:29:33.280" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""takes you right to the org node,""" start="00:29:37.800" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""works with org Rome and org straight out of""" start="00:29:40.840" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""the box. We're looking at ways to make it""" start="00:29:44.880" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""easier to just insert those in places,""" start="00:29:47.900" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""but since you have word keys that do that""" start="00:29:50.040" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""already, you can just insert them in any""" start="00:29:52.840" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""documents and Hyperbole will recognize them.""" start="00:29:55.600" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""I think In some cases you may need to put ID""" start="00:29:58.360" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""colon in front of the ID as well.""" start="00:30:02.680" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""Generally it works.""" start="00:30:05.740" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""[Speaker 1]: Ok, great. Moving on to the next question.""" start="00:30:08.560" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""Regarding the frames example,""" start="00:30:12.120" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""any thoughts or considerations for a""" start="00:30:14.240" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""transient interface or is this something 1""" start="00:30:16.320" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""could already toggle? Are you familiar with""" start="00:30:19.020" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""transient interface?""" start="00:30:22.280" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""[Speaker 0]: Yes, we don't use transient because we,""" start="00:30:23.560" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""you know, Hyperbole started out in 1991,""" start="00:30:26.720" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""though it's had much much work since then so""" start="00:30:30.520" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""we predate a lot of newer things in Emacs and""" start="00:30:34.300" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""then we just use them as as they Become""" start="00:30:37.940" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""useful too hyperbole We think the The mini""" start="00:30:41.400" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""buffer menu is pretty good.""" start="00:30:45.480" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""We could rewrite stuff in transient,""" start="00:30:46.720" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""but we haven't seen the need yet.""" start="00:30:48.900" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""Maybe high control, that might be a good""" start="00:30:52.760" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""candidate, because there are so many keys in""" start="00:30:54.960" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""it. So we'll think about that.""" start="00:30:58.480" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""But it would be a while before we got to it.""" start="00:31:00.480" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""[Speaker 1]: Right. Moving on to the next question.""" start="00:31:04.780" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""Sorry I got really confused because there's a""" start="00:31:07.120" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""French salut, you know,""" start="00:31:08.760" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""in the text of it. Is someone saying hi to me""" start="00:31:10.660" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""or something? All right,""" start="00:31:12.940" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""next question. Regarding multi-file search""" start="00:31:14.380" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""functionality, why not implement it within""" start="00:31:16.960" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""the existing framework of MetaX grep or""" start="00:31:22.080" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""similar built-in commands?""" start="00:31:24.920" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""Yet another search interface sounds a bit""" start="00:31:26.360" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""redundant.""" start="00:31:28.620" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""[Speaker 0]: Multi-file search, so HiRolo I guess you're""" start="00:31:30.920" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""talking about. I think what you missed there""" start="00:31:34.120" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""is that High Rollo matches to records,""" start="00:31:36.380" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""multi-line records, so it's not a""" start="00:31:40.080" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""line-oriented match, it's a record-oriented""" start="00:31:42.860" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""match. So Grep, you can say maybe give me 3""" start="00:31:45.820" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""lines of context, but what if I have a""" start="00:31:50.760" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""20-line record? I want to see the whole""" start="00:31:52.960" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""thing. And so, it's a full-text search""" start="00:31:56.100" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""interface, which lets you have any size""" start="00:31:59.060" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""entries or nodes in the match buffer.""" start="00:32:04.220" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""So that's 1 reason. MADAX grep works with""" start="00:32:07.540" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""hyperbole. I mean, you use it if you want and""" start="00:32:10.760" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""then you can hit MADA return on grep lines.""" start="00:32:13.260" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""So we basically take everything from POSIX""" start="00:32:16.480" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""and everything in Emacs and we try to make a""" start="00:32:20.320" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""lot of it simpler to use.""" start="00:32:24.920" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""We don't take away any of the functionality,""" start="00:32:26.680" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""we just augment it.""" start="00:32:29.480" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""[Speaker 1]: Right, and I think that's the logic for a lot""" start="00:32:32.780" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""of the packages, you know,""" start="00:32:35.200" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""the philosophy is just you create your little""" start="00:32:36.300" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""bit, your little island where you do your""" start="00:32:38.440" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""stuff. And if you can resonate with other""" start="00:32:40.280" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""islands so much the better.""" start="00:32:42.160" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""And it feels like between those islands,""" start="00:32:43.280" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""you know, hyperbole is a great way to connect""" start="00:32:45.700" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""things that are just text.""" start="00:32:48.380" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""So it's always been a lovely philosophy.""" start="00:32:50.140" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""There's always been a lovely philosophy""" start="00:32:52.200" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""behind it.""" start="00:32:53.620" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""[Speaker 0]: 1 other point I'd make there is that the""" start="00:32:55.240" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""Hyrolo also contains logical search""" start="00:32:58.200" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""operators. So when I typed in that string you""" start="00:33:01.460" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""could just as well type with like Lisp""" start="00:33:04.940" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""expressions, semi Lisp expressions.""" start="00:33:07.360" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""You can say open paren and word 1,""" start="00:33:09.480" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""word 2, close paren. You know you can have or""" start="00:33:13.940" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""and XOR and not and it'll do the search and""" start="00:33:17.240" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""just retrieve the entries,""" start="00:33:22.360" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""again, multi-line entries that match all of""" start="00:33:24.720" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""the criteria that you specified there.""" start="00:33:27.620" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""So that's fairly unique,""" start="00:33:29.760" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""I think. So you basically got a full text""" start="00:33:31.120" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""search platform with logical operators,""" start="00:33:33.320" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""instantly, you know, fast moving,""" start="00:33:36.380" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""rapid keys that you can control everything""" start="00:33:38.680" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""with and it's all integrated into this larger""" start="00:33:42.720" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""framework.""" start="00:33:45.280" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""[Speaker 1]: Okay, great. Well, Bob,""" start="00:33:47.780" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""you have 2 more questions,""" start="00:33:49.060" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""but there's a big 1 about what inspired you""" start="00:33:50.820" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""to write it back. It's being hyperbole around""" start="00:33:53.760" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""the time of its birth,""" start="00:33:56.440" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""but sadly, we only have about 1 more minute.""" start="00:33:57.360" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""So what I'm going to ask you to do,""" start="00:34:00.040" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""feel free to answer the question.""" start="00:34:01.320" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""If you go on BBB, I've pasted the link to the""" start="00:34:02.800" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""other pad. I think you can see it on your""" start="00:34:05.220" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""[Speaker 0]: I have the ether pad up.""" start="00:34:08.420" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""[Speaker 1]: computer as well. Right,""" start="00:34:06.980" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""so what are we going to do?""" start="00:34:11.820" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""I'm Sorry, I'm just a little bit pressed by""" start="00:34:14.860" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""time because it's not me controlling when we""" start="00:34:16.679" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""move on to the next talk,""" start="00:34:18.280" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""as was evidenced yesterday when we got yonked""" start="00:34:19.340" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""to the next talk. So Bob,""" start="00:34:21.719" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""feel free to take all the time you want to""" start="00:34:24.000" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""answer questions. People,""" start="00:34:25.679" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""if you wanna join the Big Blue Button room,""" start="00:34:26.580" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""the links are available and open on the talk""" start="00:34:28.360" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""page. You can join and ask as many questions""" start="00:34:30.239" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""as you want to Bob. And for us,""" start="00:34:31.960" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""with a live stream, we'll be moving on to the""" start="00:34:33.679" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""next talk in about 30 seconds.""" start="00:34:35.560" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""So Bob, all that's left is for me to thank""" start="00:34:37.280" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""you for your presentation again this year and""" start="00:34:39.400" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""[Speaker 0]: Thank you, Leo.""" start="00:34:43.520" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""[Speaker 1]: for all your answers. All right.""" start="00:34:41.580" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""Bye bye, Bob. And we'll be moving on to the""" start="00:34:45.820" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""next talk in about 10 seconds.""" start="00:34:47.699" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""See you in a bit. All right,""" start="00:34:49.080" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""Bob, we are off air I think now.""" start="00:34:53.800" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""Thank you so much. I need to get moving for""" start="00:34:56.139" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""[Speaker 0]: Okay, is somebody gonna keep writing answers""" start="00:34:59.320" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""in here or I need to type them in?""" start="00:35:02.500" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""[Speaker 1]: the next talk. It's probably best now if you""" start="00:34:57.720" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""read the questions on your own and answer""" start="00:35:06.260" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""them. We'll collate everything together,""" start="00:35:09.440" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""we'd just like to have your answers.""" start="00:35:11.040" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""[Speaker 0]: I hope some people will join the BBB.""" start="00:35:15.060" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""[Speaker 1]: it in my... All right,""" start="00:35:19.000" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""bye-bye.""" start="00:35:21.380" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""[Speaker 0]: But I'll start. I'll put Bye-bye.""" start="00:35:17.780" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""So let me take a second here to see what""" start="00:35:24.220" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""questions we have. Did we cover that?""" start="00:35:28.580" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""OK. The point is why not upstream search""" start="00:35:36.240" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""interface? Could you clarify that question?""" start="00:35:42.980" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""I don't quite know what that means.""" start="00:35:46.840" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""So I'll go on to the next 1 and come back to""" start="00:35:51.380" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""that. Hyperlinks been around for a number of""" start="00:35:53.760" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""years now. What inspired you to write it back""" start="00:35:57.680" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""around the time of its birth?""" start="00:35:59.820" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""Well, that's a great question.""" start="00:36:01.800" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""It was born before the World Wide Web,""" start="00:36:04.700" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""actually. And it was right before.""" start="00:36:07.360" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""I remember we were in the midst of a version""" start="00:36:10.120" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""when the first version of the web occurred.""" start="00:36:13.840" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""And I was thinking that there was going to be""" start="00:36:16.560" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""an information explosion of unstructured""" start="00:36:19.840" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""information. And like we needed to have much""" start="00:36:22.960" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""better tools to be able to manage say like""" start="00:36:27.140" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""5,000 email messages coming in and all sorts""" start="00:36:30.920" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""of non-database-oriented information""" start="00:36:36.740" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""structures. So I said we need an advanced""" start="00:36:39.480" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""interactive hypertext system and it needs to""" start="00:36:42.180" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""work with all the general capabilities that""" start="00:36:46.080" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""we use like email and our document production""" start="00:36:49.320" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""systems. So I was doing research at the time""" start="00:36:54.240" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""at a university And I decided to work on""" start="00:36:58.500" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""something that we called personalized""" start="00:37:04.200" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""information environments.""" start="00:37:06.420" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""And there's a paper about this out there if""" start="00:37:07.900" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""you want to dig it out on the web.""" start="00:37:10.120" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""So Pies, as they were called,""" start="00:37:12.900" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""was an architecture which would have a bunch""" start="00:37:16.320" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""of managers, like Hyperbole was 1 of the""" start="00:37:20.040" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""managers, the hypertext manager,""" start="00:37:24.100" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""and then a bunch of point tools that would""" start="00:37:26.520" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""leverage the managers,""" start="00:37:29.440" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""like an email reader would be a point tool""" start="00:37:30.800" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""that would leverage the hypertext manager.""" start="00:37:33.680" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""And so the first, I did in fact write""" start="00:37:36.780" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""something called PyMail,""" start="00:37:39.480" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""which was very much Gmail-like,""" start="00:37:41.460" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""before Gmail. And so inside,""" start="00:37:44.660" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""and I did a, it was like our mail in a way,""" start="00:37:48.100" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""but inside your our mail summaries,""" start="00:37:51.680" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""for example, you could have explicit buttons""" start="00:37:54.100" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""embedded and that were drawn from the subject""" start="00:37:57.180" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""of your email message,""" start="00:38:01.120" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""and they'd work just like the regular button.""" start="00:38:02.400" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""So it was very flexible,""" start="00:38:06.300" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""and it had rule-based processing and things.""" start="00:38:07.700" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""So Hyperbole came out of that,""" start="00:38:11.820" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""and it's come a long way,""" start="00:38:13.520" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""but it's still a very useful core hypertext""" start="00:38:15.200" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""system, hypermedia system,""" start="00:38:20.480" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""I should say. Are you familiar with the""" start="00:38:22.040" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""Embark package? I am a bit.""" start="00:38:26.580" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""I've just started using it.""" start="00:38:28.820" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""I think there's some overlapping""" start="00:38:30.520" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""functionality with hyperbole.""" start="00:38:32.040" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""Yes, we've found that people over time have""" start="00:38:34.340" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""enjoyed hyperbole and have started""" start="00:38:39.360" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""replicating some of its features,""" start="00:38:41.600" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""you know, small amounts of the features.""" start="00:38:43.940" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""I talked to, I hope I don't miss his name,""" start="00:38:47.680" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""but O'Adam who writes that once in a while we""" start="00:38:51.340" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""dialogue and I think Embark is great,""" start="00:38:56.000" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""you know, I'll give him some pointers too and""" start="00:38:59.480" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""he thinks that Embark and hyperbole are quite""" start="00:39:04.500" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""compatible too, just like organ hyperbole.""" start="00:39:08.040" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""So that's how we like to keep it.""" start="00:39:11.120" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""Some people prefer just a small package of""" start="00:39:14.540" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""mBARC, and it does different things than what""" start="00:39:18.160" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""Hyperbole does. So I think you use all of""" start="00:39:21.100" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""these tools together, and they can work very""" start="00:39:23.800" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""well together. Any other questions?""" start="00:39:27.540" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""Anybody still here? If not,""" start="00:39:34.280" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""probably people are off to another talk.""" start="00:39:38.440" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""So thank you very much And again look for""" start="00:39:41.940" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""Hyperbole version 9 in the next week.""" start="00:39:47.160" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""Thanks very much. Bye.""" start="00:39:53.740" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""Should I leave BBB? Oh Alpha Papa's here.""" start="00:40:00.620" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""Hey. Good to see you. Alright,""" start="00:40:07.120" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""well... Well, I'll stay for another minute,""" start="00:40:16.040" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""but I think I'm going to go off video 2 and""" start="00:40:22.820" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""start listening to another talk.""" start="00:40:27.280" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""Thanks, everyone. Thanks everyone.""" start="00:40:30.660" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""Yes, I can hear you. Yes,""" start="00:40:56.040" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""[Speaker 1]: Have you been answering questions?""" start="00:40:58.860" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""[Speaker 0]: I can hear you. finished answering the""" start="00:40:56.960" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""questions. We're all done.""" start="00:41:03.700" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""[Speaker 1]: I Okay, cool. Well, what I'm going to do,""" start="00:41:00.060" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""I'm going to close the room unless you want""" start="00:41:07.360" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""to go a little longer,""" start="00:41:09.140" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""because this talk that we're playing right""" start="00:41:10.140" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""now is finishing really quick and we don't""" start="00:41:11.880" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""have a Q&A afterwards.""" start="00:41:13.940" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""So, do you want to stay on air or something?""" start="00:41:15.300" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""[Speaker 0]: Yeah, if you let people know to come back,""" start="00:41:19.440" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""because someone went to go hear that""" start="00:41:21.680" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""presentation, I can stay.""" start="00:41:23.320" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""[Speaker 1]: Sure, I'll make an announcement then.""" start="00:41:25.920" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""And you can stay, we'll just put on BBB.""" start="00:41:27.880" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""You can stay muted until people join,""" start="00:41:29.680" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""but this way it opens up menus for people to""" start="00:41:31.840" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""join and if no 1 shows up in 5 minutes we'll""" start="00:41:33.840" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""all go on break. Does that sound okay?""" start="00:41:36.060" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""[Speaker 0]: Great, thank you.""" start="00:41:38.680" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""[Speaker 1]: Cool, I'll go back to the management in the""" start="00:41:40.520" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""background and I'll let you know.""" start="00:41:44.340" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""Okay, Bob, I've won the stream.""" start="00:43:25.760" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""We are joining it now.""" start="00:43:27.660" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""We've got about 5 seconds.""" start="00:43:28.940" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""And I think we are back.""" start="00:43:41.940" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""so we are gone, Bob, please.""" start="00:43:49.240" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""[Speaker 0]: Hi. So, yeah, I was going to say,""" start="00:43:45.340" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""can we see if anybody comes back in the room?""" start="00:43:54.100" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""How do you tell?""" start="00:43:57.160" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""[Speaker 1]: You should be able to show on the left,""" start="00:44:01.380" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""you've got on BbBlueButton,""" start="00:44:03.740" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""you've got a button, I'm showing it on the""" start="00:44:04.920" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""screen, but you've got a little button that""" start="00:44:06.380" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""allows you to show the people joining.""" start="00:44:08.440" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""So, hello everyone. Let's see if you had more""" start="00:44:10.840" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""question on your pad that we could be taking""" start="00:44:15.380" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""in the meantime, just give me a second to""" start="00:44:17.080" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""find""" start="00:44:19.040" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""[Speaker 0]: your pad. Here we go, an error occurred.""" start="00:44:19.240" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""[Speaker 1]: All right, it's loading up.""" start="00:44:31.820" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""[Speaker 0]: Okay. Wow. Feels like there's an AI writing""" start="00:44:25.680" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""this stuff on the pad.""" start="00:44:37.960" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""Has it? Is this the last pad?""" start="00:44:41.120" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""Oh no, this is a different 1,""" start="00:44:45.600" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""[Speaker 1]: Which question are you looking at now?""" start="00:44:49.840" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""[Speaker 0]: sorry. It was a different pad,""" start="00:44:47.080" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""[Speaker 1]: Oh right.""" start="00:44:55.840" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""[Speaker 0]: that was the problem. Okay,""" start="00:44:53.820" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""here we go. Okay, I'm back.""" start="00:44:57.260" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""So, yeah, it looks like...""" start="00:45:00.540" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""Is anybody back? Send,""" start="00:45:02.260" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""if you're here, send a chat message.""" start="00:45:04.120" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""[Speaker 1]: Yeah, because it's been something.""" start="00:45:08.520" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""You have, apparently, whenever we leave those""" start="00:45:10.640" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""BBB chat room open, the moment we go off air,""" start="00:45:14.320" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""people start joining and asking a lot of very""" start="00:45:18.260" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""interesting questions and you know that's all""" start="00:45:20.280" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""well and good, we'll be able to put them on""" start="00:45:22.200" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""the page later on. But it'd be great if you""" start="00:45:24.280" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""could also have those discussions when we are""" start="00:45:26.280" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""live because a lot of people would benefit""" start="00:45:28.260" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""from the brilliance that goes on in this""" start="00:45:30.140" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""room. So please don't be shy,""" start="00:45:32.120" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""[Speaker 0]: So we're on the general stream now?""" start="00:45:37.340" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""[Speaker 1]: join and talk. Yep, we are back on the""" start="00:45:34.740" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""general stream. We have about until 10 of the""" start="00:45:41.780" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""next hour, which is 19 minutes.""" start="00:45:46.080" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""[Speaker 0]: Just- Why don't you and I talk?""" start="00:45:48.760" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""So have you ever tried hyperbole,""" start="00:45:52.540" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""Leo?""" start="00:45:56.400" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""[Speaker 1]: I have never, but You know,""" start="00:45:58.180" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""it feels like every year when you present""" start="00:46:00.220" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""something, it feels like I already know so""" start="00:46:03.380" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""much. Because of the buttons,""" start="00:46:05.140" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""it feels like it's also something that we've""" start="00:46:08.040" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""reinvented many times in Emacs.""" start="00:46:10.080" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""It's like conversion to evolution,""" start="00:46:12.440" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""except you're the 1 who started ahead of""" start="00:46:14.020" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""everyone else.""" start="00:46:16.540" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""[Speaker 0]: Well, that's a good point because,""" start="00:46:17.860" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""you know, we have, Emacs itself has push""" start="00:46:19.940" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""buttons, which you see like in the help""" start="00:46:23.200" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""buffers. And those used to,""" start="00:46:25.520" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""we didn't really do anything with those,""" start="00:46:27.540" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""but now we've subsumed them as implicit""" start="00:46:30.040" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""buttons as well. So you're made a return,""" start="00:46:32.800" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""we'll work on those anywhere too.""" start="00:46:35.580" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""So, we're trying to get,""" start="00:46:38.740" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""you use 1 key, right? To control every type""" start="00:46:42.260" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""of button that you have.""" start="00:46:45.920" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""It works on org links,""" start="00:46:47.080" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""org buttons anywhere, or URLs.""" start="00:46:48.560" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""Because it's so simple.""" start="00:46:53.240" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""All you need is like 5 to 10 lines of code to""" start="00:46:54.520" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""map. You map the pattern that represents a""" start="00:46:58.820" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""concept, right? And then you can create an""" start="00:47:02.760" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""infinite number of those buttons from that""" start="00:47:05.080" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""type. That's what's really cool about""" start="00:47:07.720" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""Hyperbole, is say I have a 500 page document""" start="00:47:09.520" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""and it uses a really weird format for""" start="00:47:13.280" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""cross-referencing, right?""" start="00:47:15.600" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""I write my 3 lines of pattern match to work""" start="00:47:17.220" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""with that. And then everywhere throughout""" start="00:47:22.320" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""that document and the hundreds of other""" start="00:47:24.200" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""documents that will be created with that""" start="00:47:25.960" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""format, they're all live buttons instantly.""" start="00:47:27.680" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""Nothing changed about the document.""" start="00:47:31.280" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""That's really cool. You know,""" start="00:47:34.220" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""word mode, we have global word buttons,""" start="00:47:35.500" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""but mostly it has to be embedded within an""" start="00:47:37.940" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""org file, right? And follow that syntax.""" start="00:47:42.040" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""With hyperbole, it's like we can adapt as the""" start="00:47:45.580" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""world adapts around us to whatever formats""" start="00:47:51.900" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""people want to use that day.""" start="00:47:55.320" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""And you can even change things to look the""" start="00:47:56.940" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""way you want, right, and have your own""" start="00:47:59.380" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""cross-references. There's something built""" start="00:48:02.440" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""into Hyperbole that's not really active,""" start="00:48:04.860" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""which was sort of along the Zettelkasten way.""" start="00:48:08.220" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""We wrote this a long time ago.""" start="00:48:13.780" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""It's called hib-doc.el,""" start="00:48:15.440" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""and it's a card catalog notion.""" start="00:48:19.120" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""So it uses the high rollo in the background""" start="00:48:22.200" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""but it lets you create these forms that are""" start="00:48:26.160" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""cards that you fill out with whatever kind of""" start="00:48:30.180" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""data you want and then it gives you the full""" start="00:48:32.800" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""text searching across the cards and each card""" start="00:48:35.360" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""has a unique ID that you can reference""" start="00:48:38.520" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""similar to org IDs but these are human""" start="00:48:41.820" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""readable and human typable and so you can you""" start="00:48:45.240" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""can just have a cross-reference to any doc ID""" start="00:48:49.860" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""and essentially create what Engelbart used to""" start="00:48:52.960" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""call a journal, which is all these IDs on""" start="00:48:56.100" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""documents that point you directly to the""" start="00:49:00.520" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""document archive so that you could have like""" start="00:49:03.220" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""your internal publishing system and you know""" start="00:49:05.640" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""it's very simple to do and it's just 1 module""" start="00:49:10.020" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""added on to Hyperbole.""" start="00:49:13.420" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""[Speaker 1]: Yeah it's especially interesting for me you""" start="00:49:15.920" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""know because coming back to the side of""" start="00:49:19.140" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""convergent evolutions it's funny because the""" start="00:49:21.140" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""parameters are a little different.""" start="00:49:23.400" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""For us with org buttons,""" start="00:49:24.920" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""we're very happy. A lot of the stuff during""" start="00:49:26.260" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""EmacsConf is run with org mode,""" start="00:49:29.340" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""like we have Elisp going everywhere to""" start="00:49:31.360" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""compile a lot of org properties,""" start="00:49:34.540" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""like speaker information,""" start="00:49:38.080" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""for instance, how long the talk is,""" start="00:49:39.660" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""the title, and all this.""" start="00:49:41.480" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""We have all of this in an org file,""" start="00:49:42.800" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""which we use as a database,""" start="00:49:44.760" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""but then we can do so much stuff.""" start="00:49:46.220" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""We can send email and we can update the""" start="00:49:47.800" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""schedule. By the way, if you're interested in""" start="00:49:50.740" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""this, we'll have a talk on the DevTrack in""" start="00:49:52.200" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""the afternoon today that Sacha did and it's""" start="00:49:54.280" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""wonderful. I'm just teasing it.""" start="00:49:56.640" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""[Speaker 0]: Oh, that's great.""" start="00:49:58.140" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""[Speaker 1]: But coming back to Hyperbole,""" start="00:50:00.060" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""for you, it feels like the parameters were""" start="00:50:01.640" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""slightly different because the feeling was,""" start="00:50:04.000" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""I just want a tunnel that can work between""" start="00:50:06.560" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""any type of files. Now,""" start="00:50:09.020" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""it's all well and good.""" start="00:50:10.440" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""Org-Rome, D-Note, and all the stuff like""" start="00:50:11.740" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""this, they create bidirectional links.""" start="00:50:14.540" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""But it's only between org-mode files.""" start="00:50:17.080" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""Whereas what you're achieving with Hyperbole,""" start="00:50:19.840" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""and you've done it much earlier than everyone""" start="00:50:22.260" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""else, is that you have this concept""" start="00:50:24.720" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""regardless of the type of file that you're""" start="00:50:27.660" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""using. And I find this to be beautiful.""" start="00:50:29.440" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""Like 5 years ago, whenever you were talking""" start="00:50:32.900" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""about hyperbole, I did not have a concrete""" start="00:50:35.280" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""idea of what was happening.""" start="00:50:37.280" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""But ever since I've gone through the journey""" start="00:50:38.640" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""of really understanding what the El Caster""" start="00:50:40.360" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""method were about, it feels like you were""" start="00:50:42.380" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""foreigners in the topic.""" start="00:50:45.720" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""Obviously, you've mentioned the mother of all""" start="00:50:46.980" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""demos by Edward Engelbart,""" start="00:50:48.540" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""but those ideas are not novel,""" start="00:50:50.740" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""but it feels like only now are they starting""" start="00:50:54.340" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""to be appropriated by people,""" start="00:50:56.820" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""especially in free software,""" start="00:50:58.520" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""and it's really good to see.""" start="00:50:59.800" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""I'm really excited to,""" start="00:51:01.280" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""well, have my small part to play in this.""" start="00:51:02.440" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""And I'm also excited to be able to chat with""" start="00:51:04.600" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""you and people like Bastien and other people""" start="00:51:06.980" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""about all those topics.""" start="00:51:10.240" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""[Speaker 0]: Yeah, I think, you know,""" start="00:51:12.340" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""it's fun that we can laugh now about when""" start="00:51:13.940" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""people say people are still using Emacs,""" start="00:51:16.640" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""you know, is because they're not used,""" start="00:51:20.020" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""certain people aren't using it.""" start="00:51:22.800" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""They have no idea of how far it's come and""" start="00:51:24.160" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""how powerful it is. And,""" start="00:51:26.880" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""you know, we're leveraging Elisp heavily,""" start="00:51:28.780" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""obviously, but if you look at the definition""" start="00:51:31.560" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""of our types, they look exactly like DIP""" start="00:51:34.300" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""funds in ELisp. And we've been able to do""" start="00:51:37.800" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""that because of Lisp macros.""" start="00:51:41.180" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""You know, we so we basically have our own""" start="00:51:43.860" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""domain specific language there,""" start="00:51:46.400" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""but there's almost nothing to learn because""" start="00:51:48.420" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""it's just like what you know from UList.""" start="00:51:51.340" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""So again, you know, taking the concept and""" start="00:51:54.200" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""leveraging it, abstracting it and leveraging""" start="00:51:57.120" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""it multiple times gives you a lot of power.""" start="00:51:59.760" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""And people, you know, somebody said the other""" start="00:52:03.660" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""day, and I said, finally,""" start="00:52:06.060" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""this quote happened. He said,""" start="00:52:07.760" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""there's so many things that I do with""" start="00:52:11.000" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""hyperbole every day that I forget that I'm""" start="00:52:15.060" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""using hyperbole. Because it's just so""" start="00:52:17.200" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""embedded in this guy's workflow.""" start="00:52:21.440" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""And that's really how I use it.""" start="00:52:23.680" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""You know, there are features in there,""" start="00:52:25.440" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""can't use everything, right?""" start="00:52:27.440" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""So there are features that I don't use,""" start="00:52:29.060" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""but I use a lot of things and it's all like""" start="00:52:32.040" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""muscle memory, just like the keyboard,""" start="00:52:35.580" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""the Emacs key bindings.""" start="00:52:38.200" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""So it's very exciting to get to that level.""" start="00:52:39.960" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""And now, you know, we haven't started with""" start="00:52:42.180" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""the chatbots or any of the AI integration,""" start="00:52:44.320" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""but I'm starting to think about that a little""" start="00:52:47.300" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""bit and how we'll interface to that world and""" start="00:52:49.480" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""I think it's going to be very exciting.""" start="00:52:53.480" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""[Speaker 1]: Yeah, likewise and I think it harks back to""" start="00:52:56.040" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""what we were talking about before when we""" start="00:52:58.340" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""mentioned Hyperbole being a package inside of""" start="00:53:00.660" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""an ecosystem that is Emacs.""" start="00:53:03.700" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""But it's not because something is well""" start="00:53:05.860" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""circumscribed in terms of feature set that it""" start="00:53:08.040" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""does not influence everything around it.""" start="00:53:10.560" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""Like Hyperbole can be used with something""" start="00:53:12.880" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""completely at the opposite end of what it was""" start="00:53:15.060" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""intended for, just because it provides a good""" start="00:53:18.080" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""set of tools that can be used wherever else""" start="00:53:21.380" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""you want in Emacs. And it's the same thing""" start="00:53:23.860" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""with Org Mode, it's the same thing with many,""" start="00:53:26.100" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""many different things.""" start="00:53:27.980" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""And it feels like integrating AIs,""" start="00:53:29.440" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""or generative AIs, into Emacs would provide""" start="00:53:33.400" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""such a tool that could apply to any kind of""" start="00:53:39.620" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""other major mode or any kind of other use.""" start="00:53:42.340" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""So I'm also excited to see this.""" start="00:53:45.060" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""It feels like we are sitting at the brink of""" start="00:53:46.640" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""a revolution. I'm not going to say the acne""" start="00:53:50.280" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""stuff, but it definitely feels like right""" start="00:53:52.580" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""now, by trying to see what we can do with AI,""" start="00:53:54.440" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""it's definitely going to change the way not""" start="00:53:57.560" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""only we program, but also the way we take""" start="00:53:59.380" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""notes and the way we design stuff,""" start="00:54:01.560" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""arcing back to what John Wigley said""" start="00:54:03.160" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""yesterday about his draft program on macOS.""" start="00:54:05.220" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""Bob, if you don't mind,""" start="00:54:09.800" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""I see people typing questions and I also see""" start="00:54:11.040" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""people joining on people buttons,""" start="00:54:13.100" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""so I'm going to read you the 2 questions that""" start="00:54:14.820" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""have been added. Is that okay?""" start="00:54:16.920" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""[Speaker 0]: Great, go for it.""" start="00:54:19.200" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""[Speaker 1]: Cool, so first question.""" start="00:54:21.240" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""Wow, what you're describing now,""" start="00:54:23.320" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""and that's when you were talking about the""" start="00:54:25.240" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""bi-directional links and especially the last""" start="00:54:27.520" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""question in its entirety,""" start="00:54:31.840" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""What you're describing now reminds me a lot""" start="00:54:33.540" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""about HyperCard that I grew up on.""" start="00:54:35.440" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""Do you know if Hyperbole inspired Bill""" start="00:54:37.440" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""Atkinson or if you were inspired by""" start="00:54:39.220" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""HyperCard? Or were there just a lot of""" start="00:54:41.040" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""thoughts about hyper-contextuality around""" start="00:54:43.040" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""that time?""" start="00:54:44.860" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""[Speaker 0]: Alright, well this is another interesting""" start="00:54:46.780" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""anecdote. I don't know if it's true or not,""" start="00:54:50.320" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""but I think HyperCard predated our stuff.""" start="00:54:52.360" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""It was right around the same time when""" start="00:54:57.880" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""Hyperbole was starting out.""" start="00:55:00.480" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""But when I was doing the Pi research,""" start="00:55:02.540" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""I worked at, when I left school,""" start="00:55:06.040" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""I worked at Motorola, and we did a lot of""" start="00:55:08.800" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""work with Apple back then.""" start="00:55:11.280" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""And somebody came back and he said,""" start="00:55:13.180" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""you know, the people over there have seen""" start="00:55:15.480" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""your Pi research and they really liked it a""" start="00:55:19.120" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""lot. And so they were leveraging that when""" start="00:55:21.940" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""they decided to create the division that they""" start="00:55:26.020" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""called Apple Pi, which was the originator of""" start="00:55:28.440" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""the Newton which eventually led to the""" start="00:55:33.280" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""iPhone. So it all kind of is interconnected""" start="00:55:36.500" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""just like the impact that free software has""" start="00:55:41.360" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""had around the world. So you never know where""" start="00:55:44.380" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""your stuff is gonna go or end up.""" start="00:55:47.240" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""[Speaker 1]: Right. All right, moving on to the next""" start="00:55:51.180" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""question. Is it possible to only use 1""" start="00:55:53.400" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""feature of hyperbole without the others,""" start="00:55:55.840" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""i.e. Using only the implicit explicit buttons""" start="00:55:57.740" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""without I control I roller or without having""" start="00:56:00.580" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""to rewrite part of the code in hyperbole in""" start="00:56:03.580" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""order to be able to load a smaller hyperbole.""" start="00:56:05.920" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""Does it make sense?""" start="00:56:08.200" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""[Speaker 0]: Yes we get asked this all the time.""" start="00:56:10.260" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""So you can use any little bit that you want""" start="00:56:12.900" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""anywhere right you can even just call code""" start="00:56:16.560" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""from Hyperbole. I mean you don't use""" start="00:56:19.940" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""everything in Emacs, right?""" start="00:56:23.680" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""But you still install Emacs on your machine.""" start="00:56:25.080" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""It's exactly the same thing.""" start="00:56:28.180" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""Those libraries don't take up any memory,""" start="00:56:30.860" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""they take up a little disk space and it's so""" start="00:56:33.280" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""trivial compared to the amount of disk we""" start="00:56:36.380" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""have today. So a lot of things are not loaded""" start="00:56:38.520" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""unless you activate them.""" start="00:56:41.920" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""And so I know that you do have to build all""" start="00:56:45.040" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""those things. So maybe that's what bothers""" start="00:56:48.940" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""people. It takes 2 minutes if you're using,""" start="00:56:51.360" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""it depends how fast your computer is.""" start="00:56:56.320" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""But you build it once on install like every""" start="00:56:58.400" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""other package. And it used to be that there""" start="00:57:01.160" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""would be a lot of warnings just because of""" start="00:57:04.600" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""the way we wrote the code and we didn't""" start="00:57:06.620" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""really have to deal with some of those""" start="00:57:09.020" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""warnings. But with this new release,""" start="00:57:11.120" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""we've gotten rid of almost all of them,""" start="00:57:13.080" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""including the native compiler messages.""" start="00:57:15.200" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""So it should be a very clean install now,""" start="00:57:20.020" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""and just use 1 part at a time.""" start="00:57:22.900" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""But the other parts are there in case you""" start="00:57:26.880" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""make a link to something and you use a""" start="00:57:29.820" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""facility just like I was showing as I went""" start="00:57:32.080" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""across subsystems today.""" start="00:57:34.600" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""It may take you a year,""" start="00:57:36.600" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""but then all of a sudden you find the use""" start="00:57:38.000" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""case for Hyrule and you say,""" start="00:57:40.120" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""oh, I'm glad I have it there.""" start="00:57:42.340" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""And yes, some of these things could be split""" start="00:57:44.440" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""into sub packages like you do in the org""" start="00:57:47.540" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""ecosystem. But given our limited resources on""" start="00:57:49.540" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""the team, we find having them all in 1 gives""" start="00:57:52.500" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""us a higher level of quality and lets us""" start="00:57:56.400" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""deliver a better integrated system for your""" start="00:57:59.040" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""use.""" start="00:58:02.840" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""[Speaker 1]: Yeah, exactly. And I think,""" start="00:58:04.740" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""you know, it's, it's not a monolith.""" start="00:58:06.300" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""I mean, it's usually easier,""" start="00:58:10.080" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""easy, more easy, more easy.""" start="00:58:12.540" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""Sorry, I was right on the first try.""" start="00:58:14.620" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""It's usually easier to maintain a monolith""" start="00:58:16.560" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""that contains many bits of functionality like""" start="00:58:20.860" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""org. You have plenty of people using org""" start="00:58:23.140" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""mode, not using org-agenda,""" start="00:58:25.280" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""for instance, or you've got plenty of people""" start="00:58:27.340" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""using org-mode and barely using Babel because""" start="00:58:29.142" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""it doesn't really translate to their use.""" start="00:58:31.560" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""And I feel like I very much agree with you.""" start="00:58:35.460" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""It's okay to install a package and only use""" start="00:58:37.720" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""some of the functions.""" start="00:58:39.520" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""I was reminded, as you were discussing this,""" start="00:58:40.600" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""of the consults package,""" start="00:58:43.580" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""which is part of the VertiCo,""" start="00:58:45.380" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""mbark and marginalia and all this.""" start="00:58:48.220" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""Consult, it replaces a lot of the Emacs""" start="00:58:51.340" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""built-in commands like for finding your""" start="00:58:54.960" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""buffers or finding text inside of your""" start="00:58:56.980" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""buffer. It's great. And you do not need to""" start="00:58:59.900" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""completely move to consult as you get""" start="00:59:04.120" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""started. You can start colonizing 1 step at a""" start="00:59:06.300" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""time the function that you usually use.""" start="00:59:09.080" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""And I highly recommend to people to not let""" start="00:59:12.620" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""the size of a project deter them from trying""" start="00:59:15.580" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""it out because, again,""" start="00:59:18.560" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""in Emacs, everything is horizontal.""" start="00:59:20.980" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""If somehow you want to use something that was""" start="00:59:23.100" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""not intended primarily for this,""" start="00:59:28.180" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""or if you only want to use 10% of a package,""" start="00:59:29.640" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""well, do it. An example that I have for me is""" start="00:59:32.300" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""that Lispy is the minor mode that I use for""" start="00:59:35.500" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""editing Elisp documents,""" start="00:59:39.840" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""and it's great. Elisp provides similar""" start="00:59:42.740" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""functions to ParaEdit,""" start="00:59:45.380" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""which might be a little more popular,""" start="00:59:46.260" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""which allows you to have modal editing when""" start="00:59:47.780" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""you are on specific parts of a file,""" start="00:59:50.320" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""like the opening parenthesis or the closing""" start="00:59:52.840" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""parenthesis. It's great,""" start="00:59:55.080" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""it provides modal editing for those modes,""" start="00:59:56.480" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""but I certainly do not know everything,""" start="00:59:58.320" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""every modal command associated to it.""" start="01:00:02.220" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""I just use the 1 that makes the most sense to""" start="01:00:04.240" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""me. So feel free to explore.""" start="01:00:06.180" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""[Speaker 0]: I'll just say we get this so much.""" start="01:00:11.040" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""It's not that large. I mean there's a fair""" start="01:00:13.740" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""number of files but it's just like 1 major""" start="01:00:16.520" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""directory and then the KOutliner directory.""" start="01:00:19.680" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""And when you look at these things,""" start="01:00:24.080" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""you install web applications,""" start="01:00:25.560" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""everything else, just when you download the""" start="01:00:27.440" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""source code, it's much,""" start="01:00:30.420" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""much smaller than any of that.""" start="01:00:31.820" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""So I don't know why people you know accept""" start="01:00:34.140" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""that it's larger than your typical package.""" start="01:00:37.360" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""Why there's really an issue there.""" start="01:00:39.960" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""[Speaker 1]: I think it's because people tend to assume""" start="01:00:43.080" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""that a paradigm like the 1 you're describing,""" start="01:00:46.240" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""which seems to be changing the way you use""" start="01:00:48.480" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""Emacs in a way because you're no longer""" start="01:00:51.560" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""thinking of as buffers as separate entities,""" start="01:00:53.480" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""you can tunnel between them.""" start="01:00:56.000" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""You know, it feels like a huge paradigm shift""" start="01:00:57.980" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""and you assume that the code behind it is""" start="01:01:00.180" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""going to be humongous as well,""" start="01:01:02.300" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""but it's usually not the case.""" start="01:01:04.080" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""It's just that the idea is very pure at the""" start="01:01:05.380" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""start, and the paradigm shift that it allows""" start="01:01:07.640" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""is also magnificent. But at the end of the""" start="01:01:10.320" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""day, the code is fairly simple,""" start="01:01:14.120" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""because it does 1 thing and it does it well.""" start="01:01:16.320" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""[Speaker 0]: 1 thing I noticed too,""" start="01:01:19.780" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""I mean I'm a big believer in turnkey kind of""" start="01:01:21.180" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""systems. In fact a long time ago when I built""" start="01:01:23.760" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""an IDE on Emacs called InfoDoc that was""" start="01:01:27.180" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""delivered pre-compiled.""" start="01:01:31.160" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""So it's like you download it like every other""" start="01:01:33.760" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""app and you run it. And so I think""" start="01:01:35.980" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""eliminating all the friction that occurs,""" start="01:01:39.480" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""and you know, I just got going recently with""" start="01:01:42.740" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""the wonderful packages that you just""" start="01:01:46.380" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""mentioned, VertiCo and Consult,""" start="01:01:49.160" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""but they don't have a manual that covers all""" start="01:01:51.460" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""that. They use sort of like a cookbook,""" start="01:01:55.360" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""a wiki online to answer a lot of the""" start="01:01:58.260" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""questions that people have and everybody has""" start="01:02:02.220" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""to figure out their configurations you know""" start="01:02:04.600" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""to make these things all work together.""" start="01:02:07.640" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""We'd like to do that engineering and say here""" start="01:02:12.800" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""it is you know it's like if you want to""" start="01:02:16.460" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""configure it and make it your own,""" start="01:02:18.560" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""you can do it. But there is a default""" start="01:02:20.320" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""configuration that handles all the typical""" start="01:02:23.760" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""use cases and you can just load it up and run""" start="01:02:26.880" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""because it's made to use,""" start="01:02:30.060" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""you don't have to hack it to make it useful""" start="01:02:32.840" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""for you.""" start="01:02:36.500" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""[Speaker 1]: Yeah, it reminds me of the discussion we had""" start="01:02:37.900" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""with Stéphane yesterday about sane defaults.""" start="01:02:40.560" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""And I think the question was,""" start="01:02:43.320" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""Emacs should probably ship with sane defaults""" start="01:02:46.500" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""for people. And Stéphane's answer was,""" start="01:02:49.080" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""well, my sane defaults might not be the same""" start="01:02:51.740" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""thing as your sane defaults.""" start="01:02:53.860" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""And that's why I think it's important,""" start="01:02:55.960" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""really, to have a core set of features,""" start="01:02:57.560" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""be it with hyperbole of org mode,""" start="01:02:59.340" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""that is well-documented,""" start="01:03:01.360" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""as you mentioned. But what I like about this""" start="01:03:02.880" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""in a way, and I think hyperbole is perhaps""" start="01:03:05.460" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""taking more benefits of this than Org Mode,""" start="01:03:07.260" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""is that the self-documentation aspect of it""" start="01:03:09.340" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""feels like it's easier with hyperbole because""" start="01:03:12.540" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""you're not bound by Org Mode buffers.""" start="01:03:14.540" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""You can link to just about everything.""" start="01:03:17.320" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""And for me, this ability to self-document is,""" start="01:03:19.940" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""well, first, very true to the philosophy of""" start="01:03:24.240" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""Emacs in the first place,""" start="01:03:26.140" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""but also opens up those resonance cycles""" start="01:03:27.500" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""where, oh, you get interested and then you""" start="01:03:32.020" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""start reading up and then the documentation""" start="01:03:34.200" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""is so good that it feeds into your practice""" start="01:03:35.820" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""and then it goes nuclear and you gain so much""" start="01:03:38.320" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""knowledge as a result of this.""" start="01:03:41.040" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""All right, Bob, we are about out of time.""" start="01:03:42.620" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""We only have about 1 minute until we go to""" start="01:03:44.480" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""the next talk. Do you have any passing words?""" start="01:03:46.280" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""[Speaker 0]: I do. I think, you know,""" start="01:03:50.180" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""the world's complex, it's getting more""" start="01:03:54.280" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""complex. I think that's why people use Emacs""" start="01:03:57.440" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""in the first place, because it's a big""" start="01:04:00.520" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""system. You wouldn't use it unless you wanted""" start="01:04:02.560" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""it to simplify your life.""" start="01:04:04.920" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""Hyperbole is built with the same idea in""" start="01:04:07.580" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""mind. You may not get it just like Lisp.""" start="01:04:10.760" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""A lot of people don't understand when they""" start="01:04:13.740" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""first encounter it, but when they do""" start="01:04:15.720" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""understand it, they're blown away.""" start="01:04:17.420" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""It changes their life.""" start="01:04:19.960" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""You know, when you really understand implicit""" start="01:04:22.040" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""buttons, I think that's 1 of the things in""" start="01:04:25.120" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""hyperbole that can change your Emacs working""" start="01:04:28.100" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""life. So just give that a try and I think""" start="01:04:30.860" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""you'll be pleasantly surprised across time.""" start="01:04:34.080" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""[Speaker 1]: you so much Bob. We'll be moving on to the""" start="01:04:39.220" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""next talk in about 20 seconds so everyone see""" start="01:04:40.920" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""you in a bit and Bob thank you so much again.""" start="01:04:42.980" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""[Speaker 0]: Thanks very much. And thank Thank you.""" start="01:04:37.040" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""[Speaker 1]: All right I think we are off here now.""" start="01:04:51.140" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""So thank you so much, Bob.""" start="01:04:53.040" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""I'm going to need to step out and get ready""" start="01:04:53.940" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""[Speaker 0]: Yeah, do your thing. You do a great job at""" start="01:04:56.609" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""it. But I wanted to ask you where in London""" start="01:04:59.240" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""[Speaker 1]: for the next talk. I'm not in London,""" start="01:04:55.440" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""I'm in France, and I just moved to London.""" start="01:05:05.280" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""[Speaker 0]: you are. Oh, okay, got it.""" start="01:05:01.760" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""Sorry, I thought you were.""" start="01:05:11.200" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""Take care.""" start="01:05:13.000" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""[Speaker 1]: All right, bye-bye, Bob.""" start="01:05:14.340" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""Thanks a lot. Bye-bye.""" start="01:05:15.060" video="mainVideo-hyperamp" id="subtitle"]]
+[[!template text="""Bye-bye.""" start="01:05:15.750" video="mainVideo-hyperamp" id="subtitle"]]
+
+</div>Questions or comments? Please e-mail [rsw@gnu.org](mailto:rsw@gnu.org?subject=Comment%20for%20EmacsConf%202023%20hyperamp%3A%20Top%2010%20ways%20Hyperbole%20amps%20up%20Emacs)
<!-- End of emacsconf-publish-after-page -->
diff --git a/2023/info/hyperamp-before.md b/2023/info/hyperamp-before.md
index 62289396..5d534f44 100644
--- a/2023/info/hyperamp-before.md
+++ b/2023/info/hyperamp-before.md
@@ -1,12 +1,18 @@
<!-- Automatically generated by emacsconf-publish-before-page -->
[[!toc ]]
-Format: 20-min talk followed by live web conference and pad Q&A
-Discuss on IRC: [#emacsconf](https://chat.emacsconf.org/?join=emacsconf)
-Status: Waiting for video from speaker
+Format: 66-min talk ; Q&A: BigBlueButton conference room
+Status: TO_REVIEW_QA
+# Talk
+
+<div class="vid mainVideo"><video controls preload="none" id="mainVideo-hyperamp"><source src="https://media.emacsconf.org/2023/emacsconf-2023-hyperamp--top-10-ways-hyperbole-amps-up-emacs--robert-weiner--main.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2023/captions/emacsconf-2023-hyperamp--top-10-ways-hyperbole-amps-up-emacs--robert-weiner--main.vtt" default />"""<p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video><div></div>Duration: 1:05:16 minutes<div class="files resources"><ul><li><a href="https://pad.emacsconf.org/2023-hyperamp">Open Etherpad</a></li><li><a href="https://bbb.emacsverse.org/playback/presentation/2.0/playback.html?meetingId=b91c2833d3add0175ea8f55e9026f1ba6e744918-1701610376838">Play recording from BigBlueButton</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-hyperamp--top-10-ways-hyperbole-amps-up-emacs--robert-weiner--intro.vtt">Download --intro.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-hyperamp--top-10-ways-hyperbole-amps-up-emacs--robert-weiner--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-hyperamp--top-10-ways-hyperbole-amps-up-emacs--robert-weiner--main.json">Download --main.json (2.9MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-hyperamp--top-10-ways-hyperbole-amps-up-emacs--robert-weiner--main.opus">Download --main.opus (37MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-hyperamp--top-10-ways-hyperbole-amps-up-emacs--robert-weiner--main.vtt">Download --main.vtt</a> (unedited)</li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-hyperamp--top-10-ways-hyperbole-amps-up-emacs--robert-weiner--main.webm">Download --main.webm (234MB)</a></li><li><a href="https://toobnix.org/w/4Cpb89zHKgQjob3gHUs73C">View on Toobnix</a></li><li><a href="https://www.youtube.com/watch?v=BysjfL25Nlc">View on Youtube</a></li></ul></div></div>
+
+# Q&A
+
+<div class="vid qanda"><div></div><div class="files resources"><ul><li><a href="https://pad.emacsconf.org/2023-hyperamp">Open Etherpad</a></li><li><a href="https://bbb.emacsverse.org/playback/presentation/2.0/playback.html?meetingId=b91c2833d3add0175ea8f55e9026f1ba6e744918-1701610376838">Play recording from BigBlueButton</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-hyperamp--top-10-ways-hyperbole-amps-up-emacs--robert-weiner--intro.vtt">Download --intro.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-hyperamp--top-10-ways-hyperbole-amps-up-emacs--robert-weiner--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-hyperamp--top-10-ways-hyperbole-amps-up-emacs--robert-weiner--main.json">Download --main.json (2.9MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-hyperamp--top-10-ways-hyperbole-amps-up-emacs--robert-weiner--main.opus">Download --main.opus (37MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-hyperamp--top-10-ways-hyperbole-amps-up-emacs--robert-weiner--main.vtt">Download --main.vtt</a> (unedited)</li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-hyperamp--top-10-ways-hyperbole-amps-up-emacs--robert-weiner--main.webm">Download --main.webm (234MB)</a></li></ul></div></div>
# Description
<!-- End of emacsconf-publish-before-page --> \ No newline at end of file
diff --git a/2023/info/hyperamp-nav.md b/2023/info/hyperamp-nav.md
index 7d209b79..f72e2832 100644
--- a/2023/info/hyperamp-nav.md
+++ b/2023/info/hyperamp-nav.md
@@ -1,7 +1,7 @@
<div class="talk-nav">
Back to the [[talks]]
-Previous by track: <a href="/2023/talks/devel">Emacs development updates</a>
+Previous by track: <a href="/2023/talks/core">Emacs core development: how it works</a>
Next by track: <a href="/2023/talks/koutline">Using Koutline for stream of thought journaling</a>
-Track: <span class="sched-track General">General</span>
+Track: <span class="sched-track General">General</span> - <strong><a href="https://emacsconf.org/2023/watch/gen">Watch</a></strong>
</div>
diff --git a/2023/info/hyperdrive-after.md b/2023/info/hyperdrive-after.md
index 925590e7..f93b30c5 100644
--- a/2023/info/hyperdrive-after.md
+++ b/2023/info/hyperdrive-after.md
@@ -1,7 +1,1310 @@
<!-- Automatically generated by emacsconf-publish-after-page -->
-Questions or comments? Please e-mail [joseph@ushin.org](mailto:joseph@ushin.org?subject=Comment%20for%20EmacsConf%202022%20hyperdrive%3A%20hyperdrive.el%3A%20Peer-to-peer%20filesystem%20in%20Emacs)
+<div class="transcript transcript-mainVideo"><a name="hyperdrive-mainVideo-transcript"></a><h1>Transcript</h1>
+
+[[!template text="""Hello, I'm Joseph Turner.""" start="00:00:00.000" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""This talk is about hyperdrive.el,""" start="00:00:02.600" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""peer-to-peer file system in Emacs.""" start="00:00:05.107" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""Hyperdrive is a JavaScript library""" start="00:00:09.100" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""developed by the Holepunch team""" start="00:00:11.480" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""for sharing files on a peer-to-peer network.""" start="00:00:13.360" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""It's released under the Apache 2.0 license.""" start="00:00:16.500" video="mainVideo-hyperdrive" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Hyperdrives introduction""" start="00:00:19.840" video="mainVideo-hyperdrive" id="subtitle"]]</div>[[!template text="""Here's how it works.""" start="00:00:19.840" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""To participate as a peer, you run a node,""" start="00:00:21.640" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""a lightweight local server that allows you""" start="00:00:24.581" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""to connect with other nodes on the network.""" start="00:00:27.281" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""You can create a hyperdrive or multiple hyperdrives,""" start="00:00:29.960" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""and you can author files within them.""" start="00:00:33.123" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""Each hyperdrive is automatically assigned""" start="00:00:36.220" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""a globally unique link""" start="00:00:38.700" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""that starts with `hyper://`.""" start="00:00:40.906" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""When you share that link with someone,""" start="00:00:44.580" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""they have access to your hyperdrive.""" start="00:00:47.020" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""Anyone who has that link can load the hyperdrive""" start="00:00:49.160" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""from the network and view its content.""" start="00:00:52.820" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""When you load a Hyperdrive file from the network,""" start="00:00:56.000" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""your node caches that data locally""" start="00:00:59.020" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""and automatically begins seeding it""" start="00:01:02.020" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""back to the network,""" start="00:01:04.133" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""making it available for others to download from you.""" start="00:01:05.220" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""Hyperdrives are single writer.""" start="00:01:12.620" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""This means that when you create a new drive,""" start="00:01:14.520" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""you are the only one who can make changes to it.""" start="00:01:16.880" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""Others can view it""" start="00:01:19.720" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""and can seed it back to the network,""" start="00:01:21.267" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""but you're the only one who can modify it.""" start="00:01:23.800" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""Hyperdrives are offline first.""" start="00:01:27.340" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""This means that when you load data from the network,""" start="00:01:29.740" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""it's stored locally on your machine""" start="00:01:33.000" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""for you to view later,""" start="00:01:34.900" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""even when you're disconnected from other peers.""" start="00:01:36.180" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""You can also create new drives""" start="00:01:38.800" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""and modify your drives when you're offline,""" start="00:01:40.800" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""and then share those changes""" start="00:01:43.600" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""once you connect with peers later.""" start="00:01:45.000" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""Hyperdrives are local first.""" start="00:01:47.920" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""This means that when you are connected with""" start="00:01:50.300" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""other peers on a local area network,""" start="00:01:52.400" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""even if none of the peers involved""" start="00:01:54.740" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""are connected to the broader Internet,""" start="00:01:56.940" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""you can still share files.""" start="00:01:58.980" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""Hyperdrives are sparsely replicated.""" start="00:02:02.060" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""This means that you can download individual files""" start="00:02:04.800" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""from a hyperdrive without having to download""" start="00:02:07.479" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""the whole thing.""" start="00:02:10.020" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""This saves on disk space and also allows you""" start="00:02:11.720" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""to quickly load just the files""" start="00:02:15.471" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""that you're interested in.""" start="00:02:17.233" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""Hyperdrives are mutable.""" start="00:02:20.540" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""You can add files, change files,""" start="00:02:22.467" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""remove files from a hyperdrive.""" start="00:02:25.500" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""And when peers load your drive""" start="00:02:28.120" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""using the very same link,""" start="00:02:30.667" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""they will be able to load""" start="00:02:32.560" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""the latest changes that you've published.""" start="00:02:34.025" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""Hyperdrives are versioned.""" start="00:02:37.320" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""This means that when you make changes to a file,""" start="00:02:39.460" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""the previous versions of those files are not lost.""" start="00:02:42.429" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""Peers can load the old versions of a file""" start="00:02:46.000" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""that was changed or deleted, for example,""" start="00:02:49.360" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""simply by specifying the version number""" start="00:02:52.440" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""of the hyperdrive when the file still existed""" start="00:02:55.067" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""or existed in a previous state.""" start="00:02:58.167" video="mainVideo-hyperdrive" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""About USHIN and the contributors""" start="00:03:04.600" video="mainVideo-hyperdrive" id="subtitle"]]</div>[[!template text="""I'm presenting this talk on behalf of USHIN.""" start="00:03:04.600" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""USHIN is a tiny nonprofit whose mission is to""" start="00:03:07.380" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""promote personal, community and global health""" start="00:03:10.680" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""through free and open universal shared information""" start="00:03:14.032" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""for everybody.""" start="00:03:17.367" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""USHIN was founded in the early 90s""" start="00:03:19.700" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""by Paula Maas, Steve Nash and others""" start="00:03:21.551" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""with the goal of creating""" start="00:03:24.860" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""a distributed health information network""" start="00:03:26.400" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""that would allow people to find, share, compare""" start="00:03:29.131" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""and deliberate health information""" start="00:03:33.429" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""from a variety of sources.""" start="00:03:35.667" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""Since then, the scope of the project has broadened""" start="00:03:37.780" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""to include all kinds of information.""" start="00:03:40.700" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""And in recent years, we've been focusing on""" start="00:03:43.260" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""building with peer-to-peer software.""" start="00:03:45.780" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""About three years ago,""" start="00:03:49.500" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""we started working with Mauve Signweaver,""" start="00:03:50.534" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""who has since then been our steadfast""" start="00:03:52.634" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""peer-to-peer explorer and guide.""" start="00:03:54.767" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""This year, we started working on""" start="00:03:58.260" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""this hyperdrive.el Emacs package,""" start="00:04:00.080" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""and Adam has been the powerhouse""" start="00:04:02.800" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""behind the Emacs Lisp development.""" start="00:04:05.060" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""About a month ago,""" start="00:04:08.080" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""Jonas Bernoulli started joining with us,""" start="00:04:08.967" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""and he has been offering his expertise""" start="00:04:11.100" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""in the realm of user interface design""" start="00:04:14.420" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""using his Transient library.""" start="00:04:15.640" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""And Protesilaos Stavrou has been not only valuable""" start="00:04:18.000" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""in terms of user design and feedback,""" start="00:04:22.140" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""but he created a wonderful""" start="00:04:25.000" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""basic introduction to Hyperdrive. Take a look.""" start="00:04:27.120" video="mainVideo-hyperdrive" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Basic introduction to Hyperdrive""" start="00:04:32.646" video="mainVideo-hyperdrive" id="subtitle"]]</div>[[!template text="""[Prot]: Hello everyone!""" start="00:04:32.646" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""My name is Protesilaos, also known as Prot.""" start="00:04:33.586" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""In this video, I want to show you""" start="00:04:36.366" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""the basics of hyperdrive.el.""" start="00:04:37.806" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""This is a package for Emacs that lets us connect to""" start="00:04:40.746" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""the Hyperdrive peer-to-peer network.""" start="00:04:44.013" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""We can browse existing drives on the network,""" start="00:04:47.833" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""meaning existing file systems,""" start="00:04:51.573" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""or create and maintain our own hyperdrive,""" start="00:04:53.880" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""to which we can add, remove or edit files.""" start="00:04:59.053" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""We will see this together.""" start="00:05:03.473" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""What I have here in front of me is a basic""" start="00:05:05.473" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""use-package declaration for hyperdrive.el.""" start="00:05:08.733" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""All I am doing is binding `hyperdrive-menu`""" start="00:05:12.973" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""to a key and also activating""" start="00:05:16.993" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""the menu bar entry of hyperdrive.""" start="00:05:19.793" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""Let me show you very quickly, `hyperdrive-menu`.""" start="00:05:23.613" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""And this is the sort of interface that it brings up.""" start="00:05:26.813" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""We will take a closer look at it.""" start="00:05:31.293" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""As for the menu bar,""" start="00:05:33.473" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""we have `hyperdrive-menu` over here,""" start="00:05:35.993" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""and we will take a look at this as well.""" start="00:05:41.073" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""Suffice to say that""" start="00:05:44.193" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""you can get the same functionality""" start="00:05:45.693" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""with the menu bar or with `hyperdrive-menu`,""" start="00:05:48.273" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""as well as by calling the commands directly""" start="00:05:51.993" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""with `M-x` or their respective key bindings.""" start="00:05:55.893" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""I won't cover everything in that regard,""" start="00:06:00.053" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""but please bear this fact in mind.""" start="00:06:02.980" video="mainVideo-hyperdrive" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Managing files with Hyperdrive.el""" start="00:06:06.133" video="mainVideo-hyperdrive" id="subtitle"]]</div>[[!template text="""Let's start then with what I have here""" start="00:06:06.133" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""in this other tab, which is a set of files.""" start="00:06:09.213" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""I have prepared in my local file system - a hyperdrive.""" start="00:06:13.853" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""This contains a set of files""" start="00:06:18.473" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""that I ultimately want to share""" start="00:06:20.333" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""on the peer-to-peer network,""" start="00:06:22.653" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""meaning that I want this to eventually be""" start="00:06:24.353" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""reflected in my own hyperdrive.""" start="00:06:28.053" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""What I did to get started is""" start="00:06:31.473" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""I invoked `hyperdrive-menu`.""" start="00:06:34.054" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""The very first thing you need to do""" start="00:06:36.493" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""to get started with Hyperdrive,""" start="00:06:38.573" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""either to browse or to create,""" start="00:06:40.993" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""is to start the gateway,""" start="00:06:43.633" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""meaning to be able to connect to""" start="00:06:46.013" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""the peer-to-peer network.""" start="00:06:48.693" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""You see here in `hyperdrive-menu` that there is""" start="00:06:50.473" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""an indicator next to the &quot;Gateway&quot; heading""" start="00:06:53.493" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""telling me that the gateway is on.""" start="00:06:56.293" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""I started it with `G` and then `s`.""" start="00:06:59.473" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""Once you start it,""" start="00:07:04.673" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""you can type `h` to visit an existing drive,""" start="00:07:06.573" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""`N` to create a drive,""" start="00:07:10.153" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""or `L` to open a link to an existing hyperdrive.""" start="00:07:12.113" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""You may get this link via email, for example.""" start="00:07:17.473" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""In this case, let me be over here""" start="00:07:21.154" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""and let me just kill this buffer.""" start="00:07:24.933" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""What I want in this case is to select a hyperdrive.""" start="00:07:27.973" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""You see here I have my own hyperdrive""" start="00:07:32.953" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""and also the hyperdrive of USHIN,""" start="00:07:35.453" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""the developers of hyperdrive.el.""" start="00:07:37.813" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""What I want to do in this case,""" start="00:07:41.333" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""you see there are various options available.""" start="00:07:43.973" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""I want to type `v` to view a file.""" start="00:07:46.853" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""And in this case,""" start="00:07:50.213" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""I will just type the forward slash,""" start="00:07:50.973" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""which means to view the root directory""" start="00:07:53.633" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""of this hyperdrive. And I am here.""" start="00:07:56.993" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""It is an empty drive apart from""" start="00:08:00.853" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""my credentials over here.""" start="00:08:04.220" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""There is nothing more really to see.""" start="00:08:06.513" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""But what I want to do is""" start="00:08:10.113" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""to start adding files to this drive.""" start="00:08:12.093" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""Let me use the menu bar for this.""" start="00:08:15.353" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""I will hover over to the menu bar,""" start="00:08:18.333" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""and I will find the &quot;Hyperdrive&quot; submenu.""" start="00:08:21.053" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""Then I will go find where the drives are.""" start="00:08:24.773" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""And you see that there are writable drives,""" start="00:08:27.913" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""meaning drives that I manage,""" start="00:08:30.673" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""and read-only drives, meaning drives of other users.""" start="00:08:32.813" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""In this case, USHIN is read-only, of course,""" start="00:08:37.353" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""and Protesilaos is writable.""" start="00:08:40.333" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""So what I want to do is upload a file to Protesilaos.""" start="00:08:42.973" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""And it prompts me in the Minibuffer for a file.""" start="00:08:48.353" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""I will just add the README.""" start="00:08:52.473" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""It is asking me, &quot;Where do you want to add it?&quot;""" start="00:08:55.293" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""And in square brackets, the default is to add it""" start="00:08:58.173" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""to the root directory of the hyperdrive.""" start="00:09:00.553" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""So I will just type `RET` to select the default.""" start="00:09:03.813" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""And there it is. It is already in the drive.""" start="00:09:07.013" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""Let me add the COPYING file as well,""" start="00:09:11.393" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""using the same method.""" start="00:09:14.073" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""I will go find my drive. &quot;Upload File.&quot;""" start="00:09:16.673" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""And let's add the COPYING.""" start="00:09:21.393" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""And I also want to add it to the root directory.""" start="00:09:23.853" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""So already I have two files.""" start="00:09:29.433" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""This is looking good.""" start="00:09:30.633" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""Now I am opening the file inside of hyperdrive.""" start="00:09:31.953" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""This is not the same file""" start="00:09:37.014" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""as I have in my local directory.""" start="00:09:39.033" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""What I can do here, for example, is I can...""" start="00:09:42.673" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""Let me open another file here, the COPYING.""" start="00:09:47.433" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""I can create an Org link.""" start="00:09:49.893" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""Notice that these are Org files.""" start="00:09:52.113" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""So I will use the standard `org-store-link` command.""" start="00:09:54.333" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""You can see the key binding I invoked""" start="00:09:58.853" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""and the command it calls""" start="00:10:01.173" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""on the top right corner of my screen.""" start="00:10:03.533" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""So what I did is""" start="00:10:05.893" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""I copied a link to this hyperdrive file.""" start="00:10:07.413" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""And in this other file over here,""" start="00:10:11.993" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""I want to say &quot;Free/libre.&quot;""" start="00:10:15.353" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""So I am editing my hyperdrive terms:""" start="00:10:22.153" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""&quot;Check the,&quot; and I will paste the link here,""" start="00:10:27.073" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""&quot;for how to use my files.&quot;""" start="00:10:35.353" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""If we check what is here,""" start="00:10:40.073" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""you will see that this is a link""" start="00:10:44.813" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""inside of the hyperdrive.""" start="00:10:47.813" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""And it's pointing specifically""" start="00:10:50.880" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""to that heading over there,""" start="00:10:52.713" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""which has this unique identifier,""" start="00:10:54.993" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""as you can see over here.""" start="00:10:58.173" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""So this is wonderful.""" start="00:11:00.513" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""I want to rename it to &quot;Check the COPYING""" start="00:11:03.073" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""for how to use my files.&quot;""" start="00:11:09.713" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""I will save this.""" start="00:11:11.953" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""And now what I want to do is,""" start="00:11:13.933" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""I want to invoke `hyperdrive-menu`.""" start="00:11:16.840" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""And you will see now the menu, unlike earlier,""" start="00:11:20.493" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""has more commands, more stuff we can do with it.""" start="00:11:23.153" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""For example, I can type `w` to copy a URL.""" start="00:11:27.213" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""And by typing `w`, you will notice...""" start="00:11:31.793" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""Let me go to the `*scratch*` buffer to paste this in.""" start="00:11:34.500" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""You will notice what the URL is.""" start="00:11:37.333" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""It is my hyperdrive, my unique identifier,""" start="00:11:40.093" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""and then forward slash, meaning the root directory,""" start="00:11:44.133" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""and then README.org.""" start="00:11:47.513" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""That is the file I was editing.""" start="00:11:49.673" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""Let's do `hyperdrive-menu` again.""" start="00:11:54.093" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""Let's remove the `*scratch*` buffer.""" start="00:11:56.573" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""And let's do `hyperdrive-menu`.""" start="00:11:58.133" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""And you will notice that there are options""" start="00:11:59.933" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""to download the file, for example.""" start="00:12:02.380" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""If you are reading somebody else's file,""" start="00:12:05.133" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""you can download it to your own file system.""" start="00:12:07.213" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""Let me do that. &quot;Download.&quot;""" start="00:12:10.013" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""And it is asking me, &quot;Where do you want to save this?&quot;""" start="00:12:12.013" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""For now, I will save it in the `/tmp/`, like this.""" start="00:12:14.753" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""Let's call it test.org.""" start="00:12:20.673" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""Okay, `/tmp/test.org`.""" start="00:12:23.213" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""Let me go and visit `test.org`.""" start="00:12:25.053" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""And there it is.""" start="00:12:29.093" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""It downloaded it just like that.""" start="00:12:30.280" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""This is how you can, for example,""" start="00:12:32.653" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""download the pictures and videos""" start="00:12:35.373" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""that I will eventually share on my hyperdrive.""" start="00:12:38.473" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""Let's invoke `hyperdrive-menu` again.""" start="00:12:42.333" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""And let's go up to the parent, you see,""" start="00:12:44.713" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""with the caret (`^`) sign.""" start="00:12:48.053" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""This will take me to the parent directory,""" start="00:12:50.513" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""in this case, the root directory of my hyperdrive.""" start="00:12:53.173" video="mainVideo-hyperdrive" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Dired like interface""" start="00:12:56.573" video="mainVideo-hyperdrive" id="subtitle"]]</div>[[!template text="""Let me do it a bit differently.""" start="00:12:56.573" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""The same idea, a bit differently.""" start="00:12:58.353" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""For those of you who are familiar with""" start="00:13:00.193" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""Dired and the `dired-jump` command,""" start="00:13:02.733" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""Dired is the standard file manager of Emacs.""" start="00:13:05.913" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""And `dired-jump` is a command that lets you jump""" start="00:13:08.753" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""from the current file""" start="00:13:13.173" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""to the directory that contains that file.""" start="00:13:14.593" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""So you see, I am here.""" start="00:13:18.653" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""The `dired-jump` command, by default,""" start="00:13:20.733" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""is bound to Ctrl-x, Ctrl-j (`C-x C-j`).""" start="00:13:22.553" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""So if I do `C-x C-j`, in this case,""" start="00:13:25.233" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""it invokes a command.""" start="00:13:29.433" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""You can see the name of it, `hyperdrive-up`,""" start="00:13:30.773" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""which is functionally equivalent to `dired-jump`.""" start="00:13:33.713" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""It does the same thing, meaning that it took me""" start="00:13:37.733" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""to the parent directory of this file.""" start="00:13:41.333" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""I think this is very helpful.""" start="00:13:45.253" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""This listing over here, in general,""" start="00:13:48.253" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""tries to mimic or to reuse""" start="00:13:50.693" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""the knowledge you already have of Dired.""" start="00:13:55.273" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""For example, if you type `o`,""" start="00:13:58.553" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""it will open the file at point in the other window,""" start="00:14:01.073" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""same as in Dired.""" start="00:14:05.313" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""Whereas if you type `RET`,""" start="00:14:07.093" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""it would open it in the current window.""" start="00:14:08.993" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""Again, same as what you will do in Dired.""" start="00:14:11.913" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""Let's see over here.""" start="00:14:16.253" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""You have options to jump with `j`,""" start="00:14:18.014" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""which is using Minibuffer completion to go to a file.""" start="00:14:21.643" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""Right now, I only have two files,""" start="00:14:26.233" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""but the idea is the same.""" start="00:14:28.433" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""It's, again, what you would do in Dired""" start="00:14:32.100" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""if you type `j` with the default key bindings, though,""" start="00:14:34.013" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""not with Evil mode or something else.""" start="00:14:37.333" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""Let's see again what we have over here.""" start="00:14:40.293" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""You can create a bookmark, and this will work,""" start="00:14:42.913" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""but no need to show you everything.""" start="00:14:45.934" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""The idea is that you create a bookmark""" start="00:14:48.554" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""the way you create any Emacs bookmark,""" start="00:14:50.694" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""to a file, to a directory.""" start="00:14:53.214" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""It doesn't matter.""" start="00:14:54.933" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""And then you can jump to it,""" start="00:14:55.994" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""the way bookmarks in Emacs always work.""" start="00:14:57.734" video="mainVideo-hyperdrive" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""History in hyperdrive""" start="00:15:01.234" video="mainVideo-hyperdrive" id="subtitle"]]</div>[[!template text="""What I want to show you now""" start="00:15:01.234" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""a little bit is the history.""" start="00:15:02.893" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""History in Hyperdrive""" start="00:15:06.313" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""has to do with the drive itself.""" start="00:15:09.013" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""Meaning that individual files""" start="00:15:11.434" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""do not have their own history,""" start="00:15:13.614" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""but the drive as such has a history.""" start="00:15:15.314" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""Whenever you add a file, you remove a file,""" start="00:15:18.674" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""or you edit a file, you are incrementing""" start="00:15:22.014" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""the versioning of the hyperdrive by one.""" start="00:15:25.673" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""So each action corresponds to one unit of history.""" start="00:15:29.133" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""If you add a file, remove a file, and edit a file,""" start="00:15:34.574" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""this means that you are up three versions.""" start="00:15:37.833" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""So whatever your version number is, plus three.""" start="00:15:40.993" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""I am on version 24* over here. [* latest, not version 24]""" start="00:15:44.713" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""Let me go to this file now,""" start="00:15:48.913" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""and let me do `V h`""" start="00:15:55.933" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""to see a history of it.""" start="00:15:59.793" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""You will notice that between versions 23 and 24,""" start="00:16:02.173" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""this file was constant.""" start="00:16:07.553" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""But in version 25, we have a change.""" start="00:16:09.973" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""When you are in this buffer over here,""" start="00:16:12.633" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""you can type the equals sign (`=`),""" start="00:16:14.353" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""which is a key binding that will bring up the diff.""" start="00:16:17.213" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""So the set of changes between""" start="00:16:22.373" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""the previous version and the current version.""" start="00:16:24.473" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""And you see here, between versions 23 and 25,""" start="00:16:27.033" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""I have this addition.""" start="00:16:32.513" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""I think this is wonderful because now""" start="00:16:35.093" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""you can always go and check""" start="00:16:38.373" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""what is the state of this file.""" start="00:16:41.173" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""What is this person up to?""" start="00:16:42.413" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""What have they been changing?""" start="00:16:43.853" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""And with Hyperdrive, you can also visit…""" start="00:16:46.313" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""Let me go to the parent here.""" start="00:16:50.793" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""You can always visit a previous history.""" start="00:16:58.514" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""So, for example, I will go to the previous history,""" start="00:17:02.413" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""and let me see this file again""" start="00:17:06.013" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""in its previous history.""" start="00:17:08.033" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""I am looking at the file,""" start="00:17:09.554" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""but notice that the file now is not editable""" start="00:17:11.094" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""because this is in the past.""" start="00:17:15.154" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""I cannot rewrite history.""" start="00:17:17.354" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""I can only go to the present and then modify it""" start="00:17:19.314" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""and then create a new history, a new version.""" start="00:17:23.414" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""But this helps me see the state of the file""" start="00:17:27.214" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""at that version of the hyperdrive.""" start="00:17:31.214" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""So this is the basic idea of it, folks.""" start="00:17:35.973" video="mainVideo-hyperdrive" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Use case of sharing large files""" start="00:17:39.973" video="mainVideo-hyperdrive" id="subtitle"]]</div>[[!template text="""What I want to do then is""" start="00:17:39.973" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""continue with my process here.""" start="00:17:42.234" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""Let me actually do it like this so that you can see.""" start="00:17:46.254" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""Continue with the process of""" start="00:17:51.973" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""publishing all those files""" start="00:17:54.374" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""that I have on my hyperdrive.""" start="00:17:56.494" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""For example, this is a picture of a flower""" start="00:17:59.754" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""that I have taken.""" start="00:18:02.854" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""I think it's very nice.""" start="00:18:04.114" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""And this is a video of an eagle""" start="00:18:05.734" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""that was flying above me.""" start="00:18:08.033" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""And I will share this on the Hyperdrive network.""" start="00:18:09.594" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""From the network, by the way,""" start="00:18:13.774" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""you can also stream video as well.""" start="00:18:15.733" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""It is described in the hyperdrive.el manual,""" start="00:18:18.453" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""but I cannot show you everything right now.""" start="00:18:20.694" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""I think you get the idea.""" start="00:18:24.253" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""The gist is, you have a file system""" start="00:18:26.513" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""that you can share with the world""" start="00:18:29.713" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""using peer-to-peer technology.""" start="00:18:31.913" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""And for me, this is a powerful tool.""" start="00:18:34.133" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""This is a valuable proposition""" start="00:18:38.520" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""because I can share these large files I have,""" start="00:18:41.913" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""these pictures or videos,""" start="00:18:45.013" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""which I cannot post on my website""" start="00:18:47.433" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""due to bandwidth considerations.""" start="00:18:49.713" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""And this way, I can still share with the world""" start="00:18:52.713" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""something that I consider interesting.""" start="00:18:55.593" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""That's all for today, folks.""" start="00:18:59.073" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""Thank you very much for your attention.""" start="00:19:00.213" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""Remember that hyperdrive.el is still in development""" start="00:19:01.894" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""and things may change.""" start="00:19:05.514" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""But the fundamentals are in place""" start="00:19:07.394" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""and will remain constant.""" start="00:19:10.313" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""That's all for today. Take care. Goodbye.""" start="00:19:13.073" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""[Joseph]: Thank you, Prot.""" start="00:19:19.461" video="mainVideo-hyperdrive" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Drive creation with hyperdrive.el""" start="00:19:20.913" video="mainVideo-hyperdrive" id="subtitle"]]</div>[[!template text="""Another fundamental feature of hyperdrive.el""" start="00:19:20.913" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""is drive creation.""" start="00:19:23.980" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""The first step, as always,""" start="00:19:26.319" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""is to make sure that the gateway is running.""" start="00:19:28.339" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""So I'll open up `hyperdrive-menu` with `C-c h`.""" start="00:19:30.859" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""By the way, my key presses,""" start="00:19:35.119" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""as well as the commands that they run,""" start="00:19:36.779" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""can be seen at the top right of my screen.""" start="00:19:38.699" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""Down here, I see that the gateway is off.""" start="00:19:42.439" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""So I'll start it with `G s`.""" start="00:19:44.619" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""Now, it takes a few moments""" start="00:19:49.139" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""for the gateway to spin up.""" start="00:19:50.560" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""So to refresh the menu,""" start="00:19:52.219" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""I will close it and open it again.""" start="00:19:54.299" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""And now we see that the gateway is on.""" start="00:19:58.399" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""I'll press `N` to create a new drive.""" start="00:20:01.219" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""Now it's prompting me for a new hyperdrive seed.""" start="00:20:05.919" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""A seed is a string of characters""" start="00:20:09.759" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""that will be used to generate,""" start="00:20:12.939" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""in tandem with my secret master key,""" start="00:20:14.999" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""a new public key that will globally,""" start="00:20:18.299" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""uniquely identify this drive.""" start="00:20:21.339" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""So I'll type in &quot;emacsconf&quot;.""" start="00:20:24.879" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""And after a moment,""" start="00:20:31.759" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""we see the newly created, empty drive.""" start="00:20:32.659" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""So I'll open up `hyperdrive-menu` once more.""" start="00:20:36.999" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""And I'll press `h` to open the sub-menu that shows""" start="00:20:40.099" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""more information about this hyperdrive,""" start="00:20:43.799" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""as well as commands related to this drive.""" start="00:20:45.979" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""In blue here, we see the seed that I just entered""" start="00:20:50.879" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""as well as the public key that it generated.""" start="00:20:54.919" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""We also see that the petname""" start="00:21:00.219" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""is also set to emacsconf.""" start="00:21:02.199" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""The petname is different from the seed.""" start="00:21:06.540" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""The petname is my personal, local identifier""" start="00:21:09.039" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""for this drive.""" start="00:21:13.079" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""I can change it whenever I want.""" start="00:21:14.679" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""And while it's not a secret,""" start="00:21:16.819" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""it's not displayed to other users.""" start="00:21:19.739" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""So I will leave it for now.""" start="00:21:23.999" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""&quot;emacsconf&quot; is fine.""" start="00:21:26.360" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""But when I go to share this drive,""" start="00:21:28.139" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""I'll want to display something more memorable""" start="00:21:30.859" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""than this long public key.""" start="00:21:34.159" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""And that's what the nickname is for.""" start="00:21:36.879" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""I'll change that by pressing `n`,""" start="00:21:39.219" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""and I'll type in &quot;Emacs Conference&quot;.""" start="00:21:42.519" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""Now, when other peers load this hyperdrive""" start="00:21:48.219" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""by its URL, which I can copy by pressing `w`,""" start="00:21:51.359" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""they will see the nickname""" start="00:21:57.059" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""in addition to the public key.""" start="00:21:59.499" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""So if hyperdrive.el is like a phone book,""" start="00:22:02.019" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""the public keys are akin to phone numbers,""" start="00:22:05.720" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""the nickname is like the name that your contacts""" start="00:22:09.419" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""give you when they introduce themselves,""" start="00:22:13.939" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""and the petname is the name""" start="00:22:16.299" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""that you actually write down in your phone book.""" start="00:22:18.319" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""I'll show you what nicknames and petnames look like""" start="00:22:22.299" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""for drives that are not writable to me.""" start="00:22:25.299" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""I'll press `C-g` to close this submenu,""" start="00:22:29.619" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""and now I'm back at the main menu.""" start="00:22:32.479" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""I'll press `C-u h` to choose a hyperdrive,""" start="00:22:34.639" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""and I'll look at Prot's hyperdrive here.""" start="00:22:39.999" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""And here we see that the nickname""" start="00:22:44.559" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""of Prot's hyperdrive is &quot;Protesilaos&quot;.""" start="00:22:46.299" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""Now, it's grayed out,""" start="00:22:49.839" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""which means that I can't change it.""" start="00:22:50.919" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""I can't change it because it's not my hyperdrive.""" start="00:22:53.239" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""But I can change the petname if I want it""" start="00:22:56.419" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""to show up under a different name.""" start="00:22:58.539" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""So I'll press `p`,""" start="00:23:00.539" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""and I'll type in &quot;Prot&quot;, and hit Enter.""" start="00:23:02.439" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""Now I'll open his hyperdrive by pressing `f`.""" start="00:23:06.679" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""And I'll pick a path, I'll just hit `RET`""" start="00:23:11.319" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""to open the root directory.""" start="00:23:13.899" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""And now, when Prot's hyperdrive shows up,""" start="00:23:16.759" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""at the top of the screen,""" start="00:23:19.459" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""I see that it's identified with the petname &quot;Prot.&quot;""" start="00:23:20.539" video="mainVideo-hyperdrive" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""hyperdrive-mirror""" start="00:23:26.199" video="mainVideo-hyperdrive" id="subtitle"]]</div>[[!template text="""Now I'll show off `hyperdrive-mirror`.""" start="00:23:26.199" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""`hyperdrive-mirror` is like `hyperdrive-upload-file`,""" start="00:23:28.719" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""except that it allows you to upload""" start="00:23:32.159" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""an entire directory full of files recursively.""" start="00:23:33.879" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""For this example, I will upload""" start="00:23:37.919" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""the contents of the emacsconf-mirror directory.""" start="00:23:40.039" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""First step is to open the menu. I'll press H,""" start="00:23:44.819" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""and then I will choose the emacsconf drive.""" start="00:23:48.919" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""In the bottom here, we see the Mirror group.""" start="00:23:53.379" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""The first option that I can change""" start="00:23:57.719" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""is the source directory.""" start="00:23:59.479" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""The source directory is the directory on my local""" start="00:24:01.819" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""machine from which files will be uploaded.""" start="00:24:04.619" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""By default, the source directory""" start="00:24:08.819" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""is set to the current directory of the main buffer.""" start="00:24:11.199" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""This is good for now, so I'll leave it.""" start="00:24:17.060" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""The target directory is the directory""" start="00:24:19.419" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""in the hyperdrive where the files will end up.""" start="00:24:22.199" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""By default, it's the root directory,""" start="00:24:25.419" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""but for this example,""" start="00:24:28.839" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""I'll put these files in a subdirectory called notes.""" start="00:24:30.359" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""The filter is the rule that allows you""" start="00:24:36.359" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""to programmatically determine which files""" start="00:24:40.299" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""in the local directory will be uploaded""" start="00:24:43.379" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""into the hyperdrive, and which ones won't.""" start="00:24:46.579" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""By default, all files are mirrored, but in this case,""" start="00:24:50.339" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""let's say that I want to upload only the Org files,""" start="00:24:54.719" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""these first three, and I want to exclude""" start="00:24:58.499" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""the markdown file, solar-oven-notes.md.""" start="00:25:01.359" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""So I'll press `m f`, and I will choose""" start="00:25:05.419" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""the regular expression string option.""" start="00:25:10.379" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""If I wanted to, I could choose a named function""" start="00:25:13.419" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""or a lambda, but I won't demo that here.""" start="00:25:16.279" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""I'll type in `org$`, which will match against""" start="00:25:22.199" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""the files that end with &quot;org.&quot;""" start="00:25:26.339" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""The filter is here, and I'll leave confirmation on.""" start="00:25:31.659" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""The confirmation step just allows me to review""" start="00:25:35.899" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""the list of files that are going to be uploaded""" start="00:25:39.719" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""into the drive before it happens.""" start="00:25:42.139" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""So I'll press `m m` to mirror them, and I see here""" start="00:25:45.899" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""that these three files are going to be uploaded.""" start="00:25:52.879" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""Looks good. I'll press `C-c C-c` to confirm the mirror.""" start="00:25:58.439" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""Now it says three files have been uploaded,""" start="00:26:05.559" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""and here they are in the drive.""" start="00:26:07.739" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""Good, so now I will modify the""" start="00:26:11.379" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""fermented-overnight-oats file in the hyperdrive.""" start="00:26:15.819" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""So I've loaded it, and I'll add here:""" start="00:26:19.939" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""&quot;or other grains - cook them in advance if you want to,&quot;""" start="00:26:24.340" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""and I'll save it.""" start="00:26:31.819" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""Now this file, fermented-overnight-oats.org,""" start="00:26:33.779" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""has been modified on the hyperdrive""" start="00:26:37.779" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""more recently than on the file system.""" start="00:26:40.679" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""The file system file has not been modified.""" start="00:26:44.539" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""So I'll go back to my local directory,""" start="00:26:48.900" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""and I'll modify a different file.""" start="00:26:53.819" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""In this case, I'll add another hoedown""" start="00:26:56.539" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""to the fiddle-tunes.org file.""" start="00:27:00.459" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""&quot;Tom and Jerry.&quot; That's a good hoedown.""" start="00:27:04.619" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""And now I'll mirror again.""" start="00:27:09.619" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""So I'll open the menu, and I'll press `h`,""" start="00:27:14.119" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""and then I'll open up the emacsconf demo drive.""" start="00:27:16.779" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""And now I've also decided that""" start="00:27:20.579" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""I want to include the solar-oven-notes.md file.""" start="00:27:22.959" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""So I'll remove the filter""" start="00:27:26.719" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""so that it's no longer excluded.""" start="00:27:28.499" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""I'll leave the rest of the settings the same,""" start="00:27:32.119" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""and I'll press `m m` again.""" start="00:27:34.079" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""And now we see that the""" start="00:27:38.779" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""`*hyperdrive-mirror*` buffer looks different.""" start="00:27:40.019" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""So, there are two main groups.""" start="00:27:43.539" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""These are the files that are going to be uploaded,""" start="00:27:47.379" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""and these are the files that are ignored.""" start="00:27:49.986" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""They're not going to be uploaded.""" start="00:27:52.899" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""The first subgroup is the files that are new locally.""" start="00:27:56.539" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""So the solar-oven-notes.md file is new on my machine,""" start="00:28:00.519" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""and it doesn't exist in the hyperdrive.""" start="00:28:04.899" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""So the mirror command is going to take that file""" start="00:28:07.319" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""and add it to the hyperdrive.""" start="00:28:10.039" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""This group contains the files that are newer locally.""" start="00:28:13.759" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""So the fiddle-tunes.org file""" start="00:28:17.519" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""has been modified on my local machine,""" start="00:28:19.779" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""but it hasn't been modified on the hyperdrive.""" start="00:28:23.359" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""So `hyperdrive-mirror` is going to take the""" start="00:28:26.719" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""updated version and put it on the hyperdrive.""" start="00:28:28.859" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""Now, the first group that's going to be ignored""" start="00:28:33.859" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""are the files that are older locally.""" start="00:28:35.959" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""So the fermented oats file has been modified""" start="00:28:39.359" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""on the hyperdrive more recently""" start="00:28:42.979" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""than on my local file system.""" start="00:28:45.299" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""So `hyperdrive-mirror` isn't going to overwrite""" start="00:28:47.539" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""the version of the file in my hyperdrive""" start="00:28:51.059" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""with the older local version.""" start="00:28:53.519" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""And finally, the emacsconf-preparation.org file""" start="00:28:57.279" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""hasn't been modified on either the hyperdrive""" start="00:29:00.779" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""or my local file system,""" start="00:29:05.499" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""and the timestamp is identical.""" start="00:29:07.439" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""So `hyperdrive-mirror` is going to""" start="00:29:09.719" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""ignore this file as well.""" start="00:29:11.279" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""So the only two files that are going""" start="00:29:13.819" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""to be uploaded now are the solar-oven-notes.md file""" start="00:29:15.299" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""and the fiddle-tunes.org file.""" start="00:29:19.319" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""I'll confirm that with `C-c C-c`.""" start="00:29:21.639" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""And now in my hyperdrive""" start="00:29:25.379" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""we see that there are four files.""" start="00:29:26.579" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""The solar-oven-notes.md file has been uploaded,""" start="00:29:28.519" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""and if I open the fiddle-tunes.org file,""" start="00:29:31.679" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""we see that it now contains the line &quot;Tom and Jerry,&quot;""" start="00:29:35.519" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""which means that it was updated based on""" start="00:29:39.479" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""the change to the file on my local file system.""" start="00:29:41.659" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""This `hyperdrive-mirror` command is the command""" start="00:29:47.099" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""that we use to periodically update""" start="00:29:50.559" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""the USHIN hyperdrive with""" start="00:29:54.139" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""the contents of the USHIN website.""" start="00:29:56.599" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""There's going to be a link to the USHIN hyperdrive""" start="00:30:00.319" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""as well as the website at the end of the video.""" start="00:30:03.019" video="mainVideo-hyperdrive" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""hyperdrive history""" start="00:30:06.819" video="mainVideo-hyperdrive" id="subtitle"]]</div>[[!template text="""Now I'll go into a little more detail""" start="00:30:06.819" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""about the Hyperdrive history buffer""" start="00:30:09.079" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""by showing off the README file in Prot's hyperdrive.""" start="00:30:11.219" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""I'll press `C-c h` to open the menu,""" start="00:30:15.819" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""`C-u h` to be prompted for a drive.""" start="00:30:19.019" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""I'll select Prot's drive,""" start="00:30:22.199" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""then I'll press `f` to jump to a file""" start="00:30:24.239" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""inside of Prot's drive,""" start="00:30:26.739" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""and then `RET` to go to the root directory.""" start="00:30:28.739" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""From here, I'll press `j` to jump to""" start="00:30:32.399" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""an item in his directory.""" start="00:30:35.339" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""I'll press `RET` on the README to load it.""" start="00:30:37.299" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""And then finally, I'll open up""" start="00:30:42.379" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""`C-c h` to look at the menu.""" start="00:30:44.119" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""Here, I see that I'm looking at""" start="00:30:49.579" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""the latest version of Prot's README.org file.""" start="00:30:50.979" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""I also see that the previous version""" start="00:30:56.859" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""of README.org is unknown.""" start="00:30:58.739" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""It's unknown because hyperdrives""" start="00:31:02.419" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""are sparsely replicated.""" start="00:31:05.359" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""That means that when my node loaded this""" start="00:31:07.819" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""README.org file, it didn't bother""" start="00:31:09.999" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""to load anything else.""" start="00:31:12.359" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""It didn't load the previous history""" start="00:31:13.999" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""or any other file in his drive.""" start="00:31:16.059" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""But now that I want to check out whether""" start="00:31:18.659" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""there is a previous version, I'll press `V p`.""" start="00:31:20.759" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""And when it loads, I see in the mode line down here""" start="00:31:26.199" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""that I'm now looking at version 25 of this drive.""" start="00:31:28.919" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""That means that I'm looking at the README.org file""" start="00:31:33.319" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""at version 25 of this drive.""" start="00:31:36.499" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""I'll open the menu again, and I see""" start="00:31:39.459" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""that the same version number is displayed here.""" start="00:31:42.019" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""The previous version, before version 25,""" start="00:31:47.719" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""is also unknown because we haven't bothered""" start="00:31:50.479" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""to load anything before version 25.""" start="00:31:53.559" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""I also see that the next version, after version 25,""" start="00:31:56.859" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""is the latest version.""" start="00:32:00.479" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""So I'll open that up by pressing `V n`.""" start="00:32:02.419" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""And now we are back where we started,""" start="00:32:06.719" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""at the latest version.""" start="00:32:10.999" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""But now we see that the previous version,""" start="00:32:12.919" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""the version before the latest version, is version 25.""" start="00:32:15.079" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""Because now that our node has loaded the previous version,""" start="00:32:18.999" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""it can display that information to us.""" start="00:32:24.300" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""From here, I'll open up the history buffer.""" start="00:32:28.620" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""I'll press `V h`.""" start="00:32:31.640" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""And I can see that there are two known existent""" start="00:32:35.320" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""ranges in Prot's README.org history.""" start="00:32:40.320" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""This means that the latest version of README.org""" start="00:32:46.119" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""was modified at version 39.""" start="00:32:50.120" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""And that Prot made four changes""" start="00:32:54.420" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""to other files in his hyperdrive""" start="00:32:57.480" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""besides the README.org file since then.""" start="00:33:00.320" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""Before that, the time that Prot modified""" start="00:33:04.280" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""the README.org file was at version 25.""" start="00:33:08.660" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""And then he made 13 other changes to other files""" start="00:33:11.840" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""inside of this drive.""" start="00:33:15.200" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""Before that, we don't know.""" start="00:33:18.580" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""We haven't loaded the history.""" start="00:33:20.259" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""But since we're curious,""" start="00:33:21.859" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""I'll hit `RET` on the unknown line.""" start="00:33:23.179" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""And now we see that in Prot's hyperdrive,""" start="00:33:27.920" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""the README.org file didn't exist""" start="00:33:32.140" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""for the first 22 revisions of his drive.""" start="00:33:34.940" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""Then Prot created it at version 23.""" start="00:33:39.020" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""Then again, at 25, made a change.""" start="00:33:43.780" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""And then made another change at 39.""" start="00:33:46.920" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""For good measure, I'll show you the diffs.""" start="00:33:50.560" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""The first diff just contains the entire file""" start="00:33:54.420" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""because the file didn't exist before version 23.""" start="00:33:58.180" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""Then, at version 25, Prot added a link""" start="00:34:05.119" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""to the COPYING.org file.""" start="00:34:08.620" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""And then, at 39,""" start="00:34:13.119" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""Prot changed the link to his own hyperdrive""" start="00:34:14.220" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""to be a relative link.""" start="00:34:17.340" video="mainVideo-hyperdrive" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Streaming video from hyperdrive""" start="00:34:20.880" video="mainVideo-hyperdrive" id="subtitle"]]</div>[[!template text="""Now, I'll stream a video from the USHIN hyperdrive""" start="00:34:20.880" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""that shows off a prototype interface we created""" start="00:34:24.300" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""for exploring networks of sources of information.""" start="00:34:27.900" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""I'll open up `hyperdrive-menu`.""" start="00:34:31.720" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""Press `C-u h` to be prompted for a drive.""" start="00:34:33.940" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""I'll select the USHIN drive.""" start="00:34:37.220" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""Press `f` to jump to a file in it.""" start="00:34:39.740" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""And then I'll jump to the media directory.""" start="00:34:41.940" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""Once it loads, I'll press `RET` on the video""" start="00:34:46.560" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""that I want to stream.""" start="00:34:50.180" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""[Voice from the video]: This is a demonstration""" start="00:34:54.560" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""of the subjective trust interface""" start="00:34:56.686" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""that the USHIN team built for the u4u.io web app.""" start="00:34:57.839" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""[Joseph]: There it is.""" start="00:35:02.500" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""Streaming a video from Hyperdrive.""" start="00:35:04.080" video="mainVideo-hyperdrive" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""hyperdrive.el under the hood""" start="00:35:08.746" video="mainVideo-hyperdrive" id="subtitle"]]</div>[[!template text="""Here's how hyperdrive.el works under the hood.""" start="00:35:08.746" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""It uses plz [Please],""" start="00:35:13.027" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""the HTTP library that Adam Porter wrote,""" start="00:35:14.727" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""to send requests via curl to hyper-gateway.""" start="00:35:18.080" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""hyper-gateway is a program that Mauve Signweaver wrote,""" start="00:35:22.720" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""which runs a hyperdrive node under the hood.""" start="00:35:26.580" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""It also runs a local HTTP server,""" start="00:35:30.760" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""which accepts requests to control the node.""" start="00:35:34.040" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""For example, if hyperdrive.el wants to show a file""" start="00:35:38.460" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""from someone's hyperdrive,""" start="00:35:43.480" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""it sends the appropriate link via curl""" start="00:35:45.220" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""as a GET request to hyper-gateway.""" start="00:35:49.120" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""hyper-gateway then fetches the data from the network""" start="00:35:52.960" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""and returns it via curl,""" start="00:35:57.240" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""via plz, back to hyperdrive.el.""" start="00:35:59.340" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""If hyper-gateway already has a locally cached copy,""" start="00:36:03.940" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""it doesn't bother checking the network.""" start="00:36:07.420" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""It just sends it straight away.""" start="00:36:09.240" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""Likewise, if hyperdrive.el wants to add a file""" start="00:36:12.560" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""to a hyperdrive, it sends a PUT request.""" start="00:36:15.880" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""hyper-gateway is not installed as part of hyperdrive.el.""" start="00:36:20.200" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""It needs to be installed""" start="00:36:24.980" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""as a separate, executable program.""" start="00:36:26.660" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""We have plans to switch from using hyper-gateway""" start="00:36:35.740" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""to another program that Mauve Signweaver""" start="00:36:39.460" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""is working on, called hyper-sdk-rpc.""" start="00:36:42.459" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""hyper-sdk-rpc will give us more fine-grained control""" start="00:36:47.839" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""over the underlying Hyperdrive node,""" start="00:36:52.020" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""which will open up some new features.""" start="00:36:54.700" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""For example, we'll be able to rename files atomically,""" start="00:36:56.820" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""diff directories between versions,""" start="00:37:00.900" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""and list the peers that we're currently connected to.""" start="00:37:03.420" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""Here are some of the Emacs libraries""" start="00:37:11.220" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""that hyperdrive.el depends on.""" start="00:37:13.360" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""Hyperdrive.el uses plz to send HTTP requests""" start="00:37:17.540" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""to hyper-gateway. Check it out.""" start="00:37:22.400" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""It's on GNU ELPA.""" start="00:37:25.699" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""ewoc.el is a built-in library that's documented""" start="00:37:28.560" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""in the Emacs Lisp manual under the rather cryptic""" start="00:37:33.640" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""heading &quot;Abstract Display Functions.&quot;""" start="00:37:37.340" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""Really, what it does is it allows you""" start="00:37:41.600" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""to map a data model to some display.""" start="00:37:44.520" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""What we do with it in hyperdrive.el is,""" start="00:37:50.000" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""in the directory view, we map directory entry items,""" start="00:37:53.860" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""files and directories, to display items.""" start="00:38:02.049" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""And ewoc.el makes it easy to update the display""" start="00:38:04.240" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""whenever the underlying data changes.""" start="00:38:08.701" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""Hyperdrive.el uses persist.el to store""" start="00:38:14.761" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""Hyperdrive metadata about known hyperdrives""" start="00:38:21.280" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""as well as version history between sessions,""" start="00:38:25.640" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""so that the data is cached""" start="00:38:29.481" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""when you log out and log back in.""" start="00:38:32.121" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""If you're going to be developing a program in Emacs""" start="00:38:34.961" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""for Emacs 29 or later,""" start="00:38:38.721" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""I recommend looking at multisession.el,""" start="00:38:41.961" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""because it's built-in, and it has some features""" start="00:38:44.941" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""that persist.el doesn't have.""" start="00:38:50.161" video="mainVideo-hyperdrive" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Next steps""" start="00:38:57.541" video="mainVideo-hyperdrive" id="subtitle"]]</div>[[!template text="""Thank you for listening to this talk.""" start="00:38:57.541" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""I hope you get a chance to try out hyperdrive.el.""" start="00:39:00.001" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""Here is a link to the hyperdrive.el manual""" start="00:39:03.681" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""in the USHIN hyperdrive.""" start="00:39:08.621" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""When you go to paste this link in,""" start="00:39:11.561" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""you'll need to combine it back into one line.""" start="00:39:14.981" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""This link is available in the hyperdrive.el manual,""" start="00:39:18.921" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""which is available from within a browser,""" start="00:39:22.501" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""at this link on the USHIN website.""" start="00:39:26.661" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""We also have a public conference room that you can join.""" start="00:39:29.821" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""It's an XMPP multi-user chat""" start="00:39:32.961" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""that the Sopranica team graciously makes available""" start="00:39:35.521" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""for us to use.""" start="00:39:39.781" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""There's also a Matrix bridge,""" start="00:39:41.621" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""if that's more your cup of tea.""" start="00:39:43.901" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""Thank you to the EmacsConf organizers.""" start="00:39:48.660" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""It's been a pleasure to participate,""" start="00:39:52.821" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""and I look forward to hearing the rest of the talks.""" start="00:39:55.161" video="mainVideo-hyperdrive" id="subtitle"]]
+[[!template text="""Have a good day.""" start="00:39:57.614" video="mainVideo-hyperdrive" id="subtitle"]]
+
+</div>
+
+Captioner: bhavin192
+
+<div class="transcript transcript-qanda"><a name="hyperdrive-qanda-transcript"></a><h1>Q&A transcript (unedited)</h1>
+
+[[!template text="""[Speaker 0]: I guess we are now live.""" start="00:00:12.660" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""So Joseph, thanks for being here.""" start="00:00:15.360" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""Thanks for talking to the hyperdrive.""" start="00:00:16.960" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""We already had some, or we already have a lot""" start="00:00:22.240" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""of questions here. And I guess I would start""" start="00:00:24.360" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""with, let's call it the difficult,""" start="00:00:26.040" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""the most difficult 1. So when you were""" start="00:00:29.119" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""developing hyperdrive for your colleague,""" start="00:00:30.820" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""what do you, or what have you learned the""" start="00:00:34.760" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""most?""" start="00:00:34.920" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""[Speaker 1]: I have learned how much faster and more""" start="00:00:43.080" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""enjoyable the development of this project can""" start="00:00:46.360" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""be with talented people working by my side,""" start="00:00:51.540" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""like Jonas and Adam and Prat and Mo,""" start="00:00:55.960" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""it's been really a pleasure to work with""" start="00:00:58.100" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""these folks.""" start="00:00:58.440" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""[Speaker 0]: So you have started at first on your own and""" start="00:01:04.959" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""then probably pushed it somewhere in open""" start="00:01:07.400" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""source or how did it develop,""" start="00:01:10.320" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""your development experience?""" start="00:01:11.740" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""[Speaker 1]: A few years ago, we started looking into""" start="00:01:15.920" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""using peer-to-peer technology for sharing all""" start="00:01:21.960" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""kinds of information. And we came across Move""" start="00:01:25.080" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""SignWeaver, who was recommended to us by a""" start="00:01:29.280" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""mutual friend. And we started working with""" start="00:01:32.560" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""Move, and then about a year ago,""" start="00:01:33.840" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""we started looking into using Emacs,""" start="00:01:37.060" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""the peer-to-peer software,""" start="00:01:40.020" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""so that we could make use of all of the""" start="00:01:43.520" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""powerful things that Emacs already does with""" start="00:01:46.340" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""org mode and other packages.""" start="00:01:47.780" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""And then we started working with Adam and""" start="00:01:51.560" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""Pratt and Jonas.""" start="00:01:52.320" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""[Speaker 2]: Yes.""" start="00:01:54.280" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""[Speaker 0]: So we are skipping to the next question.""" start="00:01:59.880" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""So to read it out, I use multiple computers""" start="00:02:03.700" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""and my partner also would like access to my""" start="00:02:06.200" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""notes. So, 2 questions at first.""" start="00:02:08.680" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""First 1, how well would this work with using""" start="00:02:12.440" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""this to edit my Zettelkasten hyperdrive using""" start="00:02:15.060" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""multiple computers?""" start="00:02:15.660" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""[Speaker 1]: Hyperdrive is single writer currently.""" start="00:02:21.260" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""So what that means is that if you have a""" start="00:02:24.140" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""hyperdrive that you've created,""" start="00:02:25.080" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""you're the only 1 who can make changes to it.""" start="00:02:28.320" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""And that's limited right now to editing 1""" start="00:02:31.560" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""hyperdrive from 1 machine.""" start="00:02:33.240" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""In theory, you could use the same private key""" start="00:02:38.240" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""and write to it from multiple machines,""" start="00:02:40.240" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""but you would have to make sure that you sync""" start="00:02:43.520" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""it on both machines and didn't make""" start="00:02:46.300" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""concurrent writes because then you would fork""" start="00:02:48.160" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""the history of your hyperdrive,""" start="00:02:49.840" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""and that would be bad.""" start="00:02:51.020" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""But we've spent a lot of time making links to""" start="00:02:57.740" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""hyperdrives work well,""" start="00:02:59.780" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""relative links within hyperdrives to other""" start="00:03:02.160" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""files inside of your drive.""" start="00:03:03.560" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""So you should be able to,""" start="00:03:05.520" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""with some exceptions, just take your personal""" start="00:03:10.120" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""information management set of org files or""" start="00:03:13.360" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""whatever it is that you have,""" start="00:03:14.760" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""and upload them into a hyperdrive if all of""" start="00:03:18.160" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""that is publicly available or would be good""" start="00:03:22.740" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""to share publicly. And you can make that""" start="00:03:27.260" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""available for other people to link to.""" start="00:03:28.940" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""So you can have multiple different""" start="00:03:30.640" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""hyperdrives that link to 1 another.""" start="00:03:32.040" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""[Speaker 0]: So it's like a huge network of hyperdrives""" start="00:03:35.600" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""connected to each other in some way.""" start="00:03:38.000" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""[Speaker 1]: Yeah.""" start="00:03:39.140" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""[Speaker 0]: So that's kind of neat and kind of cool.""" start="00:03:41.120" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""There was a follow-up question or the second""" start="00:03:44.240" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""part of the question. Okay,""" start="00:03:46.780" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""then using the same hyperdrive is probably""" start="00:03:48.860" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""not possible, but interlinking would be the""" start="00:03:51.820" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""best way to do it. There was a question""" start="00:03:57.500" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""concerning how they should install it.""" start="00:03:59.540" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""So What would be a good way of getting""" start="00:04:01.160" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""hyperdrives if you do not want to install npm""" start="00:04:03.580" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""and have a binary? Could you compile it with""" start="00:04:06.460" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""denner or rusk or zig or go?""" start="00:04:08.300" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""CLI alternative tool, I would prefer to""" start="00:04:10.960" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""download a single binary.""" start="00:04:11.840" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""[Speaker 1]: There's something that Jonas was playing""" start="00:04:17.420" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""around with using Geeks to install Hyper""" start="00:04:20.459" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""Gateway. So the way that HyperDrive.el,""" start="00:04:22.860" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""the Emacs package, works right now is similar""" start="00:04:26.880" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""to the way that the transmission Emacs client""" start="00:04:30.300" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""for BitTorrent works, where you have a client""" start="00:04:34.200" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""in Emacs that connects to a daemon that is a""" start="00:04:37.320" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""separate process that's running on your""" start="00:04:39.120" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""machine, the transmission daemon.""" start="00:04:41.820" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""But in this case, we have HyperGateway,""" start="00:04:43.500" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""which is running as a daemon on your machine.""" start="00:04:46.060" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""And then hyperdrive.el""" start="00:04:48.180" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""connects to that daemon and sends requests,""" start="00:04:51.020" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""and all of the hyperdrive stuff under the""" start="00:04:53.520" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""hood happens with her gateway.""" start="00:04:55.880" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""But so that package can,""" start="00:04:57.940" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""or hypergateway, the program can be""" start="00:05:00.280" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""installed, The easiest way is to just""" start="00:05:02.900" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""download it from the GitHub releases.""" start="00:05:04.400" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""You could also use NPM to install it.""" start="00:05:07.060" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""And then the third option that we've been""" start="00:05:09.520" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""playing around with is Jonas was writing a""" start="00:05:12.920" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""little script to install it using Geeks,""" start="00:05:14.540" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""since Geeks now comes with Node 18.""" start="00:05:18.340" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""And so you should be able to install it using""" start="00:05:20.740" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""Geeks.""" start="00:05:20.940" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""[Speaker 0]: Right, thank you. We have 2 people here""" start="00:05:25.320" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""joined with microphone.""" start="00:05:26.100" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""Do we have now any question to Joseph or just""" start="00:05:30.240" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""here for chilling out.""" start="00:05:32.060" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""I guess it's a no. Plasma,""" start="00:05:41.820" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""yeah.""" start="00:05:42.260" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""[Speaker 3]: What about using, having some of the""" start="00:05:46.120" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""information being private in the hyperdrives.""" start="00:05:47.960" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""[Speaker 1]: That's not what we have been focusing on at""" start="00:05:54.240" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""this point. At this point,""" start="00:05:55.240" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""what we've been working on is mainly using""" start="00:05:57.340" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""hyperdrives for a public forum type tool.""" start="00:06:02.180" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""But you could encrypt those files if you""" start="00:06:06.420" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""wanted to. You can also just,""" start="00:06:09.340" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""a poor man's security would just be to share""" start="00:06:13.660" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""your HyperDrive link only with those people""" start="00:06:16.660" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""that you want to have access to your drive.""" start="00:06:19.060" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""But the way that it works right now is anyone""" start="00:06:21.820" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""who has the link to a hyperdrive can access""" start="00:06:23.800" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""its content. So long as there are peers""" start="00:06:26.040" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""available on the network who can serve it to""" start="00:06:28.740" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""you.""" start="00:06:28.900" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""[Speaker 0]: Any follow up question from your side,""" start="00:06:37.440" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""Plasma?""" start="00:06:37.660" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""[Speaker 3]: I had 1, I'll just have to re-remember it.""" start="00:06:46.720" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""[Speaker 0]: If you remember it, just feel free to""" start="00:06:55.240" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""interrupt me.""" start="00:06:56.000" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""[Speaker 3]: What about working? I've looked at this""" start="00:06:58.980" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""before. What about, if I remember correctly,""" start="00:07:03.120" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""it doesn't do as well with large files,""" start="00:07:04.920" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""so if you're going to store 200 gigs of video""" start="00:07:09.060" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""files, stuff like IPFS works a lot better,""" start="00:07:12.180" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""or BitTorrent. This is,""" start="00:07:15.200" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""are you, were you using the,""" start="00:07:17.120" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""any way of using multiple protocols for stuff""" start="00:07:21.980" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""like that? Or what were you doing with,""" start="00:07:25.560" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""or were you just doing the small files with""" start="00:07:27.340" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""the same protocol? Or""" start="00:07:28.680" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""[Speaker 1]: I would love to see an IPFS client in Emacs""" start="00:07:34.440" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""as well that could interface with Kubo or""" start="00:07:37.260" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""some other IPFS daemon and I think that those""" start="00:07:40.040" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""could work really well together.""" start="00:07:41.120" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""We mostly have been playing around with""" start="00:07:45.680" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""sharing relatively small files,""" start="00:07:47.240" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""up to hundreds of megabytes or maybe a""" start="00:07:52.120" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""gigabyte. We haven't played around yet with""" start="00:07:55.240" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""hyperdrive.el, the Emacs client,""" start="00:07:57.380" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""testing that with HyperGateway.""" start="00:07:59.240" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""But there may be other experiments that have""" start="00:08:04.020" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""been done that show that that works well.""" start="00:08:05.880" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""The main thing is that IPFS uses content""" start="00:08:10.880" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""addressability to reduce duplication of the""" start="00:08:14.820" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""content. Whereas in HyperDrive,""" start="00:08:16.620" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""if you upload the same file with the same""" start="00:08:20.140" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""contents twice, now you have double the""" start="00:08:23.160" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""content being stored in your HyperDrive.""" start="00:08:25.120" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""It's not deduplicated.""" start="00:08:26.040" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""You can always clear out part of the history""" start="00:08:30.800" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""of your hyperdrive But IPFS has really good""" start="00:08:36.340" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""built-in deduplication whereas hyperdrive""" start="00:08:39.140" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""does not""" start="00:08:39.860" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""[Speaker 4]: I have a question.""" start="00:08:44.159" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""[Speaker 3]: What about like commenting on other like if""" start="00:08:47.440" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""you have a couple of different Hypercore""" start="00:08:50.140" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""blogs, what about like commenting between""" start="00:08:53.900" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""them? Like you have some people who have a""" start="00:08:56.680" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""commenting form on Reddit for their blog""" start="00:08:59.280" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""posts.""" start="00:08:59.640" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""[Speaker 1]: So Move SignWeaver has been doing a lot of""" start="00:09:04.640" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""work recently with the distributed press API""" start="00:09:07.880" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""to integrate ActivityPub with these""" start="00:09:12.040" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""peer-to-peer technologies.""" start="00:09:14.120" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""Move can give you more information about""" start="00:09:17.980" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""that. But there is another feature that we'd""" start="00:09:22.120" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""like to add to hyperdrive.el,""" start="00:09:23.400" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""which is peer discovery using the swarming""" start="00:09:29.140" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""feature that HyperCore,""" start="00:09:30.600" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""HyperSWARM offers, where you'd be able to say""" start="00:09:34.600" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""that my node, my peer-to-peer node is""" start="00:09:38.500" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""interested in Emacs and free software as""" start="00:09:41.640" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""topics. And those would be 2 different""" start="00:09:43.100" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""topics. I would advertise on the network that""" start="00:09:45.060" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""I'm interested in those topics.""" start="00:09:46.240" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""And I would be able to discover other peers""" start="00:09:49.120" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""on the network who have also advertised that""" start="00:09:52.040" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""they're interested in those same topics.""" start="00:09:53.440" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""And then they would tell me,""" start="00:09:56.040" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""hey, here's the public key of my hyperdrive.""" start="00:09:59.260" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""Come check it out. I have posted information""" start="00:10:01.820" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""about those topics. And so in that way,""" start="00:10:04.300" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""you'd be able to, in a distributed fashion,""" start="00:10:06.860" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""discover other peers on the network who are""" start="00:10:09.660" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""interested in topics that you're interested""" start="00:10:11.240" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""in.""" start="00:10:11.600" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""[Speaker 3]: Something that would be useful in addition to""" start="00:10:16.780" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""that idea is like if you had your emacs""" start="00:10:19.600" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""Zettelkasten Publish like let's say you have""" start="00:10:25.560" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""some private data You make sure that that's""" start="00:10:27.860" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""scrubbed out before it goes to your hyper""" start="00:10:29.800" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""core and then you have another part of it""" start="00:10:31.760" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""that gets turned into a website for it's also""" start="00:10:35.540" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""given to other hyper core clients but you'd""" start="00:10:38.040" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""rather get the emacs users the org documents""" start="00:10:40.120" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""then you also publish some of them on a""" start="00:10:44.760" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""website so everybody as much people can get""" start="00:10:48.680" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""it as possible. And then a way of figuring""" start="00:10:53.560" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""out who you'd want to do,""" start="00:10:55.640" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""or if you're an Emacs user,""" start="00:10:57.780" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""maybe figure out that they're all related to""" start="00:10:59.860" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""each other, but you want to get the art mode""" start="00:11:01.440" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""documents because you're using EMAX.""" start="00:11:03.080" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""Yeah.""" start="00:11:05.900" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""[Speaker 0]: Maybe a side note, we have 4 minutes here on""" start="00:11:10.360" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""before we switch into the next track,""" start="00:11:12.040" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""just to let you know.""" start="00:11:13.200" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""[Speaker 1]: Thank you. So the hyper drive mirror feature""" start="00:11:17.900" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""that we added, would allow you to selectively""" start="00:11:21.220" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""choose which files you want to share in a""" start="00:11:24.840" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""hyperdrive. So, with Prot's denote file""" start="00:11:28.500" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""naming scheme or Carl Voigt's file tags""" start="00:11:30.660" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""naming scheme, you could just specify a""" start="00:11:33.600" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""regular expression. And you could say,""" start="00:11:35.940" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""I want to share out of my directory of org""" start="00:11:40.140" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""files, I want to share only those files that""" start="00:11:42.560" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""have been tagged as public,""" start="00:11:44.220" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""or only those files that have been tagged as""" start="00:11:47.320" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""emacs and then only those ones would get""" start="00:11:49.680" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""uploaded into your hyperdrive""" start="00:11:50.720" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""[Speaker 3]: or exclude all in any of the ones that say""" start="00:11:54.280" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""private""" start="00:11:54.560" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""[Speaker 0]: yep mike had a question""" start="00:12:01.620" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""[Speaker 4]: yeah I have a question for the hyperdrive.""" start="00:12:05.220" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""So I just maybe I missed it and you haven't""" start="00:12:08.520" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""put a link.""" start="00:12:09.340" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""[Speaker 1]: Oh, Mikhail, we can't hear you.""" start="00:12:16.200" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""[Speaker 3]: Heard you for a second.""" start="00:12:22.660" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""[Speaker 1]: Yes?""" start="00:12:28.440" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""[Speaker 4]: Can someone hear me? Okay,""" start="00:12:29.640" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""I have no idea what happened to my""" start="00:12:31.200" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""microphone, but now it's back.""" start="00:12:32.480" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""[Speaker 3]: Now we can. You can see the microphone on the""" start="00:12:34.760" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""top of the screen. So""" start="00:12:35.840" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""[Speaker 4]: yes, thank you. Okay. I have a question to""" start="00:12:38.940" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""hyperdrive. Is the hyperdrive a find on the""" start="00:12:41.520" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""hole punch point, point T O hole Or is it""" start="00:12:46.160" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""just another hyperdrive?""" start="00:12:47.020" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""[Speaker 1]: That's exactly the project that we're using.""" start="00:12:51.260" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""So the HolePunch team has released hyperdrive""" start="00:12:54.520" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""and other hyper core libraries as free""" start="00:12:59.340" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""software libraries that you can use.""" start="00:13:01.880" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""And so MoV SignWeaver,""" start="00:13:03.940" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""the project that MoV is working on,""" start="00:13:07.080" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""HyperGateway, depends on those libraries and""" start="00:13:11.120" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""it makes it easy for you to build other""" start="00:13:15.520" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""clients like hyperdrive.el""" start="00:13:17.200" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""which connect to the hyperdrive network.""" start="00:13:20.600" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""I hope that answers your question.""" start="00:13:22.800" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""[Speaker 4]: Yes it does, thank you.""" start="00:13:25.140" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""And what did make you choose hyperdrive for""" start="00:13:28.380" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""this Emacs project?""" start="00:13:29.380" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""[Speaker 1]: Mainly the fact that the drives are mutable,""" start="00:13:34.400" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""which makes it distinct from IPFS or""" start="00:13:37.660" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""BitTorrent, where when you share some piece""" start="00:13:40.800" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""of content, you're stuck with that static""" start="00:13:44.760" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""piece of content, which works well for some""" start="00:13:46.800" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""cases, but if you say you have a Zettelkasten""" start="00:13:49.600" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""or you have a set of org files that you want""" start="00:13:52.300" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""to share with people, you want to be able to""" start="00:13:56.120" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""update those files and have other people pull""" start="00:13:58.860" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""those updates from you.""" start="00:13:59.960" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""And so HyperDrive allows you to have these""" start="00:14:02.300" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""mutable sets of files that you can share and""" start="00:14:05.340" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""use the same link for other peers to pull the""" start="00:14:08.440" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""latest changes from you.""" start="00:14:09.440" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""Also, it's versioned, as we showed in the""" start="00:14:11.660" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""video, which is really helpful for having""" start="00:14:15.200" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""community deliberations and community""" start="00:14:17.500" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""discussions where you want to be able to""" start="00:14:19.400" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""reference some something that somebody said""" start="00:14:22.420" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""in the past and not have it get deleted or""" start="00:14:26.120" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""changed or something.""" start="00:14:26.860" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""[Speaker 0]: We are now switching to talk So just for""" start="00:14:30.600" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""letting you know if you want to say something""" start="00:14:32.720" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""now. Too late. The BB room is still open,""" start="00:14:37.640" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""so you can still discuss.""" start="00:14:38.480" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""There's also a lot going on on the pad.""" start="00:14:41.480" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""But you can also discuss here inside and""" start="00:14:47.980" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""answer the pet questions maybe later.""" start="00:14:49.760" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""[Speaker 1]: Yeah, there are good questions.""" start="00:14:52.800" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""I'll go ahead, please.""" start="00:14:58.680" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""[Speaker 3]: continuing here on the pad?""" start="00:15:01.120" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""[Speaker 1]: Are we I can hear you.""" start="00:15:04.540" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""[Speaker 5]: Yeah, so the question I had on the pad was,""" start="00:15:07.540" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""would it make sense in any sense to put a""" start="00:15:10.760" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""FUSE interface or put the POSIX semantics in""" start="00:15:13.820" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""front of this at some point?""" start="00:15:14.960" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""[Speaker 1]: Yeah, that would be cool.""" start="00:15:17.800" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""It's kind of a similar question to any plans""" start="00:15:20.680" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""for a Tramp interface.""" start="00:15:21.680" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""There was a project that the HyperCore""" start="00:15:25.440" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""HolePunch team was working on a year or more""" start="00:15:31.160" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""ago that provided a FUSE interface.""" start="00:15:34.320" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""And I think it didn't pan out.""" start="00:15:39.560" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""But it's a good idea. Same with the Tramp""" start="00:15:43.580" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""interface. It seems like a good idea that""" start="00:15:46.560" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""would make it possible to more easily hook""" start="00:15:51.900" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""into the built-in Emacs functionality for,""" start="00:15:55.520" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""for example, like incremental file name""" start="00:16:01.340" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""completion, which we don't currently support""" start="00:16:03.680" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""in Hyperdrive.el. So I'd love to have""" start="00:16:09.800" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""feedback and design ideas for those projects.""" start="00:16:12.720" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""[Speaker 5]: Yeah, there's just Everything in Emacs just""" start="00:16:15.860" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""sort of assumes the file system is there and""" start="00:16:17.980" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""usable in that way. That's all.""" start="00:16:20.940" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""[Speaker 1]: Yeah, it's a good idea.""" start="00:16:23.980" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""[Speaker 3]: An idea for the privacy type thing is""" start="00:16:28.180" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""Syncthing links. Because I think you can set""" start="00:16:33.160" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""up Syncthing in such a way that you have the""" start="00:16:36.100" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""private networks that other people can't""" start="00:16:38.560" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""actually get access to.""" start="00:16:40.240" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""[Speaker 1]: I did not know that that was possible with""" start="00:16:45.540" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""Syncthing. I'll have to look into that.""" start="00:16:47.120" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""[Speaker 3]: At least I think it is anyway,""" start="00:16:48.840" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""because yeah, there's ways you can explicitly""" start="00:16:53.000" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""authorize devices. Yeah,""" start="00:16:56.780" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""right. I think you could actually set it up""" start="00:17:00.240" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""in such a way that you can have private stuff""" start="00:17:03.480" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""and links, and then that might be a way that""" start="00:17:06.300" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""you can get a completely distributed""" start="00:17:10.119" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""Zettelcast and with private notes.""" start="00:17:12.720" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""[Speaker 1]: Yeah. Good idea. There's a question in the""" start="00:17:22.339" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""pad about DATRS, a Rust version of""" start="00:17:26.280" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""HyperDrive. I had not heard of that,""" start="00:17:28.660" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""so I'll have to look into that.""" start="00:17:30.260" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""If you had your druthers,""" start="00:17:33.040" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""what would make your work on hyperdrive.dl""" start="00:17:34.820" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""easier? It's been a lot of fun.""" start="00:17:40.240" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""I would love to have more user feedback.""" start="00:17:42.480" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""That would be my wish.""" start="00:17:45.660" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""I tried putting a git repo in HyperDrive.""" start="00:17:50.500" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""Does it work well? I don't think that would""" start="00:17:53.320" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""work well because, as I mentioned a moment a""" start="00:17:56.880" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""few moments ago, the data that you put into a""" start="00:18:00.060" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""hyperdrive is duplicated.""" start="00:18:00.920" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""So if you had the whole work tree in""" start="00:18:06.300" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""hyperdrive every time you made a change and""" start="00:18:08.800" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""saved it, it would be duplicated.""" start="00:18:12.340" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""If you had just a bare repository,""" start="00:18:15.240" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""I don't know, try it.""" start="00:18:18.240" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""[Speaker 3]: They're trying to solve the same problem,""" start="00:18:21.140" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""but 1 of the optimizations they have for""" start="00:18:23.560" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""being able to view a whole bunch of people's""" start="00:18:25.520" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""data is they made shallow clones a lot""" start="00:18:28.780" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""[Speaker 1]: Would you phrase that again,""" start="00:18:34.640" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""please?""" start="00:18:35.140" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""[Speaker 3]: easier. Right? So like Git and Hypercore,""" start="00:18:39.780" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""1 of the things they do is they allow you to""" start="00:18:42.720" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""have a whole history of every single change""" start="00:18:46.160" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""for a dataset Zettelkasten project.""" start="00:18:51.880" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""But 1 of the optimizations Hypercore did to""" start="00:18:56.400" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""make it more network web friendly is they""" start="00:19:02.020" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""made the shallow clones work a lot better and""" start="00:19:04.540" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""a lot... Yeah, they made that work a lot""" start="00:19:07.040" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""better so you don't have to download every""" start="00:19:08.760" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""single thing for every single project.""" start="00:19:11.340" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""And because they both are implementing the""" start="00:19:14.860" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""delta upgrades, I don't see how they could""" start="00:19:17.800" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""work really well together.""" start="00:19:19.000" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""At least from what it looked like to me.""" start="00:19:21.780" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""It can't hurt to experiment.""" start="00:19:25.640" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""[Speaker 1]: But yeah, I would agree with you.""" start="00:19:28.980" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""Is data transferred between nodes in the""" start="00:19:35.020" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""clear or encrypted? That's a good question.""" start="00:19:38.800" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""I don't know how it's encrypted.""" start="00:19:41.640" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""I don't, I wouldn't recommend sharing""" start="00:19:47.440" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""sensitive data with hyperdrive right now?""" start="00:19:53.400" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""I would recommend if you want to play with""" start="00:19:55.680" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""it, have it be something where you're""" start="00:19:57.240" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""expecting the data to be shared.""" start="00:20:00.660" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""Is there a searchable catalog?""" start="00:20:03.460" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""[Speaker 3]: It's also the data in transport versus data""" start="00:20:06.700" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""at rest. I'm pretty sure the data at rest""" start="00:20:08.480" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""would not be encrypted.""" start="00:20:09.960" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""Right. You can separate that into those 2""" start="00:20:14.440" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""questions.""" start="00:20:14.640" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""[Speaker 1]: Right. Right. Is there a searchable catalog""" start="00:20:19.920" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""of hyper drives? So that's a thing,""" start="00:20:23.000" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""an idea that we've been a distributed trust""" start="00:20:32.980" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""network for discovering peers that are""" start="00:20:38.200" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""trusted for a particular topic.""" start="00:20:41.260" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""And we actually made a demo video of a""" start="00:20:47.220" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""previous prototype that's available on the""" start="00:20:51.760" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""Ashen hyperdrive that you can watch that""" start="00:20:54.580" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""shows the basic idea. But the idea is just""" start="00:20:58.980" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""that you would have a list of peers that you""" start="00:21:02.980" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""think are worth listening to or worth reading""" start="00:21:07.120" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""for a particular topic.""" start="00:21:09.400" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""And those peers would have peers that they""" start="00:21:11.980" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""think are worth listening to for that same""" start="00:21:14.640" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""topic. And so you would say,""" start="00:21:16.600" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""if I'm interested in Emacs,""" start="00:21:17.560" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""I want to see all the peers that I trust for""" start="00:21:21.220" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""the topic Emacs. And if,""" start="00:21:23.700" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""say, Adam Porter shows up in my list and Adam""" start="00:21:27.340" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""Porter trusts Jonas and Jonas trusts Pratt,""" start="00:21:30.340" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""I would be able to read hyperdrive""" start="00:21:33.420" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""information from all of those people by""" start="00:21:36.760" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""looking at the indirect relationships that I""" start="00:21:41.600" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""have by following the chain of relationships,""" start="00:21:43.260" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""kind of like a web of trust.""" start="00:21:44.760" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""And so it would also allow you to have a""" start="00:21:49.640" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""network of peers that you trust to block""" start="00:21:53.480" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""other people on your behalf.""" start="00:21:54.900" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""So it would be useful for subjective""" start="00:21:57.660" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""moderation where you can remove spam and bad""" start="00:22:02.220" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""actors from the people that you follow""" start="00:22:04.920" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""without having to delegate that powerful""" start="00:22:08.940" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""responsibility to some third party in a""" start="00:22:13.260" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""permanent way where that third party might""" start="00:22:15.260" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""abuse that power. So it allows you to share""" start="00:22:23.040" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""your list of trusted peers and your list of""" start="00:22:26.120" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""blocked peers with other people in a""" start="00:22:29.180" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""peer-to-peer way.""" start="00:22:29.860" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""[Speaker 3]: Have you ever looked at GNUnet?""" start="00:22:38.080" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""It kind of does some...""" start="00:22:40.200" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""It's trying to do something weird with the""" start="00:22:45.660" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""internet where it redesigns it from the""" start="00:22:47.520" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""ground up to be peer-to-peer,""" start="00:22:51.040" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""local first, or something like that.""" start="00:22:53.680" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""[Speaker 1]: I would like to know more about GNUnet.""" start="00:22:58.380" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""Yes. I have heard of it,""" start="00:23:01.800" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""but I haven't really researched it.""" start="00:23:03.620" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""If you edit a file on the hyperdrive,""" start="00:23:09.060" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""then edit the same file on the local mirror,""" start="00:23:12.400" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""how is the conflict handled when you sync the""" start="00:23:15.480" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""mirror again? So I think if I understand the""" start="00:23:21.140" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""question, the answer is that you can't edit""" start="00:23:29.160" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""the file in 2 different places,""" start="00:23:32.280" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""I think is the answer to the question.""" start="00:23:36.860" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""If you were to manually copy the private key""" start="00:23:41.220" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""from 1 machine onto another machine,""" start="00:23:44.040" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""then you could cause a conflict,""" start="00:23:51.820" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""like a merge conflict,""" start="00:23:54.400" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""but you would have to go out of your way to""" start="00:23:58.100" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""do that. And It's not handled.""" start="00:24:00.520" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""I think the Hypercore Hole Punch team has""" start="00:24:03.580" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""another project that they're working on that""" start="00:24:05.600" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""would, it's called AutoBase,""" start="00:24:07.200" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""that would merge those conflicts.""" start="00:24:09.560" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""But we're not using that right now.""" start="00:24:13.200" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""And I think it's in early development still.""" start="00:24:16.260" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""So there might be a solution in the future.""" start="00:24:19.860" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""[Speaker 3]: What's a surprising change of thoughts or""" start="00:24:32.240" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""what's the most interesting thing you weren't""" start="00:24:36.900" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""expecting to discover while developing this?""" start="00:24:39.060" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""Like change of thoughts on how you write or I""" start="00:24:44.640" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""don't know.""" start="00:24:45.020" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""[Speaker 1]: Well, I'm relatively new to Emacs and to Lisp""" start="00:24:59.060" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""and really to programming in general.""" start="00:25:01.200" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""And so it's been a fantastic learning""" start="00:25:04.160" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""experience. Adam, Alpha Papa,""" start="00:25:08.480" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""Adam and I have been doing a lot of pair""" start="00:25:11.320" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""programming sessions where we work together""" start="00:25:12.960" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""and I get to learn from him.""" start="00:25:15.380" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""And we've had meetings with Jonas and Prat""" start="00:25:19.540" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""and meetings with Mauve where it's a""" start="00:25:23.560" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""fantastic learning experience for me to""" start="00:25:25.520" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""discover how to build software in an""" start="00:25:30.660" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""efficient and intelligent way.""" start="00:25:32.820" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""It's a huge pleasure. If there are no more""" start="00:25:40.580" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""questions, I just wanted to encourage""" start="00:25:43.320" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""everyone to try it out and to let us know""" start="00:25:48.380" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""what you think. It would be really helpful to""" start="00:25:50.380" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""have some feedback from people who are using""" start="00:25:54.960" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""it in new and creative ways that we haven't""" start="00:25:57.240" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""anticipated.""" start="00:25:57.600" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""[Speaker 6]: Hi, I'd just like to say that I tried this""" start="00:26:02.120" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""new thing called hyperdrive.el""" start="00:26:02.980" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""today, and I think it's pretty cool.""" start="00:26:05.880" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""[Speaker 2]: Sorry, that was somebody else.""" start="00:26:12.540" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""Hey Joseph, how's it going?""" start="00:26:13.440" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""Oh, talk today.""" start="00:26:15.080" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""[Speaker 3]: Oh, thanks. Wonderful.""" start="00:26:16.420" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""[Speaker 1]: Who's that? Oh, hey. Well,""" start="00:26:19.200" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""I'm going to say goodbye.""" start="00:26:34.060" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""Thank you. And thank you for your questions,""" start="00:26:37.040" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""[Speaker 3]: I know that""" start="00:26:39.680" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""[Speaker 1]: PlasmaStrike. I've met you before.""" start="00:26:40.380" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""Appreciate your questions,""" start="00:26:42.340" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""your thoughts.""" start="00:26:42.880" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""[Speaker 2]: Oh, by the way, Joseph,""" start="00:26:50.380" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""we have our, our first,""" start="00:26:53.000" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""I don't know if our first new user,""" start="00:26:55.120" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""but we have the first link being shared,""" start="00:26:57.280" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""to hyperdrive file in the chat and I loaded""" start="00:27:01.160" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""it and it works. And it's funny too.""" start="00:27:03.080" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""It's worth looking at.""" start="00:27:03.880" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""So. Oh, I think it's frozen.""" start="00:27:09.140" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""I don't know if anybody can hear me.""" start="00:27:11.580" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""[Speaker 3]: I can.""" start="00:27:12.720" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""[Speaker 2]: Okay, cool. The browser is frozen.""" start="00:27:15.200" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""It's it's not, okay. Just unfroze.""" start="00:27:19.020" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""Anyway. All right. Well,""" start="00:27:21.740" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""By the way, I enjoyed your talks about""" start="00:27:24.000" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""hyperbole. I'm going to rewatch those later""" start="00:27:26.260" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""when I get a chance. It was nice to meet you,""" start="00:27:28.040" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""too. Bob is a really great guy to work with.""" start="00:27:31.100" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""[Speaker 3]: Definitely a lot of interesting people.""" start="00:27:38.800" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""[Speaker 2]: I owe him 1. Yes, sir.""" start="00:27:40.200" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""All right, you have a good day,""" start="00:27:41.580" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""[Speaker 3]: Will do, I like the insistence on local""" start="00:27:45.140" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""first. Feels like it's a good dovetail with""" start="00:27:48.740" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""the hyper core""" start="00:27:49.540" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""[Speaker 2]: enjoy the conference. Yeah,""" start="00:27:51.180" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""yeah, I think there's a lot of a lot of""" start="00:27:54.960" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""interesting possibilities to build on this we""" start="00:27:57.980" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""have some plans that we Will get to you later""" start="00:28:01.340" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""this well in the coming year And we'll see""" start="00:28:05.600" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""where the hyperdrive people,""" start="00:28:07.480" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""you know, upstream how they develop it as""" start="00:28:09.920" video="qanda-hyperdrive" id="subtitle"]]
+[[!template text="""well and yeah, so exciting times.""" start="00:28:14.340" video="qanda-hyperdrive" id="subtitle"]]
+
+</div>Questions or comments? Please e-mail [joseph@ushin.org](mailto:joseph@ushin.org?subject=Comment%20for%20EmacsConf%202023%20hyperdrive%3A%20hyperdrive.el%3A%20Peer-to-peer%20filesystem%20in%20Emacs)
<!-- End of emacsconf-publish-after-page -->
diff --git a/2023/info/hyperdrive-before.md b/2023/info/hyperdrive-before.md
index da687e0f..f5b9cca5 100644
--- a/2023/info/hyperdrive-before.md
+++ b/2023/info/hyperdrive-before.md
@@ -1,12 +1,35 @@
<!-- Automatically generated by emacsconf-publish-before-page -->
+Actually a general-audience talk; just on the development track for scheduling purposes
+
[[!toc ]]
-Format: 40-min talk followed by live web conference Q&A
-Discuss on IRC: [#emacsconf](https://chat.emacsconf.org/?join=emacsconf)
-Status: Waiting for video from speaker
+Format: 41-min talk ; Q&A: BigBlueButton conference room
+Status: Q&A to be extracted from the room recordings
+
+
+
+
+# Talk
+<div class="vid mainVideo"><video controls preload="none" id="mainVideo-hyperdrive"><source src="https://media.emacsconf.org/2023/emacsconf-2023-hyperdrive--hyperdriveel-peertopeer-filesystem-in-emacs--joseph-turner--main.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2023/captions/emacsconf-2023-hyperdrive--hyperdriveel-peertopeer-filesystem-in-emacs--joseph-turner--main.vtt" default />"""<track kind="chapters" label="Chapters" src="/2023/captions/emacsconf-2023-hyperdrive--hyperdriveel-peertopeer-filesystem-in-emacs--joseph-turner--main--chapters.vtt" /><p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video>[[!template id="chapters" vidid="mainVideo-hyperdrive" data="""
+00:19.840 Hyperdrives introduction
+03:04.600 About USHIN and the contributors
+04:32.646 Basic introduction to Hyperdrive
+06:06.133 Managing files with Hyperdrive.el
+12:56.573 Dired like interface
+15:01.234 History in hyperdrive
+17:39.973 Use case of sharing large files
+19:20.913 Drive creation with hyperdrive.el
+23:26.199 hyperdrive-mirror
+30:06.819 hyperdrive history
+34:20.880 Streaming video from hyperdrive
+35:08.746 hyperdrive.el under the hood
+38:57.541 Next steps
+"""]]<div></div>Duration: 40:03 minutes<div class="files resources"><ul><li><a href="https://pad.emacsconf.org/2023-hyperdrive">Open Etherpad</a></li><li><a href="https://bbb.emacsverse.org/playback/presentation/2.0/playback.html?meetingId=c241079bd42ae794ee15bbe2b1d3f3670e4247a8-1701629401873">Play recording from BigBlueButton</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-hyperdrive--hyperdriveel-peertopeer-filesystem-in-emacs--joseph-turner--intro.vtt">Download --intro.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-hyperdrive--hyperdriveel-peertopeer-filesystem-in-emacs--joseph-turner--intro.webm">Download --intro.webm (996kB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-hyperdrive--hyperdriveel-peertopeer-filesystem-in-emacs--joseph-turner--main--chapters.vtt">Download --main--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-hyperdrive--hyperdriveel-peertopeer-filesystem-in-emacs--joseph-turner--main.opus">Download --main.opus (18MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-hyperdrive--hyperdriveel-peertopeer-filesystem-in-emacs--joseph-turner--main.vtt">Download --main.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-hyperdrive--hyperdriveel-peertopeer-filesystem-in-emacs--joseph-turner--main.webm">Download --main.webm (149MB)</a></li><li><a href="https://toobnix.org/w/9wLA55XACiGnS3nNBNwsV5">View on Toobnix</a></li><li><a href="https://www.youtube.com/watch?v=OOA9rs5qteU">View on Youtube</a></li></ul></div></div>
+# Q&A
+<div class="vid qanda"><video controls preload="none" id="qanda-hyperdrive"><source src="https://media.emacsconf.org/2023/emacsconf-2023-hyperdrive--hyperdriveel-peertopeer-filesystem-in-emacs--joseph-turner--answers.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2023/captions/emacsconf-2023-hyperdrive--hyperdriveel-peertopeer-filesystem-in-emacs--joseph-turner--answers.vtt" default />"""<p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video><div>Listen to just the audio:<br /><audio controls preload="none" id="qanda-hyperdrive-audio" src="https://media.emacsconf.org/2023/emacsconf-2023-hyperdrive--hyperdriveel-peertopeer-filesystem-in-emacs--joseph-turner--answers.opus"></audio></div><div></div>Duration: 28:15 minutes<div class="files resources"><ul><li><a href="https://pad.emacsconf.org/2023-hyperdrive">Open Etherpad</a></li><li><a href="https://bbb.emacsverse.org/playback/presentation/2.0/playback.html?meetingId=c241079bd42ae794ee15bbe2b1d3f3670e4247a8-1701629401873">Play recording from BigBlueButton</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-hyperdrive--hyperdriveel-peertopeer-filesystem-in-emacs--joseph-turner--answers.json">Download --answers.json (1.1MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-hyperdrive--hyperdriveel-peertopeer-filesystem-in-emacs--joseph-turner--answers.opus">Download --answers.opus (9MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-hyperdrive--hyperdriveel-peertopeer-filesystem-in-emacs--joseph-turner--answers.vtt">Download --answers.vtt</a> (unedited)</li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-hyperdrive--hyperdriveel-peertopeer-filesystem-in-emacs--joseph-turner--answers.webm">Download --answers.webm (48MB)</a></li></ul></div></div>
# Description
<!-- End of emacsconf-publish-before-page --> \ No newline at end of file
diff --git a/2023/info/hyperdrive-nav.md b/2023/info/hyperdrive-nav.md
index a72b3434..f8521281 100644
--- a/2023/info/hyperdrive-nav.md
+++ b/2023/info/hyperdrive-nav.md
@@ -1,7 +1,7 @@
<div class="talk-nav">
Back to the [[talks]]
-Previous by track: <a href="/2023/talks/repl">REPLs in strange places: Lua, LaTeX, LPeg, LPegRex, TikZ</a>
-Next by track: <a href="/2023/talks/extending">GNU Emacs for electronics, note-taking, and as lightweight IDE</a>
-Track: <span class="sched-track Development">Development</span>
+Previous by track: <a href="/2023/talks/gc">emacs-gc-stats: Does garbage collection actually slow down Emacs?</a>
+Next by track: <a href="/2023/talks/lspocaml">Writing a language server in OCaml for Emacs, fun, and profit</a>
+Track: <span class="sched-track Development">Development</span> - <strong><a href="https://emacsconf.org/2023/watch/dev">Watch</a></strong>
</div>
diff --git a/2023/info/koutline-after.md b/2023/info/koutline-after.md
index ec584404..ea86bfa9 100644
--- a/2023/info/koutline-after.md
+++ b/2023/info/koutline-after.md
@@ -1,7 +1,127 @@
<!-- Automatically generated by emacsconf-publish-after-page -->
-Questions or comments? Please e-mail [plasmastrike@voiddragon.me](mailto:plasmastrike@voiddragon.me?subject=Comment%20for%20EmacsConf%202022%20koutline%3A%20Using%20Koutline%20for%20stream%20of%20thought%20journaling)
+<div class="transcript transcript-mainVideo"><a name="koutline-mainVideo-transcript"></a><h1>Transcript (unedited)</h1>
+
+[[!template text="""Today I will share a nice workflow I have""" start="00:00:03.340" video="mainVideo-koutline" id="subtitle"]]
+[[!template text="""developed for stream of consciousness""" start="00:00:04.400" video="mainVideo-koutline" id="subtitle"]]
+[[!template text="""journaling. The goal of stream of""" start="00:00:06.560" video="mainVideo-koutline" id="subtitle"]]
+[[!template text="""consciousness journaling is to get your""" start="00:00:08.080" video="mainVideo-koutline" id="subtitle"]]
+[[!template text="""thoughts on the screen as effectively and""" start="00:00:09.960" video="mainVideo-koutline" id="subtitle"]]
+[[!template text="""efficiently as possible.""" start="00:00:10.679" video="mainVideo-koutline" id="subtitle"]]
+[[!template text="""These 2 features when combined reinforce each""" start="00:00:12.780" video="mainVideo-koutline" id="subtitle"]]
+[[!template text="""other and let you hear yourself think in a""" start="00:00:14.860" video="mainVideo-koutline" id="subtitle"]]
+[[!template text="""very efficient manner,""" start="00:00:15.960" video="mainVideo-koutline" id="subtitle"]]
+[[!template text="""increasing the number,""" start="00:00:17.220" video="mainVideo-koutline" id="subtitle"]]
+[[!template text="""quality, and types of thoughts you can get""" start="00:00:18.960" video="mainVideo-koutline" id="subtitle"]]
+[[!template text="""out of it. The tools I will be using for this""" start="00:00:21.100" video="mainVideo-koutline" id="subtitle"]]
+[[!template text="""are Emacs, KL line from the Hyperbolt""" start="00:00:22.680" video="mainVideo-koutline" id="subtitle"]]
+[[!template text="""package, centered cursor mode,""" start="00:00:24.080" video="mainVideo-koutline" id="subtitle"]]
+[[!template text="""Olivetti mode, and optionally,""" start="00:00:25.119" video="mainVideo-koutline" id="subtitle"]]
+[[!template text="""voice to text. Additionally,""" start="00:00:26.820" video="mainVideo-koutline" id="subtitle"]]
+[[!template text="""you can see my commands and key bindings on""" start="00:00:28.939" video="mainVideo-koutline" id="subtitle"]]
+[[!template text="""the right. I will start off by showing a""" start="00:00:31.500" video="mainVideo-koutline" id="subtitle"]]
+[[!template text="""typing demo""" start="00:00:32.119" video="mainVideo-koutline" id="subtitle"]]
+[[!template text="""about how my day went.""" start="00:00:48.120" video="mainVideo-koutline" id="subtitle"]]
+[[!template text="""There are certain functionalities for stream""" start="00:01:12.900" video="mainVideo-koutline" id="subtitle"]]
+[[!template text="""of consciousness journaling that are desired""" start="00:01:14.640" video="mainVideo-koutline" id="subtitle"]]
+[[!template text="""or detrimental to the process.""" start="00:01:15.900" video="mainVideo-koutline" id="subtitle"]]
+[[!template text="""Stream of thought functionalities,""" start="00:01:17.040" video="mainVideo-koutline" id="subtitle"]]
+[[!template text="""things I want. The ability to optionally use""" start="00:01:26.000" video="mainVideo-koutline" id="subtitle"]]
+[[!template text="""speech to text. I do this by using""" start="00:01:27.720" video="mainVideo-koutline" id="subtitle"]]
+[[!template text="""Nerdictation, a Python program.""" start="00:01:29.380" video="mainVideo-koutline" id="subtitle"]]
+[[!template text="""I am still experimenting with this as it""" start="00:01:32.320" video="mainVideo-koutline" id="subtitle"]]
+[[!template text="""changes the quality and types of thoughts you""" start="00:01:34.120" video="mainVideo-koutline" id="subtitle"]]
+[[!template text="""can get out of stream of consciousness""" start="00:01:35.280" video="mainVideo-koutline" id="subtitle"]]
+[[!template text="""journaling. I am still looking for better""" start="00:01:37.680" video="mainVideo-koutline" id="subtitle"]]
+[[!template text="""ways of doing this. The ability to easily""" start="00:01:39.900" video="mainVideo-koutline" id="subtitle"]]
+[[!template text="""organize and split off my thoughts by""" start="00:01:41.680" video="mainVideo-koutline" id="subtitle"]]
+[[!template text="""creating and manipulating outlines.""" start="00:01:43.040" video="mainVideo-koutline" id="subtitle"]]
+[[!template text="""Creating them in real time is needed for live""" start="00:01:46.280" video="mainVideo-koutline" id="subtitle"]]
+[[!template text="""journaling and allows for later editing""" start="00:01:48.240" video="mainVideo-koutline" id="subtitle"]]
+[[!template text="""really easily. I showed off some of these""" start="00:01:53.140" video="mainVideo-koutline" id="subtitle"]]
+[[!template text="""commands before. To just write words without""" start="00:01:56.479" video="mainVideo-koutline" id="subtitle"]]
+[[!template text="""worrying about format.""" start="00:01:57.540" video="mainVideo-koutline" id="subtitle"]]
+[[!template text="""To not worry about scrolling,""" start="00:02:00.160" video="mainVideo-koutline" id="subtitle"]]
+[[!template text="""I use centered cursor mode.""" start="00:02:01.640" video="mainVideo-koutline" id="subtitle"]]
+[[!template text="""To not worry about lines,""" start="00:02:05.200" video="mainVideo-koutline" id="subtitle"]]
+[[!template text="""I use the KOutline auto-filling""" start="00:02:06.960" video="mainVideo-koutline" id="subtitle"]]
+[[!template text="""functionality. To not worry about pressing""" start="00:02:09.360" video="mainVideo-koutline" id="subtitle"]]
+[[!template text="""Enter, and to have a nice looking journal""" start="00:02:11.400" video="mainVideo-koutline" id="subtitle"]]
+[[!template text="""with hard returns afterwards.""" start="00:02:12.660" video="mainVideo-koutline" id="subtitle"]]
+[[!template text="""Manually filling is needed with spacing when""" start="00:02:19.060" video="mainVideo-koutline" id="subtitle"]]
+[[!template text="""it is wrong. I do that with metaJ.""" start="00:02:22.160" video="mainVideo-koutline" id="subtitle"]]
+[[!template text="""Counterproductive functionality.""" start="00:02:30.680" video="mainVideo-koutline" id="subtitle"]]
+[[!template text="""Spell checking. While this is useful for""" start="00:02:33.480" video="mainVideo-koutline" id="subtitle"]]
+[[!template text="""editing, it is not useful for stream of""" start="00:02:35.500" video="mainVideo-koutline" id="subtitle"]]
+[[!template text="""consciousness journaling.""" start="00:02:36.220" video="mainVideo-koutline" id="subtitle"]]
+[[!template text="""Having this on or off conditionally while you""" start="00:02:39.020" video="mainVideo-koutline" id="subtitle"]]
+[[!template text="""are live journaling is a killer feature of""" start="00:02:40.760" video="mainVideo-koutline" id="subtitle"]]
+[[!template text="""Emacs. Reading slash editing the journal.""" start="00:02:48.040" video="mainVideo-koutline" id="subtitle"]]
+[[!template text="""Part of the value proposition of this is to""" start="00:02:50.240" video="mainVideo-koutline" id="subtitle"]]
+[[!template text="""listen to what you are thinking,""" start="00:02:51.420" video="mainVideo-koutline" id="subtitle"]]
+[[!template text="""so this is needed functionality.""" start="00:02:52.680" video="mainVideo-koutline" id="subtitle"]]
+[[!template text="""You cannot listen very well when you are""" start="00:02:55.580" video="mainVideo-koutline" id="subtitle"]]
+[[!template text="""speaking, and the converse is true as well.""" start="00:02:57.360" video="mainVideo-koutline" id="subtitle"]]
+[[!template text="""You cannot speak very well when you are""" start="00:02:59.240" video="mainVideo-koutline" id="subtitle"]]
+[[!template text="""listening, decreasing what you can get out of""" start="00:03:01.280" video="mainVideo-koutline" id="subtitle"]]
+[[!template text="""it. Features when editing or listening to""" start="00:03:04.120" video="mainVideo-koutline" id="subtitle"]]
+[[!template text="""your journal. Spell checking.""" start="00:03:05.200" video="mainVideo-koutline" id="subtitle"]]
+[[!template text="""I use the Spackage Spellfoo,""" start="00:03:07.780" video="mainVideo-koutline" id="subtitle"]]
+[[!template text="""but there are others. I use multiple panes to""" start="00:03:20.740" video="mainVideo-koutline" id="subtitle"]]
+[[!template text="""read and edit. I use a combination of follow""" start="00:03:25.040" video="mainVideo-koutline" id="subtitle"]]
+[[!template text="""mode and some of my custom functions.""" start="00:03:27.940" video="mainVideo-koutline" id="subtitle"]]
+[[!template text="""These are what I use right here.""" start="00:03:31.860" video="mainVideo-koutline" id="subtitle"]]
+[[!template text="""The ability to change the view specs of the""" start="00:03:53.360" video="mainVideo-koutline" id="subtitle"]]
+[[!template text="""document. Stuff like, toggling blank lines.""" start="00:03:59.340" video="mainVideo-koutline" id="subtitle"]]
+[[!template text="""Show the first heading of everything.""" start="00:04:08.300" video="mainVideo-koutline" id="subtitle"]]
+[[!template text="""You can also export the KOutline pages to""" start="00:04:18.620" video="mainVideo-koutline" id="subtitle"]]
+[[!template text="""HTML for other people to read or another way""" start="00:04:21.560" video="mainVideo-koutline" id="subtitle"]]
+[[!template text="""to look at it. Easy manipulation of cells.""" start="00:04:29.440" video="mainVideo-koutline" id="subtitle"]]
+[[!template text="""You use the Alt and arrow keys just like in""" start="00:04:34.040" video="mainVideo-koutline" id="subtitle"]]
+[[!template text="""Orm mode to delete cells easily.""" start="00:04:37.200" video="mainVideo-koutline" id="subtitle"]]
+[[!template text="""The ability to manually reformat KL9 cells in""" start="00:04:47.020" video="mainVideo-koutline" id="subtitle"]]
+[[!template text="""addition to auto formatting of the cells for""" start="00:04:49.540" video="mainVideo-koutline" id="subtitle"]]
+[[!template text="""when spacing looks off.""" start="00:04:50.860" video="mainVideo-koutline" id="subtitle"]]
+[[!template text="""MetaJ is nice, and auto-filling is also nice""" start="00:04:53.900" video="mainVideo-koutline" id="subtitle"]]
+[[!template text="""for having multiple pages.""" start="00:04:54.920" video="mainVideo-koutline" id="subtitle"]]
+[[!template text="""Why do I use these tools versus other common""" start="00:04:58.660" video="mainVideo-koutline" id="subtitle"]]
+[[!template text="""tools? K-Outline vs. Playtext Writing in""" start="00:05:06.060" video="mainVideo-koutline" id="subtitle"]]
+[[!template text="""outlines helps me easily structure my""" start="00:05:08.460" video="mainVideo-koutline" id="subtitle"]]
+[[!template text="""thoughts in a way that is easy to write,""" start="00:05:09.960" video="mainVideo-koutline" id="subtitle"]]
+[[!template text="""read, and edit. Org Mode vs.""" start="00:05:12.500" video="mainVideo-koutline" id="subtitle"]]
+[[!template text="""K-Outline Org Mode gives me lots of ways to""" start="00:05:15.360" video="mainVideo-koutline" id="subtitle"]]
+[[!template text="""structure my journal slash document.""" start="00:05:17.120" video="mainVideo-koutline" id="subtitle"]]
+[[!template text="""While this is great for a lot of things,""" start="00:05:19.600" video="mainVideo-koutline" id="subtitle"]]
+[[!template text="""for stream of consciousness journaling,""" start="00:05:21.540" video="mainVideo-koutline" id="subtitle"]]
+[[!template text="""this causes decision fatigue and loss of""" start="00:05:24.960" video="mainVideo-koutline" id="subtitle"]]
+[[!template text="""concentration. Types of questions I get when""" start="00:05:30.320" video="mainVideo-koutline" id="subtitle"]]
+[[!template text="""structuring an org-mode document?""" start="00:05:31.960" video="mainVideo-koutline" id="subtitle"]]
+[[!template text="""Do I keep everything in a heading or below""" start="00:05:35.080" video="mainVideo-koutline" id="subtitle"]]
+[[!template text="""the heading in paragraphs?""" start="00:05:36.100" video="mainVideo-koutline" id="subtitle"]]
+[[!template text="""How do I handle new lines?""" start="00:05:38.080" video="mainVideo-koutline" id="subtitle"]]
+[[!template text="""Do I just use visual line mode with no hard""" start="00:05:40.240" video="mainVideo-koutline" id="subtitle"]]
+[[!template text="""returns? Or if I make hard returns,""" start="00:05:42.520" video="mainVideo-koutline" id="subtitle"]]
+[[!template text="""on what line number do I do them?""" start="00:05:44.800" video="mainVideo-koutline" id="subtitle"]]
+[[!template text="""More visual line nodes in org-mode documents""" start="00:05:50.080" video="mainVideo-koutline" id="subtitle"]]
+[[!template text="""like a potential org ID in your property""" start="00:05:52.660" video="mainVideo-koutline" id="subtitle"]]
+[[!template text="""stores. While a lot of the above is really""" start="00:05:57.720" video="mainVideo-koutline" id="subtitle"]]
+[[!template text="""nice if you are making something like a""" start="00:05:59.880" video="mainVideo-koutline" id="subtitle"]]
+[[!template text="""website to present to other people,""" start="00:06:01.640" video="mainVideo-koutline" id="subtitle"]]
+[[!template text="""these features are counterproductive to""" start="00:06:04.080" video="mainVideo-koutline" id="subtitle"]]
+[[!template text="""stream-of-thought journaling.""" start="00:06:05.040" video="mainVideo-koutline" id="subtitle"]]
+[[!template text="""Org mode is also top-notch for other things""" start="00:06:08.900" video="mainVideo-koutline" id="subtitle"]]
+[[!template text="""such as GTD. I don't think org mode has""" start="00:06:11.780" video="mainVideo-koutline" id="subtitle"]]
+[[!template text="""bindings to create child,""" start="00:06:13.820" video="mainVideo-koutline" id="subtitle"]]
+[[!template text="""same-level, and parent cells.""" start="00:06:15.460" video="mainVideo-koutline" id="subtitle"]]
+[[!template text="""Centered cursor mode versus scroll lock mode""" start="00:06:19.340" video="mainVideo-koutline" id="subtitle"]]
+[[!template text="""built-in. Scroll lock mode changes its place""" start="00:06:22.640" video="mainVideo-koutline" id="subtitle"]]
+[[!template text="""when you move the cursor from the bottom or""" start="00:06:28.180" video="mainVideo-koutline" id="subtitle"]]
+[[!template text="""the top of the page. Centered cursor mode""" start="00:06:30.080" video="mainVideo-koutline" id="subtitle"]]
+[[!template text="""will reliably fix itself to the center when""" start="00:06:33.420" video="mainVideo-koutline" id="subtitle"]]
+[[!template text="""the cursor position is not there.""" start="00:06:36.280" video="mainVideo-koutline" id="subtitle"]]
+
+</div>Questions or comments? Please e-mail [plasmastrike@voiddragon.me](mailto:plasmastrike@voiddragon.me?subject=Comment%20for%20EmacsConf%202023%20koutline%3A%20Using%20Koutline%20for%20stream%20of%20thought%20journaling)
<!-- End of emacsconf-publish-after-page -->
diff --git a/2023/info/koutline-before.md b/2023/info/koutline-before.md
index 60e55bcb..07f01166 100644
--- a/2023/info/koutline-before.md
+++ b/2023/info/koutline-before.md
@@ -1,12 +1,12 @@
<!-- Automatically generated by emacsconf-publish-before-page -->
[[!toc ]]
-Format: 20-min talk followed by pad, IRC Q&A
-Discuss on IRC: [#emacsconf](https://chat.emacsconf.org/?join=emacsconf)
-Status: Waiting for video from speaker
+Format: 7-min talk ; Q&A: BigBlueButton conference room
+Status: Q&A to be extracted from the room recordings
+<div class="vid mainVideo"><video controls preload="none" id="mainVideo-koutline"><source src="https://media.emacsconf.org/2023/emacsconf-2023-koutline--using-koutline-for-stream-of-thought-journaling--matthew-jorgensen-plasmastrike--main.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2023/captions/emacsconf-2023-koutline--using-koutline-for-stream-of-thought-journaling--matthew-jorgensen-plasmastrike--main.vtt" default />"""<p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video><div></div>Duration: 06:44 minutes<div class="files resources"><ul><li><a href="https://pad.emacsconf.org/2023-koutline">Open Etherpad</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-koutline--using-koutline-for-stream-of-thought-journaling--matthew-jorgensen-plasmastrike--intro.vtt">Download --intro.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-koutline--using-koutline-for-stream-of-thought-journaling--matthew-jorgensen-plasmastrike--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-koutline--using-koutline-for-stream-of-thought-journaling--matthew-jorgensen-plasmastrike--main.json">Download --main.json</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-koutline--using-koutline-for-stream-of-thought-journaling--matthew-jorgensen-plasmastrike--main.opus">Download --main.opus (4.5MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-koutline--using-koutline-for-stream-of-thought-journaling--matthew-jorgensen-plasmastrike--main.vtt">Download --main.vtt</a> (unedited)</li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-koutline--using-koutline-for-stream-of-thought-journaling--matthew-jorgensen-plasmastrike--main.webm">Download --main.webm (23MB)</a></li><li><a href="https://toobnix.org/w/vV7qtK176DVE6RLXrZ18Ee">View on Toobnix</a></li><li><a href="https://www.youtube.com/watch?v=dO-gv898Vmg">View on Youtube</a></li></ul></div></div>
# Description
<!-- End of emacsconf-publish-before-page --> \ No newline at end of file
diff --git a/2023/info/koutline-nav.md b/2023/info/koutline-nav.md
index 81fbec92..6a814ef9 100644
--- a/2023/info/koutline-nav.md
+++ b/2023/info/koutline-nav.md
@@ -2,6 +2,6 @@
<div class="talk-nav">
Back to the [[talks]]
Previous by track: <a href="/2023/talks/hyperamp">Top 10 ways Hyperbole amps up Emacs</a>
-Next by track: <a href="/2023/talks/parallel">Parallel Text Replacement: Does P = NP?</a>
-Track: <span class="sched-track General">General</span>
+Next by track: <a href="/2023/talks/parallel">Parallel text replacement</a>
+Track: <span class="sched-track General">General</span> - <strong><a href="https://emacsconf.org/2023/watch/gen">Watch</a></strong>
</div>
diff --git a/2023/info/llm-after.md b/2023/info/llm-after.md
index 99bc9207..506f010d 100644
--- a/2023/info/llm-after.md
+++ b/2023/info/llm-after.md
@@ -1,7 +1,1116 @@
<!-- Automatically generated by emacsconf-publish-after-page -->
-Questions or comments? Please e-mail [ahyatt@gmail.com](mailto:ahyatt@gmail.com?subject=Comment%20for%20EmacsConf%202022%20llm%3A%20LLM%20clients%20in%20Emacs%2C%20functionality%20and%20standardization)
+<div class="transcript transcript-mainVideo"><a name="llm-mainVideo-transcript"></a><h1>Transcript</h1>
+
+
+<div class="transcript-heading">[[!template new="1" text="""Intro to the Talk""" start="00:00:00.000" video="mainVideo-llm" id="subtitle"]]</div>[[!template text="""Hello, I'm Andrew Hyatt and I'm going to talk to you""" start="00:00:00.000" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""about large language models and how""" start="00:00:04.160" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""they relate to Emacs.""" start="00:00:06.440" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""And I'm going to talk to you about the technology""" start="00:00:11.080" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""and how we're going to use it in Emacs.""" start="00:00:14.920" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""There'll be demos and there'll be talks about,""" start="00:00:18.280" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""I'll finish up by kind of talking about where""" start="00:00:21.160" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""I think this should go in the future.""" start="00:00:22.880" video="mainVideo-llm" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""What are LLMs?""" start="00:00:25.080" video="mainVideo-llm" id="subtitle"]]</div>[[!template text="""So to start off with, let's just talk like,""" start="00:00:25.080" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""I just want to make sure everyone's on the same page.""" start="00:00:28.240" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""What are large language models?""" start="00:00:29.760" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""Not everyone may be caught up on this.""" start="00:00:30.920" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""Large language models are a way... Basically,""" start="00:00:34.640" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""the current versions of large language models""" start="00:00:39.000" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""are all based on the similar architecture""" start="00:00:43.000" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""called the transformer.""" start="00:00:44.480" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""It's just an efficient way to train and produce output.""" start="00:00:45.280" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""So these things are basically models""" start="00:00:48.720" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""that predict the next word or something like that.""" start="00:00:51.920" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""And they're trained on an enormous corpus of information""" start="00:00:58.080" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""and they get extremely good""" start="00:01:02.120" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""at predicting the next word.""" start="00:01:04.320" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""And from that basic ability, you can train""" start="00:01:06.080" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""through further tuning from human input,""" start="00:01:09.680" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""human ratings and things like that.""" start="00:01:12.440" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""You can train different models based on that""" start="00:01:13.960" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""that will do question answering.""" start="00:01:17.480" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""And this is how basically ChatGPT works.""" start="00:01:18.760" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""There's a base LLM, like GPT.""" start="00:01:22.520" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""And then you have a chat version of that,""" start="00:01:25.600" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""which is just trained to just... You give""" start="00:01:27.800" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""it a prompt, like what do you want it to do?""" start="00:01:29.960" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""And it gives you an output that does what you told it to do,""" start="00:01:32.200" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""or at least attempts to do it.""" start="00:01:37.280" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""Those are the power of large language models is""" start="00:01:39.920" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""they're extremely, extremely impressive.""" start="00:01:42.080" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""Certainly this is, in AI,""" start="00:01:45.640" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""this has been the biggest thing to happen""" start="00:01:47.200" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""probably in my lifetime,""" start="00:01:49.080" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""or at least my lifetime as my working lifetime.""" start="00:01:51.560" video="mainVideo-llm" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Power of LLMs (Magit Demo)""" start="00:01:56.360" video="mainVideo-llm" id="subtitle"]]</div>[[!template text="""So let me give you a demonstration of""" start="00:01:56.360" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""what kinds of stuff it could do in Emacs.""" start="00:02:02.560" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""So here I have a Emacs file.""" start="00:02:06.680" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""So this is my Emacs init file.""" start="00:02:09.040" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""I have a change.""" start="00:02:12.480" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""Let's commit that change.""" start="00:02:13.600" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""And, you know, I don't like writing commit messages,""" start="00:02:16.880" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""so I can generate it.""" start="00:02:19.440" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""And it did an actually just looking.""" start="00:02:23.040" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""So all it does is it's looking, it's just reading the diff.""" start="00:02:27.480" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""I'm just feeding it the diff with some instructions.""" start="00:02:29.760" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""And it is this a incredible commit message?""" start="00:02:32.480" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""It's not bad, actually.""" start="00:02:37.760" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""You can see that it actually has really extracted""" start="00:02:39.400" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""the meaning of what I'm doing and has written""" start="00:02:42.320" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""a reasonably good commit message.""" start="00:02:46.440" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""Now I have to edit it because this is not quite correct.""" start="00:02:48.880" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""But it's kind of impressive how good it is.""" start="00:02:53.160" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""And my editing, it's kind of easier for me to edit this""" start="00:02:55.160" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""than just to write a new one.""" start="00:03:00.040" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""And quite often it's good enough to just submit as is.""" start="00:03:01.880" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""So this is kind of, you know, you could say""" start="00:03:04.480" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""this is just commit messages.""" start="00:03:08.120" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""You could respond to emails.""" start="00:03:09.360" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""You could, you know, using your own custom instructions""" start="00:03:10.720" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""about what you want your email to say.""" start="00:03:15.320" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""It'll write the email for you.""" start="00:03:17.840" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""It could do like this""" start="00:03:19.040" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""Emacs is a way to interact with buffers.""" start="00:03:19.840" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""This could basically just output text.""" start="00:03:22.520" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""So it's super useful for""" start="00:03:24.200" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""understanding something and outputting text based on that,""" start="00:03:27.760" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""which is just useful for Emacs.""" start="00:03:30.320" video="mainVideo-llm" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Drawbacks of LLMs (regex demo)""" start="00:03:32.240" video="mainVideo-llm" id="subtitle"]]</div>[[!template text="""So the drawback is, yeah, it's good,""" start="00:03:32.240" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""but it's not that reliable.""" start="00:03:39.920" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""And you'd think it's very easy to get caught up in like,""" start="00:03:43.360" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""oh my gosh, like this is so powerful.""" start="00:03:45.680" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""I bet it could work this, whatever idea could work.""" start="00:03:47.640" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""And these ideas, like they almost can.""" start="00:03:50.600" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""For example, I was thinking, you know what I could do?""" start="00:03:52.920" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""I don't like writing regexes.""" start="00:03:55.640" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""Why can't I have a regex replace that's powered by LLMs?""" start="00:03:57.240" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""And that way I could give just an instruction""" start="00:04:01.200" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""to regex replace.""" start="00:04:03.440" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""And so for example, I could do Emacs LLM regex replace.""" start="00:04:07.400" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""This is not checked in anywhere.""" start="00:04:12.080" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""These are just my own kind of private functions.""" start="00:04:12.880" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""My description lowercase all the org headings.""" start="00:04:17.200" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""Let's see if it works.""" start="00:04:19.240" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""It might work.""" start="00:04:20.440" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""No, it doesn't work.""" start="00:04:21.040" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""So if I, I'm not going to bother to show you""" start="00:04:22.960" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""what it actually came up with, but it's something,""" start="00:04:26.160" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""if you looked at it, it'd be like, wow,""" start="00:04:28.160" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""this is very close to being...""" start="00:04:29.880" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""It looks like it should work, but it doesn't.""" start="00:04:31.640" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""Okay.""" start="00:04:34.240" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""It's not quite good enough to get it right.""" start="00:04:35.840" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""And it's possible that perhaps by giving it""" start="00:04:38.720" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""a few examples of, or explaining more""" start="00:04:41.600" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""what makes Emacs regexes different.""" start="00:04:43.640" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""It could do a better job""" start="00:04:46.440" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""and maybe could solve these problems,""" start="00:04:47.960" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""but it's always a little bit random.""" start="00:04:49.280" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""You're never quite sure what you're going to get.""" start="00:04:50.680" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""So this is the drawback.""" start="00:04:52.360" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""Like there's a lot of things that look like you could do it,""" start="00:04:54.840" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""but when it actually comes down to trying it,""" start="00:04:58.480" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""it's surprisingly hard.""" start="00:05:01.000" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""And, you know, and whatever you're doing,""" start="00:05:03.400" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""it's surprisingly hard to get something""" start="00:05:06.320" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""that is repeatably, that's, that is always good.""" start="00:05:09.000" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""So yeah, that's currently the problem.""" start="00:05:13.880" video="mainVideo-llm" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Embeddings""" start="00:05:20.120" video="mainVideo-llm" id="subtitle"]]</div>[[!template text="""So I want to talk about embeddings.""" start="00:05:20.120" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""They're another thing that LLMs offer""" start="00:05:23.400" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""and that are extremely useful.""" start="00:05:26.920" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""They are, what they do is they encode from""" start="00:05:28.600" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""a input text that could be a word, a sentence,""" start="00:05:33.120" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""a small document.""" start="00:05:38.960" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""It encodes a vector about what the meaning,""" start="00:05:42.160" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""the semantic meaning of that is.""" start="00:05:45.400" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""That means you could, something that is,""" start="00:05:46.920" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""uses completely different words,""" start="00:05:51.080" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""but is basically talking about the same thing,""" start="00:05:52.280" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""perhaps in a different language, should be pretty close""" start="00:05:54.160" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""as a vector to the other vector.""" start="00:05:57.840" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""You know, as long as they're similarly semantic things,""" start="00:06:02.000" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""like the words""" start="00:06:05.400" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""highway and Camino are two different words.""" start="00:06:12.240" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""They mean the same thing.""" start="00:06:18.960" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""They should have very similar embeddings.""" start="00:06:19.640" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""So it is a way to kind of encode this""" start="00:06:21.320" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""and then you could use this for search.""" start="00:06:25.120" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""For example, I haven't tried to do this yet,""" start="00:06:26.200" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""but you could probably just make an embedding""" start="00:06:28.920" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""for every paragraph in the Emacs manual""" start="00:06:31.480" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""and the Elisp manual.""" start="00:06:33.920" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""And then, and then there's a very standard technique.""" start="00:06:36.240" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""You just... You find that you have a query,""" start="00:06:39.440" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""oh, how do I do whatever, whatever in Emacs again?""" start="00:06:43.440" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""And you could, you just find that 20 things""" start="00:06:45.800" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""that are closest to whatever you're""" start="00:06:49.480" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""trying to... the embedding of your query.""" start="00:06:50.320" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""You send those things to the LLM, as you know,""" start="00:06:51.840" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""with the original query,""" start="00:06:55.280" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""and you're basically telling the--asking the LLM,""" start="00:06:57.800" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""look, the user is trying to do this.""" start="00:06:59.920" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""Here's what I found in the Emacs manual.""" start="00:07:01.280" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""That's on the Elisp manual.""" start="00:07:03.040" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""That's close to what they're trying to do.""" start="00:07:04.640" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""So can you kind of just tell the user what to do?""" start="00:07:07.440" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""And from this, and you could say,""" start="00:07:12.160" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""just use things from this, you know, that I give you.""" start="00:07:14.480" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""Don't just make up your own idea.""" start="00:07:17.640" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""You know, don't use your own ideas,""" start="00:07:20.680" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""because sometimes it likes to do that""" start="00:07:21.840" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""and those things are wrong.""" start="00:07:23.800" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""So you could try to, you know, do this and you get,""" start="00:07:24.360" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""you could get quite good results using this.""" start="00:07:26.720" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""So no one has done this yet,""" start="00:07:28.720" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""but that should not be hard to do.""" start="00:07:30.000" video="mainVideo-llm" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Image Generation""" start="00:07:32.800" video="mainVideo-llm" id="subtitle"]]</div>[[!template text="""Image generation is something that's, you know,""" start="00:07:32.800" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""it's not quite an LLM in the sense of...""" start="00:07:34.880" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""These are... It's a different technology,""" start="00:07:38.480" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""but these things are kind of packaged together""" start="00:07:43.080" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""in a sense.""" start="00:07:48.440" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""And you'll see that when I talk about Emacs packages,""" start="00:07:49.040" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""a lot of them bundle image generation""" start="00:07:51.640" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""and large language models.""" start="00:07:54.280" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""You know, the APIs are often bundled together by providers.""" start="00:07:55.440" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""And the general idea is it's kind of similar""" start="00:07:59.040" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""because it's very similar to large, you know,""" start="00:08:02.680" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""doing a chat thing where you, you know,""" start="00:08:04.400" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""the chat is like, you give it a text request,""" start="00:08:06.560" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""like write me a sonnet about, you know,""" start="00:08:09.761" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""the battle between Emacs and vi.""" start="00:08:12.760" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""And it could, it could do it.""" start="00:08:14.880" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""It could do a very good job of that.""" start="00:08:15.840" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""But you could also say, you know,""" start="00:08:17.160" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""draw me a picture of Emacs and vi as boxers,""" start="00:08:22.520" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""as a character-character boxing in a ring,""" start="00:08:27.600" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""like a, you know, political cartoon style.""" start="00:08:30.360" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""And it can do that as well.""" start="00:08:32.240" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""And so you could basically think of this""" start="00:08:35.000" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""as just sort of... it's kind of the""" start="00:08:37.680" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""same thing with what you're doing""" start="00:08:39.440" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""with large language models,""" start="00:08:42.400" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""but instead of outputting a text,""" start="00:08:43.360" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""you're outputting a picture.""" start="00:08:44.800" video="mainVideo-llm" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Fine-tuning""" start="00:08:48.480" video="mainVideo-llm" id="subtitle"]]</div>[[!template text="""There's also, I want to mention the concept of fine-tuning.""" start="00:08:48.480" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""Fine-tuning is a way to take your--""" start="00:08:51.080" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""take a corpus of inputs and outputs and just from""" start="00:08:55.200" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""a large language model, you're like, okay,""" start="00:08:59.760" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""given this base large language model,""" start="00:09:01.600" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""I want to make sure that when I give you input,""" start="00:09:03.600" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""you give me something like output.""" start="00:09:06.680" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""And this is what I'm just going to""" start="00:09:08.480" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""train you further on these,""" start="00:09:10.120" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""these mappings between input and output.""" start="00:09:11.800" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""And for example, you could do this. Like,""" start="00:09:14.880" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""let's say you wanted to fix that regex demo""" start="00:09:16.400" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""I had to make it good.""" start="00:09:18.040" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""I don't think it, I think it'd be""" start="00:09:21.000" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""relatively effective to train,""" start="00:09:23.480" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""to have regex descriptions""" start="00:09:25.040" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""and regex examples, Emacs regex examples""" start="00:09:27.040" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""as inputs and outputs.""" start="00:09:30.120" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""You could get, you know, maybe a hundred,""" start="00:09:31.240" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""a few hundreds of these things.""" start="00:09:34.000" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""You could train it.""" start="00:09:35.360" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""I think that is a reasonable way to,""" start="00:09:38.640" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""let's just say, I don't know how well it would work,""" start="00:09:40.760" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""but these things definitely work some of the time""" start="00:09:43.880" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""and produce pretty good results.""" start="00:09:46.840" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""And you could do this on your own machine.""" start="00:09:48.000" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""Corporations like OpenAI offer APIs with, you know,""" start="00:09:53.040" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""to build your fine tunes on top of OpenAI.""" start="00:09:59.000" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""And I think, I'm not a hundred percent sure,""" start="00:10:01.520" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""but I think then you can share your model""" start="00:10:04.160" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""with other people.""" start="00:10:05.720" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""But if not, then you just, you know,""" start="00:10:06.520" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""you could use your model for your own specialized purposes.""" start="00:10:08.520" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""But in the world of models that you could run,""" start="00:10:10.840" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""for example, based on Llama, which is like...""" start="00:10:14.040" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""Llama is this model you can run on your own machine from Meta.""" start="00:10:16.875" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""There's many fine-tuned models that you could download""" start="00:10:23.580" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""and you could run on your own.""" start="00:10:26.881" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""They can do very different things too.""" start="00:10:28.961" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""Some output Python programs, for example,""" start="00:10:30.840" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""that you could just run.""" start="00:10:33.400" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""So you just say...""" start="00:10:34.280" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""Tell me how old... Let's just say""" start="00:10:37.960" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""you have a random task, like""" start="00:10:40.640" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""tell me how old these five cities are in minutes,""" start="00:10:42.000" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""based on historical evidence.""" start="00:10:48.120" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""It's kind of a weird query, but it probably can figure,""" start="00:10:49.800" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""it could probably run that for you.""" start="00:10:53.640" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""It'll encode its knowledge into whatever""" start="00:10:55.120" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""the Python program, then use the Python program""" start="00:10:57.240" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""to do the correct calculations.""" start="00:10:59.600" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""So pretty, pretty useful stuff.""" start="00:11:01.040" video="mainVideo-llm" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Open Source""" start="00:11:08.160" video="mainVideo-llm" id="subtitle"]]</div>[[!template text="""So I also want to mention open source""" start="00:11:08.160" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""and basically free software here.""" start="00:11:10.400" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""These LLMs are mostly not free software.""" start="00:11:12.680" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""They're sometimes open source,""" start="00:11:17.600" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""but they're generally not free""" start="00:11:19.160" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""without restrictions to use.""" start="00:11:21.960" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""Most of these things, even Llama,""" start="00:11:23.800" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""which you can use on your own machine,""" start="00:11:27.280" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""have restrictions that you cannot use it""" start="00:11:28.680" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""to train your own model.""" start="00:11:31.440" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""This is something that, you know,""" start="00:11:32.520" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""it costs millions and millions of dollars""" start="00:11:35.120" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""to train and produce these models.""" start="00:11:37.520" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""And that's just computation costs.""" start="00:11:40.760" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""They do not want you""" start="00:11:42.320" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""stealing all that work by training your own models""" start="00:11:45.520" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""based on their output.""" start="00:11:47.840" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""But there are research LLMs that do, I believe,""" start="00:11:48.800" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""conform to free software principles.""" start="00:11:55.360" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""They're just not as good yet.""" start="00:11:58.000" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""And I think that might change in the future.""" start="00:11:59.520" video="mainVideo-llm" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""The Future""" start="00:12:02.840" video="mainVideo-llm" id="subtitle"]]</div>[[!template text="""So speaking of the future,""" start="00:12:02.840" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""one of the things I'd like to point out""" start="00:12:04.120" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""is that like the demos I showed you are based on,""" start="00:12:07.520" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""I'm using OpenAI 3.5 model.""" start="00:12:09.640" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""That's more than, well, no,""" start="00:12:13.520" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""it's like a year old basically at this point.""" start="00:12:16.440" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""And things are moving fast.""" start="00:12:18.200" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""They came out with 4.0.""" start="00:12:21.080" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""4.0 is significantly better.""" start="00:12:22.040" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""I don't have access to it.""" start="00:12:23.320" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""Even though I'm using the API and I'm paying money for it,""" start="00:12:24.320" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""you only can get access to 4.0""" start="00:12:30.840" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""if you can spend a dollar.""" start="00:12:33.640" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""And I've never been able to spend,""" start="00:12:34.440" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""use so much API use that I've spent a dollar.""" start="00:12:36.320" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""So I have, I don't have 4.0, but I've tried it""" start="00:12:38.200" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""because I do pay for this""" start="00:12:44.480" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""so I could get access to 4.0""" start="00:12:46.640" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""and it is substantially better.""" start="00:12:48.341" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""By all reports, it's,""" start="00:12:49.600" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""the difference is extremely significant.""" start="00:12:50.520" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""I would not be surprised""" start="00:12:53.840" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""if some of the limitations and drawbacks I described""" start="00:12:55.160" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""mostly went away with 4.0.""" start="00:12:59.760" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""We're probably at a stage""" start="00:13:02.040" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""where regexes will work maybe 5% of the time""" start="00:13:06.680" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""if you try them.""" start="00:13:09.240" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""But with 4.0, it could work like 80% of the time.""" start="00:13:10.120" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""Now, is that good enough?""" start="00:13:13.640" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""Probably not, but it's a,""" start="00:13:14.560" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""I wouldn't be surprised if you got results like that.""" start="00:13:17.280" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""And in a year's time, in two years time,""" start="00:13:20.320" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""no one knows how much this is going to play out""" start="00:13:22.920" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""before progress stalls,""" start="00:13:26.680" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""but there are a lot of interesting research.""" start="00:13:27.520" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""I don't think, research wise,""" start="00:13:32.320" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""I don't think things have slowed down.""" start="00:13:34.280" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""You're still seeing a lot of advances.""" start="00:13:35.760" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""You're still seeing a lot of models coming out""" start="00:13:38.720" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""and that will come out.""" start="00:13:41.000" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""That will be each one, one upping the other one""" start="00:13:41.840" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""in terms of quality.""" start="00:13:46.280" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""It'll be really interesting to see how this all plays out.""" start="00:13:49.960" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""I think that message here is that""" start="00:13:52.760" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""we're at the beginning here.""" start="00:13:55.920" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""This is why I think this talk is important.""" start="00:13:58.000" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""I think this is why we should be""" start="00:14:01.240" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""paying attention to this stuff.""" start="00:14:02.280" video="mainVideo-llm" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""LLMs in Emacs - existing packages""" start="00:14:08.200" video="mainVideo-llm" id="subtitle"]]</div>[[!template text="""Let's talk about the existing packages.""" start="00:14:08.200" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""Because there's a lot out there, people have,""" start="00:14:11.040" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""I think people have been integrating with""" start="00:14:13.200" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""these LLMs that often have a relatively easy to use API.""" start="00:14:17.040" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""So it's kind of natural that people""" start="00:14:21.240" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""have already put out a lot of packages.""" start="00:14:24.040" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""Coming off this problem from a lot of different angles,""" start="00:14:25.680" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""I don't have time to go through""" start="00:14:28.320" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""all of these packages.""" start="00:14:30.640" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""These are great packages though.""" start="00:14:31.960" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""If you're not familiar with them,""" start="00:14:33.560" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""please check them out.""" start="00:14:35.280" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""And they all are doing slightly different things.""" start="00:14:37.680" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""Some of these are relatively straightforward.""" start="00:14:41.000" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""Interactions, just a way to""" start="00:14:43.960" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""almost in a comment sort of way to kind of""" start="00:14:47.920" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""have just an interaction,""" start="00:14:52.680" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""long running interaction with an LLM""" start="00:14:54.200" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""where you kind of build off previous responses,""" start="00:14:55.480" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""kind of like the OpenAI's UI.""" start="00:14:59.040" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""Two very more Emacsy things where you can sort of""" start="00:15:01.800" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""embed these LLM responses within a org-mode block""" start="00:15:08.560" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""using the org-mode's context.""" start="00:15:13.680" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""Or GitHub Copilot integration where you can use it""" start="00:15:15.240" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""for auto completion in a very powerful,""" start="00:15:20.960" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""you know, this stuff is very useful if it could figure out""" start="00:15:23.320" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""what you're trying to do based on the context.""" start="00:15:27.320" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""It's quite effective.""" start="00:15:29.200" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""But I want to kind of call out one thing""" start="00:15:31.840" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""that I'd like to see change.""" start="00:15:36.360" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""Which is that users right now,""" start="00:15:38.240" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""not all of these have a choice of,""" start="00:15:42.600" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""first of all, there's a lot of them.""" start="00:15:45.200" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""Each one of them is doing their own calls.""" start="00:15:47.960" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""And each one of them is, so each one of them""" start="00:15:49.640" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""has their own interfaces.""" start="00:15:54.000" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""They're rewriting the interface to OpenAI or wherever.""" start="00:15:55.240" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""And they're not, they don't, most of these""" start="00:15:57.720" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""do not make it that configurable or at all configurable""" start="00:16:00.120" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""what LLM use.""" start="00:16:05.120" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""This is not good.""" start="00:16:06.600" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""It is important that we use,""" start="00:16:07.240" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""we give the user a way to change the LLM they use.""" start="00:16:09.680" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""And that is because you might not be comfortable""" start="00:16:15.680" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""sending your requests over to a private corporation""" start="00:16:21.080" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""where you don't get to see how they use their data.""" start="00:16:24.440" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""Your data, really.""" start="00:16:27.800" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""That's especially true with things like embeddings""" start="00:16:29.800" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""where you might be sending over your documents.""" start="00:16:33.320" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""You're just giving them your documents, basically.""" start="00:16:35.040" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""And, you know, that does happen.""" start="00:16:37.520" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""I don't think really that there's a reason""" start="00:16:40.760" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""to be uncomfortable with this,""" start="00:16:43.600" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""but that, you know, people are uncomfortable and that's okay.""" start="00:16:44.640" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""People might want to use a local machine,""" start="00:16:51.440" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""a local LLM for maximum privacy.""" start="00:16:53.240" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""That's something we should allow.""" start="00:16:58.360" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""People might want to especially use free software.""" start="00:17:00.640" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""That's something we should definitely allow.""" start="00:17:04.520" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""This is Emacs.""" start="00:17:05.840" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""We need to encourage that.""" start="00:17:07.280" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""But right now, as most of these things are written,""" start="00:17:08.240" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""you can't do it.""" start="00:17:12.160" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""And they're spending precious time""" start="00:17:13.960" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""just doing things themselves.""" start="00:17:17.840" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""This is why I wrote LLM, which is...""" start="00:17:18.880" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""it will just make that connection to the LLM for you""" start="00:17:20.840" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""and it will connect to, you know, it has plugins.""" start="00:17:23.040" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""So if you can, the user can configure what plugin""" start="00:17:26.720" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""it actually goes to.""" start="00:17:30.280" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""Does it go to OpenAI?""" start="00:17:31.360" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""Does it go to Google Cloud Vertex?""" start="00:17:32.400" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""Does it go to Llama on your machine?""" start="00:17:35.240" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""We're using Ollama,""" start="00:17:37.000" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""which is just a way to run Llama locally.""" start="00:17:38.400" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""And more things in the future, I hope.""" start="00:17:41.000" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""So this is, I'm hoping that we use this.""" start="00:17:47.960" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""It's designed to be sort of maximally usable.""" start="00:17:52.080" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""You don't need to install anything.""" start="00:17:54.840" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""It's on GNU ELPA.""" start="00:17:56.280" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""So even if you write something""" start="00:17:58.360" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""that you want to contribute to GNU ELPA,""" start="00:17:59.880" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""you can use it because it's on GNU ELPA.""" start="00:18:01.080" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""It's part of the Emacs package, Emacs core packages.""" start="00:18:02.880" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""So, but it has no functionality.""" start="00:18:06.440" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""It's really just there as a library""" start="00:18:09.880" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""to use by other things offering functionality. Okay.""" start="00:18:11.720" video="mainVideo-llm" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Abstracting LLM challenges""" start="00:18:15.960" video="mainVideo-llm" id="subtitle"]]</div>[[!template text="""And it's a little bit difficult to abstract.""" start="00:18:15.960" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""I want to point this out""" start="00:18:19.840" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""because I think it's an important point""" start="00:18:21.160" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""is that the, it's, some of these LLMs, for example,""" start="00:18:23.600" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""have image generation.""" start="00:18:29.520" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""Some do not.""" start="00:18:30.440" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""Some of them have very large context windows, even for chat.""" start="00:18:31.280" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""You say, okay, all these things can do chat.""" start="00:18:35.320" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""Okay.""" start="00:18:37.000" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""Yeah, kind of.""" start="00:18:37.320" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""Some of these things you could pass a book to,""" start="00:18:38.080" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""like Anthropic's API.""" start="00:18:40.000" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""Most, you cannot.""" start="00:18:41.240" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""So there really are big differences""" start="00:18:43.040" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""in how these things work.""" start="00:18:45.560" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""I hope those differences diminish in the future.""" start="00:18:46.400" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""But it's just one of the challenges""" start="00:18:51.540" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""that I hope we can work through in the LLM library.""" start="00:18:53.801" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""So it's compatible, but there's definitely""" start="00:18:57.521" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""limits to that compatibility.""" start="00:19:02.161" video="mainVideo-llm" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Emacs is the ideal interface for LLMs""" start="00:19:04.080" video="mainVideo-llm" id="subtitle"]]</div>[[!template text="""I want to point out just to finish off,""" start="00:19:04.080" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""Emacs is the, Emacs has real power here""" start="00:19:06.161" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""that nothing else I think in the industry is offering.""" start="00:19:12.880" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""First of all, people that use Emacs""" start="00:19:15.680" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""tend to do a lot of things in Emacs.""" start="00:19:19.280" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""We have our to-dos in Emacs with the org mode.""" start="00:19:20.440" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""We have mail.""" start="00:19:22.160" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""We, you know, we might read email and we might,""" start="00:19:23.000" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""and respond to email in Emacs.""" start="00:19:25.720" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""We might have notes in Emacs.""" start="00:19:27.680" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""This is very powerful.""" start="00:19:29.200" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""Using... there's not other stuff like that.""" start="00:19:31.360" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""And you could feed this stuff to an LLM.""" start="00:19:34.160" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""You could do interesting things""" start="00:19:35.760" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""using a combination of all this data.""" start="00:19:37.040" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""No one else could do this.""" start="00:19:38.560" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""We need to start thinking about it.""" start="00:19:40.400" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""Secondly, Emacs can execute commands.""" start="00:19:41.760" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""This might be a bad idea.""" start="00:19:45.040" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""This might be how the robots take over,""" start="00:19:46.240" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""but you could have the LLMs respond with Emacs""" start="00:19:48.400" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""commands and run those Emacs commands""" start="00:19:51.800" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""and tell the LLM the response and have it do things""" start="00:19:54.200" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""as your agent in the editor.""" start="00:19:57.080" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""I think we need to explore ideas like this.""" start="00:19:58.680" video="mainVideo-llm" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Outro""" start="00:20:01.960" video="mainVideo-llm" id="subtitle"]]</div>[[!template text="""And I think we need to share these ideas""" start="00:20:01.960" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""and we need to make sure that we're pushing the""" start="00:20:04.280" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""envelope for Emacs and actually, you know, doing things,""" start="00:20:07.040" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""sharing ideas, sharing progress,""" start="00:20:10.520" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""and kind of seeing how far we can push this stuff.""" start="00:20:12.960" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""Let's really help Emacs out, be sort of,""" start="00:20:15.200" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""take advantage of this super powerful technique.""" start="00:20:20.640" video="mainVideo-llm" id="subtitle"]]
+[[!template text="""Thank you for listening.""" start="00:20:24.520" video="mainVideo-llm" id="subtitle"]]
+
+</div>
+
+Captioner: bala
+
+<div class="transcript transcript-qanda"><a name="llm-qanda-transcript"></a><h1>Q&A transcript (unedited)</h1>
+
+[[!template text="""[Speaker 0]: Okay. Hello, everyone.""" start="00:00:13.099" video="qanda-llm" id="subtitle"]]
+[[!template text="""I think this is the start of the Q&A session.""" start="00:00:16.560" video="qanda-llm" id="subtitle"]]
+[[!template text="""So people can just ask me questions here.""" start="00:00:25.119" video="qanda-llm" id="subtitle"]]
+[[!template text="""Or I think maybe these questions are going to""" start="00:00:28.259" video="qanda-llm" id="subtitle"]]
+[[!template text="""be read by someone. Yes,""" start="00:00:30.560" video="qanda-llm" id="subtitle"]]
+[[!template text="""thank you. Should I start doing that?""" start="00:00:34.680" video="qanda-llm" id="subtitle"]]
+[[!template text="""I also know that there's questions in the""" start="00:00:39.280" video="qanda-llm" id="subtitle"]]
+[[!template text="""either pad room, so I could start out""" start="00:00:41.320" video="qanda-llm" id="subtitle"]]
+[[!template text="""answering those as well.""" start="00:00:42.280" video="qanda-llm" id="subtitle"]]
+[[!template text="""[Speaker 1]: Right, sure. Whichever way you prefer.""" start="00:00:45.020" video="qanda-llm" id="subtitle"]]
+[[!template text="""If you prefer to read the questions yourself,""" start="00:00:46.860" video="qanda-llm" id="subtitle"]]
+[[!template text="""by all means, or if you would prefer me to""" start="00:00:48.940" video="qanda-llm" id="subtitle"]]
+[[!template text="""read them to you, that also works.""" start="00:00:50.080" video="qanda-llm" id="subtitle"]]
+[[!template text="""[Speaker 2]: Oh, I see.""" start="00:00:50.580" video="qanda-llm" id="subtitle"]]
+[[!template text="""[Speaker 0]: Why don't you read them to me?""" start="00:00:51.600" video="qanda-llm" id="subtitle"]]
+[[!template text="""I think it'll just be more interesting then.""" start="00:00:53.260" video="qanda-llm" id="subtitle"]]
+[[!template text="""[Speaker 1]: Sure. OK, let's see. The first question is,""" start="00:00:56.820" video="qanda-llm" id="subtitle"]]
+[[!template text="""what is your use case for embedding,""" start="00:00:58.360" video="qanda-llm" id="subtitle"]]
+[[!template text="""mainly for searching?""" start="00:01:00.060" video="qanda-llm" id="subtitle"]]
+[[!template text="""[Speaker 0]: Yeah, I mean, I think the use case really is""" start="00:01:06.180" video="qanda-llm" id="subtitle"]]
+[[!template text="""searching. And I think it is very useful when""" start="00:01:12.100" video="qanda-llm" id="subtitle"]]
+[[!template text="""you're searching for something in a vague""" start="00:01:15.060" video="qanda-llm" id="subtitle"]]
+[[!template text="""way. Just to give you an example,""" start="00:01:18.280" video="qanda-llm" id="subtitle"]]
+[[!template text="""I have a note system called EKG.""" start="00:01:23.860" video="qanda-llm" id="subtitle"]]
+[[!template text="""I type all my notes on it.""" start="00:01:25.760" video="qanda-llm" id="subtitle"]]
+[[!template text="""You can find it on GitHub and Melba.""" start="00:01:28.620" video="qanda-llm" id="subtitle"]]
+[[!template text="""But I wrote something at some point a year""" start="00:01:34.140" video="qanda-llm" id="subtitle"]]
+[[!template text="""ago or something. I wrote something that I""" start="00:01:35.840" video="qanda-llm" id="subtitle"]]
+[[!template text="""just vaguely remembered.""" start="00:01:36.600" video="qanda-llm" id="subtitle"]]
+[[!template text="""Oh, this was about a certain kind of""" start="00:01:38.800" video="qanda-llm" id="subtitle"]]
+[[!template text="""communication. I wanted communicating to""" start="00:01:41.580" video="qanda-llm" id="subtitle"]]
+[[!template text="""large audiences. There's some interesting tip""" start="00:01:43.280" video="qanda-llm" id="subtitle"]]
+[[!template text="""that I wrote down that was really cool.""" start="00:01:44.700" video="qanda-llm" id="subtitle"]]
+[[!template text="""And I was like, well, I need to find it.""" start="00:01:49.920" video="qanda-llm" id="subtitle"]]
+[[!template text="""So I did an embedding search for something""" start="00:01:52.260" video="qanda-llm" id="subtitle"]]
+[[!template text="""like, you know, tips for communicating.""" start="00:01:55.479" video="qanda-llm" id="subtitle"]]
+[[!template text="""Like those words may not have been in what I""" start="00:01:58.979" video="qanda-llm" id="subtitle"]]
+[[!template text="""was trying to find at all,""" start="00:02:00.020" video="qanda-llm" id="subtitle"]]
+[[!template text="""But it was able to find it.""" start="00:02:02.680" video="qanda-llm" id="subtitle"]]
+[[!template text="""And that is something that's very hard to do""" start="00:02:05.840" video="qanda-llm" id="subtitle"]]
+[[!template text="""in other ways. Like, you know,""" start="00:02:07.200" video="qanda-llm" id="subtitle"]]
+[[!template text="""if you had to do this with normal search,""" start="00:02:08.520" video="qanda-llm" id="subtitle"]]
+[[!template text="""you have to do synonyms.""" start="00:02:09.199" video="qanda-llm" id="subtitle"]]
+[[!template text="""And like maybe those synonyms wouldn't cover""" start="00:02:10.940" video="qanda-llm" id="subtitle"]]
+[[!template text="""it. Like with embedding,""" start="00:02:11.960" video="qanda-llm" id="subtitle"]]
+[[!template text="""you can basically get at like the vague""" start="00:02:13.940" video="qanda-llm" id="subtitle"]]
+[[!template text="""sentiment. You're like,""" start="00:02:14.960" video="qanda-llm" id="subtitle"]]
+[[!template text="""you know, you're, you know,""" start="00:02:17.320" video="qanda-llm" id="subtitle"]]
+[[!template text="""you can really query on like what things are""" start="00:02:19.520" video="qanda-llm" id="subtitle"]]
+[[!template text="""about as opposed to what words they have.""" start="00:02:21.760" video="qanda-llm" id="subtitle"]]
+[[!template text="""Also, it's super good for similarity search.""" start="00:02:25.600" video="qanda-llm" id="subtitle"]]
+[[!template text="""So you could say, look,""" start="00:02:27.720" video="qanda-llm" id="subtitle"]]
+[[!template text="""I have a bunch of things that are encoded""" start="00:02:30.040" video="qanda-llm" id="subtitle"]]
+[[!template text="""with embeddings that I want to show.""" start="00:02:31.400" video="qanda-llm" id="subtitle"]]
+[[!template text="""For example, you can make an embedding for""" start="00:02:34.120" video="qanda-llm" id="subtitle"]]
+[[!template text="""every buffer. You'd be like,""" start="00:02:35.220" video="qanda-llm" id="subtitle"]]
+[[!template text="""well, show me buffers that are similar to""" start="00:02:37.060" video="qanda-llm" id="subtitle"]]
+[[!template text="""this buffer. That doesn't sound super useful,""" start="00:02:38.740" video="qanda-llm" id="subtitle"]]
+[[!template text="""but this is the kind of thing you could do.""" start="00:02:40.440" video="qanda-llm" id="subtitle"]]
+[[!template text="""And so if you have a bunch of notes or""" start="00:02:45.300" video="qanda-llm" id="subtitle"]]
+[[!template text="""something else that you want to search on,""" start="00:02:46.720" video="qanda-llm" id="subtitle"]]
+[[!template text="""you'd be like, what's similar to this buffer?""" start="00:02:48.240" video="qanda-llm" id="subtitle"]]
+[[!template text="""Or what notes are similar to each other?""" start="00:02:51.500" video="qanda-llm" id="subtitle"]]
+[[!template text="""What buffers are similar to each other?""" start="00:02:53.040" video="qanda-llm" id="subtitle"]]
+[[!template text="""It's super good for this sort of thing.""" start="00:02:55.380" video="qanda-llm" id="subtitle"]]
+[[!template text="""And it's also good for this kind of retrieval""" start="00:03:00.780" video="qanda-llm" id="subtitle"]]
+[[!template text="""augmented generation, where you sort of,""" start="00:03:03.080" video="qanda-llm" id="subtitle"]]
+[[!template text="""you retrieve things and the purpose is not""" start="00:03:05.080" video="qanda-llm" id="subtitle"]]
+[[!template text="""for you to see them, but then you pass that""" start="00:03:06.600" video="qanda-llm" id="subtitle"]]
+[[!template text="""to the LLM. And then it's able to be a little""" start="00:03:12.040" video="qanda-llm" id="subtitle"]]
+[[!template text="""bit more accurate because it has the actual""" start="00:03:14.340" video="qanda-llm" id="subtitle"]]
+[[!template text="""text that you're trying to,""" start="00:03:15.760" video="qanda-llm" id="subtitle"]]
+[[!template text="""that is relevant, and it can cite from and""" start="00:03:18.960" video="qanda-llm" id="subtitle"]]
+[[!template text="""things like that. And then it could give you""" start="00:03:20.720" video="qanda-llm" id="subtitle"]]
+[[!template text="""a much better answer that's kind of,""" start="00:03:22.260" video="qanda-llm" id="subtitle"]]
+[[!template text="""you know, not just from its own little neural""" start="00:03:25.520" video="qanda-llm" id="subtitle"]]
+[[!template text="""nets and memory.""" start="00:03:26.320" video="qanda-llm" id="subtitle"]]
+[[!template text="""[Speaker 1]: Cool, thanks. Let's see,""" start="00:03:31.920" video="qanda-llm" id="subtitle"]]
+[[!template text="""next question. What do you think about embed""" start="00:03:35.740" video="qanda-llm" id="subtitle"]]
+[[!template text="""Emacs manual versus GPT's Emacs manual?""" start="00:03:40.160" video="qanda-llm" id="subtitle"]]
+[[!template text="""[Speaker 0]: I'm not exactly sure what this question is""" start="00:03:45.480" video="qanda-llm" id="subtitle"]]
+[[!template text="""trying to say. So I mean,""" start="00:03:46.980" video="qanda-llm" id="subtitle"]]
+[[!template text="""if someone wrote that and wants to expand on""" start="00:03:51.000" video="qanda-llm" id="subtitle"]]
+[[!template text="""it a little bit, but I think that maybe""" start="00:03:55.080" video="qanda-llm" id="subtitle"]]
+[[!template text="""you're saying like you could embed,""" start="00:03:58.420" video="qanda-llm" id="subtitle"]]
+[[!template text="""have embeddings for like various,""" start="00:04:00.280" video="qanda-llm" id="subtitle"]]
+[[!template text="""like every paragraph or something of the""" start="00:04:02.520" video="qanda-llm" id="subtitle"]]
+[[!template text="""Emacs manual. But it's also the case that""" start="00:04:04.540" video="qanda-llm" id="subtitle"]]
+[[!template text="""like GPT is already for sure already read it,""" start="00:04:06.500" video="qanda-llm" id="subtitle"]]
+[[!template text="""right? And so you could ask questions that""" start="00:04:09.760" video="qanda-llm" id="subtitle"]]
+[[!template text="""are about Emacs and our ELISP or whatever""" start="00:04:13.460" video="qanda-llm" id="subtitle"]]
+[[!template text="""part of the manual you want to find.""" start="00:04:15.200" video="qanda-llm" id="subtitle"]]
+[[!template text="""And it will do a reasonably good job,""" start="00:04:19.760" video="qanda-llm" id="subtitle"]]
+[[!template text="""especially the better models will do a""" start="00:04:22.280" video="qanda-llm" id="subtitle"]]
+[[!template text="""reasonably good job of saying you something""" start="00:04:24.620" video="qanda-llm" id="subtitle"]]
+[[!template text="""that is vaguely accurate.""" start="00:04:26.040" video="qanda-llm" id="subtitle"]]
+[[!template text="""But if you do this retrieval augmented""" start="00:04:29.440" video="qanda-llm" id="subtitle"]]
+[[!template text="""generation with embeddings,""" start="00:04:30.580" video="qanda-llm" id="subtitle"]]
+[[!template text="""you can get something that is very accurate.""" start="00:04:32.640" video="qanda-llm" id="subtitle"]]
+[[!template text="""At least I think. I haven't tried it,""" start="00:04:36.700" video="qanda-llm" id="subtitle"]]
+[[!template text="""but this is a technique that works in other""" start="00:04:38.760" video="qanda-llm" id="subtitle"]]
+[[!template text="""similar cases. So you can also imagine like,""" start="00:04:43.040" video="qanda-llm" id="subtitle"]]
+[[!template text="""oh, this whole thing I said,""" start="00:04:44.320" video="qanda-llm" id="subtitle"]]
+[[!template text="""like, oh, you can query for vague things and""" start="00:04:47.860" video="qanda-llm" id="subtitle"]]
+[[!template text="""get parts of the manual,""" start="00:04:49.140" video="qanda-llm" id="subtitle"]]
+[[!template text="""perhaps. I'm not exactly sure if that would""" start="00:04:52.680" video="qanda-llm" id="subtitle"]]
+[[!template text="""be useful, but maybe. Usually when I'm""" start="00:04:55.120" video="qanda-llm" id="subtitle"]]
+[[!template text="""looking things up in the Emacs manual or""" start="00:04:57.040" video="qanda-llm" id="subtitle"]]
+[[!template text="""Elist manual, I have something extremely""" start="00:04:58.320" video="qanda-llm" id="subtitle"]]
+[[!template text="""specific and I kind of know where to look.""" start="00:05:00.020" video="qanda-llm" id="subtitle"]]
+[[!template text="""But having other ways to get at this""" start="00:05:02.960" video="qanda-llm" id="subtitle"]]
+[[!template text="""information is always good.""" start="00:05:04.000" video="qanda-llm" id="subtitle"]]
+[[!template text="""[Speaker 1]: Right. Looks like they added a clarification""" start="00:05:10.240" video="qanda-llm" id="subtitle"]]
+[[!template text="""if you would like to read that yourself,""" start="00:05:12.280" video="qanda-llm" id="subtitle"]]
+[[!template text="""or would you like me to read it for you?""" start="00:05:14.180" video="qanda-llm" id="subtitle"]]
+[[!template text="""[Speaker 0]: Yeah. Yes, OK. It says,""" start="00:05:17.640" video="qanda-llm" id="subtitle"]]
+[[!template text="""I've never tried. Yeah,""" start="00:05:20.460" video="qanda-llm" id="subtitle"]]
+[[!template text="""the question is like OK,""" start="00:05:21.500" video="qanda-llm" id="subtitle"]]
+[[!template text="""there is a difference between the kind of""" start="00:05:23.100" video="qanda-llm" id="subtitle"]]
+[[!template text="""thing as I just described.""" start="00:05:23.860" video="qanda-llm" id="subtitle"]]
+[[!template text="""I have not tried the difference with the EMAX""" start="00:05:26.200" video="qanda-llm" id="subtitle"]]
+[[!template text="""manual itself. It'd be interesting to see""" start="00:05:31.560" video="qanda-llm" id="subtitle"]]
+[[!template text="""what this is, but I would expect like these""" start="00:05:33.700" video="qanda-llm" id="subtitle"]]
+[[!template text="""techniques, the retrieval augmented""" start="00:05:35.140" video="qanda-llm" id="subtitle"]]
+[[!template text="""generation is generally pretty good.""" start="00:05:38.840" video="qanda-llm" id="subtitle"]]
+[[!template text="""And I suspect it would,""" start="00:05:41.240" video="qanda-llm" id="subtitle"]]
+[[!template text="""I would bet money on the fact that it's gonna""" start="00:05:43.580" video="qanda-llm" id="subtitle"]]
+[[!template text="""give you, you know, better results than just,""" start="00:05:45.820" video="qanda-llm" id="subtitle"]]
+[[!template text="""you know, doing a free form query without any""" start="00:05:48.160" video="qanda-llm" id="subtitle"]]
+[[!template text="""retrieval augmented generation.""" start="00:05:49.440" video="qanda-llm" id="subtitle"]]
+[[!template text="""[Speaker 1]: Cool. Let's see. Next question.""" start="00:05:54.240" video="qanda-llm" id="subtitle"]]
+[[!template text="""When deferring commit messages to an LLM,""" start="00:05:56.380" video="qanda-llm" id="subtitle"]]
+[[!template text="""what, if anything, do you find you might have""" start="00:05:59.700" video="qanda-llm" id="subtitle"]]
+[[!template text="""[Speaker 0]: lost? Yeah, it's a good question.""" start="00:06:02.940" video="qanda-llm" id="subtitle"]]
+[[!template text="""When deferring anything to a computer,""" start="00:06:06.060" video="qanda-llm" id="subtitle"]]
+[[!template text="""like, you know, I used to have to remember""" start="00:06:08.860" video="qanda-llm" id="subtitle"]]
+[[!template text="""how to get places, and now,""" start="00:06:11.200" video="qanda-llm" id="subtitle"]]
+[[!template text="""you know, on the few occasions which I drive,""" start="00:06:14.540" video="qanda-llm" id="subtitle"]]
+[[!template text="""like, It could just tell me how to get""" start="00:06:16.560" video="qanda-llm" id="subtitle"]]
+[[!template text="""places. So similar things could occur here""" start="00:06:21.960" video="qanda-llm" id="subtitle"]]
+[[!template text="""where like, okay, I'm just leaving the LLM.""" start="00:06:24.960" video="qanda-llm" id="subtitle"]]
+[[!template text="""And so I'm kind of missing out on some""" start="00:06:27.380" video="qanda-llm" id="subtitle"]]
+[[!template text="""opportunity to think coherently about a""" start="00:06:30.040" video="qanda-llm" id="subtitle"]]
+[[!template text="""particular commit. Particular commits are""" start="00:06:32.440" video="qanda-llm" id="subtitle"]]
+[[!template text="""kind of low level. I don't think it's usually""" start="00:06:36.140" video="qanda-llm" id="subtitle"]]
+[[!template text="""relatively obvious and what they're doing.""" start="00:06:39.340" video="qanda-llm" id="subtitle"]]
+[[!template text="""And in this case, I think there's not much""" start="00:06:42.600" video="qanda-llm" id="subtitle"]]
+[[!template text="""loss. But for sure, in other cases,""" start="00:06:44.220" video="qanda-llm" id="subtitle"]]
+[[!template text="""if you're starting to get into situations""" start="00:06:46.400" video="qanda-llm" id="subtitle"]]
+[[!template text="""where it's writing your emails and all this""" start="00:06:48.640" video="qanda-llm" id="subtitle"]]
+[[!template text="""stuff. First of all, it's in 1 sense,""" start="00:06:52.920" video="qanda-llm" id="subtitle"]]
+[[!template text="""I'm not sure you might be losing something by""" start="00:06:55.580" video="qanda-llm" id="subtitle"]]
+[[!template text="""delegating things. On the other hand,""" start="00:06:57.520" video="qanda-llm" id="subtitle"]]
+[[!template text="""you know, when you're interacting with these""" start="00:06:59.120" video="qanda-llm" id="subtitle"]]
+[[!template text="""LLMs, you have to be extremely specific about""" start="00:07:01.280" video="qanda-llm" id="subtitle"]]
+[[!template text="""what you want, or else it's just not going to""" start="00:07:03.120" video="qanda-llm" id="subtitle"]]
+[[!template text="""do a good job. And that might actually be a""" start="00:07:07.540" video="qanda-llm" id="subtitle"]]
+[[!template text="""good thing. So the question might be that""" start="00:07:09.440" video="qanda-llm" id="subtitle"]]
+[[!template text="""maybe you might gain things by using an LLM""" start="00:07:11.820" video="qanda-llm" id="subtitle"]]
+[[!template text="""to do your work. It might not actually even""" start="00:07:13.860" video="qanda-llm" id="subtitle"]]
+[[!template text="""save you that much time,""" start="00:07:15.060" video="qanda-llm" id="subtitle"]]
+[[!template text="""at least initially, because you have to kind""" start="00:07:18.480" video="qanda-llm" id="subtitle"]]
+[[!template text="""of practice again super specific about what""" start="00:07:20.460" video="qanda-llm" id="subtitle"]]
+[[!template text="""you want to get out of the output it's going""" start="00:07:22.740" video="qanda-llm" id="subtitle"]]
+[[!template text="""to give you so like oh I'm you know maybe you""" start="00:07:26.940" video="qanda-llm" id="subtitle"]]
+[[!template text="""know you're on the emacs devel mailing list""" start="00:07:29.600" video="qanda-llm" id="subtitle"]]
+[[!template text="""and you're like okay write this email about""" start="00:07:31.780" video="qanda-llm" id="subtitle"]]
+[[!template text="""this about this And here's what I want to""" start="00:07:34.000" video="qanda-llm" id="subtitle"]]
+[[!template text="""say. And here's the kind of tone I want to""" start="00:07:35.370" video="qanda-llm" id="subtitle"]]
+[[!template text="""use. And here's the like,""" start="00:07:36.020" video="qanda-llm" id="subtitle"]]
+[[!template text="""oh, you might want to specify like everything""" start="00:07:37.660" video="qanda-llm" id="subtitle"]]
+[[!template text="""that you kind of want to get into this.""" start="00:07:39.620" video="qanda-llm" id="subtitle"]]
+[[!template text="""Usually it's easier just to write the email.""" start="00:07:42.180" video="qanda-llm" id="subtitle"]]
+[[!template text="""But I think that practice of kind of""" start="00:07:45.600" video="qanda-llm" id="subtitle"]]
+[[!template text="""understanding what you want is not something""" start="00:07:48.080" video="qanda-llm" id="subtitle"]]
+[[!template text="""you normally do. And I think it's going to be""" start="00:07:52.680" video="qanda-llm" id="subtitle"]]
+[[!template text="""an interesting exercise that will help people""" start="00:07:56.040" video="qanda-llm" id="subtitle"]]
+[[!template text="""understand. That said,""" start="00:07:57.280" video="qanda-llm" id="subtitle"]]
+[[!template text="""I haven't done that much of that,""" start="00:07:58.860" video="qanda-llm" id="subtitle"]]
+[[!template text="""so I can't say, oh, yeah,""" start="00:07:59.900" video="qanda-llm" id="subtitle"]]
+[[!template text="""I've done this and it works for me.""" start="00:08:01.080" video="qanda-llm" id="subtitle"]]
+[[!template text="""Maybe. I think it's an interesting thing to""" start="00:08:03.000" video="qanda-llm" id="subtitle"]]
+[[!template text="""explore.""" start="00:08:03.120" video="qanda-llm" id="subtitle"]]
+[[!template text="""[Speaker 1]: Sure. Thanks. Let's see.""" start="00:08:07.720" video="qanda-llm" id="subtitle"]]
+[[!template text="""Let's see. Can you share your font settings""" start="00:08:10.840" video="qanda-llm" id="subtitle"]]
+[[!template text="""in your Emacs config? Those are some nice""" start="00:08:13.440" video="qanda-llm" id="subtitle"]]
+[[!template text="""fonts for reading.""" start="00:08:14.200" video="qanda-llm" id="subtitle"]]
+[[!template text="""[Speaker 0]: Yeah, I think I was using Menlo at the time.""" start="00:08:18.900" video="qanda-llm" id="subtitle"]]
+[[!template text="""Unfortunately, I don't save those kinds of""" start="00:08:20.840" video="qanda-llm" id="subtitle"]]
+[[!template text="""things, like a history of this.""" start="00:08:21.940" video="qanda-llm" id="subtitle"]]
+[[!template text="""I've kind of switched now to,""" start="00:08:24.000" video="qanda-llm" id="subtitle"]]
+[[!template text="""what was that? I think I wrote it down in""" start="00:08:27.340" video="qanda-llm" id="subtitle"]]
+[[!template text="""the, I switched to MunaSpace,""" start="00:08:29.440" video="qanda-llm" id="subtitle"]]
+[[!template text="""which just came out like a week or 2 ago,""" start="00:08:31.920" video="qanda-llm" id="subtitle"]]
+[[!template text="""and is also pretty cool.""" start="00:08:33.340" video="qanda-llm" id="subtitle"]]
+[[!template text="""So I think it's Menlo.""" start="00:08:35.440" video="qanda-llm" id="subtitle"]]
+[[!template text="""The internal question,""" start="00:08:37.380" video="qanda-llm" id="subtitle"]]
+[[!template text="""what font are you using?""" start="00:08:38.400" video="qanda-llm" id="subtitle"]]
+[[!template text="""[Speaker 1]: Indeed, yeah. It looks like someone guessed""" start="00:08:42.020" video="qanda-llm" id="subtitle"]]
+[[!template text="""as well that it might be Menlo.""" start="00:08:43.780" video="qanda-llm" id="subtitle"]]
+[[!template text="""OK, Cool. Yeah, next question.""" start="00:08:47.680" video="qanda-llm" id="subtitle"]]
+[[!template text="""In terms of standardization,""" start="00:08:48.900" video="qanda-llm" id="subtitle"]]
+[[!template text="""do you see a need for the medium to large""" start="00:08:53.260" video="qanda-llm" id="subtitle"]]
+[[!template text="""scale effort needed? And then they also""" start="00:08:55.840" video="qanda-llm" id="subtitle"]]
+[[!template text="""elaborate about it.""" start="00:08:56.960" video="qanda-llm" id="subtitle"]]
+[[!template text="""[Speaker 0]: Yeah, I mean, I do think,""" start="00:09:03.600" video="qanda-llm" id="subtitle"]]
+[[!template text="""I don't know if it's large scale,""" start="00:09:06.040" video="qanda-llm" id="subtitle"]]
+[[!template text="""but at least it's probably medium scale.""" start="00:09:08.000" video="qanda-llm" id="subtitle"]]
+[[!template text="""There's a lot of things that are missing that""" start="00:09:10.320" video="qanda-llm" id="subtitle"]]
+[[!template text="""we don't have right now in emacs when you're""" start="00:09:12.260" video="qanda-llm" id="subtitle"]]
+[[!template text="""dealing with LLMs. 1 is,""" start="00:09:13.660" video="qanda-llm" id="subtitle"]]
+[[!template text="""a prompting system. And by that,""" start="00:09:18.240" video="qanda-llm" id="subtitle"]]
+[[!template text="""I mean, you know, prompts are just like big""" start="00:09:21.820" video="qanda-llm" id="subtitle"]]
+[[!template text="""blocks of text, but there's also senses that""" start="00:09:24.520" video="qanda-llm" id="subtitle"]]
+[[!template text="""like prompts need to be composable and you""" start="00:09:28.260" video="qanda-llm" id="subtitle"]]
+[[!template text="""need to be able to iterate on parts of the""" start="00:09:30.480" video="qanda-llm" id="subtitle"]]
+[[!template text="""prompt. And so it's also customizable.""" start="00:09:36.600" video="qanda-llm" id="subtitle"]]
+[[!template text="""Users might want to customize it.""" start="00:09:38.940" video="qanda-llm" id="subtitle"]]
+[[!template text="""On the other hand, it's not super easy to""" start="00:09:41.260" video="qanda-llm" id="subtitle"]]
+[[!template text="""write the prompt. So you want really good""" start="00:09:43.820" video="qanda-llm" id="subtitle"]]
+[[!template text="""defaults. So the whole prompt system is kind""" start="00:09:47.900" video="qanda-llm" id="subtitle"]]
+[[!template text="""of complicated. That needs to be kind of""" start="00:09:51.360" video="qanda-llm" id="subtitle"]]
+[[!template text="""standardized, because I don't think there's""" start="00:09:52.580" video="qanda-llm" id="subtitle"]]
+[[!template text="""any tools for doing something like that right""" start="00:09:54.380" video="qanda-llm" id="subtitle"]]
+[[!template text="""now. I personally use my system,""" start="00:09:58.380" video="qanda-llm" id="subtitle"]]
+[[!template text="""my note system for EKG.""" start="00:10:00.220" video="qanda-llm" id="subtitle"]]
+[[!template text="""I don't think that's appropriate for""" start="00:10:01.720" video="qanda-llm" id="subtitle"]]
+[[!template text="""everyone, but it does,""" start="00:10:02.800" video="qanda-llm" id="subtitle"]]
+[[!template text="""I did write it to have some of these""" start="00:10:04.480" video="qanda-llm" id="subtitle"]]
+[[!template text="""capabilities of composability that I think""" start="00:10:06.540" video="qanda-llm" id="subtitle"]]
+[[!template text="""are useful for a prompt generation.""" start="00:10:08.360" video="qanda-llm" id="subtitle"]]
+[[!template text="""It'd be nice to have a system like that,""" start="00:10:11.940" video="qanda-llm" id="subtitle"]]
+[[!template text="""but for general use. I don't,""" start="00:10:15.660" video="qanda-llm" id="subtitle"]]
+[[!template text="""this is something I've been meaning to think""" start="00:10:17.840" video="qanda-llm" id="subtitle"]]
+[[!template text="""about, like how to do it,""" start="00:10:18.840" video="qanda-llm" id="subtitle"]]
+[[!template text="""but like this, you know,""" start="00:10:19.760" video="qanda-llm" id="subtitle"]]
+[[!template text="""if someone's interested in getting this area,""" start="00:10:21.260" video="qanda-llm" id="subtitle"]]
+[[!template text="""like, I would love to chat about that or,""" start="00:10:26.120" video="qanda-llm" id="subtitle"]]
+[[!template text="""you know, I think there's a lot of""" start="00:10:27.600" video="qanda-llm" id="subtitle"]]
+[[!template text="""interesting ideas that we could have to have""" start="00:10:31.020" video="qanda-llm" id="subtitle"]]
+[[!template text="""a system that allows us to make progress""" start="00:10:34.080" video="qanda-llm" id="subtitle"]]
+[[!template text="""here. And also, I think there's more to""" start="00:10:38.860" video="qanda-llm" id="subtitle"]]
+[[!template text="""standardization to be done.""" start="00:10:40.520" video="qanda-llm" id="subtitle"]]
+[[!template text="""1 thing I'd also like to see that we haven't""" start="00:10:42.820" video="qanda-llm" id="subtitle"]]
+[[!template text="""done yet is a system for standardizing on""" start="00:10:47.020" video="qanda-llm" id="subtitle"]]
+[[!template text="""getting structured output.""" start="00:10:48.060" video="qanda-llm" id="subtitle"]]
+[[!template text="""This is gonna be super useful.""" start="00:10:49.640" video="qanda-llm" id="subtitle"]]
+[[!template text="""I have this for open AIs API,""" start="00:10:52.280" video="qanda-llm" id="subtitle"]]
+[[!template text="""cause they support it.""" start="00:10:53.560" video="qanda-llm" id="subtitle"]]
+[[!template text="""And it's really nice, cause then you can""" start="00:10:55.940" video="qanda-llm" id="subtitle"]]
+[[!template text="""write elist functions that like,""" start="00:10:57.440" video="qanda-llm" id="subtitle"]]
+[[!template text="""okay, I'm going to call the LLM.""" start="00:10:59.380" video="qanda-llm" id="subtitle"]]
+[[!template text="""I'm gonna get structured output.""" start="00:11:00.760" video="qanda-llm" id="subtitle"]]
+[[!template text="""I know what that structure is going to be.""" start="00:11:02.040" video="qanda-llm" id="subtitle"]]
+[[!template text="""It's not going to be just a big block of""" start="00:11:03.480" video="qanda-llm" id="subtitle"]]
+[[!template text="""text. I could turn it into a,""" start="00:11:05.660" video="qanda-llm" id="subtitle"]]
+[[!template text="""you know, a P list or something.""" start="00:11:07.000" video="qanda-llm" id="subtitle"]]
+[[!template text="""And then I could get the values out of that P""" start="00:11:09.280" video="qanda-llm" id="subtitle"]]
+[[!template text="""list. And I know that way I could do,""" start="00:11:11.880" video="qanda-llm" id="subtitle"]]
+[[!template text="""I could write actual apps that are,""" start="00:11:14.220" video="qanda-llm" id="subtitle"]]
+[[!template text="""you know, very, very sort of,""" start="00:11:18.300" video="qanda-llm" id="subtitle"]]
+[[!template text="""you know, useful for very specific purposes""" start="00:11:20.200" video="qanda-llm" id="subtitle"]]
+[[!template text="""and not just for text generation.""" start="00:11:21.900" video="qanda-llm" id="subtitle"]]
+[[!template text="""And I think that's 1 of the most important""" start="00:11:24.000" video="qanda-llm" id="subtitle"]]
+[[!template text="""things we want to do. And I have some ideas""" start="00:11:27.100" video="qanda-llm" id="subtitle"]]
+[[!template text="""about how to do it. I just haven't pursued""" start="00:11:28.840" video="qanda-llm" id="subtitle"]]
+[[!template text="""those yet. But if other people have ideas,""" start="00:11:31.640" video="qanda-llm" id="subtitle"]]
+[[!template text="""I think this would be really interesting to""" start="00:11:34.340" video="qanda-llm" id="subtitle"]]
+[[!template text="""add to the LLM package.""" start="00:11:35.520" video="qanda-llm" id="subtitle"]]
+[[!template text="""So contact me there.""" start="00:11:37.260" video="qanda-llm" id="subtitle"]]
+[[!template text="""[Speaker 1]: Awesome. Quick note before we continue.""" start="00:11:42.100" video="qanda-llm" id="subtitle"]]
+[[!template text="""So I'm not sure how long we're going to be on""" start="00:11:44.440" video="qanda-llm" id="subtitle"]]
+[[!template text="""stream for, because this is the last talk""" start="00:11:46.040" video="qanda-llm" id="subtitle"]]
+[[!template text="""before the break. If we are on the stream""" start="00:11:48.640" video="qanda-llm" id="subtitle"]]
+[[!template text="""long-term, then great.""" start="00:11:49.840" video="qanda-llm" id="subtitle"]]
+[[!template text="""But if not, folks are welcome to continue""" start="00:11:51.820" video="qanda-llm" id="subtitle"]]
+[[!template text="""writing questions on the pad.""" start="00:11:53.320" video="qanda-llm" id="subtitle"]]
+[[!template text="""And hopefully, Andrew will get to them at""" start="00:11:55.140" video="qanda-llm" id="subtitle"]]
+[[!template text="""some point. Or if Andrew maybe has some extra""" start="00:11:58.020" video="qanda-llm" id="subtitle"]]
+[[!template text="""time available and wants to stay on""" start="00:11:59.960" video="qanda-llm" id="subtitle"]]
+[[!template text="""BigBlueButton here, then folks are also""" start="00:12:01.640" video="qanda-llm" id="subtitle"]]
+[[!template text="""welcome to join here and chat with Andrew""" start="00:12:03.940" video="qanda-llm" id="subtitle"]]
+[[!template text="""directly as well. Okay,""" start="00:12:08.940" video="qanda-llm" id="subtitle"]]
+[[!template text="""awesome. So yeah, the next question is,""" start="00:12:10.740" video="qanda-llm" id="subtitle"]]
+[[!template text="""what are your thoughts on the carbon""" start="00:12:12.040" video="qanda-llm" id="subtitle"]]
+[[!template text="""footprint of LLM usage?""" start="00:12:14.060" video="qanda-llm" id="subtitle"]]
+[[!template text="""[Speaker 0]: Yeah, it's a really interesting question.""" start="00:12:17.200" video="qanda-llm" id="subtitle"]]
+[[!template text="""I don't have any particular knowledge or""" start="00:12:23.180" video="qanda-llm" id="subtitle"]]
+[[!template text="""opinions about that. It's something I think""" start="00:12:25.440" video="qanda-llm" id="subtitle"]]
+[[!template text="""we should all be educating ourselves more""" start="00:12:26.980" video="qanda-llm" id="subtitle"]]
+[[!template text="""about. It is really, I mean,""" start="00:12:32.240" video="qanda-llm" id="subtitle"]]
+[[!template text="""there's 2 parts of this,""" start="00:12:33.040" video="qanda-llm" id="subtitle"]]
+[[!template text="""right? They take a, there's a huge amount of""" start="00:12:35.380" video="qanda-llm" id="subtitle"]]
+[[!template text="""carbon footprint involved in training these""" start="00:12:37.160" video="qanda-llm" id="subtitle"]]
+[[!template text="""things. Then running them is relatively""" start="00:12:38.720" video="qanda-llm" id="subtitle"]]
+[[!template text="""lightweight. So the question is not""" start="00:12:42.540" video="qanda-llm" id="subtitle"]]
+[[!template text="""necessarily like once it's trained,""" start="00:12:44.440" video="qanda-llm" id="subtitle"]]
+[[!template text="""like I don't feel like it's a big deal to""" start="00:12:46.480" video="qanda-llm" id="subtitle"]]
+[[!template text="""keep using it, but like training these things""" start="00:12:48.280" video="qanda-llm" id="subtitle"]]
+[[!template text="""is kind of like the big carbon cost of it.""" start="00:12:50.680" video="qanda-llm" id="subtitle"]]
+[[!template text="""But like right now, the way everything's""" start="00:12:53.680" video="qanda-llm" id="subtitle"]]
+[[!template text="""going, like every, you know,""" start="00:12:56.040" video="qanda-llm" id="subtitle"]]
+[[!template text="""all, you know, the top 5 or 6 tech companies""" start="00:12:59.060" video="qanda-llm" id="subtitle"]]
+[[!template text="""are all training their LLMs,""" start="00:13:00.900" video="qanda-llm" id="subtitle"]]
+[[!template text="""and this is all costing a giant amount of""" start="00:13:03.580" video="qanda-llm" id="subtitle"]]
+[[!template text="""carbon probably. On the other hand these same""" start="00:13:06.820" video="qanda-llm" id="subtitle"]]
+[[!template text="""companies are pretty good about using the""" start="00:13:08.560" video="qanda-llm" id="subtitle"]]
+[[!template text="""least amount of carbon necessary you know""" start="00:13:10.260" video="qanda-llm" id="subtitle"]]
+[[!template text="""they have their own their tricks for doing""" start="00:13:12.340" video="qanda-llm" id="subtitle"]]
+[[!template text="""things very efficiently.""" start="00:13:13.260" video="qanda-llm" id="subtitle"]]
+[[!template text="""[Speaker 1]: Cool next question, LLMs are slow and""" start="00:13:22.100" video="qanda-llm" id="subtitle"]]
+[[!template text="""responding. Do you think Emacs should provide""" start="00:13:24.000" video="qanda-llm" id="subtitle"]]
+[[!template text="""more async primitives to keep it responsive?""" start="00:13:26.680" video="qanda-llm" id="subtitle"]]
+[[!template text="""Like the URL retrieve is quite bad at""" start="00:13:29.380" video="qanda-llm" id="subtitle"]]
+[[!template text="""building API clients with it.""" start="00:13:31.720" video="qanda-llm" id="subtitle"]]
+[[!template text="""Building API clients with it?""" start="00:13:31.920" video="qanda-llm" id="subtitle"]]
+[[!template text="""[Speaker 0]: Yeah. Well, OK, so first of all,""" start="00:13:36.400" video="qanda-llm" id="subtitle"]]
+[[!template text="""people should be using the LLM client.""" start="00:13:40.240" video="qanda-llm" id="subtitle"]]
+[[!template text="""And So right now, 1 thing I should have""" start="00:13:48.740" video="qanda-llm" id="subtitle"]]
+[[!template text="""mentioned at the top is that there are new""" start="00:13:50.220" video="qanda-llm" id="subtitle"]]
+[[!template text="""packages that I recorded this talk that you""" start="00:13:52.500" video="qanda-llm" id="subtitle"]]
+[[!template text="""just saw several months ago.""" start="00:13:54.480" video="qanda-llm" id="subtitle"]]
+[[!template text="""And so like Elama, there's this package Elama""" start="00:13:57.780" video="qanda-llm" id="subtitle"]]
+[[!template text="""that came out that is using the LM package.""" start="00:13:59.700" video="qanda-llm" id="subtitle"]]
+[[!template text="""And so for example, it doesn't need to worry""" start="00:14:02.440" video="qanda-llm" id="subtitle"]]
+[[!template text="""about this sort of thing because it just uses""" start="00:14:05.140" video="qanda-llm" id="subtitle"]]
+[[!template text="""LLM and package and the LLM package worries""" start="00:14:07.560" video="qanda-llm" id="subtitle"]]
+[[!template text="""about this. And while I'm on the subject of""" start="00:14:11.680" video="qanda-llm" id="subtitle"]]
+[[!template text="""things I forgot to mention,""" start="00:14:12.540" video="qanda-llm" id="subtitle"]]
+[[!template text="""I also should just mention very quickly that""" start="00:14:15.140" video="qanda-llm" id="subtitle"]]
+[[!template text="""there is now an open source model,""" start="00:14:17.020" video="qanda-llm" id="subtitle"]]
+[[!template text="""Mistral. And so that's kind of this new thing""" start="00:14:21.680" video="qanda-llm" id="subtitle"]]
+[[!template text="""on the scene that happened after I recorded""" start="00:14:23.860" video="qanda-llm" id="subtitle"]]
+[[!template text="""my talk. And I think it's super important to""" start="00:14:26.240" video="qanda-llm" id="subtitle"]]
+[[!template text="""the community and important that we have the""" start="00:14:28.660" video="qanda-llm" id="subtitle"]]
+[[!template text="""opportunity to use that if we want to.""" start="00:14:30.620" video="qanda-llm" id="subtitle"]]
+[[!template text="""Okay, but to answer the actual question,""" start="00:14:33.160" video="qanda-llm" id="subtitle"]]
+[[!template text="""there has been some talk about the problems""" start="00:14:37.660" video="qanda-llm" id="subtitle"]]
+[[!template text="""with URL retrieve in the URL package in""" start="00:14:40.680" video="qanda-llm" id="subtitle"]]
+[[!template text="""general in EmacsDevEl.""" start="00:14:42.200" video="qanda-llm" id="subtitle"]]
+[[!template text="""It's not great. I would like to have better""" start="00:14:46.760" video="qanda-llm" id="subtitle"]]
+[[!template text="""primitives. And I've asked the author of""" start="00:14:50.900" video="qanda-llm" id="subtitle"]]
+[[!template text="""Please PLZ to kind of provide some necessary""" start="00:14:54.060" video="qanda-llm" id="subtitle"]]
+[[!template text="""callbacks. I think that's a great library.""" start="00:14:56.120" video="qanda-llm" id="subtitle"]]
+[[!template text="""And I'd like to see that kind of like,""" start="00:15:00.280" video="qanda-llm" id="subtitle"]]
+[[!template text="""It's nice that we have options,""" start="00:15:01.320" video="qanda-llm" id="subtitle"]]
+[[!template text="""and that is an option that uses curl on the""" start="00:15:03.340" video="qanda-llm" id="subtitle"]]
+[[!template text="""back end, and that has some benefits.""" start="00:15:05.140" video="qanda-llm" id="subtitle"]]
+[[!template text="""So there's this big debate about whether we""" start="00:15:09.060" video="qanda-llm" id="subtitle"]]
+[[!template text="""should have primitives or just use curl.""" start="00:15:10.600" video="qanda-llm" id="subtitle"]]
+[[!template text="""I'm not exactly sure what the right call is,""" start="00:15:13.340" video="qanda-llm" id="subtitle"]]
+[[!template text="""but there has been discussions about this.""" start="00:15:15.320" video="qanda-llm" id="subtitle"]]
+[[!template text="""[Speaker 1]: Excellent. And someone commented that GPTEL""" start="00:15:19.540" video="qanda-llm" id="subtitle"]]
+[[!template text="""is async and apparently very good at tracking""" start="00:15:21.820" video="qanda-llm" id="subtitle"]]
+[[!template text="""the point.""" start="00:15:22.300" video="qanda-llm" id="subtitle"]]
+[[!template text="""[Speaker 0]: Yes, yes, GPTEL has similar functionalities""" start="00:15:26.680" video="qanda-llm" id="subtitle"]]
+[[!template text="""to LLM, although I believe it's going to move""" start="00:15:29.800" video="qanda-llm" id="subtitle"]]
+[[!template text="""to LLM itself sometime soon.""" start="00:15:33.040" video="qanda-llm" id="subtitle"]]
+[[!template text="""[Speaker 1]: Next question, speaking of which,""" start="00:15:39.480" video="qanda-llm" id="subtitle"]]
+[[!template text="""anyone trained or fine-tuned or prompted a""" start="00:15:42.440" video="qanda-llm" id="subtitle"]]
+[[!template text="""model with their org data yet and applied it""" start="00:15:44.680" video="qanda-llm" id="subtitle"]]
+[[!template text="""to interesting use cases like planning,""" start="00:15:46.560" video="qanda-llm" id="subtitle"]]
+[[!template text="""scheduling, et cetera,""" start="00:15:47.920" video="qanda-llm" id="subtitle"]]
+[[!template text="""and maybe care to comment?""" start="00:15:49.320" video="qanda-llm" id="subtitle"]]
+[[!template text="""[Speaker 0]: I don't know anyone who is doing that.""" start="00:15:54.620" video="qanda-llm" id="subtitle"]]
+[[!template text="""I think it is interesting.""" start="00:15:55.860" video="qanda-llm" id="subtitle"]]
+[[!template text="""Like this is what I kind of mentioned at the""" start="00:15:57.800" video="qanda-llm" id="subtitle"]]
+[[!template text="""very end of the talk. There is a lot of stuff""" start="00:16:01.060" video="qanda-llm" id="subtitle"]]
+[[!template text="""there like you could you know if you""" start="00:16:02.440" video="qanda-llm" id="subtitle"]]
+[[!template text="""especially mean an LLM can kind of work as""" start="00:16:04.760" video="qanda-llm" id="subtitle"]]
+[[!template text="""sort of like a secretary kind of person that""" start="00:16:07.940" video="qanda-llm" id="subtitle"]]
+[[!template text="""could help you prioritize Still it's a""" start="00:16:12.180" video="qanda-llm" id="subtitle"]]
+[[!template text="""slightly unclear how what the best way to use""" start="00:16:14.760" video="qanda-llm" id="subtitle"]]
+[[!template text="""it is So I think there's more of a question""" start="00:16:16.480" video="qanda-llm" id="subtitle"]]
+[[!template text="""for the community about like what people have""" start="00:16:18.340" video="qanda-llm" id="subtitle"]]
+[[!template text="""been trying. I see someone has mentioned that""" start="00:16:21.140" video="qanda-llm" id="subtitle"]]
+[[!template text="""they are using it for weekly review.""" start="00:16:23.400" video="qanda-llm" id="subtitle"]]
+[[!template text="""And it's kind of nice to like,""" start="00:16:26.940" video="qanda-llm" id="subtitle"]]
+[[!template text="""maybe you could read your agenda or maybe""" start="00:16:29.060" video="qanda-llm" id="subtitle"]]
+[[!template text="""this for like weekly review.""" start="00:16:30.480" video="qanda-llm" id="subtitle"]]
+[[!template text="""It could like read all the stuff you've done""" start="00:16:32.040" video="qanda-llm" id="subtitle"]]
+[[!template text="""and ask you questions about it.""" start="00:16:33.340" video="qanda-llm" id="subtitle"]]
+[[!template text="""And like, what should happen next?""" start="00:16:35.020" video="qanda-llm" id="subtitle"]]
+[[!template text="""Or like, is this going to cause a problem?""" start="00:16:36.520" video="qanda-llm" id="subtitle"]]
+[[!template text="""Like, I can, I can understand if that could""" start="00:16:39.060" video="qanda-llm" id="subtitle"]]
+[[!template text="""happen? That's like, that's kind of nice.""" start="00:16:40.860" video="qanda-llm" id="subtitle"]]
+[[!template text="""And this kind of people have had good success""" start="00:16:43.660" video="qanda-llm" id="subtitle"]]
+[[!template text="""out of using these LLMs to bounce ideas off""" start="00:16:48.540" video="qanda-llm" id="subtitle"]]
+[[!template text="""of are, you know, for,""" start="00:16:49.920" video="qanda-llm" id="subtitle"]]
+[[!template text="""you know, I've seen people say that like they""" start="00:16:52.680" video="qanda-llm" id="subtitle"]]
+[[!template text="""want, they use it for reading and they kind""" start="00:16:55.360" video="qanda-llm" id="subtitle"]]
+[[!template text="""of dialogue with the LM to kind of like do""" start="00:16:58.520" video="qanda-llm" id="subtitle"]]
+[[!template text="""sort of active reading.""" start="00:16:59.500" video="qanda-llm" id="subtitle"]]
+[[!template text="""So you can imagine doing something similar""" start="00:17:02.500" video="qanda-llm" id="subtitle"]]
+[[!template text="""with your tasks where it's sort of you're""" start="00:17:04.400" video="qanda-llm" id="subtitle"]]
+[[!template text="""engaged in dialogue about like planning your""" start="00:17:06.560" video="qanda-llm" id="subtitle"]]
+[[!template text="""tax with some with a alum that could kind of""" start="00:17:08.880" video="qanda-llm" id="subtitle"]]
+[[!template text="""understand what those are and ask you some""" start="00:17:10.800" video="qanda-llm" id="subtitle"]]
+[[!template text="""questions I think it. You know,""" start="00:17:13.780" video="qanda-llm" id="subtitle"]]
+[[!template text="""if it'd be nice. So, the problem is like""" start="00:17:16.839" video="qanda-llm" id="subtitle"]]
+[[!template text="""there's no great way to share all this stuff.""" start="00:17:18.480" video="qanda-llm" id="subtitle"]]
+[[!template text="""I guess if you have something like this,""" start="00:17:20.720" video="qanda-llm" id="subtitle"]]
+[[!template text="""put it on Reddit. If you don't have Reddit,""" start="00:17:23.300" video="qanda-llm" id="subtitle"]]
+[[!template text="""I don't know what to do.""" start="00:17:24.599" video="qanda-llm" id="subtitle"]]
+[[!template text="""I would say put it somewhere.""" start="00:17:26.000" video="qanda-llm" id="subtitle"]]
+[[!template text="""At the very least, I could maybe open up like""" start="00:17:28.840" video="qanda-llm" id="subtitle"]]
+[[!template text="""an LLM discussion session on the LLM package""" start="00:17:31.320" video="qanda-llm" id="subtitle"]]
+[[!template text="""GitHub, But not everyone likes to use GitHub.""" start="00:17:34.000" video="qanda-llm" id="subtitle"]]
+[[!template text="""I don't know. It'd be nice if there's a""" start="00:17:36.100" video="qanda-llm" id="subtitle"]]
+[[!template text="""mailing list or IRC chat for this sort of""" start="00:17:38.940" video="qanda-llm" id="subtitle"]]
+[[!template text="""thing. But there isn't at the moment.""" start="00:17:40.840" video="qanda-llm" id="subtitle"]]
+[[!template text="""[Speaker 1]: All right. Let's see. I think that's the end""" start="00:17:46.560" video="qanda-llm" id="subtitle"]]
+[[!template text="""of the questions on the pad so far.""" start="00:17:48.080" video="qanda-llm" id="subtitle"]]
+[[!template text="""There was also some discussion or some""" start="00:17:51.020" video="qanda-llm" id="subtitle"]]
+[[!template text="""chatter, I believe, on IRC.""" start="00:17:52.260" video="qanda-llm" id="subtitle"]]
+[[!template text="""I'm not sure. Andrew, are you on IRC right""" start="00:17:54.560" video="qanda-llm" id="subtitle"]]
+[[!template text="""[Speaker 0]: I am, but I don't think I'm on any place that""" start="00:18:00.060" video="qanda-llm" id="subtitle"]]
+[[!template text="""has the chatter. So if there's chatter,""" start="00:18:01.400" video="qanda-llm" id="subtitle"]]
+[[!template text="""then I'm not seeing it.""" start="00:18:02.440" video="qanda-llm" id="subtitle"]]
+[[!template text="""[Speaker 1]: now? Okay. Yeah, it was in the emacsconf-dev""" start="00:18:04.600" video="qanda-llm" id="subtitle"]]
+[[!template text="""channel.""" start="00:18:06.760" video="qanda-llm" id="subtitle"]]
+[[!template text="""[Speaker 0]: Okay, let me see if I can.""" start="00:18:09.600" video="qanda-llm" id="subtitle"]]
+[[!template text="""Oh, yes. I mean, I could see the channel,""" start="00:18:25.600" video="qanda-llm" id="subtitle"]]
+[[!template text="""but I missed whatever came before.""" start="00:18:27.520" video="qanda-llm" id="subtitle"]]
+[[!template text="""So if there's anything you want to kind of""" start="00:18:29.340" video="qanda-llm" id="subtitle"]]
+[[!template text="""call out, I can try to answer it here.""" start="00:18:30.840" video="qanda-llm" id="subtitle"]]
+[[!template text="""[Speaker 1]: OK, cool. I believe at least 2 other folks""" start="00:18:35.320" video="qanda-llm" id="subtitle"]]
+[[!template text="""who are participating in the discussion there""" start="00:18:37.500" video="qanda-llm" id="subtitle"]]
+[[!template text="""who have also joined here on BigBlueButton,""" start="00:18:40.120" video="qanda-llm" id="subtitle"]]
+[[!template text="""Codin Quark and AeonTurn92.""" start="00:18:42.440" video="qanda-llm" id="subtitle"]]
+[[!template text="""So you folks, if Andrew is still available""" start="00:18:47.000" video="qanda-llm" id="subtitle"]]
+[[!template text="""and has time, you're welcome to chat here and""" start="00:18:50.460" video="qanda-llm" id="subtitle"]]
+[[!template text="""ask questions or discuss here as well.""" start="00:18:53.000" video="qanda-llm" id="subtitle"]]
+[[!template text="""[Speaker 0]: 1 Thank you. Thank you for your help,""" start="00:18:55.580" video="qanda-llm" id="subtitle"]]
+[[!template text="""and thank you for reading all the questions.""" start="00:18:57.740" video="qanda-llm" id="subtitle"]]
+[[!template text="""[Speaker 1]: AUDIENCE 2 Cheers, and thanks to you for a""" start="00:18:59.700" video="qanda-llm" id="subtitle"]]
+[[!template text="""great talk and the discussion.""" start="00:19:00.540" video="qanda-llm" id="subtitle"]]
+[[!template text="""[Speaker 0]: AUDIENCE AUDIENCE 1 Thank you.""" start="00:19:01.880" video="qanda-llm" id="subtitle"]]
+[[!template text="""[Speaker 1]: AUDIENCE 2 Cheers.""" start="00:19:03.140" video="qanda-llm" id="subtitle"]]
+[[!template text="""[Speaker 0]: So I'll just, I will wait here and see if""" start="00:19:07.900" video="qanda-llm" id="subtitle"]]
+[[!template text="""there's any questions.""" start="00:19:08.320" video="qanda-llm" id="subtitle"]]
+[[!template text="""If not, I will log off after a few minutes.""" start="00:19:10.760" video="qanda-llm" id="subtitle"]]
+[[!template text="""[Speaker 2]: Well, I guess since we were mentioned that""" start="00:19:15.900" video="qanda-llm" id="subtitle"]]
+[[!template text="""there was a small chat about local alarms.""" start="00:19:18.480" video="qanda-llm" id="subtitle"]]
+[[!template text="""Because chat dpt is nice,""" start="00:19:22.640" video="qanda-llm" id="subtitle"]]
+[[!template text="""no, but privacy concerns,""" start="00:19:25.600" video="qanda-llm" id="subtitle"]]
+[[!template text="""and it's not free and stuff.""" start="00:19:27.380" video="qanda-llm" id="subtitle"]]
+[[!template text="""Which, so The question is,""" start="00:19:31.000" video="qanda-llm" id="subtitle"]]
+[[!template text="""what is the promise for local models?""" start="00:19:36.960" video="qanda-llm" id="subtitle"]]
+[[!template text="""[Speaker 0]: Yeah, so local is definitely...""" start="00:19:39.660" video="qanda-llm" id="subtitle"]]
+[[!template text="""[Speaker 2]: Or at least open source.""" start="00:19:41.380" video="qanda-llm" id="subtitle"]]
+[[!template text="""[Speaker 0]: Yeah, so there is a local open source model,""" start="00:19:45.680" video="qanda-llm" id="subtitle"]]
+[[!template text="""Misral, which you could run.""" start="00:19:47.960" video="qanda-llm" id="subtitle"]]
+[[!template text="""The LLM package allows you to use,""" start="00:19:51.340" video="qanda-llm" id="subtitle"]]
+[[!template text="""I think there's 3 kind of local things you""" start="00:19:56.120" video="qanda-llm" id="subtitle"]]
+[[!template text="""could use. Like many of these things,""" start="00:19:58.100" video="qanda-llm" id="subtitle"]]
+[[!template text="""there's like many kind of ways to do the same""" start="00:20:00.220" video="qanda-llm" id="subtitle"]]
+[[!template text="""sort of thing. So LLM is supporting OLAMMA""" start="00:20:03.960" video="qanda-llm" id="subtitle"]]
+[[!template text="""and LLAMMA-CPP. And let's see,""" start="00:20:10.240" video="qanda-llm" id="subtitle"]]
+[[!template text="""1 other. Which 1 is it?""" start="00:20:12.240" video="qanda-llm" id="subtitle"]]
+[[!template text="""And maybe that's it. Maybe the,""" start="00:20:18.420" video="qanda-llm" id="subtitle"]]
+[[!template text="""oh, GPT for all. So each 1 of these kind of""" start="00:20:21.820" video="qanda-llm" id="subtitle"]]
+[[!template text="""has slightly different functionality.""" start="00:20:23.100" video="qanda-llm" id="subtitle"]]
+[[!template text="""For example, I think GPT for all doesn't""" start="00:20:26.820" video="qanda-llm" id="subtitle"]]
+[[!template text="""support embeddings. And I hear that Olama's""" start="00:20:31.780" video="qanda-llm" id="subtitle"]]
+[[!template text="""embeddings are kind of currently broken.""" start="00:20:33.740" video="qanda-llm" id="subtitle"]]
+[[!template text="""But basically they should support everything.""" start="00:20:35.920" video="qanda-llm" id="subtitle"]]
+[[!template text="""And the open source models are,""" start="00:20:39.100" video="qanda-llm" id="subtitle"]]
+[[!template text="""so the local models are reasonably good.""" start="00:20:43.180" video="qanda-llm" id="subtitle"]]
+[[!template text="""Like I don't think you'd use them and be""" start="00:20:44.760" video="qanda-llm" id="subtitle"]]
+[[!template text="""like, what is this horrible nonsense?""" start="00:20:46.200" video="qanda-llm" id="subtitle"]]
+[[!template text="""Like it's, it gives you relatively good""" start="00:20:50.200" video="qanda-llm" id="subtitle"]]
+[[!template text="""results. Like it's not gonna be at the level""" start="00:20:51.820" video="qanda-llm" id="subtitle"]]
+[[!template text="""of like GPT 3.5 or 4, but it's not far away""" start="00:20:56.060" video="qanda-llm" id="subtitle"]]
+[[!template text="""from GPT 3.5, I think.""" start="00:20:57.720" video="qanda-llm" id="subtitle"]]
+[[!template text="""[Speaker 2]: I'm just saying that Olam has like a presets""" start="00:21:02.380" video="qanda-llm" id="subtitle"]]
+[[!template text="""for connecting the actual working servers for""" start="00:21:05.940" video="qanda-llm" id="subtitle"]]
+[[!template text="""Olama?""" start="00:21:06.300" video="qanda-llm" id="subtitle"]]
+[[!template text="""[Speaker 0]: So, I'll try. Yeah, so you could,""" start="00:21:08.560" video="qanda-llm" id="subtitle"]]
+[[!template text="""what you could do is you could like for""" start="00:21:09.860" video="qanda-llm" id="subtitle"]]
+[[!template text="""example you could download Olama which is""" start="00:21:11.940" video="qanda-llm" id="subtitle"]]
+[[!template text="""just a way of setting up local models and""" start="00:21:15.780" video="qanda-llm" id="subtitle"]]
+[[!template text="""running local models on your machine.""" start="00:21:17.320" video="qanda-llm" id="subtitle"]]
+[[!template text="""So typically what it does,""" start="00:21:18.580" video="qanda-llm" id="subtitle"]]
+[[!template text="""you like download a program,""" start="00:21:19.720" video="qanda-llm" id="subtitle"]]
+[[!template text="""let's say Olama. Then Olama will have the""" start="00:21:23.720" video="qanda-llm" id="subtitle"]]
+[[!template text="""ability to download models.""" start="00:21:24.940" video="qanda-llm" id="subtitle"]]
+[[!template text="""And so you could choose from just a host of""" start="00:21:27.240" video="qanda-llm" id="subtitle"]]
+[[!template text="""different models. Each 1 of these things has""" start="00:21:29.280" video="qanda-llm" id="subtitle"]]
+[[!template text="""a bunch of different models.""" start="00:21:30.200" video="qanda-llm" id="subtitle"]]
+[[!template text="""So it downloads all these things to your""" start="00:21:31.920" video="qanda-llm" id="subtitle"]]
+[[!template text="""machine. But I would say that the key problem""" start="00:21:36.600" video="qanda-llm" id="subtitle"]]
+[[!template text="""here is that it requires a fairly beefy""" start="00:21:40.200" video="qanda-llm" id="subtitle"]]
+[[!template text="""machine.""" start="00:21:40.580" video="qanda-llm" id="subtitle"]]
+[[!template text="""[Speaker 2]: So. Yeah, yeah, of course.""" start="00:21:42.600" video="qanda-llm" id="subtitle"]]
+[[!template text="""Why I was asking, because you briefly""" start="00:21:45.060" video="qanda-llm" id="subtitle"]]
+[[!template text="""mentioned that there are some Israeli""" start="00:21:46.440" video="qanda-llm" id="subtitle"]]
+[[!template text="""servers. I understand that they run it like a""" start="00:21:52.300" video="qanda-llm" id="subtitle"]]
+[[!template text="""government or stuff like that?""" start="00:21:53.680" video="qanda-llm" id="subtitle"]]
+[[!template text="""No, no, sorry. People want everyone?""" start="00:21:55.440" video="qanda-llm" id="subtitle"]]
+[[!template text="""[Speaker 0]: I don't, I mean, maybe you've said something""" start="00:21:59.340" video="qanda-llm" id="subtitle"]]
+[[!template text="""that sounded like Israeli servers.""" start="00:22:00.620" video="qanda-llm" id="subtitle"]]
+[[!template text="""[Speaker 2]: Okay, okay.""" start="00:22:01.620" video="qanda-llm" id="subtitle"]]
+[[!template text="""[Speaker 0]: I think- There's no government LLMs as far as""" start="00:22:04.920" video="qanda-llm" id="subtitle"]]
+[[!template text="""I know. Although, I'm sure the governments""" start="00:22:06.820" video="qanda-llm" id="subtitle"]]
+[[!template text="""are working on their own LLMs,""" start="00:22:08.200" video="qanda-llm" id="subtitle"]]
+[[!template text="""et cetera. But yeah, basically your choices""" start="00:22:10.980" video="qanda-llm" id="subtitle"]]
+[[!template text="""are spend a, I mean, if you use open AI or""" start="00:22:15.060" video="qanda-llm" id="subtitle"]]
+[[!template text="""something or anything else,""" start="00:22:16.080" video="qanda-llm" id="subtitle"]]
+[[!template text="""you're really not spending any money.""" start="00:22:17.960" video="qanda-llm" id="subtitle"]]
+[[!template text="""Like I've never been able to spend any money""" start="00:22:20.560" video="qanda-llm" id="subtitle"]]
+[[!template text="""on OpenAI. Like unless you're doing something""" start="00:22:23.680" video="qanda-llm" id="subtitle"]]
+[[!template text="""very intensive and really are using it to,""" start="00:22:25.840" video="qanda-llm" id="subtitle"]]
+[[!template text="""you know, if you're using it for your""" start="00:22:28.000" video="qanda-llm" id="subtitle"]]
+[[!template text="""personal use, it's just hard to spend any""" start="00:22:29.620" video="qanda-llm" id="subtitle"]]
+[[!template text="""money. But on the other hand,""" start="00:22:31.720" video="qanda-llm" id="subtitle"]]
+[[!template text="""it's not free. So you can,""" start="00:22:32.780" video="qanda-llm" id="subtitle"]]
+[[!template text="""you know,""" start="00:22:33.040" video="qanda-llm" id="subtitle"]]
+[[!template text="""[Speaker 2]: Actually, it's rather cheap.""" start="00:22:36.300" video="qanda-llm" id="subtitle"]]
+[[!template text="""There's no question about that.""" start="00:22:37.680" video="qanda-llm" id="subtitle"]]
+[[!template text="""The problem is that it has a bad track record""" start="00:22:40.580" video="qanda-llm" id="subtitle"]]
+[[!template text="""on privacy.""" start="00:22:41.580" video="qanda-llm" id="subtitle"]]
+[[!template text="""[Speaker 0]: Yes, that's, I think that is a key problem.""" start="00:22:45.540" video="qanda-llm" id="subtitle"]]
+[[!template text="""This is probably the number 1 reason why you""" start="00:22:48.120" video="qanda-llm" id="subtitle"]]
+[[!template text="""might want to use a local AI,""" start="00:22:51.840" video="qanda-llm" id="subtitle"]]
+[[!template text="""a local LLM. Another 1 is like,""" start="00:22:54.720" video="qanda-llm" id="subtitle"]]
+[[!template text="""you may not agree with the decisions.""" start="00:22:57.400" video="qanda-llm" id="subtitle"]]
+[[!template text="""You know, there's a lot of trust and safety""" start="00:23:00.360" video="qanda-llm" id="subtitle"]]
+[[!template text="""stuff that these companies have to do.""" start="00:23:05.140" video="qanda-llm" id="subtitle"]]
+[[!template text="""Like they don't want like the LMs to kind of""" start="00:23:09.020" video="qanda-llm" id="subtitle"]]
+[[!template text="""like give you, like tell you how you can make""" start="00:23:11.400" video="qanda-llm" id="subtitle"]]
+[[!template text="""meth or how you can make a bomb,""" start="00:23:13.180" video="qanda-llm" id="subtitle"]]
+[[!template text="""which they would do. They would totally do""" start="00:23:14.960" video="qanda-llm" id="subtitle"]]
+[[!template text="""it. So, But each time you kind of restrict""" start="00:23:19.580" video="qanda-llm" id="subtitle"]]
+[[!template text="""what is happening with what you can get out""" start="00:23:22.540" video="qanda-llm" id="subtitle"]]
+[[!template text="""of the LM, it gets a little worse.""" start="00:23:23.860" video="qanda-llm" id="subtitle"]]
+[[!template text="""So some people""" start="00:23:24.960" video="qanda-llm" id="subtitle"]]
+[[!template text="""[Speaker 2]: want to have local. That's expected.""" start="00:23:27.040" video="qanda-llm" id="subtitle"]]
+[[!template text="""I guess even open source language modules""" start="00:23:31.080" video="qanda-llm" id="subtitle"]]
+[[!template text="""will soon have HR spaces because it's simply""" start="00:23:33.540" video="qanda-llm" id="subtitle"]]
+[[!template text="""a legal issue.""" start="00:23:34.720" video="qanda-llm" id="subtitle"]]
+[[!template text="""[Speaker 0]: I think that's true. I also think that there""" start="00:23:40.760" video="qanda-llm" id="subtitle"]]
+[[!template text="""probably will be, although I don't know of""" start="00:23:42.880" video="qanda-llm" id="subtitle"]]
+[[!template text="""any offhand, that will are completely""" start="00:23:45.060" video="qanda-llm" id="subtitle"]]
+[[!template text="""uncensored. I know people are interested and""" start="00:23:46.960" video="qanda-llm" id="subtitle"]]
+[[!template text="""are running uncensored models.""" start="00:23:48.240" video="qanda-llm" id="subtitle"]]
+[[!template text="""I don't know how to do it.""" start="00:23:49.440" video="qanda-llm" id="subtitle"]]
+[[!template text="""I think it's a little bit dubious,""" start="00:23:52.280" video="qanda-llm" id="subtitle"]]
+[[!template text="""but some people do want to do it.""" start="00:23:54.960" video="qanda-llm" id="subtitle"]]
+[[!template text="""There's another reason for using local""" start="00:23:56.280" video="qanda-llm" id="subtitle"]]
+[[!template text="""servers. Do you have any recommendation for""" start="00:24:02.280" video="qanda-llm" id="subtitle"]]
+[[!template text="""models to run locally and also comments on""" start="00:24:05.500" video="qanda-llm" id="subtitle"]]
+[[!template text="""whether a GPU is required?""" start="00:24:06.780" video="qanda-llm" id="subtitle"]]
+[[!template text="""Usually a GPU, well, you can run it without a""" start="00:24:14.040" video="qanda-llm" id="subtitle"]]
+[[!template text="""GPU, but it does run much better.""" start="00:24:16.960" video="qanda-llm" id="subtitle"]]
+[[!template text="""Like for example, I think when I used,""" start="00:24:19.480" video="qanda-llm" id="subtitle"]]
+[[!template text="""Lama is sort of like a standard.""" start="00:24:22.560" video="qanda-llm" id="subtitle"]]
+[[!template text="""This was the model for that Facebook came out""" start="00:24:27.160" video="qanda-llm" id="subtitle"]]
+[[!template text="""with for local use. And It was,""" start="00:24:31.380" video="qanda-llm" id="subtitle"]]
+[[!template text="""yeah, it's good. It's,""" start="00:24:37.260" video="qanda-llm" id="subtitle"]]
+[[!template text="""but it's now it's I think,""" start="00:24:40.400" video="qanda-llm" id="subtitle"]]
+[[!template text="""Mistral is kind of like has a better""" start="00:24:44.620" video="qanda-llm" id="subtitle"]]
+[[!template text="""performance, But there's also different model""" start="00:24:46.480" video="qanda-llm" id="subtitle"]]
+[[!template text="""sizes. There's 7B, like the Lama 7B is OK.""" start="00:24:51.000" video="qanda-llm" id="subtitle"]]
+[[!template text="""The Mistral 7B, 7 billion,""" start="00:24:52.940" video="qanda-llm" id="subtitle"]]
+[[!template text="""are like, basically it'll take like,""" start="00:24:54.800" video="qanda-llm" id="subtitle"]]
+[[!template text="""you can run it with like 16 gigs of RAM,""" start="00:24:58.380" video="qanda-llm" id="subtitle"]]
+[[!template text="""is pretty good. It's probably about as equal""" start="00:25:02.720" video="qanda-llm" id="subtitle"]]
+[[!template text="""to the LLAMA13B. Those are the number of""" start="00:25:06.900" video="qanda-llm" id="subtitle"]]
+[[!template text="""parameters, if I remember correctly.""" start="00:25:08.360" video="qanda-llm" id="subtitle"]]
+[[!template text="""And then there's a 7B,""" start="00:25:10.680" video="qanda-llm" id="subtitle"]]
+[[!template text="""which I've never been able to run.""" start="00:25:12.340" video="qanda-llm" id="subtitle"]]
+[[!template text="""And even if the 7B, if you run it without a""" start="00:25:16.120" video="qanda-llm" id="subtitle"]]
+[[!template text="""GPU, it takes quite a while to answer.""" start="00:25:19.640" video="qanda-llm" id="subtitle"]]
+[[!template text="""I think I've had experiences where it took""" start="00:25:22.080" video="qanda-llm" id="subtitle"]]
+[[!template text="""literally like several,""" start="00:25:23.940" video="qanda-llm" id="subtitle"]]
+[[!template text="""like 5 minutes before it even started""" start="00:25:26.480" video="qanda-llm" id="subtitle"]]
+[[!template text="""responding, but you do eventually get""" start="00:25:28.880" video="qanda-llm" id="subtitle"]]
+[[!template text="""something. And it could be that like things""" start="00:25:32.220" video="qanda-llm" id="subtitle"]]
+[[!template text="""have gotten better since the last time I""" start="00:25:33.840" video="qanda-llm" id="subtitle"]]
+[[!template text="""tried this, because things are moving fast.""" start="00:25:35.440" video="qanda-llm" id="subtitle"]]
+[[!template text="""But it is super recommended to have a GPU.""" start="00:25:38.360" video="qanda-llm" id="subtitle"]]
+[[!template text="""This is the problem. It's kind of like,""" start="00:25:42.440" video="qanda-llm" id="subtitle"]]
+[[!template text="""yes, free software is great.""" start="00:25:43.840" video="qanda-llm" id="subtitle"]]
+[[!template text="""But if free software is requiring that you""" start="00:25:46.880" video="qanda-llm" id="subtitle"]]
+[[!template text="""have these kind of beefy servers and have all""" start="00:25:50.460" video="qanda-llm" id="subtitle"]]
+[[!template text="""this hardware, that's not great.""" start="00:25:52.000" video="qanda-llm" id="subtitle"]]
+[[!template text="""I think there's a case to be made.""" start="00:25:53.600" video="qanda-llm" id="subtitle"]]
+[[!template text="""[Speaker 1]: a hardware""" start="00:25:55.680" video="qanda-llm" id="subtitle"]]
+[[!template text="""[Speaker 0]: with slots instead of a laptop.""" start="00:25:59.040" video="qanda-llm" id="subtitle"]]
+[[!template text="""Yeah, yeah, that's right.""" start="00:26:01.560" video="qanda-llm" id="subtitle"]]
+[[!template text="""[Speaker 2]: Ideally, you can have Ideally,""" start="00:26:03.660" video="qanda-llm" id="subtitle"]]
+[[!template text="""it would be nice if FSL for all things could""" start="00:26:07.400" video="qanda-llm" id="subtitle"]]
+[[!template text="""run something for open source model.""" start="00:26:12.040" video="qanda-llm" id="subtitle"]]
+[[!template text="""And not free, but the key point is that it's""" start="00:26:16.320" video="qanda-llm" id="subtitle"]]
+[[!template text="""Libre?""" start="00:26:16.640" video="qanda-llm" id="subtitle"]]
+[[!template text="""[Speaker 0]: Yes, so actually I think Google does do that.""" start="00:26:22.580" video="qanda-llm" id="subtitle"]]
+[[!template text="""I'll have to look it up,""" start="00:26:24.720" video="qanda-llm" id="subtitle"]]
+[[!template text="""but I haven't explored this yet.""" start="00:26:27.560" video="qanda-llm" id="subtitle"]]
+[[!template text="""But Google's server, which LLM does support,""" start="00:26:31.220" video="qanda-llm" id="subtitle"]]
+[[!template text="""supports arbitrary models.""" start="00:26:33.800" video="qanda-llm" id="subtitle"]]
+[[!template text="""So you can run LLMA or things like that.""" start="00:26:36.420" video="qanda-llm" id="subtitle"]]
+[[!template text="""The problem is that even if you're running""" start="00:26:38.940" video="qanda-llm" id="subtitle"]]
+[[!template text="""Mistral, which has no restrictions.""" start="00:26:40.320" video="qanda-llm" id="subtitle"]]
+[[!template text="""So this is the kind of thing that like the""" start="00:26:42.940" video="qanda-llm" id="subtitle"]]
+[[!template text="""Free Software Foundation cares a lot about.""" start="00:26:44.900" video="qanda-llm" id="subtitle"]]
+[[!template text="""Like you want it to be like no restrictions,""" start="00:26:47.240" video="qanda-llm" id="subtitle"]]
+[[!template text="""legal restrictions on you as you run the""" start="00:26:49.740" video="qanda-llm" id="subtitle"]]
+[[!template text="""model. So even if it's running Mistral,""" start="00:26:52.080" video="qanda-llm" id="subtitle"]]
+[[!template text="""just by using the server,""" start="00:26:54.800" video="qanda-llm" id="subtitle"]]
+[[!template text="""the company server, it will impose some""" start="00:26:58.460" video="qanda-llm" id="subtitle"]]
+[[!template text="""restrictions on you probably,""" start="00:26:59.440" video="qanda-llm" id="subtitle"]]
+[[!template text="""right? There's gonna be some license that you""" start="00:27:02.320" video="qanda-llm" id="subtitle"]]
+[[!template text="""have to, or something you have to abide by.""" start="00:27:04.760" video="qanda-llm" id="subtitle"]]
+[[!template text="""So I think, yes, it depends on how much you""" start="00:27:08.480" video="qanda-llm" id="subtitle"]]
+[[!template text="""care about it, I guess.""" start="00:27:09.280" video="qanda-llm" id="subtitle"]]
+[[!template text="""I should find out more about that and make""" start="00:27:19.500" video="qanda-llm" id="subtitle"]]
+[[!template text="""sure that it's a good point that I should,""" start="00:27:21.580" video="qanda-llm" id="subtitle"]]
+[[!template text="""you know, people should be able to run free""" start="00:27:23.980" video="qanda-llm" id="subtitle"]]
+[[!template text="""models over the server.""" start="00:27:25.920" video="qanda-llm" id="subtitle"]]
+[[!template text="""So I should make sure we support that in the""" start="00:27:28.320" video="qanda-llm" id="subtitle"]]
+[[!template text="""LLM package. So, is there any other questions""" start="00:27:40.360" video="qanda-llm" id="subtitle"]]
+[[!template text="""Or is otherwise we can end the session.""" start="00:27:48.240" video="qanda-llm" id="subtitle"]]
+[[!template text="""Yeah, all right. Thank you.""" start="00:28:00.800" video="qanda-llm" id="subtitle"]]
+[[!template text="""Thank you. Thank you everyone who listened.""" start="00:28:02.440" video="qanda-llm" id="subtitle"]]
+[[!template text="""I'm super happy like I,""" start="00:28:04.540" video="qanda-llm" id="subtitle"]]
+[[!template text="""the interest is great.""" start="00:28:06.560" video="qanda-llm" id="subtitle"]]
+[[!template text="""I think there's great stuff to be done here""" start="00:28:08.900" video="qanda-llm" id="subtitle"]]
+[[!template text="""and I'm kind of super excited what we're""" start="00:28:10.960" video="qanda-llm" id="subtitle"]]
+[[!template text="""going to do in the next year,""" start="00:28:11.940" video="qanda-llm" id="subtitle"]]
+[[!template text="""so hopefully, like next year,""" start="00:28:13.140" video="qanda-llm" id="subtitle"]]
+[[!template text="""and the conference we have something even""" start="00:28:14.600" video="qanda-llm" id="subtitle"]]
+[[!template text="""more exciting to say about LLM and how they""" start="00:28:16.440" video="qanda-llm" id="subtitle"]]
+[[!template text="""can be used with Emacs.""" start="00:28:17.320" video="qanda-llm" id="subtitle"]]
+[[!template text="""So thank""" start="00:28:19.620" video="qanda-llm" id="subtitle"]]
+[[!template text="""you""" start="00:28:30.060" video="qanda-llm" id="subtitle"]]
+
+</div>Questions or comments? Please e-mail [ahyatt@gmail.com](mailto:ahyatt@gmail.com?subject=Comment%20for%20EmacsConf%202023%20llm%3A%20LLM%20clients%20in%20Emacs%2C%20functionality%20and%20standardization)
<!-- End of emacsconf-publish-after-page -->
diff --git a/2023/info/llm-before.md b/2023/info/llm-before.md
index 376dee32..5ec20c14 100644
--- a/2023/info/llm-before.md
+++ b/2023/info/llm-before.md
@@ -1,12 +1,33 @@
<!-- Automatically generated by emacsconf-publish-before-page -->
[[!toc ]]
-Format: 20-min talk followed by live web conference Q&A
-Discuss on IRC: [#emacsconf](https://chat.emacsconf.org/?join=emacsconf)
-Status: Waiting for video from speaker
+Format: 21-min talk ; Q&A: BigBlueButton conference room
+Status: Q&A to be extracted from the room recordings
+# Talk
+
+<div class="vid mainVideo"><video controls preload="none" id="mainVideo-llm"><source src="https://media.emacsconf.org/2023/emacsconf-2023-llm--llm-clients-in-emacs-functionality-and-standardization--andrew-hyatt--main.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2023/captions/emacsconf-2023-llm--llm-clients-in-emacs-functionality-and-standardization--andrew-hyatt--main.vtt" default />"""<track kind="chapters" label="Chapters" src="/2023/captions/emacsconf-2023-llm--llm-clients-in-emacs-functionality-and-standardization--andrew-hyatt--main--chapters.vtt" /><p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video>[[!template id="chapters" vidid="mainVideo-llm" data="""
+00:00.000 Intro to the Talk
+00:25.080 What are LLMs?
+01:56.360 Power of LLMs (Magit Demo)
+03:32.240 Drawbacks of LLMs (regex demo)
+05:20.120 Embeddings
+07:32.800 Image Generation
+08:48.480 Fine-tuning
+11:08.160 Open Source
+12:02.840 The Future
+14:08.200 LLMs in Emacs - existing packages
+18:15.960 Abstracting LLM challenges
+19:04.080 Emacs is the ideal interface for LLMs
+20:01.960 Outro
+
+"""]]<div></div>Duration: 20:26 minutes<div class="files resources"><ul><li><a href="https://pad.emacsconf.org/2023-llm">Open Etherpad</a></li><li><a href="https://bbb.emacsverse.org/playback/presentation/2.0/playback.html?meetingId=1d02948a0834c0b349de5931bf9535b534b39d27-1701533045559">Play recording from BigBlueButton</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-llm--llm-clients-in-emacs-functionality-and-standardization--andrew-hyatt--intro.vtt">Download --intro.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-llm--llm-clients-in-emacs-functionality-and-standardization--andrew-hyatt--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-llm--llm-clients-in-emacs-functionality-and-standardization--andrew-hyatt--main--chapters.vtt">Download --main--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-llm--llm-clients-in-emacs-functionality-and-standardization--andrew-hyatt--main.opus">Download --main.opus (12MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-llm--llm-clients-in-emacs-functionality-and-standardization--andrew-hyatt--main.vtt">Download --main.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-llm--llm-clients-in-emacs-functionality-and-standardization--andrew-hyatt--main.webm">Download --main.webm (50MB)</a></li><li><a href="https://toobnix.org/w/ck1LWXvRiAGNLWFA8s4Ymi">View on Toobnix</a></li><li><a href="https://www.youtube.com/watch?v=HN3Y75D4tEs">View on Youtube</a></li></ul></div></div>
+
+# Q&A
+
+<div class="vid qanda"><video controls preload="none" id="qanda-llm"><source src="https://media.emacsconf.org/2023/emacsconf-2023-llm--llm-clients-in-emacs-functionality-and-standardization--andrew-hyatt--answers.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2023/captions/emacsconf-2023-llm--llm-clients-in-emacs-functionality-and-standardization--andrew-hyatt--answers.vtt" default />"""<p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video><div>Listen to just the audio:<br /><audio controls preload="none" id="qanda-llm-audio" src="https://media.emacsconf.org/2023/emacsconf-2023-llm--llm-clients-in-emacs-functionality-and-standardization--andrew-hyatt--answers.opus"></audio></div><div></div>Duration: 28:32 minutes<div class="files resources"><ul><li><a href="https://pad.emacsconf.org/2023-llm">Open Etherpad</a></li><li><a href="https://bbb.emacsverse.org/playback/presentation/2.0/playback.html?meetingId=1d02948a0834c0b349de5931bf9535b534b39d27-1701533045559">Play recording from BigBlueButton</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-llm--llm-clients-in-emacs-functionality-and-standardization--andrew-hyatt--answers.json">Download --answers.json (1.3MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-llm--llm-clients-in-emacs-functionality-and-standardization--andrew-hyatt--answers.opus">Download --answers.opus (17MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-llm--llm-clients-in-emacs-functionality-and-standardization--andrew-hyatt--answers.vtt">Download --answers.vtt</a> (unedited)</li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-llm--llm-clients-in-emacs-functionality-and-standardization--andrew-hyatt--answers.webm">Download --answers.webm (46MB)</a></li></ul></div></div>
# Description
<!-- End of emacsconf-publish-before-page --> \ No newline at end of file
diff --git a/2023/info/llm-nav.md b/2023/info/llm-nav.md
index 4cd3ad2f..92173270 100644
--- a/2023/info/llm-nav.md
+++ b/2023/info/llm-nav.md
@@ -1,7 +1,7 @@
<div class="talk-nav">
Back to the [[talks]]
-Previous by track: <a href="/2023/talks/voice">Improving access to AI-assisted literate programming with voice control</a>
-Next by track: <a href="/2023/talks/overlay">Improving compiler diagnostics with Overlays</a>
-Track: <span class="sched-track Development">Development</span>
+Previous by track: <a href="/2023/talks/voice">Enhancing productivity with voice computing</a>
+Next by track: <a href="/2023/talks/overlay">Improving compiler diagnostics with overlays</a>
+Track: <span class="sched-track Development">Development</span> - <strong><a href="https://emacsconf.org/2023/watch/dev">Watch</a></strong>
</div>
diff --git a/2023/info/lspocaml-after.md b/2023/info/lspocaml-after.md
index 409fc04c..bc5bdc22 100644
--- a/2023/info/lspocaml-after.md
+++ b/2023/info/lspocaml-after.md
@@ -1,7 +1,755 @@
<!-- Automatically generated by emacsconf-publish-after-page -->
-Questions or comments? Please e-mail [austin@cutedogs.org](mailto:austin@cutedogs.org?subject=Comment%20for%20EmacsConf%202022%20lspocaml%3A%20Writing%20a%20language%20server%20in%20OCaml%20for%20Emacs%2C%20fun%2C%20and%20profit)
+<div class="transcript transcript-mainVideo"><a name="lspocaml-mainVideo-transcript"></a><h1>Transcript</h1>
+
+
+<div class="transcript-heading">[[!template new="1" text="""Introduction""" start="00:00:00.000" video="mainVideo-lspocaml" id="subtitle"]]</div>[[!template text="""Hi, I'm Austin Theriault,""" start="00:00:00.000" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""and this is writing a language server in OCaml""" start="00:00:01.840" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""for Emacs, fun, and profit.""" start="00:00:04.160" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""Real quick, who am I?""" start="00:00:07.640" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""Well, I'm a software engineer at Semgrep.""" start="00:00:08.920" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""I work on our editor integrations,""" start="00:00:10.920" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""and I love working on programming languages, editors,""" start="00:00:13.240" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""and cryptography.""" start="00:00:15.360" video="mainVideo-lspocaml" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""What is Semgrep?""" start="00:00:16.540" video="mainVideo-lspocaml" id="subtitle"]]</div>[[!template text="""What is Semgrep?""" start="00:00:16.540" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""We're a small cybersecurity startup""" start="00:00:17.800" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""whose core product is a SaaS tool,""" start="00:00:20.040" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""which is static application security testing.""" start="00:00:21.920" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""You can think of it as like a security linter.""" start="00:00:24.760" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""Normal linters will say, hey,""" start="00:00:27.800" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""you wrote ugly code, fix it.""" start="00:00:30.120" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""We'll say, hey, you wrote a SQL injection, fix that.""" start="00:00:31.920" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""We support 30+ languages,""" start="00:00:35.080" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""and we have lots of customers all using different IDEs.""" start="00:00:36.960" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""Why does that matter?""" start="00:00:39.320" video="mainVideo-lspocaml" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""How do we show security bugs early?""" start="00:00:40.720" video="mainVideo-lspocaml" id="subtitle"]]</div>[[!template text="""Well, our goal is to show security bugs""" start="00:00:40.720" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""as early as possible in the development cycle.""" start="00:00:42.780" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""In the industry, we call this shifting left.""" start="00:00:45.240" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""And so how far left can we shift? The editor.""" start="00:00:48.480" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""So that's why it matters""" start="00:00:52.960" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""that our customers have different editors.""" start="00:00:53.620" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""Our goal is to have Semgrep and the editor""" start="00:00:56.080" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""show up like other language tooling.""" start="00:00:58.920" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""And what I mean by that is I wrote some bad OCaml up here,""" start="00:01:01.320" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""and the editor gave me that red squiggly and said,""" start="00:01:05.200" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""fix your OCaml, and we want Semgrep to do something similar.""" start="00:01:07.600" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""And so our goal then is to provide a similar experience""" start="00:01:12.200" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""to normal language checking.""" start="00:01:15.520" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""And then since we're a small startup,""" start="00:01:16.920" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""and there's a ton of different IDEs that our customers use,""" start="00:01:19.000" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""ideally, we don't want to have to rewrite a plugin""" start="00:01:22.080" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""for every single type of editor out there.""" start="00:01:24.920" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""Our other goal is abstract away""" start="00:01:27.560" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""editing and language features for editors to one code base.""" start="00:01:29.160" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""Ideally, we write it once""" start="00:01:32.120" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""and then plug it into all of them.""" start="00:01:33.880" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""So how can we do that, though?""" start="00:01:35.800" video="mainVideo-lspocaml" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""What is the Language Server Protocol?""" start="00:01:37.880" video="mainVideo-lspocaml" id="subtitle"]]</div>[[!template text="""Well, in the process of working on this stuff,""" start="00:01:37.880" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""I found out about""" start="00:01:40.680" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""the Language Server Protocol.""" start="00:01:43.000" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""And what's great about the Language Server Protocol is""" start="00:01:44.880" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""it's a specification that defines all the ways""" start="00:01:47.280" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""that these language tools might interact""" start="00:01:50.320" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""with a development tool. And by development tool,""" start="00:01:52.680" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""I mean like VS Code, Sublime, Emacs, any of those.""" start="00:01:56.880" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""And by language tool, I mean something like PyRight, MyPy.""" start="00:02:01.600" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""So what's cool about LSP is that""" start="00:02:07.280" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""you can separate out those tools into language servers""" start="00:02:09.320" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""and the development tools into language clients.""" start="00:02:13.000" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""And because they share this common specification,""" start="00:02:15.520" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""they can now interact without knowing each other.""" start="00:02:18.080" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""So it's this great abstraction that means""" start="00:02:20.360" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""all you have to do is go write one language server""" start="00:02:22.800" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""and you can hook it up to a bunch of language clients""" start="00:02:25.440" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""and it'll just work.""" start="00:02:27.440" video="mainVideo-lspocaml" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Case study: Rust Analyzer""" start="00:02:29.040" video="mainVideo-lspocaml" id="subtitle"]]</div>[[!template text="""So let's do a quick case study on language servers in LSP,""" start="00:02:29.040" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""just so you get an idea of why this is super cool.""" start="00:02:34.040" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""So there's this language server called Rust Analyzer.""" start="00:02:37.240" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""It's a language server for the Rust language.""" start="00:02:40.440" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""If you've ever developed in Rust,""" start="00:02:42.880" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""you'll know that takes a really long time to compile,""" start="00:02:44.120" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""but the compiler gives you fantastic feedback.""" start="00:02:46.960" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""Rust has a lot of advanced language features,""" start="00:02:50.360" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""so that feedback is super important for developing.""" start="00:02:52.360" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""And so Rust Analyzer will give you that feedback instantly.""" start="00:02:55.440" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""Here's a ton of things that it gives you.""" start="00:02:58.920" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""Code completion, fixes, compiler errors, warnings,""" start="00:03:01.120" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""type signatures. Rust has a pretty strong type system.""" start="00:03:05.080" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""It also has this thing called lifetimes.""" start="00:03:08.680" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""A bunch of advanced language features in Rust Analyzer""" start="00:03:12.200" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""helps you manage all that""" start="00:03:15.080" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""and gives you all that info""" start="00:03:16.200" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""without having to wait for it to compile.""" start="00:03:17.440" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""Developing with the Rust Analyzer""" start="00:03:19.220" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""is just orders of magnitude easier""" start="00:03:21.520" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""than just trying to write Rust straight.""" start="00:03:24.320" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""Rust Analyzer, fantastic. They went and they developed it,""" start="00:03:26.520" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""and now you can go use that in Emacs, NeoVim,""" start="00:03:30.920" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""VS Code, wherever.""" start="00:03:33.640" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""So you can develop Rust in a way that's relatively efficient""" start="00:03:35.240" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""without having to give up your favorite editor.""" start="00:03:39.080" video="mainVideo-lspocaml" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Rust Analyzer in action""" start="00:03:42.760" video="mainVideo-lspocaml" id="subtitle"]]</div>[[!template text="""So here's a quick little demo""" start="00:03:42.760" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""of all the cool things it can do.""" start="00:03:44.400" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""So you can see I typed an error.""" start="00:03:46.320" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""It tells me that I wrote an error.""" start="00:03:48.120" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""I used the incorrect lifetime,""" start="00:03:50.720" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""which is some advanced language feature,""" start="00:03:52.520" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""and it'll let me know that.""" start="00:03:54.160" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""I expanded a Rust macro just there,""" start="00:03:55.160" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""which is similar to Lisp macros,""" start="00:03:57.520" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""and then I ran a single unit test,""" start="00:03:59.240" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""and that's really cool because I ran a single unit test""" start="00:04:01.360" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""from my editor.""" start="00:04:04.640" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""I didn't have to go and type any commands or anything.""" start="00:04:05.440" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""It just worked.""" start="00:04:07.840" video="mainVideo-lspocaml" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Why is this useful?""" start="00:04:09.960" video="mainVideo-lspocaml" id="subtitle"]]</div>[[!template text="""So why is this just useful in general for a user?""" start="00:04:09.960" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""Well, you get the same experience across editors.""" start="00:04:13.400" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""Like I was saying, you don't have to give up""" start="00:04:15.800" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""one editor for another""" start="00:04:17.120" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""so you get some sort of cool language feature.""" start="00:04:18.360" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""You can easily set up and use language servers""" start="00:04:21.720" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""made for other editors""" start="00:04:23.560" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""if developers don't support your editor of choice.""" start="00:04:24.600" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""Performance is not dependent on the editor.""" start="00:04:27.860" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""That's fantastic because to do all that Rust stuff,""" start="00:04:31.240" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""it takes a lot of CPU power,""" start="00:04:35.440" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""and so that's going to be slow""" start="00:04:37.440" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""if your editor language is not great, not fast.""" start="00:04:40.500" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""And then bug fixes, updates, all that,""" start="00:04:43.680" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""it all comes out at the same time.""" start="00:04:47.800" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""And then from the developer perspective, well,""" start="00:04:50.120" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""adding new editors is quick and easy.""" start="00:04:53.400" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""For reference, when I wrote the Semgrep language server,""" start="00:04:55.360" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""it took me maybe two or three weeks,""" start="00:04:58.700" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""but then actually going and setting it up for VS Code,""" start="00:05:00.520" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""that took an hour. For Emacs, 30 minutes.""" start="00:05:04.000" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""IntelliJ, maybe another hour.""" start="00:05:06.440" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""So it took me a day to add support""" start="00:05:08.360" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""for three different editors,""" start="00:05:10.400" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""which was I think something like 75% of the market share""" start="00:05:11.880" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""or something crazy like that.""" start="00:05:14.800" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""So very quick. You only need one mental model.""" start="00:05:16.320" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""You don't have to figure out""" start="00:05:20.180" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""all these different extension mental models,""" start="00:05:21.080" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""how those editors work, anything like that.""" start="00:05:23.960" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""And another thing that's cool is""" start="00:05:26.520" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""you only have to write tests for the language server,""" start="00:05:28.640" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""not necessarily for the editor.""" start="00:05:30.400" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""It's great to have just one set of tests""" start="00:05:31.960" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""that you have to pass.""" start="00:05:33.840" video="mainVideo-lspocaml" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""So what about Emacs?""" start="00:05:36.220" video="mainVideo-lspocaml" id="subtitle"]]</div>[[!template text="""So why does a language server protocol matter with Emacs?""" start="00:05:36.220" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""Well, like I was saying before,""" start="00:05:40.160" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""Emacs gets the benefit from work put into other editors.""" start="00:05:42.380" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""So we get all this language support,""" start="00:05:45.480" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""and no one actually has to go and write the list for it""" start="00:05:47.760" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""or write those tools specific to Emacs.""" start="00:05:51.120" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""You get the language tooling,""" start="00:05:53.200" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""the CPU-intensive part of the editors.""" start="00:05:54.920" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""It can be written in something else.""" start="00:05:56.760" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""Lisp is fast. It's not that fast.""" start="00:05:58.560" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""Having that speed is fantastic. It's all asynchronous.""" start="00:06:01.320" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""It won't slow down Emacs.""" start="00:06:04.720" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""And then there's this package called `lsp-mode`,""" start="00:06:06.440" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""which is an LSP client commonly included""" start="00:06:08.920" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""in popular Emacs distributions.""" start="00:06:11.360" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""So a lot of people already have that.""" start="00:06:13.320" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""If you're using Emacs 29 or greater, you have `eglot-mode`,""" start="00:06:15.160" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""which is a lighter weight version of `lsp-mode`.""" start="00:06:18.680" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""It's just another LSP client.""" start="00:06:21.680" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""When I wrote the Semgrep language server,""" start="00:06:24.240" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""Emacs 29 hadn't come out yet.""" start="00:06:26.360" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""I'm not going to talk too much about `eglot-mode`""" start="00:06:28.320" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""because I did everything in `lsp-mode`,""" start="00:06:31.480" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""but I would imagine a lot of this stuff is very similar.""" start="00:06:33.300" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""Here's a list of some supported languages.""" start="00:06:37.780" video="mainVideo-lspocaml" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Technical part - Brief communication overview""" start="00:06:40.700" video="mainVideo-lspocaml" id="subtitle"]]</div>[[!template text="""Now let's get into the technical part.""" start="00:06:40.700" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""How does LSP actually work?""" start="00:06:42.640" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""So let's go over how it communicates first.""" start="00:06:45.040" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""It uses JSONRPC,""" start="00:06:47.160" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""which is just kind of like HTTP,""" start="00:06:49.760" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""but instead of sending plain text, you're sending JSON.""" start="00:06:51.960" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""So it's just sending JSON back and forth.""" start="00:06:54.620" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""It's great because it's a way""" start="00:06:56.440" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""for two programs to communicate""" start="00:06:58.540" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""without sharing a common programming language.""" start="00:06:59.960" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""Transport platform agnostic,""" start="00:07:02.840" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""so it could be stdin, stdout,""" start="00:07:04.960" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""sockets, whatever. It's just JSON.""" start="00:07:07.080" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""You can send it over whatever.""" start="00:07:09.400" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""There's two different types of messages,""" start="00:07:11.140" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""a request, which requires a response from the other party,""" start="00:07:12.720" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""and a notification, which does not expect a response.""" start="00:07:15.840" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""So just a quick little example,""" start="00:07:19.260" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""a user might open a document,""" start="00:07:21.760" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""and then it'll send like a text document did open""" start="00:07:23.760" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""and what document it was to the language server,""" start="00:07:28.080" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""and then they'll change it.""" start="00:07:30.200" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""Maybe they edit some code and introduce a syntax error.""" start="00:07:31.080" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""The changes will be sent to the language server,""" start="00:07:35.080" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""and then the language server will publish diagnostics,""" start="00:07:37.160" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""which is those red squigglies""" start="00:07:39.220" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""I was talking about earlier,""" start="00:07:41.200" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""and say, hey, syntax error or whatever here,""" start="00:07:42.560" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""or maybe the user says,""" start="00:07:45.460" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""I want to go to the definition of this function,""" start="00:07:46.920" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""and then the language server will spit back,""" start="00:07:49.160" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""hey, this is where that function lives.""" start="00:07:51.240" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""All very useful,""" start="00:07:53.800" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""and the communication is relatively simple,""" start="00:07:55.400" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""which is great.""" start="00:07:57.720" video="mainVideo-lspocaml" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Example request""" start="00:07:58.760" video="mainVideo-lspocaml" id="subtitle"]]</div>[[!template text="""This is what it looks like, what a request looks like.""" start="00:07:58.760" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""Notifications look somewhat similar.""" start="00:08:01.240" video="mainVideo-lspocaml" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""LSP capabilities""" start="00:08:03.380" video="mainVideo-lspocaml" id="subtitle"]]</div>[[!template text="""So now we know how LSP communication works,""" start="00:08:03.380" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""but how does the actual protocol work?""" start="00:08:05.880" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""Well, almost all of the protocol is opt-in,""" start="00:08:09.860" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""meaning you don't have to support the entire specification,""" start="00:08:12.400" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""you can just pick and choose.""" start="00:08:15.840" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""Servers and clients will then communicate""" start="00:08:17.400" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""what part of the protocol they both support,""" start="00:08:19.840" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""so they'll both say, hey,""" start="00:08:21.680" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""we support being notified when a user opens a document,""" start="00:08:22.680" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""or if they're looking for documentation.""" start="00:08:26.360" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""And so then once they agree upon what they'll both support,""" start="00:08:28.880" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""then they'll send that stuff,""" start="00:08:33.800" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""those notifications and requests back and forth.""" start="00:08:35.200" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""Things like opening and closing files, diagnostics,""" start="00:08:38.580" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""code completion, hovering over stuff, type signatures,""" start="00:08:41.320" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""all of that. And what's cool is""" start="00:08:46.040" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""even though the specification is huge""" start="00:08:48.560" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""and probably has everything you need,""" start="00:08:50.240" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""you can go ahead and add custom capabilities""" start="00:08:52.040" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""if you really want to.""" start="00:08:54.480" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""So you can just define a custom method,""" start="00:08:55.520" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""and then now that works for you,""" start="00:08:57.980" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""and now you can have that in all your editors.""" start="00:09:01.360" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""For example, Rust Analyzer""" start="00:09:03.520" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""has structural search and replace,""" start="00:09:04.560" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""which is like find and replace,""" start="00:09:06.200" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""but with respect to the structure of the code.""" start="00:09:08.160" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""And if you choose to go down this route""" start="00:09:11.600" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""with the custom capabilities,""" start="00:09:13.640" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""you do have to remember you're going to have to""" start="00:09:15.160" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""implement it in every client.""" start="00:09:16.660" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""And that's a little bit more work,""" start="00:09:18.700" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""but it's better than where we were without LSP.""" start="00:09:20.400" video="mainVideo-lspocaml" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Tips on writing a LS""" start="00:09:23.380" video="mainVideo-lspocaml" id="subtitle"]]</div>[[!template text="""So some quick tips on writing a language server.""" start="00:09:23.380" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""I'm not going to get too into this""" start="00:09:25.440" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""because it's very application-specific.""" start="00:09:27.480" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""I wrote Semgrep's in OCaml""" start="00:09:30.800" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""since our code base was almost all OCaml already,""" start="00:09:32.760" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""and I wanted to leverage that.""" start="00:09:35.120" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""Would not recommend""" start="00:09:36.600" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""unless you also have a code base all in OCaml.""" start="00:09:38.040" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""Structure is similar to a Rust server,""" start="00:09:41.560" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""so a bunch of independent endpoints.""" start="00:09:43.640" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""I would do everything functionally if I were you.""" start="00:09:45.740" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""This is EmacsConf.""" start="00:09:48.640" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""We're all hopefully used to writing functional Lisp.""" start="00:09:49.920" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""I would recommend TypeScript or Rust, though,""" start="00:09:53.400" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""depending on your level of performance""" start="00:09:56.240" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""that you really need or whatever language""" start="00:09:58.320" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""you're trying to support ideally.""" start="00:10:00.840" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""Most languages have""" start="00:10:02.255" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""some sort of language server protocol already.""" start="00:10:03.400" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""But if they don't, then it might be easier""" start="00:10:06.500" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""to do it in that language.""" start="00:10:09.200" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""TypeScript has a lot of support, a lot of documentation,""" start="00:10:10.160" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""a lot of examples out there""" start="00:10:12.800" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""because it was what Microsoft originally intended""" start="00:10:14.160" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""the language server protocol to be for, for VS Code,""" start="00:10:17.680" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""which is written in TypeScript.""" start="00:10:20.920" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""Rust is fast, it's going to take more effort,""" start="00:10:22.080" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""but it's very fast, and Rust Analyzer has a great library""" start="00:10:24.440" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""that they use and that they support.""" start="00:10:28.520" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""So support there, examples there are great.""" start="00:10:30.280" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""The hard part is not really the language server protocol,""" start="00:10:32.800" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""but the actual logic. So, like, if you're doing, like,""" start="00:10:35.840" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""language tooling, you're going to have to do""" start="00:10:39.000" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""analysis on the code, so you need to do parsing,""" start="00:10:40.200" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""possibly compiling, all these different advanced features,""" start="00:10:42.680" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""all these advanced different things.""" start="00:10:47.000" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""For example, Rust Analyzer will do incremental compilation,""" start="00:10:48.960" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""which is really, really cool,""" start="00:10:52.520" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""but that's, like, a whole separate talk.""" start="00:10:54.320" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""If you're adapting an existing language tool,""" start="00:10:58.120" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""this stuff is really easy.""" start="00:11:00.320" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""You're basically just wiring stuff up.""" start="00:11:01.680" video="mainVideo-lspocaml" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Supporting a LS through LSP mode in Emacs""" start="00:11:03.480" video="mainVideo-lspocaml" id="subtitle"]]</div>[[!template text="""But, yeah. So, now we know all about""" start="00:11:03.480" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""LSP and language servers.""" start="00:11:08.360" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""Say you want to actually""" start="00:11:10.800" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""add support for a language server in Emacs.""" start="00:11:11.880" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""How do you do that? Well, let's look at LSP mode,""" start="00:11:14.080" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""because, like I said, this is what I'm most familiar with.""" start="00:11:19.160" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""I'm sure `eglot-mode` is pretty similar.""" start="00:11:21.520" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""So, `lsp-mode`'s repository is on GitHub,""" start="00:11:24.260" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""like everything, and it has a ton of different clients""" start="00:11:27.480" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""for a ton of different languages and frameworks and tools,""" start="00:11:31.500" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""like Semgrep, and these are available""" start="00:11:34.440" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""to anyone who installs LSP mode.""" start="00:11:37.040" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""Alternatively, you can make a separate package""" start="00:11:39.740" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""and just use LSP mode as a library,""" start="00:11:42.240" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""but I'm not going to focus on this,""" start="00:11:43.680" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""because there's already a ton of resources out there""" start="00:11:45.480" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""on packaging and Emacs.""" start="00:11:47.880" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""So, our steps, very quickly, are going to look like""" start="00:11:50.800" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""adding an Emacs Lisp file that contains some logic,""" start="00:11:54.560" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""add an entry somewhere, so we added a new client""" start="00:11:58.300" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""to the list of clients, and then do some documentation,""" start="00:12:01.320" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""because documentation's great.""" start="00:12:03.720" video="mainVideo-lspocaml" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Create a client""" start="00:12:06.000" video="mainVideo-lspocaml" id="subtitle"]]</div>[[!template text="""First, creating a client.""" start="00:12:06.000" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""In the `clients/` folder in `lsp-mode/`,""" start="00:12:07.640" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""literally just add, like, `lsp-` whatever it is,""" start="00:12:09.640" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""`require` the library, and register a client.""" start="00:12:12.920" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""Registering a client just means, like,""" start="00:12:15.760" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""saying what kind of connection it is.""" start="00:12:18.040" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""It's most likely going to be standard I/O,""" start="00:12:19.560" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""because that's pretty easy to implement,""" start="00:12:21.480" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""and then you just pass it the executable""" start="00:12:24.360" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""that you actually want to run.""" start="00:12:26.840" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""Say what the activation function is,""" start="00:12:29.560" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""so this is when the client should start,""" start="00:12:31.720" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""so you can specify the language""" start="00:12:33.320" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""or the major mode or whatever,""" start="00:12:36.240" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""and now your client will start whenever that's triggered,""" start="00:12:38.760" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""and then finally provide just a server ID,""" start="00:12:43.100" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""so that way it's easy to keep track of,""" start="00:12:45.640" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""and then run this LSP consistency check function.""" start="00:12:48.580" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""This just makes sure everything up there is good.""" start="00:12:52.760" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""You can do more advanced stuff with making an LSP client""" start="00:12:56.580" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""that I'm not going to get into,""" start="00:12:59.520" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""but just know that these aren't your only options,""" start="00:13:01.200" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""and then finally provide your client.""" start="00:13:03.800" video="mainVideo-lspocaml" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Add to list of client packages""" start="00:13:07.300" video="mainVideo-lspocaml" id="subtitle"]]</div>[[!template text="""Next, you just have to add your client""" start="00:13:07.300" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""to the list of clients that `lsp-mode` supports,""" start="00:13:09.800" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""and now you've added support for a whole new language,""" start="00:13:12.160" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""whole new framework, whole new tool to Emacs,""" start="00:13:15.640" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""and it's taking you, what, like, what is that,""" start="00:13:17.720" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""20 lines of Lisp? No, not even, like, 15.""" start="00:13:20.220" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""15 lines of Lisp, whole new language for Emacs.""" start="00:13:23.640" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""It's really exciting. Now that you have your client,""" start="00:13:26.640" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""let's do some documentation. Go fill out this, like, name,""" start="00:13:31.600" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""where the repository, the source code is,""" start="00:13:35.120" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""because free software is great,""" start="00:13:37.920" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""and you should open source your stuff.""" start="00:13:39.600" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""Specify the installation command.""" start="00:13:42.180" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""What's cool about this is""" start="00:13:44.200" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""this can be run automatically from Emacs,""" start="00:13:45.400" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""so if it's, like, `pip install pyright`, right,""" start="00:13:48.060" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""you can put that there, and Emacs will ask you,""" start="00:13:50.320" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""do you want to install the language server,""" start="00:13:53.400" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""and you can hit yes""" start="00:13:55.280" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""and users will just have it installed for them,""" start="00:13:56.200" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""and then you can say whether or not it's a debugger.""" start="00:13:59.540" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""This is completely separate,""" start="00:14:01.880" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""so there's this thing called DAP,""" start="00:14:03.160" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""which is the debugger adapter protocol,""" start="00:14:05.120" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""and it's similar to LSP but for debuggers,""" start="00:14:07.320" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""which is very cool,""" start="00:14:09.680" video="mainVideo-lspocaml" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Add documentation!""" start="00:14:11.680" video="mainVideo-lspocaml" id="subtitle"]]</div>[[!template text="""and then finally link to your documentation.""" start="00:14:11.680" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""Please, please document your stuff.""" start="00:14:14.600" video="mainVideo-lspocaml" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Adding commands and custom capabilities""" start="00:14:17.880" video="mainVideo-lspocaml" id="subtitle"]]</div>[[!template text="""If you want to add, like, a custom Emacs function""" start="00:14:17.880" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""or custom capabilities, it's super easy.""" start="00:14:20.480" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""It's literally just, like, calling a normal Emacs function.""" start="00:14:22.680" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""For example, Semgrep normally only scans files""" start="00:14:27.640" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""when you open them, but we added a Emacs function""" start="00:14:30.560" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""that will scan your entire project, right,""" start="00:14:34.200" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""and so that was just a client notification.""" start="00:14:36.720" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""It was just `lsp-notify` and then a custom method,""" start="00:14:40.960" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""and it's great because now you can just scan your project""" start="00:14:44.120" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""from a simple Emacs function.""" start="00:14:46.720" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""Requests, very similar to notifications.""" start="00:14:48.720" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""You send it and then pass it a lambda""" start="00:14:52.120" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""and do something with the result,""" start="00:14:56.080" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""and so that's adding custom capabilities.""" start="00:14:58.460" video="mainVideo-lspocaml" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Thanks for listening""" start="00:15:01.360" video="mainVideo-lspocaml" id="subtitle"]]</div>[[!template text="""That's pretty much it. Thank you for listening.""" start="00:15:01.360" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""Some resources here.""" start="00:15:04.320" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""These links are clickable if you get the PDF,""" start="00:15:05.640" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""if you get the slides. Semgrep: we're hiring!""" start="00:15:08.240" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""If you want to work on, like,""" start="00:15:10.920" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""programming language theory stuff,""" start="00:15:12.120" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""compilers, parsers, editors,""" start="00:15:13.720" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""email me or go look at our jobs.""" start="00:15:18.120" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""The LSP specification, this is, like, the holy Bible.""" start="00:15:22.120" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""It has all the specs, all the types, everything.""" start="00:15:25.120" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""`lsp-mode` and the docs.""" start="00:15:28.340" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""`lsp-mode`, right, that's where you want to add your client.""" start="00:15:30.420" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""The docs are great, super useful.""" start="00:15:33.280" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""Rust Analyzer is just a great reference""" start="00:15:36.100" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""for language servers in general""" start="00:15:38.080" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""if you want to write one or if you just want to, like,""" start="00:15:39.920" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""see how they work. It's all just really well done.""" start="00:15:42.120" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""It's great code, very readable.""" start="00:15:45.400" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""And then down here is just a long video tutorial,""" start="00:15:47.040" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""a longer video tutorial, not by me,""" start="00:15:50.480" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""by someone else, on how to add a language client to Emacs,""" start="00:15:54.700" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""but hopefully this is sufficient for y'all,""" start="00:15:58.440" video="mainVideo-lspocaml" id="subtitle"]]
+[[!template text="""and now it's time for some Q&A.""" start="00:16:01.480" video="mainVideo-lspocaml" id="subtitle"]]
+
+</div>
+
+Captioner: sachac
+
+<div class="transcript transcript-qanda"><a name="lspocaml-qanda-transcript"></a><h1>Q&A transcript (unedited)</h1>
+
+[[!template text="""[Speaker 0]: I would invite all on the,""" start="00:00:03.540" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""who are currently watching,""" start="00:00:04.600" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""who have questions, put them into the pad""" start="00:00:06.819" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""that I can ask them. I'm kind of monitoring""" start="00:00:08.940" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""the IRC concurrently. So the first question""" start="00:00:16.320" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""that we have on the pad is concerning why you""" start="00:00:18.640" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""have switched from OCaml.""" start="00:00:19.600" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""Maybe the person has missed it in the talk,""" start="00:00:22.420" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""if you've mentioned it.""" start="00:00:23.480" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""Why have you switched from OCaml to,""" start="00:00:25.080" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""in this case, I guess,""" start="00:00:25.920" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""Rust?""" start="00:00:26.180" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""[Speaker 1]: Yeah, I mentioned like with writing a""" start="00:00:30.960" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""language server that I wrote mine for my""" start="00:00:34.280" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""company in OCaml But I wouldn't recommend it""" start="00:00:36.900" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""just in general unless like you're doing""" start="00:00:38.960" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""something specific with OCaml And the reason""" start="00:00:41.720" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""for that and I recommended Rust or like""" start="00:00:44.180" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""TypeScript is like OCaml is great.""" start="00:00:45.780" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""It's very performant but it's cross""" start="00:00:49.080" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""compilation story is not great.""" start="00:00:50.739" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""It's like really hard to cross compile like""" start="00:00:54.100" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""from 1 platform to another.""" start="00:00:55.840" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""And then like the ecosystem and its standard""" start="00:00:58.120" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""library is also not great.""" start="00:01:00.380" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""And like Rust, its cross compilation is""" start="00:01:03.460" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""great. Its ecosystem is great.""" start="00:01:05.820" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""OCaml is great if you need to use it,""" start="00:01:08.720" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""but it's just it's not ideal.""" start="00:01:10.880" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""And there's just also no good examples of a""" start="00:01:14.220" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""language server in OCaml.""" start="00:01:15.240" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""There's the official like OCaml language""" start="00:01:19.119" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""server, But they use a ton of super advanced""" start="00:01:22.920" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""language features, like module functors and a""" start="00:01:27.380" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""bunch of other random stuff.""" start="00:01:28.440" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""So it's not really readable.""" start="00:01:29.479" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""But Rust, there's Rust analyzer,""" start="00:01:31.860" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""which is readable. In TypeScript,""" start="00:01:33.340" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""there's like a million different ones.""" start="00:01:34.860" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""So it's less of a, not OCaml is like,""" start="00:01:39.340" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""it's not that OCaml isn't great.""" start="00:01:40.920" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""It's more of a, these other languages would""" start="00:01:43.320" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""probably just be easier.""" start="00:01:44.160" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""So.""" start="00:01:45.280" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""[Speaker 0]: I guess since the integration to,""" start="00:01:48.619" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""for example, like NeoVim or some other""" start="00:01:50.820" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""editors are just revenue fine because of the""" start="00:01:53.320" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""[Speaker 1]: Sorry, can you say that again?""" start="00:01:56.920" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""[Speaker 0]: LSP, I guess. The LSP,""" start="00:01:58.580" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""so it's a standard LSP specification that""" start="00:02:01.979" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""you're using. So you can also,""" start="00:02:03.080" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""for instance, use it and other editors,""" start="00:02:04.920" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""like for instance, new them or so.""" start="00:02:06.660" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""[Speaker 1]: Yeah. Yeah. You can use it.""" start="00:02:08.680" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""It's most, most editors nowadays support it.""" start="00:02:11.680" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""Like obviously Emacs, NeoVim,""" start="00:02:13.280" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""Sublime, VS code, Intel,""" start="00:02:16.420" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""all the IntelliJ ones.""" start="00:02:17.700" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""So yeah, that's, that's the fun part.""" start="00:02:21.560" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""You don't have to write 10 different""" start="00:02:23.440" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""languages to get a bunch of editor support.""" start="00:02:26.500" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""[Speaker 0]: Also experience writing it.""" start="00:02:30.200" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""So I didn't have really time to hear into""" start="00:02:33.820" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""your talk. So I'm sorry if I ask you""" start="00:02:36.300" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""questions that you have already said.""" start="00:02:38.100" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""How was the experience of writing an LSP?""" start="00:02:41.400" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""So have you any knowledge beforehand or do""" start="00:02:44.340" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""you just read it all on yourself?""" start="00:02:45.600" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""[Speaker 1]: Yeah, there's not a ton of documentation,""" start="00:02:49.200" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""which is what motivated me to do this talk.""" start="00:02:53.440" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""Basically, I just looked at the""" start="00:02:56.380" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""specification, and I knew Rust Analyzer was""" start="00:02:58.820" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""cool. And so I looked at Rust Analyzer,""" start="00:03:00.240" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""and I looked at PyRite.""" start="00:03:01.600" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""And I just went from there.""" start="00:03:04.200" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""I found out about all this because I already""" start="00:03:07.920" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""using Emacs, I already knew about it.""" start="00:03:10.240" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""I was like, this is going to be easier than""" start="00:03:12.160" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""something else. So yeah,""" start="00:03:15.020" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""there's the experience is fine.""" start="00:03:17.720" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""It's just a lot of wiring stuff up.""" start="00:03:21.060" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""It's not a lot of like hard thinking until""" start="00:03:24.100" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""you get to like performance heavy stuff.""" start="00:03:26.200" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""Like, so for some graph,""" start="00:03:27.740" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""like we're doing a ton of like code parsing""" start="00:03:30.760" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""and like analyzing. And so that's,""" start="00:03:32.980" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""it takes up like a ton of processing power.""" start="00:03:35.760" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""So like for stuff like that,""" start="00:03:37.280" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""like now you have to think about caching and""" start="00:03:39.620" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""like ordering things. So that part's hard,""" start="00:03:43.980" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""but that's more of a, like very much""" start="00:03:47.180" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""application specific thing.""" start="00:03:48.640" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""[Speaker 0]: Right. Anything in the IRC chat.""" start="00:03:58.320" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""I think not. It's nothing I can see.""" start="00:04:01.840" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""No questions, that's kind of odd to be""" start="00:04:13.380" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""honest. I cannot really ask questions""" start="00:04:17.440" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""concerning LSP specific.""" start="00:04:18.680" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""[Speaker 1]: Yeah, no worries.""" start="00:04:22.400" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""[Speaker 0]: Good question, what could be asked?""" start="00:04:31.460" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""Let's call, let's ask something very""" start="00:04:35.740" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""unspecific concerning the Emacs usage.""" start="00:04:38.260" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""And when have you started?""" start="00:04:39.340" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""How did you came through it and stuff like""" start="00:04:41.580" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""this?""" start="00:04:41.780" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""[Speaker 1]: Yeah. I like and when I was in high school,""" start="00:04:46.560" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""me and my friends just were like,""" start="00:04:48.480" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""got obsessed with Linux for whatever reason.""" start="00:04:51.820" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""And then like we traveled down like the,""" start="00:04:53.940" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""like the free software,""" start="00:04:55.560" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""like we just thought that was like very""" start="00:04:57.700" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""entertaining and like interesting to read""" start="00:05:00.040" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""about all the free software stuff.""" start="00:05:01.200" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""They were like, yeah, that's cool.""" start="00:05:03.120" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""And so we all started using Linux.""" start="00:05:04.540" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""And I'm like, well, if I'm using free""" start="00:05:06.960" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""software, I'm going to use Emacs.""" start="00:05:08.300" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""And so I started using Emacs just to try it""" start="00:05:12.280" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""out. And then I kind of got,""" start="00:05:13.940" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""I feel like, Stockholm syndrome into it.""" start="00:05:16.880" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""And now I've realized like,""" start="00:05:18.720" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""I don't know, now that I've done the like""" start="00:05:21.860" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""actual work to get into Emacs,""" start="00:05:23.880" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""it's just, there's so much more I can do with""" start="00:05:26.280" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""it. But yeah, it was somewhat unintentional.""" start="00:05:30.300" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""[Speaker 0]: I probably have the same course I've started""" start="00:05:36.100" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""like 2 years ago using Emacs.""" start="00:05:37.780" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""And also just, oh, there's at first some cool""" start="00:05:42.720" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""people on YouTube, so systems crafters and""" start="00:05:45.020" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""people like this. And also,""" start="00:05:46.300" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""ah, VS Code, I used a lot of VS Code""" start="00:05:49.440" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""beforehand and then VS Codium because open""" start="00:05:53.560" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""source and then oh are there any other""" start="00:05:55.640" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""alternatives and I came to like Neovim and""" start="00:05:58.020" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""Emacs and often switching around but I stick""" start="00:06:01.160" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""to Emacs at some point to be honest.""" start="00:06:03.220" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""[Speaker 1]: Yeah, I think Emacs also just looks really""" start="00:06:07.180" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""cool. I will say that.""" start="00:06:08.500" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""And also just like I like Vim.""" start="00:06:14.240" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""Vim is cool but like being able to like write""" start="00:06:16.960" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""lists and like modify your editor on the fly""" start="00:06:19.240" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""is just like very appealing to me.""" start="00:06:20.920" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""I don't know, Emacs was tough at first""" start="00:06:23.860" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""because like all the like default key""" start="00:06:25.520" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""bindings are just kind of like and then and""" start="00:06:28.380" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""then I read somewhere someone was like yeah""" start="00:06:29.860" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""well Richard Stallman uses evil mode so it's""" start="00:06:33.220" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""okay. I was like alright I can that's like""" start="00:06:36.220" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""blessing enough for me Like I'm just gonna""" start="00:06:38.000" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""switch to evil mode. And I was like,""" start="00:06:39.520" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""this is way, way better as far as key""" start="00:06:42.160" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""bindings go.""" start="00:06:42.920" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""[Speaker 0]: Kind of relates. So I switched for,""" start="00:06:46.720" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""I think, half a year to the default key""" start="00:06:49.900" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""bindings from Vim beforehand.""" start="00:06:51.300" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""I switched back to Evil and now I'm losing""" start="00:06:54.960" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""some kind of hybrid styles.""" start="00:06:56.100" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""It's kind of weird. But we have a question on""" start="00:07:01.000" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""the pad. So what are the corner cases,""" start="00:07:03.260" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""limitations, and other issues you encountered""" start="00:07:05.380" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""in implementing an LSP server with client in""" start="00:07:08.860" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""Emacs that were surprising?""" start="00:07:09.940" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""[Speaker 1]: Yeah, I would say the corner cases and""" start="00:07:13.680" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""limitations are definitely like,""" start="00:07:15.280" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""once again, they're going to be very""" start="00:07:16.960" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""application specific, but it's usually just""" start="00:07:18.960" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""the performance part. So like I was saying""" start="00:07:22.420" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""before, right, in general if you're doing""" start="00:07:24.680" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""language tooling, you're gonna be doing""" start="00:07:26.120" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""either parsing or interpreting or something""" start="00:07:29.760" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""like that, which is very just like""" start="00:07:31.560" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""computationally heavy and so if you're trying""" start="00:07:34.740" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""to like do that stuff while someone is""" start="00:07:36.900" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""editing a file right like every keystrokes""" start="00:07:38.520" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""every like 1 to 2 seconds if they have a fast""" start="00:07:42.660" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""computer that's great but a lot of people""" start="00:07:44.240" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""don't have like that fast of a computer that""" start="00:07:46.400" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""they can go and like do compilation every""" start="00:07:49.480" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""single keystroke. So like,""" start="00:07:51.680" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""I would say, I would say the like limitation""" start="00:07:54.080" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""is just how fast your computer is and how""" start="00:07:56.920" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""good you are at like implementing caching for""" start="00:07:59.140" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""like whatever you're doing.""" start="00:08:01.020" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""That's also just the main issues I've run""" start="00:08:04.080" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""into is just it's a constant uphill battle.""" start="00:08:08.080" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""People will somehow find larger and larger""" start="00:08:12.120" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""files. You'll end up with files that are like""" start="00:08:14.580" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""thousands, like tens of thousands of lines""" start="00:08:17.320" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""long and you think yeah,""" start="00:08:18.700" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""surely no 1 would expect like instantaneous""" start="00:08:21.340" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""response for like like editing a file that""" start="00:08:25.440" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""has like tens of thousands of lines,""" start="00:08:26.820" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""but then they do. As far as corner cases go,""" start="00:08:30.000" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""I would say the corner case is like,""" start="00:08:31.960" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""just in general is actually distributing the""" start="00:08:37.760" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""language server. Cause like writing the""" start="00:08:41.039" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""language server is fine.""" start="00:08:42.340" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""Like wiring everything up is fine.""" start="00:08:44.540" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""But then like, once you actually have to go""" start="00:08:47.180" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""and distribute it, well,""" start="00:08:47.960" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""now you're distributing in a binary.""" start="00:08:49.200" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""Like I was saying before with OCaml,""" start="00:08:51.660" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""doesn't have great cross compilation.""" start="00:08:53.940" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""So for some graph for our language server,""" start="00:08:58.840" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""we target Linux and Mac OS,""" start="00:09:01.560" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""and we have a ton of people who use Windows,""" start="00:09:03.840" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""but compiling OCaml for Windows is basically""" start="00:09:06.960" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""impossible. So our corner case there,""" start="00:09:10.080" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""the way we solved it was now we're""" start="00:09:11.980" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""transpiling OCaml to JavaScript,""" start="00:09:14.160" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""which is a huge can of worms.""" start="00:09:17.080" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""Like it's a lot of fun.""" start="00:09:18.840" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""It's very interesting,""" start="00:09:19.400" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""but like it's not ideal.""" start="00:09:22.860" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""And so that's what I was saying before.""" start="00:09:24.340" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""I recommend like Rust or TypeScript because""" start="00:09:26.360" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""those are way more portable and a lot easier""" start="00:09:29.580" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""to install. And you don't have to worry about""" start="00:09:31.280" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""any of that weird packaging stuff.""" start="00:09:33.600" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""So yeah, I would say that's like the main""" start="00:09:37.600" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""corner case and the main limitation is just""" start="00:09:40.260" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""speed and caching.""" start="00:09:41.720" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""[Speaker 0]: You mentioned this obscure large file so""" start="00:09:47.160" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""someone doesn't want to refactor or""" start="00:09:49.000" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""something. How did you start?""" start="00:09:51.760" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""So did you have any way to still be""" start="00:09:54.480" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""relatively performant when they have big""" start="00:09:56.320" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""files or is it just not supported?""" start="00:09:58.020" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""I don't care.""" start="00:09:58.920" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""[Speaker 1]: Yeah, no, we, so we support larger files now""" start="00:10:03.140" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""And the way we ended up doing that,""" start="00:10:05.460" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""so SemGrep is like you write this generic""" start="00:10:11.480" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""pattern. You kind of write the language,""" start="00:10:14.540" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""but then there's these other symbols and""" start="00:10:17.160" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""stuff that are included in that,""" start="00:10:18.760" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""this like meta language.""" start="00:10:19.760" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""And so what happens is,""" start="00:10:22.420" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""is most languages get,""" start="00:10:23.600" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""they get parsed and then into a syntax tree,""" start="00:10:27.720" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""right? Like whatever the language is syntax""" start="00:10:29.180" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""tree is, and then they get,""" start="00:10:30.620" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""the syntax tree gets converted into this,""" start="00:10:33.800" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""like, we call it like an abstract syntax""" start="00:10:35.860" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""tree, which is like abstract from like any,""" start="00:10:38.080" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""like languages specific syntax tree.""" start="00:10:39.860" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""And so then we can cache that,""" start="00:10:41.940" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""which is really good because like if someone""" start="00:10:44.480" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""types something like we don't have to go""" start="00:10:47.700" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""through and do like the full parsing and like""" start="00:10:50.280" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""converting, we only have to do it""" start="00:10:51.560" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""incrementally. And so that's,""" start="00:10:54.960" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""that's how we dealt with that.""" start="00:10:56.100" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""Or the other option is that we just,""" start="00:10:58.140" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""we just cache whatever the previous results""" start="00:11:00.720" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""are, and then run it asynchronously,""" start="00:11:03.460" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""and they might get it delayed.""" start="00:11:04.960" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""But we've ended up doing more AST caching,""" start="00:11:08.200" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""which is fun and cool.""" start="00:11:09.880" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""[Speaker 0]: Sounds good. So we have here a question from""" start="00:11:15.600" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""Blaine. If Eaglet is a subset of LSP mode,""" start="00:11:18.240" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""can EGLOT conflict with LSP mode if both are""" start="00:11:21.680" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""present in your initial .el""" start="00:11:23.400" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""file?""" start="00:11:24.280" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""[Speaker 1]: Yeah, so I haven't played around with EGLOT""" start="00:11:27.740" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""mode a ton, so I'm not 100% sure.""" start="00:11:30.580" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""I think all of the key bindings and commands,""" start="00:11:33.920" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""if you just install it out of the box,""" start="00:11:36.320" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""I Think they're different.""" start="00:11:39.020" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""So I don't think there's like any like""" start="00:11:41.440" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""overlap as far as that stuff goes but you""" start="00:11:44.760" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""will have the overlap of like you entered,""" start="00:11:47.520" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""like you started a major mode for like some""" start="00:11:49.780" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""language, like they'll both probably start""" start="00:11:51.500" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""the language server and provide diagnostics""" start="00:11:53.040" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""and everything. And so then now you're""" start="00:11:55.320" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""getting like, you're just like doubling the""" start="00:11:58.180" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""work your computer is doing.""" start="00:11:59.340" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""So there's that conflict.""" start="00:12:00.480" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""But if you prefer EGLOT mode or LSP mode for""" start="00:12:04.160" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""like 1 language or framework,""" start="00:12:05.200" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""like 1 major mode and LSP mode for the other,""" start="00:12:09.060" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""I think you should be fine.""" start="00:12:10.600" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""[Speaker 0]: All right. Just to let you know,""" start="00:12:14.680" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""we have like 1 minute on the stream and then""" start="00:12:20.460" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""we'll switch back and to the pre-recorded""" start="00:12:22.540" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""stuff I guess.""" start="00:12:24.000" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""[Speaker 2]: Yeah yeah yeah let's hi sorry for the rude""" start="00:12:27.440" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""interruption but I'm just doing a little bit""" start="00:12:29.440" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""of time keeping so thank you so much Austin""" start="00:12:31.700" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""sadly I wasn't able to follow the Q&A because""" start="00:12:34.340" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""I was in the other track answering questions.""" start="00:12:36.280" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""If, Austin, you want to stay and answer some""" start="00:12:39.960" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""more questions, feel free to do so.""" start="00:12:41.580" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""People tend to start talking as soon as we go""" start="00:12:45.920" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""off air, And I wouldn't be surprised with LSP""" start="00:12:48.400" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""that people would do the same.""" start="00:12:49.540" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""We're gonna move on for this track.""" start="00:12:52.800" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""We're gonna move on in 20 seconds to the next""" start="00:12:54.840" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""1. So Floey, thank you for hosting.""" start="00:12:56.920" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""Austin, thank you for all your answers.""" start="00:12:58.680" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""And We'll see you in a bit.""" start="00:13:01.460" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""[Speaker 1]: Cool. Thanks. See you.""" start="00:13:04.740" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""[Speaker 0]: Thanks for the Q&A.""" start="00:13:06.700" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""[Speaker 2]: All right. All right. You are now off air.""" start="00:13:10.120" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""Thank you so much, Austin.""" start="00:13:11.400" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""I'm going to go back running in the""" start="00:13:13.100" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""background. And thank you,""" start="00:13:13.940" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""Flowey, for everything.""" start="00:13:14.700" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""[Speaker 0]: And thanks. Yeah. Have a nice,""" start="00:13:20.900" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""probably a nice day at your work.""" start="00:13:23.160" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""[Speaker 1]: Yeah, no worries. Yeah.""" start="00:13:24.140" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""Yeah, it's still it's like lunchtime for me.""" start="00:13:26.380" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""[Speaker 0]: So okay, here, it's like,""" start="00:13:28.100" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""09:00. 9pm. Thanks for the talk.""" start="00:13:34.380" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""Sorry for the inconvenience was not having""" start="00:13:36.300" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""any, any questions, really.""" start="00:13:37.540" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""[Speaker 1]: So yeah. Oh yeah, no worries.""" start="00:13:39.000" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""It's like, there's like no documentation on""" start="00:13:41.100" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""any of this stuff. So I didn't really expect""" start="00:13:42.940" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""any.""" start="00:13:43.380" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""[Speaker 0]: Yeah, I was kind of interested when I jumped""" start="00:13:47.220" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""into NeoVim. I write it 1 or 2 things on my""" start="00:13:51.000" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""own, but never really got really deep into""" start="00:13:53.140" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""it. And you're gonna see with like compiler""" start="00:13:54.520" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""design and stuff like this,""" start="00:13:55.920" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""but not really specific.""" start="00:13:57.400" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""So I was""" start="00:13:58.320" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""[Speaker 1]: kind of- Yeah, that's the hard part.""" start="00:14:00.860" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""It's like, it's, LSP is cool,""" start="00:14:02.440" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""but then you have to like deal with all the""" start="00:14:05.020" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""like compiler stuff and programming language""" start="00:14:06.760" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""theory.""" start="00:14:07.200" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""[Speaker 0]: So yeah. So it's, it shouldn't be too""" start="00:14:10.600" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""complicated. I had not really a question,""" start="00:14:13.280" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""so, but it worked out fine.""" start="00:14:14.700" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""Thanks for the Q and A.""" start="00:14:16.500" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""And if I have any questions to Oak Hamill,""" start="00:14:18.560" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""Elderspeak will get an email from you.""" start="00:14:20.640" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""[Speaker 1]: Oh yeah, definitely.""" start="00:14:21.560" video="qanda-lspocaml" id="subtitle"]]
+[[!template text="""[Speaker 0]: Dan?""" start="00:14:23.500" video="qanda-lspocaml" id="subtitle"]]
+
+</div>Questions or comments? Please e-mail [austin@cutedogs.org](mailto:austin@cutedogs.org?subject=Comment%20for%20EmacsConf%202023%20lspocaml%3A%20Writing%20a%20language%20server%20in%20OCaml%20for%20Emacs%2C%20fun%2C%20and%20profit)
<!-- End of emacsconf-publish-after-page -->
diff --git a/2023/info/lspocaml-before.md b/2023/info/lspocaml-before.md
index f1f6f49a..cdb010e5 100644
--- a/2023/info/lspocaml-before.md
+++ b/2023/info/lspocaml-before.md
@@ -1,12 +1,38 @@
<!-- Automatically generated by emacsconf-publish-before-page -->
[[!toc ]]
-Format: 10-min talk followed by live web conference Q&A
-Discuss on IRC: [#emacsconf](https://chat.emacsconf.org/?join=emacsconf)
-Status: Waiting for video from speaker
+Format: 17-min talk ; Q&A: BigBlueButton conference room
+Status: Q&A to be extracted from the room recordings
+# Talk
+
+<div class="vid mainVideo"><video controls preload="none" id="mainVideo-lspocaml"><source src="https://media.emacsconf.org/2023/emacsconf-2023-lspocaml--writing-a-language-server-in-ocaml-for-emacs-fun-and-profit--austin-theriault--main.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2023/captions/emacsconf-2023-lspocaml--writing-a-language-server-in-ocaml-for-emacs-fun-and-profit--austin-theriault--main.vtt" default />"""<track kind="chapters" label="Chapters" src="/2023/captions/emacsconf-2023-lspocaml--writing-a-language-server-in-ocaml-for-emacs-fun-and-profit--austin-theriault--main--chapters.vtt" /><p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video>[[!template id="chapters" vidid="mainVideo-lspocaml" data="""
+00:00.000 Introduction
+00:16.540 What is Semgrep?
+00:40.720 How do we show security bugs early?
+01:37.880 What is the Language Server Protocol?
+02:29.040 Case study: Rust Analyzer
+03:42.760 Rust Analyzer in action
+04:09.960 Why is this useful?
+05:36.220 So what about Emacs?
+06:40.700 Technical part - Brief communication overview
+07:58.760 Example request
+08:03.380 LSP capabilities
+09:23.380 Tips on writing a LS
+11:03.480 Supporting a LS through LSP mode in Emacs
+12:06.000 Create a client
+13:07.300 Add to list of client packages
+14:11.680 Add documentation!
+14:17.880 Adding commands and custom capabilities
+15:01.360 Thanks for listening
+
+"""]]<div></div>Duration: 16:04 minutes<div class="files resources"><ul><li><a href="https://pad.emacsconf.org/2023-lspocaml">Open Etherpad</a></li><li><a href="https://bbb.emacsverse.org/playback/presentation/2.0/playback.html?meetingId=6c21ce25eae19932bf370829bd0e9dcba9e18e27-1701631387142">Play recording from BigBlueButton</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-lspocaml--writing-a-language-server-in-ocaml-for-emacs-fun-and-profit--austin-theriault--intro.vtt">Download --intro.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-lspocaml--writing-a-language-server-in-ocaml-for-emacs-fun-and-profit--austin-theriault--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-lspocaml--writing-a-language-server-in-ocaml-for-emacs-fun-and-profit--austin-theriault--main--chapters.vtt">Download --main--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-lspocaml--writing-a-language-server-in-ocaml-for-emacs-fun-and-profit--austin-theriault--main.opus">Download --main.opus (8.7MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-lspocaml--writing-a-language-server-in-ocaml-for-emacs-fun-and-profit--austin-theriault--main.vtt">Download --main.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-lspocaml--writing-a-language-server-in-ocaml-for-emacs-fun-and-profit--austin-theriault--main.webm">Download --main.webm (29MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-lspocaml--writing-a-language-server-in-ocaml-for-emacs-fun-and-profit--austin-theriault.pdf">Download .pdf (87MB)</a></li><li><a href="https://toobnix.org/w/jgMzmGyx4H1YDwc5n1eRZu">View on Toobnix</a></li><li><a href="https://www.youtube.com/watch?v=VhUIS55UbQs">View on Youtube</a></li></ul></div></div>
+
+# Q&A
+
+<div class="vid qanda"><video controls preload="none" id="qanda-lspocaml"><source src="https://media.emacsconf.org/2023/emacsconf-2023-lspocaml--writing-a-language-server-in-ocaml-for-emacs-fun-and-profit--austin-theriault--answers.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2023/captions/emacsconf-2023-lspocaml--writing-a-language-server-in-ocaml-for-emacs-fun-and-profit--austin-theriault--answers.vtt" default />"""<p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video><div>Listen to just the audio:<br /><audio controls preload="none" id="qanda-lspocaml-audio" src="https://media.emacsconf.org/2023/emacsconf-2023-lspocaml--writing-a-language-server-in-ocaml-for-emacs-fun-and-profit--austin-theriault--answers.opus"></audio></div><div></div>Duration: 14:24 minutes<div class="files resources"><ul><li><a href="https://pad.emacsconf.org/2023-lspocaml">Open Etherpad</a></li><li><a href="https://bbb.emacsverse.org/playback/presentation/2.0/playback.html?meetingId=6c21ce25eae19932bf370829bd0e9dcba9e18e27-1701631387142">Play recording from BigBlueButton</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-lspocaml--writing-a-language-server-in-ocaml-for-emacs-fun-and-profit--austin-theriault--answers.json">Download --answers.json</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-lspocaml--writing-a-language-server-in-ocaml-for-emacs-fun-and-profit--austin-theriault--answers.opus">Download --answers.opus (8.2MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-lspocaml--writing-a-language-server-in-ocaml-for-emacs-fun-and-profit--austin-theriault--answers.vtt">Download --answers.vtt</a> (unedited)</li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-lspocaml--writing-a-language-server-in-ocaml-for-emacs-fun-and-profit--austin-theriault--answers.webm">Download --answers.webm (23MB)</a></li></ul></div></div>
# Description
<!-- End of emacsconf-publish-before-page --> \ No newline at end of file
diff --git a/2023/info/lspocaml-nav.md b/2023/info/lspocaml-nav.md
index 0e089295..73a7feb2 100644
--- a/2023/info/lspocaml-nav.md
+++ b/2023/info/lspocaml-nav.md
@@ -1,7 +1,7 @@
<div class="talk-nav">
Back to the [[talks]]
-Previous by track: <a href="/2023/talks/gc">emacs-gc-stats: Does garbage collection actually slow down Emacs?</a>
-Next by track: <a href="/2023/talks/windows">Windows into Freedom</a>
-Track: <span class="sched-track Development">Development</span>
+Previous by track: <a href="/2023/talks/hyperdrive">hyperdrive.el: Peer-to-peer filesystem in Emacs</a>
+Next by track: <a href="/2023/talks/test">What I learned by writing test cases for GNU Hyperbole</a>
+Track: <span class="sched-track Development">Development</span> - <strong><a href="https://emacsconf.org/2023/watch/dev">Watch</a></strong>
</div>
diff --git a/2023/info/matplotllm-after.md b/2023/info/matplotllm-after.md
index b418580f..b498528d 100644
--- a/2023/info/matplotllm-after.md
+++ b/2023/info/matplotllm-after.md
@@ -1,7 +1,216 @@
<!-- Automatically generated by emacsconf-publish-after-page -->
-Questions or comments? Please e-mail [abhinav@lepisma.xyz](mailto:abhinav@lepisma.xyz?subject=Comment%20for%20EmacsConf%202022%20matplotllm%3A%20MatplotLLM%2C%20iterative%20natural%20language%20data%20visualization%20in%20org-babel)
+<div class="transcript transcript-mainVideo"><a name="matplotllm-mainVideo-transcript"></a><h1>Transcript</h1>
+
+
+<div class="transcript-heading">[[!template new="1" text="""Introduction""" start="00:00:00.000" video="mainVideo-matplotllm" id="subtitle"]]</div>[[!template text="""Hi, my name is Abhinav and I'm going to talk about""" start="00:00:00.000" video="mainVideo-matplotllm" id="subtitle"]]
+[[!template text="""this tool that I've been working on called MatplotLLM.""" start="00:00:03.040" video="mainVideo-matplotllm" id="subtitle"]]
+[[!template text="""MatplotLLM is a natural language interface""" start="00:00:06.200" video="mainVideo-matplotllm" id="subtitle"]]
+[[!template text="""over matplotlib, which is a library I use a lot""" start="00:00:09.520" video="mainVideo-matplotllm" id="subtitle"]]
+[[!template text="""for making visualizations.""" start="00:00:12.480" video="mainVideo-matplotllm" id="subtitle"]]
+[[!template text="""It's a pretty common Python library used a lot everywhere""" start="00:00:14.440" video="mainVideo-matplotllm" id="subtitle"]]
+[[!template text="""where there's need of plotting and graphing.""" start="00:00:18.680" video="mainVideo-matplotllm" id="subtitle"]]
+[[!template text="""I usually use it in reports.""" start="00:00:22.480" video="mainVideo-matplotllm" id="subtitle"]]
+[[!template text="""Whenever I'm writing a report in org mode,""" start="00:00:25.360" video="mainVideo-matplotllm" id="subtitle"]]
+[[!template text="""I tend to write a code block which is in Python.""" start="00:00:27.360" video="mainVideo-matplotllm" id="subtitle"]]
+[[!template text="""And then that code block has usage of matplotlib""" start="00:00:31.560" video="mainVideo-matplotllm" id="subtitle"]]
+[[!template text="""to produce some reports.""" start="00:00:34.080" video="mainVideo-matplotllm" id="subtitle"]]
+[[!template text="""That works really well.""" start="00:00:36.000" video="mainVideo-matplotllm" id="subtitle"]]
+[[!template text="""But at times what happens is""" start="00:00:38.320" video="mainVideo-matplotllm" id="subtitle"]]
+[[!template text="""I have to make a very custom graph, let's say.""" start="00:00:40.000" video="mainVideo-matplotllm" id="subtitle"]]
+[[!template text="""And then while I'm writing a report,""" start="00:00:43.960" video="mainVideo-matplotllm" id="subtitle"]]
+[[!template text="""it's kind of a huge leap of abstraction""" start="00:00:46.920" video="mainVideo-matplotllm" id="subtitle"]]
+[[!template text="""when I'm working on text""" start="00:00:50.680" video="mainVideo-matplotllm" id="subtitle"]]
+[[!template text="""versus going into actual low-level matplotlib code""" start="00:00:51.520" video="mainVideo-matplotllm" id="subtitle"]]
+[[!template text="""to do that graphing.""" start="00:00:54.880" video="mainVideo-matplotllm" id="subtitle"]]
+[[!template text="""So that's something I don't want to do.""" start="00:00:56.240" video="mainVideo-matplotllm" id="subtitle"]]
+[[!template text="""Here's an example.""" start="00:00:59.680" video="mainVideo-matplotllm" id="subtitle"]]
+[[!template text="""This is a graph which is... I think it was made""" start="00:01:00.480" video="mainVideo-matplotllm" id="subtitle"]]
+[[!template text="""like five or six years back.""" start="00:01:04.000" video="mainVideo-matplotllm" id="subtitle"]]
+[[!template text="""And then there are some common things""" start="00:01:05.840" video="mainVideo-matplotllm" id="subtitle"]]
+[[!template text="""like scatter plot here,""" start="00:01:08.400" video="mainVideo-matplotllm" id="subtitle"]]
+[[!template text="""the dots that you can see here scattered.""" start="00:01:09.960" video="mainVideo-matplotllm" id="subtitle"]]
+[[!template text="""Then... But there are a few things which, to do them,""" start="00:01:12.240" video="mainVideo-matplotllm" id="subtitle"]]
+[[!template text="""to make them, you will actually have to go--at least me,""" start="00:01:16.280" video="mainVideo-matplotllm" id="subtitle"]]
+[[!template text="""I have to go to the documentation""" start="00:01:19.160" video="mainVideo-matplotllm" id="subtitle"]]
+[[!template text="""and figure out how to do it. Which is fine,""" start="00:01:20.840" video="mainVideo-matplotllm" id="subtitle"]]
+[[!template text="""but I don't want to do this, you know,""" start="00:01:24.120" video="mainVideo-matplotllm" id="subtitle"]]
+[[!template text="""spend so much time here, when I'm working on""" start="00:01:26.520" video="mainVideo-matplotllm" id="subtitle"]]
+[[!template text="""a tight deadline for a report.""" start="00:01:29.200" video="mainVideo-matplotllm" id="subtitle"]]
+[[!template text="""That's the motivation for this tool.""" start="00:01:32.320" video="mainVideo-matplotllm" id="subtitle"]]
+[[!template text="""This tool basically allows me""" start="00:01:33.920" video="mainVideo-matplotllm" id="subtitle"]]
+[[!template text="""to get rid of the complexity of the library""" start="00:01:35.200" video="mainVideo-matplotllm" id="subtitle"]]
+[[!template text="""by working via an LLM.""" start="00:01:38.480" video="mainVideo-matplotllm" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""What is an LLM?""" start="00:01:40.720" video="mainVideo-matplotllm" id="subtitle"]]</div>[[!template text="""So an LLM is a large language model.""" start="00:01:40.720" video="mainVideo-matplotllm" id="subtitle"]]
+[[!template text="""These are models which are""" start="00:01:43.400" video="mainVideo-matplotllm" id="subtitle"]]
+[[!template text="""trained to produce text, generate text.""" start="00:01:45.080" video="mainVideo-matplotllm" id="subtitle"]]
+[[!template text="""And just by doing that,""" start="00:01:49.400" video="mainVideo-matplotllm" id="subtitle"]]
+[[!template text="""they actually end up learning a lot of common patterns.""" start="00:01:51.520" video="mainVideo-matplotllm" id="subtitle"]]
+[[!template text="""For example, if you ask a question,""" start="00:01:55.080" video="mainVideo-matplotllm" id="subtitle"]]
+[[!template text="""you can actually get a reasonable response.""" start="00:01:56.800" video="mainVideo-matplotllm" id="subtitle"]]
+[[!template text="""If you ask to write a code for something,""" start="00:01:58.920" video="mainVideo-matplotllm" id="subtitle"]]
+[[!template text="""you'll actually get code""" start="00:02:00.760" video="mainVideo-matplotllm" id="subtitle"]]
+[[!template text="""which can also be very reasonable.""" start="00:02:01.880" video="mainVideo-matplotllm" id="subtitle"]]
+[[!template text="""So this tool is basically a wrapper""" start="00:02:04.760" video="mainVideo-matplotllm" id="subtitle"]]
+[[!template text="""that uses an LLM. For the current version,""" start="00:02:06.600" video="mainVideo-matplotllm" id="subtitle"]]
+[[!template text="""we use GPT-4, which is OpenAI's model.""" start="00:02:11.000" video="mainVideo-matplotllm" id="subtitle"]]
+[[!template text="""It's not open in the sense of open source.""" start="00:02:13.920" video="mainVideo-matplotllm" id="subtitle"]]
+[[!template text="""So that's a problem that it has.""" start="00:02:17.920" video="mainVideo-matplotllm" id="subtitle"]]
+[[!template text="""But for this version, we are going to use that.""" start="00:02:21.120" video="mainVideo-matplotllm" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Using this library""" start="00:02:23.600" video="mainVideo-matplotllm" id="subtitle"]]</div>[[!template text="""Using this library is pretty simple.""" start="00:02:23.600" video="mainVideo-matplotllm" id="subtitle"]]
+[[!template text="""You basically require the library""" start="00:02:25.480" video="mainVideo-matplotllm" id="subtitle"]]
+[[!template text="""and then you set up your OpenAI API key here.""" start="00:02:27.400" video="mainVideo-matplotllm" id="subtitle"]]
+[[!template text="""Then you get a code block""" start="00:02:30.720" video="mainVideo-matplotllm" id="subtitle"]]
+[[!template text="""where you can specify the language as `matplotllm`.""" start="00:02:33.360" video="mainVideo-matplotllm" id="subtitle"]]
+[[!template text="""And then what you can do is,""" start="00:02:35.760" video="mainVideo-matplotllm" id="subtitle"]]
+[[!template text="""you can basically describe what you want""" start="00:02:38.280" video="mainVideo-matplotllm" id="subtitle"]]
+[[!template text="""in natural language.""" start="00:02:40.800" video="mainVideo-matplotllm" id="subtitle"]]
+[[!template text="""I'll take this example of this data set.""" start="00:02:41.800" video="mainVideo-matplotllm" id="subtitle"]]
+[[!template text="""It's called the Health and Wealth of Nations.""" start="00:02:45.280" video="mainVideo-matplotllm" id="subtitle"]]
+[[!template text="""I think that was""" start="00:02:48.600" video="mainVideo-matplotllm" id="subtitle"]]
+[[!template text="""the name of a visualization where it was used.""" start="00:02:49.640" video="mainVideo-matplotllm" id="subtitle"]]
+[[!template text="""This is basically life expectancy,""" start="00:02:51.400" video="mainVideo-matplotllm" id="subtitle"]]
+[[!template text="""GDP of various countries starting from 1800.""" start="00:02:53.400" video="mainVideo-matplotllm" id="subtitle"]]
+[[!template text="""I think it goes up to 2000 somewhere.""" start="00:02:59.280" video="mainVideo-matplotllm" id="subtitle"]]
+[[!template text="""So earlier, I would try to write code which reads this CSV""" start="00:03:02.720" video="mainVideo-matplotllm" id="subtitle"]]
+[[!template text="""and then does a lot of matplotlib stuff""" start="00:03:07.480" video="mainVideo-matplotllm" id="subtitle"]]
+[[!template text="""and then finally produces a graph.""" start="00:03:09.840" video="mainVideo-matplotllm" id="subtitle"]]
+[[!template text="""But with this tool, what I'll do is""" start="00:03:11.680" video="mainVideo-matplotllm" id="subtitle"]]
+[[!template text="""I'll just provide instructions in two forms.""" start="00:03:13.880" video="mainVideo-matplotllm" id="subtitle"]]
+[[!template text="""So the first thing I'll do is""" start="00:03:17.680" video="mainVideo-matplotllm" id="subtitle"]]
+[[!template text="""I'll just describe how the data looks like.""" start="00:03:18.880" video="mainVideo-matplotllm" id="subtitle"]]
+[[!template text="""So I'll say data is in a file called `data.csv`,""" start="00:03:21.360" video="mainVideo-matplotllm" id="subtitle"]]
+[[!template text="""which is this file, by the way, on the right.""" start="00:03:29.040" video="mainVideo-matplotllm" id="subtitle"]]
+[[!template text="""It looks like the following.""" start="00:03:33.160" video="mainVideo-matplotllm" id="subtitle"]]
+[[!template text="""I just pasted a few lines from the top, which is enough.""" start="00:03:39.800" video="mainVideo-matplotllm" id="subtitle"]]
+[[!template text="""Since it's a CSV, there's already a structure to it.""" start="00:03:44.360" video="mainVideo-matplotllm" id="subtitle"]]
+[[!template text="""But let's say if you have a log file""" start="00:03:47.120" video="mainVideo-matplotllm" id="subtitle"]]
+[[!template text="""where there's more complexities to be parsed and all,""" start="00:03:50.080" video="mainVideo-matplotllm" id="subtitle"]]
+[[!template text="""that also works out really well.""" start="00:03:53.760" video="mainVideo-matplotllm" id="subtitle"]]
+[[!template text="""You just have to describe how the data looks like""" start="00:03:55.040" video="mainVideo-matplotllm" id="subtitle"]]
+[[!template text="""and the system will figure out how to work with this.""" start="00:03:58.080" video="mainVideo-matplotllm" id="subtitle"]]
+[[!template text="""Now, let's do the plotting. So what I can do is...""" start="00:04:01.160" video="mainVideo-matplotllm" id="subtitle"]]
+[[!template text="""Let's start from a very basic plot""" start="00:04:06.405" video="mainVideo-matplotllm" id="subtitle"]]
+[[!template text="""between life expectancy and GDP per capita.""" start="00:04:09.560" video="mainVideo-matplotllm" id="subtitle"]]
+[[!template text="""I'll just do this.""" start="00:04:11.621" video="mainVideo-matplotllm" id="subtitle"]]
+[[!template text="""&quot;Can you make a scatter plot""" start="00:04:13.801" video="mainVideo-matplotllm" id="subtitle"]]
+[[!template text="""for life expectancy and GDP per capita?&quot;""" start="00:04:17.281" video="mainVideo-matplotllm" id="subtitle"]]
+[[!template text="""Now, you can see there are some typos,""" start="00:04:26.400" video="mainVideo-matplotllm" id="subtitle"]]
+[[!template text="""and probably there will be some grammatical mistakes""" start="00:04:29.640" video="mainVideo-matplotllm" id="subtitle"]]
+[[!template text="""also coming through.""" start="00:04:31.720" video="mainVideo-matplotllm" id="subtitle"]]
+[[!template text="""But that's all OK, because the models are supposed to""" start="00:04:32.920" video="mainVideo-matplotllm" id="subtitle"]]
+[[!template text="""handle those kinds of situations really well.""" start="00:04:37.120" video="mainVideo-matplotllm" id="subtitle"]]
+[[!template text="""So I send the request to the model.""" start="00:04:40.560" video="mainVideo-matplotllm" id="subtitle"]]
+[[!template text="""Since it's a large model--GPT-4 is really large--""" start="00:04:43.240" video="mainVideo-matplotllm" id="subtitle"]]
+[[!template text="""it actually takes a lot of time to get the response back.""" start="00:04:47.120" video="mainVideo-matplotllm" id="subtitle"]]
+[[!template text="""So this specific response took 17 seconds,""" start="00:04:50.520" video="mainVideo-matplotllm" id="subtitle"]]
+[[!template text="""which is huge.""" start="00:04:53.360" video="mainVideo-matplotllm" id="subtitle"]]
+[[!template text="""It's not something you would expect""" start="00:04:54.240" video="mainVideo-matplotllm" id="subtitle"]]
+[[!template text="""in a local file running on a computer.""" start="00:04:57.440" video="mainVideo-matplotllm" id="subtitle"]]
+[[!template text="""But I've got what I wanted. Right.""" start="00:04:59.600" video="mainVideo-matplotllm" id="subtitle"]]
+[[!template text="""So there's a scatter plot here, as you can see below,""" start="00:05:01.880" video="mainVideo-matplotllm" id="subtitle"]]
+[[!template text="""which is plotting what I specified it to do,""" start="00:05:04.120" video="mainVideo-matplotllm" id="subtitle"]]
+[[!template text="""though it looks a little dense.""" start="00:05:08.880" video="mainVideo-matplotllm" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Further instructions""" start="00:05:11.701" video="mainVideo-matplotllm" id="subtitle"]]</div>[[!template text="""What I can do is""" start="00:05:11.701" video="mainVideo-matplotllm" id="subtitle"]]
+[[!template text="""I can provide further instructions as feedback.""" start="00:05:12.641" video="mainVideo-matplotllm" id="subtitle"]]
+[[!template text="""I try to feed back on this. So I can say,""" start="00:05:16.001" video="mainVideo-matplotllm" id="subtitle"]]
+[[!template text="""&quot;Can you only show points where year is the multiple of 50?&quot;""" start="00:05:18.401" video="mainVideo-matplotllm" id="subtitle"]]
+[[!template text="""So since it's starting from 1800, the data points,""" start="00:05:30.600" video="mainVideo-matplotllm" id="subtitle"]]
+[[!template text="""there are too many years,""" start="00:05:33.520" video="mainVideo-matplotllm" id="subtitle"]]
+[[!template text="""so I'll just try to thin them down a little.""" start="00:05:34.720" video="mainVideo-matplotllm" id="subtitle"]]
+[[!template text="""Now what's happening in the background""" start="00:05:37.240" video="mainVideo-matplotllm" id="subtitle"]]
+[[!template text="""is that everything below this last instruction""" start="00:05:40.200" video="mainVideo-matplotllm" id="subtitle"]]
+[[!template text="""is going out as the context to the model""" start="00:05:42.720" video="mainVideo-matplotllm" id="subtitle"]]
+[[!template text="""along with the code that it wrote till now.""" start="00:05:45.720" video="mainVideo-matplotllm" id="subtitle"]]
+[[!template text="""And then this instruction is added on top of it""" start="00:05:47.400" video="mainVideo-matplotllm" id="subtitle"]]
+[[!template text="""so that it basically modifies the code to make it work""" start="00:05:50.080" video="mainVideo-matplotllm" id="subtitle"]]
+[[!template text="""according to this instruction.""" start="00:05:53.080" video="mainVideo-matplotllm" id="subtitle"]]
+[[!template text="""As you can see now, the data points are much fewer.""" start="00:05:55.080" video="mainVideo-matplotllm" id="subtitle"]]
+[[!template text="""This is what I wanted also.""" start="00:05:58.440" video="mainVideo-matplotllm" id="subtitle"]]
+[[!template text="""Let's also do a few more things.""" start="00:06:01.520" video="mainVideo-matplotllm" id="subtitle"]]
+[[!template text="""I want to see the progression through time.""" start="00:06:02.800" video="mainVideo-matplotllm" id="subtitle"]]
+[[!template text="""So maybe I'll do something like, color more recent years""" start="00:06:05.440" video="mainVideo-matplotllm" id="subtitle"]]
+[[!template text="""with a darker shade of...""" start="00:06:13.080" video="mainVideo-matplotllm" id="subtitle"]]
+[[!template text="""Let's change the color map also.""" start="00:06:15.440" video="mainVideo-matplotllm" id="subtitle"]]
+[[!template text="""Now, this again goes back to the model.""" start="00:06:21.720" video="mainVideo-matplotllm" id="subtitle"]]
+[[!template text="""Again, everything below before this line""" start="00:06:24.160" video="mainVideo-matplotllm" id="subtitle"]]
+[[!template text="""is the context along with the current code,""" start="00:06:26.800" video="mainVideo-matplotllm" id="subtitle"]]
+[[!template text="""and then this instruction is going to the model""" start="00:06:29.120" video="mainVideo-matplotllm" id="subtitle"]]
+[[!template text="""to make the changes. So now this should happen, I guess.""" start="00:06:31.800" video="mainVideo-matplotllm" id="subtitle"]]
+[[!template text="""Once this happens. Yeah. So. OK.""" start="00:06:37.040" video="mainVideo-matplotllm" id="subtitle"]]
+[[!template text="""So we have this new color map,""" start="00:06:41.320" video="mainVideo-matplotllm" id="subtitle"]]
+[[!template text="""and there's also this change of color.""" start="00:06:44.600" video="mainVideo-matplotllm" id="subtitle"]]
+[[!template text="""And also there's this range of color from 1800 to 2000,""" start="00:06:46.600" video="mainVideo-matplotllm" id="subtitle"]]
+[[!template text="""which is a nice addition.""" start="00:06:51.720" video="mainVideo-matplotllm" id="subtitle"]]
+[[!template text="""Kind of smart. I didn't expect...""" start="00:06:53.400" video="mainVideo-matplotllm" id="subtitle"]]
+[[!template text="""I didn't exactly ask for it, but it's nice.""" start="00:06:55.840" video="mainVideo-matplotllm" id="subtitle"]]
+[[!template text="""So there's a couple more things.""" start="00:06:58.960" video="mainVideo-matplotllm" id="subtitle"]]
+[[!template text="""Let's make it more minimal. &quot;Let's make it more minimal.""" start="00:07:00.960" video="mainVideo-matplotllm" id="subtitle"]]
+[[!template text="""Can you remove the bounding box?&quot;""" start="00:07:07.760" video="mainVideo-matplotllm" id="subtitle"]]
+[[!template text="""Also, let's annotate a few points.""" start="00:07:17.320" video="mainVideo-matplotllm" id="subtitle"]]
+[[!template text="""So I want to annotate the point""" start="00:07:21.400" video="mainVideo-matplotllm" id="subtitle"]]
+[[!template text="""which has the highest GDP per capita.""" start="00:07:23.720" video="mainVideo-matplotllm" id="subtitle"]]
+[[!template text="""&quot;Also annotate the point with highest GDP per capita""" start="00:07:25.840" video="mainVideo-matplotllm" id="subtitle"]]
+[[!template text="""with the country and year.&quot;""" start="00:07:33.600" video="mainVideo-matplotllm" id="subtitle"]]
+[[!template text="""So again, forget about the grammar.""" start="00:07:37.000" video="mainVideo-matplotllm" id="subtitle"]]
+[[!template text="""The language model works out well.""" start="00:07:41.600" video="mainVideo-matplotllm" id="subtitle"]]
+[[!template text="""Usually it takes care of""" start="00:07:43.600" video="mainVideo-matplotllm" id="subtitle"]]
+[[!template text="""all those complexities for you.""" start="00:07:46.160" video="mainVideo-matplotllm" id="subtitle"]]
+[[!template text="""This is what we have got after that.""" start="00:07:47.440" video="mainVideo-matplotllm" id="subtitle"]]
+[[!template text="""As you can see, there's the annotation, which is here.""" start="00:07:53.120" video="mainVideo-matplotllm" id="subtitle"]]
+[[!template text="""I think it's still overlapping,""" start="00:07:55.720" video="mainVideo-matplotllm" id="subtitle"]]
+[[!template text="""so probably it could be done better,""" start="00:07:56.680" video="mainVideo-matplotllm" id="subtitle"]]
+[[!template text="""but the box is removed.""" start="00:07:58.560" video="mainVideo-matplotllm" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Room for improvement""" start="00:08:00.160" video="mainVideo-matplotllm" id="subtitle"]]</div>[[!template text="""Now, as you can see, the system is...""" start="00:08:00.160" video="mainVideo-matplotllm" id="subtitle"]]
+[[!template text="""You will be able to see this""" start="00:08:03.360" video="mainVideo-matplotllm" id="subtitle"]]
+[[!template text="""that the system is not really robust.""" start="00:08:04.880" video="mainVideo-matplotllm" id="subtitle"]]
+[[!template text="""So the GitHub repository has some examples""" start="00:08:07.480" video="mainVideo-matplotllm" id="subtitle"]]
+[[!template text="""where it fails miserably,""" start="00:08:10.080" video="mainVideo-matplotllm" id="subtitle"]]
+[[!template text="""and you'll actually have to go into the code""" start="00:08:12.120" video="mainVideo-matplotllm" id="subtitle"]]
+[[!template text="""to figure out what's happening.""" start="00:08:13.680" video="mainVideo-matplotllm" id="subtitle"]]
+[[!template text="""But we do expect that to improve slowly,""" start="00:08:15.000" video="mainVideo-matplotllm" id="subtitle"]]
+[[!template text="""because the models are improving greatly in performance.""" start="00:08:17.880" video="mainVideo-matplotllm" id="subtitle"]]
+[[!template text="""This is a very general model.""" start="00:08:21.040" video="mainVideo-matplotllm" id="subtitle"]]
+[[!template text="""This is not even tuned for this use case.""" start="00:08:22.480" video="mainVideo-matplotllm" id="subtitle"]]
+[[!template text="""The other thing is that""" start="00:08:24.480" video="mainVideo-matplotllm" id="subtitle"]]
+[[!template text="""while I was trying to provide feedback,""" start="00:08:26.640" video="mainVideo-matplotllm" id="subtitle"]]
+[[!template text="""I was still using text here all the time,""" start="00:08:29.640" video="mainVideo-matplotllm" id="subtitle"]]
+[[!template text="""but it can be made more natural.""" start="00:08:32.200" video="mainVideo-matplotllm" id="subtitle"]]
+[[!template text="""So, for example, if I have to annotate""" start="00:08:34.560" video="mainVideo-matplotllm" id="subtitle"]]
+[[!template text="""this particular point,""" start="00:08:36.160" video="mainVideo-matplotllm" id="subtitle"]]
+[[!template text="""I actually can just point my cursor to it.""" start="00:08:37.440" video="mainVideo-matplotllm" id="subtitle"]]
+[[!template text="""Emacs has a way to figure out""" start="00:08:42.240" video="mainVideo-matplotllm" id="subtitle"]]
+[[!template text="""where your mouse pointer is.""" start="00:08:44.520" video="mainVideo-matplotllm" id="subtitle"]]
+[[!template text="""And with that, you can actually go back into the code""" start="00:08:45.800" video="mainVideo-matplotllm" id="subtitle"]]
+[[!template text="""and then see which primitive""" start="00:08:49.621" video="mainVideo-matplotllm" id="subtitle"]]
+[[!template text="""is being drawn here in Matplotlib.""" start="00:08:51.961" video="mainVideo-matplotllm" id="subtitle"]]
+[[!template text="""So that there is a way to do that.""" start="00:08:54.481" video="mainVideo-matplotllm" id="subtitle"]]
+[[!template text="""And then, if you do that, then it's really nice to""" start="00:08:55.720" video="mainVideo-matplotllm" id="subtitle"]]
+[[!template text="""just be able to say""" start="00:08:58.440" video="mainVideo-matplotllm" id="subtitle"]]
+[[!template text="""put your cursor here and then say something like,""" start="00:09:01.320" video="mainVideo-matplotllm" id="subtitle"]]
+[[!template text="""&quot;Can you make this?""" start="00:09:04.280" video="mainVideo-matplotllm" id="subtitle"]]
+[[!template text="""Can you annotate this point?&quot;""" start="00:09:05.000" video="mainVideo-matplotllm" id="subtitle"]]
+[[!template text="""Because text is, you know... There are limitations to text.""" start="00:09:06.600" video="mainVideo-matplotllm" id="subtitle"]]
+[[!template text="""And if you're producing an image,""" start="00:09:10.720" video="mainVideo-matplotllm" id="subtitle"]]
+[[!template text="""you should be able to do that, too.""" start="00:09:12.480" video="mainVideo-matplotllm" id="subtitle"]]
+[[!template text="""So I do expect that to happen soonish.""" start="00:09:13.960" video="mainVideo-matplotllm" id="subtitle"]]
+[[!template text="""If not, from the model side, the hack that I mentioned""" start="00:09:16.400" video="mainVideo-matplotllm" id="subtitle"]]
+[[!template text="""could be made to work.""" start="00:09:19.840" video="mainVideo-matplotllm" id="subtitle"]]
+[[!template text="""So that will come in in a later version, probably.""" start="00:09:21.360" video="mainVideo-matplotllm" id="subtitle"]]
+[[!template text="""Anyway, so that's the end of my talk.""" start="00:09:24.440" video="mainVideo-matplotllm" id="subtitle"]]
+[[!template text="""You can find more details in the repository link.""" start="00:09:27.600" video="mainVideo-matplotllm" id="subtitle"]]
+[[!template text="""Thank you for listening. Goodbye.""" start="00:09:29.760" video="mainVideo-matplotllm" id="subtitle"]]
+
+</div>
+
+Captioner: sachac
+
+Questions or comments? Please e-mail [abhinav@lepisma.xyz](mailto:abhinav@lepisma.xyz?subject=Comment%20for%20EmacsConf%202023%20matplotllm%3A%20MatplotLLM%2C%20iterative%20natural%20language%20data%20visualization%20in%20org-babel)
<!-- End of emacsconf-publish-after-page -->
diff --git a/2023/info/matplotllm-before.md b/2023/info/matplotllm-before.md
index 5ccb8a8d..3359850a 100644
--- a/2023/info/matplotllm-before.md
+++ b/2023/info/matplotllm-before.md
@@ -1,12 +1,19 @@
<!-- Automatically generated by emacsconf-publish-before-page -->
[[!toc ]]
-Format: 10-min talk followed by pad Q&A
-Discuss on IRC: [#emacsconf](https://chat.emacsconf.org/?join=emacsconf)
-Status: Waiting for video from speaker
+Format: 10-min talk ; Q&A: Etherpad
+Status: All done
+<div class="vid mainVideo"><video controls preload="none" id="mainVideo-matplotllm"><source src="https://media.emacsconf.org/2023/emacsconf-2023-matplotllm--matplotllm-iterative-natural-language-data-visualization-in-orgbabel--abhinav-tushar--main.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2023/captions/emacsconf-2023-matplotllm--matplotllm-iterative-natural-language-data-visualization-in-orgbabel--abhinav-tushar--main.vtt" default />"""<track kind="chapters" label="Chapters" src="/2023/captions/emacsconf-2023-matplotllm--matplotllm-iterative-natural-language-data-visualization-in-orgbabel--abhinav-tushar--main--chapters.vtt" /><p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video>[[!template id="chapters" vidid="mainVideo-matplotllm" data="""
+00:00.000 Introduction
+01:40.720 What is an LLM?
+02:23.600 Using this library
+05:11.701 Further instructions
+08:00.160 Room for improvement
+
+"""]]<div></div>Duration: 09:34 minutes<div class="files resources"><ul><li><a href="https://pad.emacsconf.org/2023-matplotllm">Open Etherpad</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-matplotllm--matplotllm-iterative-natural-language-data-visualization-in-orgbabel--abhinav-tushar--intro.vtt">Download --intro.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-matplotllm--matplotllm-iterative-natural-language-data-visualization-in-orgbabel--abhinav-tushar--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-matplotllm--matplotllm-iterative-natural-language-data-visualization-in-orgbabel--abhinav-tushar--main--chapters.vtt">Download --main--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-matplotllm--matplotllm-iterative-natural-language-data-visualization-in-orgbabel--abhinav-tushar--main.opus">Download --main.opus (5MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-matplotllm--matplotllm-iterative-natural-language-data-visualization-in-orgbabel--abhinav-tushar--main.vtt">Download --main.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-matplotllm--matplotllm-iterative-natural-language-data-visualization-in-orgbabel--abhinav-tushar--main.webm">Download --main.webm (49MB)</a></li><li><a href="https://toobnix.org/w/7bwq1vAqYzY24iEMYAdcB1">View on Toobnix</a></li><li><a href="https://youtu.be/LhhFA5i_Os4">View on Youtube</a></li></ul></div></div>
# Description
<!-- End of emacsconf-publish-before-page --> \ No newline at end of file
diff --git a/2023/info/matplotllm-nav.md b/2023/info/matplotllm-nav.md
index 8cee9c69..ea8b8b70 100644
--- a/2023/info/matplotllm-nav.md
+++ b/2023/info/matplotllm-nav.md
@@ -2,6 +2,6 @@
<div class="talk-nav">
Back to the [[talks]]
Previous by track: <a href="/2023/talks/sharing">Sharing Emacs is Caring Emacs: Emacs education and why I embraced video</a>
-Next by track: <a href="/2023/talks/voice">Improving access to AI-assisted literate programming with voice control</a>
-Track: <span class="sched-track Development">Development</span>
+Next by track: <a href="/2023/talks/voice">Enhancing productivity with voice computing</a>
+Track: <span class="sched-track Development">Development</span> - <strong><a href="https://emacsconf.org/2023/watch/dev">Watch</a></strong>
</div>
diff --git a/2023/info/mentor-after.md b/2023/info/mentor-after.md
index 5a46cc3f..80185de8 100644
--- a/2023/info/mentor-after.md
+++ b/2023/info/mentor-after.md
@@ -1,7 +1,1750 @@
<!-- Automatically generated by emacsconf-publish-after-page -->
-Questions or comments? Please e-mail [jeremy@jeremyfriesen.com](mailto:jeremy@jeremyfriesen.com?subject=Comment%20for%20EmacsConf%202022%20mentor%3A%20Mentoring%20VS-Coders%20as%20an%20Emacsian%20%28or%20How%20to%20show%20not%20tell%20people%20about%20the%20wonders%20of%20Emacs%29)
+<div class="transcript transcript-mainVideo"><a name="mentor-mainVideo-transcript"></a><h1>Transcript</h1>
+
+
+<div class="transcript-heading">[[!template new="1" text="""Introduction""" start="00:00:01.380" video="mainVideo-mentor" id="subtitle"]]</div>[[!template text="""Hi everyone, my name is Jeremy Friesen, pronouns are he/him,""" start="00:00:01.380" video="mainVideo-mentor" id="subtitle"]]
+[[!template text="""and today I'll be talking about""" start="00:00:06.320" video="mainVideo-mentor" id="subtitle"]]
+[[!template text="""mentoring VS Coders as an Emacs-ian.""" start="00:00:07.880" video="mainVideo-mentor" id="subtitle"]]
+[[!template text="""A little bit of background, since 2015, I've mentored""" start="00:00:11.520" video="mainVideo-mentor" id="subtitle"]]
+[[!template text="""about 40 software developers,""" start="00:00:15.000" video="mainVideo-mentor" id="subtitle"]]
+[[!template text="""many of them in career-transitioning roles,""" start="00:00:16.560" video="mainVideo-mentor" id="subtitle"]]
+[[!template text="""oftentimes from boot camps.""" start="00:00:19.240" video="mainVideo-mentor" id="subtitle"]]
+[[!template text="""I've also managed a couple of small software development teams.""" start="00:00:21.740" video="mainVideo-mentor" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Framing approaches""" start="00:00:26.740" video="mainVideo-mentor" id="subtitle"]]</div>[[!template text="""So I want to think about mentoring and the framing approaches.""" start="00:00:26.740" video="mainVideo-mentor" id="subtitle"]]
+[[!template text="""We all don't know what we don't know.""" start="00:00:30.600" video="mainVideo-mentor" id="subtitle"]]
+[[!template text="""So while mentoring, I like to be curious---asking questions,""" start="00:00:32.940" video="mainVideo-mentor" id="subtitle"]]
+[[!template text="""I like to be visible,""" start="00:00:36.420" video="mainVideo-mentor" id="subtitle"]]
+[[!template text="""and I also like to pair so that we can share.""" start="00:00:37.660" video="mainVideo-mentor" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""What are you looking to learn?""" start="00:00:41.940" video="mainVideo-mentor" id="subtitle"]]</div>[[!template text="""When I start, I like to ask the following type of question:""" start="00:00:41.940" video="mainVideo-mentor" id="subtitle"]]
+[[!template text="""&quot;What have you been wanting to learn more of,""" start="00:00:45.300" video="mainVideo-mentor" id="subtitle"]]
+[[!template text="""get better at, and improve on?&quot;""" start="00:00:47.120" video="mainVideo-mentor" id="subtitle"]]
+[[!template text="""Then I like to ask further questions to get an understanding""" start="00:00:49.360" video="mainVideo-mentor" id="subtitle"]]
+[[!template text="""of where they've been, where they're going,""" start="00:00:52.940" video="mainVideo-mentor" id="subtitle"]]
+[[!template text="""and what they'd like to achieve.""" start="00:00:55.160" video="mainVideo-mentor" id="subtitle"]]
+[[!template text="""Later I'll ask coaching questions, &quot;what's going well,&quot;""" start="00:00:57.280" video="mainVideo-mentor" id="subtitle"]]
+[[!template text="""&quot;where are you getting stuck,&quot;""" start="00:01:00.140" video="mainVideo-mentor" id="subtitle"]]
+[[!template text="""and &quot;if you change one thing, what would it be?&quot;""" start="00:01:01.420" video="mainVideo-mentor" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Make the work visible""" start="00:01:06.000" video="mainVideo-mentor" id="subtitle"]]</div>[[!template text="""So like many people, I shifted to remote work in 2020,""" start="00:01:06.000" video="mainVideo-mentor" id="subtitle"]]
+[[!template text="""and I've noticed a higher collaboration in remote work,""" start="00:01:09.840" video="mainVideo-mentor" id="subtitle"]]
+[[!template text="""when folks make their work visible.""" start="00:01:13.160" video="mainVideo-mentor" id="subtitle"]]
+[[!template text="""So to do that I host office hours,""" start="00:01:15.920" video="mainVideo-mentor" id="subtitle"]]
+[[!template text="""I try to attend other people's office hours,""" start="00:01:18.200" video="mainVideo-mentor" id="subtitle"]]
+[[!template text="""and I'll open up a Slack huddle and just code by myself,""" start="00:01:20.680" video="mainVideo-mentor" id="subtitle"]]
+[[!template text="""but let folks know, please hop in.""" start="00:01:23.440" video="mainVideo-mentor" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Hop in and be curious""" start="00:01:29.320" video="mainVideo-mentor" id="subtitle"]]</div>[[!template text="""I like to pay attention to other huddles that start.""" start="00:01:29.320" video="mainVideo-mentor" id="subtitle"]]
+[[!template text="""If they're going still for, like, 45 minutes or so,""" start="00:01:32.040" video="mainVideo-mentor" id="subtitle"]]
+[[!template text="""I'll hop in and say hello.""" start="00:01:35.240" video="mainVideo-mentor" id="subtitle"]]
+[[!template text="""It's even odds that they're moving along just fine""" start="00:01:36.800" video="mainVideo-mentor" id="subtitle"]]
+[[!template text="""or that they're stuck.""" start="00:01:39.400" video="mainVideo-mentor" id="subtitle"]]
+[[!template text="""So by hopping into the Slack huddle,""" start="00:01:40.800" video="mainVideo-mentor" id="subtitle"]]
+[[!template text="""I'm helping with a common problem.""" start="00:01:43.280" video="mainVideo-mentor" id="subtitle"]]
+[[!template text="""How do you know when you're stuck?""" start="00:01:45.480" video="mainVideo-mentor" id="subtitle"]]
+[[!template text="""This is something that---as a manager---folks want to know,""" start="00:01:47.200" video="mainVideo-mentor" id="subtitle"]]
+[[!template text="""how can I get unstuck faster?""" start="00:01:50.640" video="mainVideo-mentor" id="subtitle"]]
+[[!template text="""As a human, it can be frustrating to be stuck for a long time,""" start="00:01:53.440" video="mainVideo-mentor" id="subtitle"]]
+[[!template text="""but you also learn stuff""" start="00:01:57.120" video="mainVideo-mentor" id="subtitle"]]
+[[!template text="""when you're dealing with the hard things.""" start="00:01:58.600" video="mainVideo-mentor" id="subtitle"]]
+[[!template text="""So you really need to balance that time,""" start="00:02:00.760" video="mainVideo-mentor" id="subtitle"]]
+[[!template text="""and I find hopping in, just being a gentle presence,""" start="00:02:03.220" video="mainVideo-mentor" id="subtitle"]]
+[[!template text="""with yes... an agenda, but just to say hi,""" start="00:02:07.160" video="mainVideo-mentor" id="subtitle"]]
+[[!template text="""is crucial to help the team members move along.""" start="00:02:10.360" video="mainVideo-mentor" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Pairing is for sharing""" start="00:02:15.880" video="mainVideo-mentor" id="subtitle"]]</div>[[!template text="""Pairing is for sharing.""" start="00:02:15.880" video="mainVideo-mentor" id="subtitle"]]
+[[!template text="""When I pair, I like to let others drive.""" start="00:02:17.240" video="mainVideo-mentor" id="subtitle"]]
+[[!template text="""They're typing and working to resolve the problem.""" start="00:02:19.920" video="mainVideo-mentor" id="subtitle"]]
+[[!template text="""I'm giving guidance, asking questions,""" start="00:02:22.240" video="mainVideo-mentor" id="subtitle"]]
+[[!template text="""maybe thinking through a refactor.""" start="00:02:24.600" video="mainVideo-mentor" id="subtitle"]]
+[[!template text="""I'm also spending time observing how they interact with their editor.""" start="00:02:27.120" video="mainVideo-mentor" id="subtitle"]]
+[[!template text="""In the moment, I try to limit advice to, like, one concept.""" start="00:02:31.160" video="mainVideo-mentor" id="subtitle"]]
+[[!template text="""A lot of folks don't know that `Control-a`""" start="00:02:35.840" video="mainVideo-mentor" id="subtitle"]]
+[[!template text="""will take you to the beginning of line.""" start="00:02:37.800" video="mainVideo-mentor" id="subtitle"]]
+[[!template text="""Just sharing that is huge sometimes.""" start="00:02:39.720" video="mainVideo-mentor" id="subtitle"]]
+[[!template text="""Just gently do it and let it float there.""" start="00:02:42.680" video="mainVideo-mentor" id="subtitle"]]
+[[!template text="""And assuming we have a regular mentoring session,""" start="00:02:46.920" video="mainVideo-mentor" id="subtitle"]]
+[[!template text="""I'll make sure to ask how they're feeling""" start="00:02:48.920" video="mainVideo-mentor" id="subtitle"]]
+[[!template text="""about using their tools afterwards.""" start="00:02:50.400" video="mainVideo-mentor" id="subtitle"]]
+[[!template text="""I would love to get to the point where they ask,""" start="00:02:52.680" video="mainVideo-mentor" id="subtitle"]]
+[[!template text="""&quot;You saw me using my editor, what is something""" start="00:02:55.680" video="mainVideo-mentor" id="subtitle"]]
+[[!template text="""I could learn?&quot;""" start="00:02:58.760" video="mainVideo-mentor" id="subtitle"]]
+[[!template text="""I'm working on getting to that point.""" start="00:03:00.960" video="mainVideo-mentor" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Editor functions""" start="00:03:03.860" video="mainVideo-mentor" id="subtitle"]]</div>[[!template text="""While pairing, I like to pay attention""" start="00:03:03.860" video="mainVideo-mentor" id="subtitle"]]
+[[!template text="""to how folks handle the following.""" start="00:03:05.200" video="mainVideo-mentor" id="subtitle"]]
+[[!template text="""Where do they want to go?""" start="00:03:07.440" video="mainVideo-mentor" id="subtitle"]]
+[[!template text="""How do they get there?""" start="00:03:08.560" video="mainVideo-mentor" id="subtitle"]]
+[[!template text="""Here they are, now what?""" start="00:03:10.760" video="mainVideo-mentor" id="subtitle"]]
+[[!template text="""How do they summarize?""" start="00:03:12.080" video="mainVideo-mentor" id="subtitle"]]
+[[!template text="""I know what I can do in Emacs,""" start="00:03:13.600" video="mainVideo-mentor" id="subtitle"]]
+[[!template text="""and I assume that VS Code can do something similar.""" start="00:03:15.240" video="mainVideo-mentor" id="subtitle"]]
+[[!template text="""It's a matter of helping the mentees find those packages and plugins.""" start="00:03:17.400" video="mainVideo-mentor" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Where do they want to go?""" start="00:03:23.240" video="mainVideo-mentor" id="subtitle"]]</div>[[!template text="""Where to go?""" start="00:03:23.240" video="mainVideo-mentor" id="subtitle"]]
+[[!template text="""Search within a project.""" start="00:03:24.240" video="mainVideo-mentor" id="subtitle"]]
+[[!template text="""Everybody knows about this, but one thing""" start="00:03:25.760" video="mainVideo-mentor" id="subtitle"]]
+[[!template text="""that has been really critical for me""" start="00:03:28.000" video="mainVideo-mentor" id="subtitle"]]
+[[!template text="""has been the arrival of `Orderless`.""" start="00:03:29.800" video="mainVideo-mentor" id="subtitle"]]
+[[!template text="""A little quick demonstration.""" start="00:03:31.960" video="mainVideo-mentor" id="subtitle"]]
+[[!template text="""If I look, and I have this &quot;chicken&quot; and I do &quot;spell&quot;,""" start="00:03:34.760" video="mainVideo-mentor" id="subtitle"]]
+[[!template text="""I have found one, and they don't have""" start="00:03:40.720" video="mainVideo-mentor" id="subtitle"]]
+[[!template text="""to be in the right order.""" start="00:03:42.201" video="mainVideo-mentor" id="subtitle"]]
+[[!template text="""In fact, I can go back, and &quot;spell&quot; is there.""" start="00:03:43.381" video="mainVideo-mentor" id="subtitle"]]
+[[!template text="""Super easy, helpful, so I don't have to think about it, the order.""" start="00:03:48.040" video="mainVideo-mentor" id="subtitle"]]
+[[!template text="""Search across projects.""" start="00:03:52.760" video="mainVideo-mentor" id="subtitle"]]
+[[!template text="""Cross-repository searching is super-simple in Emacs,""" start="00:03:54.720" video="mainVideo-mentor" id="subtitle"]]
+[[!template text="""and I've never seen anyone do it in VS Code.""" start="00:03:59.520" video="mainVideo-mentor" id="subtitle"]]
+[[!template text="""I'm also trying to introduce folks to command-line tools""" start="00:04:02.740" video="mainVideo-mentor" id="subtitle"]]
+[[!template text="""such as RipGrep and SilverSearcher,""" start="00:04:05.640" video="mainVideo-mentor" id="subtitle"]]
+[[!template text="""not just to look in the project, but to go one directory up""" start="00:04:07.960" video="mainVideo-mentor" id="subtitle"]]
+[[!template text="""and look across projects""" start="00:04:10.640" video="mainVideo-mentor" id="subtitle"]]
+[[!template text="""because sometimes when you're working on lots of different projects,""" start="00:04:12.000" video="mainVideo-mentor" id="subtitle"]]
+[[!template text="""there might be solutions or ideas that come from there.""" start="00:04:15.060" video="mainVideo-mentor" id="subtitle"]]
+[[!template text="""Also notice that a lot of people use directory trees to navigate,""" start="00:04:19.960" video="mainVideo-mentor" id="subtitle"]]
+[[!template text="""but I favor the fuzzy text.""" start="00:04:23.240" video="mainVideo-mentor" id="subtitle"]]
+[[!template text="""So I can do something like `Command-t`""" start="00:04:25.600" video="mainVideo-mentor" id="subtitle"]]
+[[!template text="""and start looking for things in there.""" start="00:04:27.760" video="mainVideo-mentor" id="subtitle"]]
+[[!template text="""I just type the name of the file.""" start="00:04:31.280" video="mainVideo-mentor" id="subtitle"]]
+[[!template text="""I use `consult-projectile`,""" start="00:04:33.760" video="mainVideo-mentor" id="subtitle"]]
+[[!template text="""which has a lot of really cool functionality.""" start="00:04:35.320" video="mainVideo-mentor" id="subtitle"]]
+[[!template text="""The big one being I can type `r`, recent file.""" start="00:04:39.540" video="mainVideo-mentor" id="subtitle"]]
+[[!template text="""I can type `p` and jump to a different project,""" start="00:04:43.080" video="mainVideo-mentor" id="subtitle"]]
+[[!template text="""so it's a quick navigation tool that I've not seen in VS Code.""" start="00:04:47.720" video="mainVideo-mentor" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""How do they get there?""" start="00:04:53.440" video="mainVideo-mentor" id="subtitle"]]</div>[[!template text="""Next up is how do they get there?""" start="00:04:53.440" video="mainVideo-mentor" id="subtitle"]]
+[[!template text="""I like to use LSP for the languages,""" start="00:04:56.520" video="mainVideo-mentor" id="subtitle"]]
+[[!template text="""and I bound `M-.` to this""" start="00:04:58.960" video="mainVideo-mentor" id="subtitle"]]
+[[!template text="""and jump back and forth to definitions.""" start="00:05:02.880" video="mainVideo-mentor" id="subtitle"]]
+[[!template text="""I just showed `projectile` or `consult-projectile`""" start="00:05:05.520" video="mainVideo-mentor" id="subtitle"]]
+[[!template text="""and its super-amazing multifunction finder.""" start="00:05:09.440" video="mainVideo-mentor" id="subtitle"]]
+[[!template text="""Also another one that I am very avid about""" start="00:05:12.860" video="mainVideo-mentor" id="subtitle"]]
+[[!template text="""is the jump between definition and test.""" start="00:05:15.520" video="mainVideo-mentor" id="subtitle"]]
+[[!template text="""I bind that to `Super-.`""" start="00:05:19.520" video="mainVideo-mentor" id="subtitle"]]
+[[!template text="""and it helps me jump back and forth""" start="00:05:22.840" video="mainVideo-mentor" id="subtitle"]]
+[[!template text="""between my production code and my test code---""" start="00:05:25.840" video="mainVideo-mentor" id="subtitle"]]
+[[!template text="""especially in Ruby, there's an idiom for that.""" start="00:05:28.520" video="mainVideo-mentor" id="subtitle"]]
+[[!template text="""There is plugins in VS Code that does this correctly.""" start="00:05:32.120" video="mainVideo-mentor" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Here they are, now what?""" start="00:05:36.640" video="mainVideo-mentor" id="subtitle"]]</div>[[!template text="""Next up, now I'm here, what do I do?""" start="00:05:36.640" video="mainVideo-mentor" id="subtitle"]]
+[[!template text="""Word completion, Emacs just knocks everything out of the park:""" start="00:05:39.400" video="mainVideo-mentor" id="subtitle"]]
+[[!template text="""`dabbrev`, `templates`, `hippie-expand`, `completion-at-point`.""" start="00:05:44.600" video="mainVideo-mentor" id="subtitle"]]
+[[!template text="""Sometimes it just hurts to watch people type stuff""" start="00:05:48.200" video="mainVideo-mentor" id="subtitle"]]
+[[!template text="""that they could quickly expand""" start="00:05:52.080" video="mainVideo-mentor" id="subtitle"]]
+[[!template text="""because there are words within the code.""" start="00:05:54.320" video="mainVideo-mentor" id="subtitle"]]
+[[!template text="""Another one is auto-formatting.""" start="00:05:56.300" video="mainVideo-mentor" id="subtitle"]]
+[[!template text="""Tree sitter...its arrival is great.""" start="00:05:57.920" video="mainVideo-mentor" id="subtitle"]]
+[[!template text="""I assume this is going to get better.""" start="00:06:00.040" video="mainVideo-mentor" id="subtitle"]]
+[[!template text="""I love highlighting a region, hitting `TAB`, and it's just formatted.""" start="00:06:01.480" video="mainVideo-mentor" id="subtitle"]]
+[[!template text="""I've seen a lot of VS Coders... that doesn't work for them.""" start="00:06:04.920" video="mainVideo-mentor" id="subtitle"]]
+[[!template text="""Don't know why, trying to get them to see it.""" start="00:06:08.761" video="mainVideo-mentor" id="subtitle"]]
+[[!template text="""Multi-cursor [`multiple-cursors`] and `iedit`...""" start="00:06:11.080" video="mainVideo-mentor" id="subtitle"]]
+[[!template text="""took me a long time to explore `iedit`,""" start="00:06:12.901" video="mainVideo-mentor" id="subtitle"]]
+[[!template text="""but the practice... but practicing was huge,""" start="00:06:14.800" video="mainVideo-mentor" id="subtitle"]]
+[[!template text="""and it has transformed my approach to coding and typing.""" start="00:06:17.840" video="mainVideo-mentor" id="subtitle"]]
+[[!template text="""Folks know about multi-cursor editing and editing-in-region""" start="00:06:21.480" video="mainVideo-mentor" id="subtitle"]]
+[[!template text="""but make sure that they are aware of it.""" start="00:06:24.520" video="mainVideo-mentor" id="subtitle"]]
+[[!template text="""It's important.""" start="00:06:27.920" video="mainVideo-mentor" id="subtitle"]]
+[[!template text="""Next up is inline searching.""" start="00:06:29.720" video="mainVideo-mentor" id="subtitle"]]
+[[!template text="""My beloved Textmate... it was the first thing.""" start="00:06:32.620" video="mainVideo-mentor" id="subtitle"]]
+[[!template text="""In fact, it was why I chose not to use Emacs in 2005""" start="00:06:35.200" video="mainVideo-mentor" id="subtitle"]]
+[[!template text="""and went with Textmate.""" start="00:06:38.440" video="mainVideo-mentor" id="subtitle"]]
+[[!template text="""This is something quite simple.""" start="00:06:41.680" video="mainVideo-mentor" id="subtitle"]]
+[[!template text="""I can do `search` within here, and I can see &quot;introduced&quot;,""" start="00:06:43.760" video="mainVideo-mentor" id="subtitle"]]
+[[!template text="""and it will show me the line.""" start="00:06:50.000" video="mainVideo-mentor" id="subtitle"]]
+[[!template text="""What I like about that is when I'm in code,""" start="00:06:52.240" video="mainVideo-mentor" id="subtitle"]]
+[[!template text="""I can see the neighborhood of other things""" start="00:06:54.120" video="mainVideo-mentor" id="subtitle"]]
+[[!template text="""and get a good idea of what's around.""" start="00:06:56.320" video="mainVideo-mentor" id="subtitle"]]
+[[!template text="""Yes, there is `occur-mode` that can be super useful,""" start="00:06:58.360" video="mainVideo-mentor" id="subtitle"]]
+[[!template text="""but I'm used to the Textmate in it.""" start="00:07:01.640" video="mainVideo-mentor" id="subtitle"]]
+[[!template text="""I just love it.""" start="00:07:03.840" video="mainVideo-mentor" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""How do they summarize?""" start="00:07:06.640" video="mainVideo-mentor" id="subtitle"]]</div>[[!template text="""Next up is how they summarize.""" start="00:07:06.640" video="mainVideo-mentor" id="subtitle"]]
+[[!template text="""I've seen a lot of bootcamp graduates write commit messages""" start="00:07:08.680" video="mainVideo-mentor" id="subtitle"]]
+[[!template text="""by going to the command line.""" start="00:07:11.720" video="mainVideo-mentor" id="subtitle"]]
+[[!template text="""In my experience, commit messages written in the command line""" start="00:07:14.380" video="mainVideo-mentor" id="subtitle"]]
+[[!template text="""tend to be terse.""" start="00:07:17.040" video="mainVideo-mentor" id="subtitle"]]
+[[!template text="""They miss something.""" start="00:07:18.200" video="mainVideo-mentor" id="subtitle"]]
+[[!template text="""So I try to really quickly shift folks to use their text editor,""" start="00:07:19.160" video="mainVideo-mentor" id="subtitle"]]
+[[!template text="""encourage them and""" start="00:07:23.480" video="mainVideo-mentor" id="subtitle"]]
+[[!template text="""teach them about `$GIT_EDITOR` and `$EDITOR` for the environment variables""" start="00:07:24.400" video="mainVideo-mentor" id="subtitle"]]
+[[!template text="""so they can make their commits from the command line.""" start="00:07:28.040" video="mainVideo-mentor" id="subtitle"]]
+[[!template text="""And if not there, help them improve how they do VS Code.""" start="00:07:31.000" video="mainVideo-mentor" id="subtitle"]]
+[[!template text="""My little screed at the top:""" start="00:07:34.200" video="mainVideo-mentor" id="subtitle"]]
+[[!template text="""the interface for VS Code's commit is trash.""" start="00:07:35.920" video="mainVideo-mentor" id="subtitle"]]
+[[!template text="""It is why I stepped away from VS Code when I was exploring editors.""" start="00:07:38.960" video="mainVideo-mentor" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""General strategies""" start="00:07:44.440" video="mainVideo-mentor" id="subtitle"]]</div>[[!template text="""Next up, my goal is to encourage folks to use editors for writing,""" start="00:07:44.440" video="mainVideo-mentor" id="subtitle"]]
+[[!template text="""to think about owning that tool.""" start="00:07:48.440" video="mainVideo-mentor" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Commit to one item of learning each week""" start="00:07:52.060" video="mainVideo-mentor" id="subtitle"]]</div>[[!template text="""I have them try to learn one thing a week.""" start="00:07:52.060" video="mainVideo-mentor" id="subtitle"]]
+[[!template text="""Maybe they aren't going to learn it,""" start="00:07:54.680" video="mainVideo-mentor" id="subtitle"]]
+[[!template text="""but just not to overwhelm them""" start="00:07:55.920" video="mainVideo-mentor" id="subtitle"]]
+[[!template text="""and find those high-value things.""" start="00:07:57.800" video="mainVideo-mentor" id="subtitle"]]
+[[!template text="""Jump to spec, jump to code... super-valuable""" start="00:07:59.880" video="mainVideo-mentor" id="subtitle"]]
+[[!template text="""because I see folks doing it a lot during the day,""" start="00:08:03.720" video="mainVideo-mentor" id="subtitle"]]
+[[!template text="""and it can really speed up the transition time""" start="00:08:06.520" video="mainVideo-mentor" id="subtitle"]]
+[[!template text="""and keep the focus between the test...""" start="00:08:10.080" video="mainVideo-mentor" id="subtitle"]]
+[[!template text="""what you're trying to test and what you're trying to define,""" start="00:08:12.760" video="mainVideo-mentor" id="subtitle"]]
+[[!template text="""which can get lost if you do the tree navigation.""" start="00:08:15.480" video="mainVideo-mentor" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Practice within your knowledge domain""" start="00:08:18.960" video="mainVideo-mentor" id="subtitle"]]</div>[[!template text="""Also I encourage people to practice their domain knowledge.""" start="00:08:18.960" video="mainVideo-mentor" id="subtitle"]]
+[[!template text="""I learned a lot about programming by doing a bunch of things""" start="00:08:22.880" video="mainVideo-mentor" id="subtitle"]]
+[[!template text="""related to RPGs---role-playing games.""" start="00:08:27.160" video="mainVideo-mentor" id="subtitle"]]
+[[!template text="""I did this previously in Ruby---dice rollers, note takers,""" start="00:08:30.020" video="mainVideo-mentor" id="subtitle"]]
+[[!template text="""random table lookups---and now I'm doing it in Emacs.""" start="00:08:33.120" video="mainVideo-mentor" id="subtitle"]]
+[[!template text="""Knowing the domain helps me set aside the problem space""" start="00:08:35.880" video="mainVideo-mentor" id="subtitle"]]
+[[!template text="""and then explore how I code""" start="00:08:40.520" video="mainVideo-mentor" id="subtitle"]]
+[[!template text="""and how I can implement things differently.""" start="00:08:42.000" video="mainVideo-mentor" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Note-taking""" start="00:08:47.120" video="mainVideo-mentor" id="subtitle"]]</div>[[!template text="""Note-taking: pay attention to how folks create a fleeting note.""" start="00:08:47.120" video="mainVideo-mentor" id="subtitle"]]
+[[!template text="""It can be excruciating as they try to figure out""" start="00:08:51.240" video="mainVideo-mentor" id="subtitle"]]
+[[!template text="""&quot;where am I going to put this?&quot;""" start="00:08:54.640" video="mainVideo-mentor" id="subtitle"]]
+[[!template text="""&quot;What file?&quot;""" start="00:08:55.600" video="mainVideo-mentor" id="subtitle"]]
+[[!template text="""&quot;Where does it go?&quot;""" start="00:08:56.160" video="mainVideo-mentor" id="subtitle"]]
+[[!template text="""Emacs, we have the *scratch* buffer or anything else,""" start="00:08:57.660" video="mainVideo-mentor" id="subtitle"]]
+[[!template text="""but ask them about their note-taking habits""" start="00:09:01.760" video="mainVideo-mentor" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Help them navigate the proprietary software tar pits""" start="00:09:07.120" video="mainVideo-mentor" id="subtitle"]]</div>[[!template text="""and help them navigate the proprietary software tar pits.""" start="00:09:07.120" video="mainVideo-mentor" id="subtitle"]]
+[[!template text="""We know that anything that is venture-capital funded""" start="00:09:11.640" video="mainVideo-mentor" id="subtitle"]]
+[[!template text="""will eventually collapse.""" start="00:09:14.360" video="mainVideo-mentor" id="subtitle"]]
+[[!template text="""We know that things that don't have a sustainable business model""" start="00:09:16.040" video="mainVideo-mentor" id="subtitle"]]
+[[!template text="""without surveillance capitalism""" start="00:09:20.920" video="mainVideo-mentor" id="subtitle"]]
+[[!template text="""is going to also have problems.""" start="00:09:22.400" video="mainVideo-mentor" id="subtitle"]]
+[[!template text="""Encourage folks to think about how they're owning their notes.""" start="00:09:25.300" video="mainVideo-mentor" id="subtitle"]]
+[[!template text="""Do they place true value on those,""" start="00:09:28.560" video="mainVideo-mentor" id="subtitle"]]
+[[!template text="""or are they things that are kind of ephemeral?""" start="00:09:30.640" video="mainVideo-mentor" id="subtitle"]]
+[[!template text="""And then help them find the thing that makes sense for them.""" start="00:09:33.120" video="mainVideo-mentor" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Help show the joy of holisting computering""" start="00:09:38.520" video="mainVideo-mentor" id="subtitle"]]</div>[[!template text="""Put another way, I want people to think holistically""" start="00:09:38.520" video="mainVideo-mentor" id="subtitle"]]
+[[!template text="""about their generalized &quot;computering&quot; environment.""" start="00:09:43.240" video="mainVideo-mentor" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Playing is for staying""" start="00:09:47.740" video="mainVideo-mentor" id="subtitle"]]</div>[[!template text="""And I also think about the reason why""" start="00:09:47.740" video="mainVideo-mentor" id="subtitle"]]
+[[!template text="""I've stayed a software developer for 25-years plus""" start="00:09:50.080" video="mainVideo-mentor" id="subtitle"]]
+[[!template text="""is because I approach all of this as play and storytelling.""" start="00:09:53.680" video="mainVideo-mentor" id="subtitle"]]
+[[!template text="""Sometimes happy byproduct is that I ship features and documentation""" start="00:09:58.000" video="mainVideo-mentor" id="subtitle"]]
+[[!template text="""and help people get stuff done.""" start="00:10:02.440" video="mainVideo-mentor" id="subtitle"]]
+[[!template text="""Yet I don't tell folks to use Emacs.""" start="00:10:05.200" video="mainVideo-mentor" id="subtitle"]]
+[[!template text="""Instead, I'm doing my best to show a myriad of reasons""" start="00:10:07.960" video="mainVideo-mentor" id="subtitle"]]
+[[!template text="""for why folks should consider Emacs.""" start="00:10:10.720" video="mainVideo-mentor" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Conclusion""" start="00:10:14.900" video="mainVideo-mentor" id="subtitle"]]</div>[[!template text="""In conclusion, ask questions.""" start="00:10:14.900" video="mainVideo-mentor" id="subtitle"]]
+[[!template text="""Find a person who is a VS Coder and just say,""" start="00:10:18.740" video="mainVideo-mentor" id="subtitle"]]
+[[!template text="""&quot;hey, I learned something new.&quot;""" start="00:10:22.400" video="mainVideo-mentor" id="subtitle"]]
+[[!template text="""We play this game all the time, me and my coworker Kirk.""" start="00:10:23.880" video="mainVideo-mentor" id="subtitle"]]
+[[!template text="""I love it.""" start="00:10:26.720" video="mainVideo-mentor" id="subtitle"]]
+[[!template text="""Another goal is showing the malleability of Emacs,""" start="00:10:27.700" video="mainVideo-mentor" id="subtitle"]]
+[[!template text="""how easy it is to extend.""" start="00:10:31.480" video="mainVideo-mentor" id="subtitle"]]
+[[!template text="""And obviously there's so much more than what I've highlighted,""" start="00:10:34.400" video="mainVideo-mentor" id="subtitle"]]
+[[!template text="""but then again, that's Emacs.""" start="00:10:36.680" video="mainVideo-mentor" id="subtitle"]]
+[[!template text="""Thank you, and I look forward to your questions.""" start="00:10:38.720" video="mainVideo-mentor" id="subtitle"]]
+
+</div>
+
+Captioner: hannah
+
+<div class="transcript transcript-qanda"><a name="mentor-qanda-transcript"></a><h1>Q&A transcript (unedited)</h1>
+
+[[!template text="""[Speaker 0]: 2 seconds. And I think we are live.""" start="00:00:09.480" video="qanda-mentor" id="subtitle"]]
+[[!template text="""Hi, Jeremy, how are you doing?""" start="00:00:10.760" video="qanda-mentor" id="subtitle"]]
+[[!template text="""[Speaker 1]: All right. I'm doing all right.""" start="00:00:11.840" video="qanda-mentor" id="subtitle"]]
+[[!template text="""How about you?""" start="00:00:12.380" video="qanda-mentor" id="subtitle"]]
+[[!template text="""[Speaker 0]: I'm doing great as well.""" start="00:00:14.759" video="qanda-mentor" id="subtitle"]]
+[[!template text="""I'm really happy to see all the talk that""" start="00:00:16.480" video="qanda-mentor" id="subtitle"]]
+[[!template text="""we're having. And I was particularly excited""" start="00:00:18.600" video="qanda-mentor" id="subtitle"]]
+[[!template text="""when I got your proposal for this talk""" start="00:00:21.880" video="qanda-mentor" id="subtitle"]]
+[[!template text="""because mentoring, as I was telling you""" start="00:00:24.080" video="qanda-mentor" id="subtitle"]]
+[[!template text="""during the check-in process,""" start="00:00:25.040" video="qanda-mentor" id="subtitle"]]
+[[!template text="""is a subject dear to my heart.""" start="00:00:27.360" video="qanda-mentor" id="subtitle"]]
+[[!template text="""So I'm really excited,""" start="00:00:28.700" video="qanda-mentor" id="subtitle"]]
+[[!template text="""not only for the talk that you've just done,""" start="00:00:30.640" video="qanda-mentor" id="subtitle"]]
+[[!template text="""but also for the question that people are""" start="00:00:32.200" video="qanda-mentor" id="subtitle"]]
+[[!template text="""going to ask you.""" start="00:00:32.880" video="qanda-mentor" id="subtitle"]]
+[[!template text="""[Speaker 1]: Yeah, I'm looking forward to answering some""" start="00:00:35.760" video="qanda-mentor" id="subtitle"]]
+[[!template text="""questions. Mentoring is also something near""" start="00:00:39.600" video="qanda-mentor" id="subtitle"]]
+[[!template text="""and dear. Something I did not mention is when""" start="00:00:43.860" video="qanda-mentor" id="subtitle"]]
+[[!template text="""folks would ask me, like,""" start="00:00:45.620" video="qanda-mentor" id="subtitle"]]
+[[!template text="""what was your most important class?""" start="00:00:47.000" video="qanda-mentor" id="subtitle"]]
+[[!template text="""Or I said, oh, easy, easy,""" start="00:00:48.920" video="qanda-mentor" id="subtitle"]]
+[[!template text="""easy, high school English.""" start="00:00:50.180" video="qanda-mentor" id="subtitle"]]
+[[!template text="""Like, it's my whatever your primary written""" start="00:00:54.160" video="qanda-mentor" id="subtitle"]]
+[[!template text="""and spoken languages I think is the most""" start="00:00:56.320" video="qanda-mentor" id="subtitle"]]
+[[!template text="""useful skill as a programmer""" start="00:00:58.860" video="qanda-mentor" id="subtitle"]]
+[[!template text="""[Speaker 0]: right so as usual people if you want to ask""" start="00:01:05.379" video="qanda-mentor" id="subtitle"]]
+[[!template text="""questions to Jeremy, feel free to find the""" start="00:01:09.520" video="qanda-mentor" id="subtitle"]]
+[[!template text="""link to the other pad either on the talk page""" start="00:01:11.440" video="qanda-mentor" id="subtitle"]]
+[[!template text="""or on IRC. We're also going to open the chat""" start="00:01:15.440" video="qanda-mentor" id="subtitle"]]
+[[!template text="""so that people can join us and ask questions.""" start="00:01:17.320" video="qanda-mentor" id="subtitle"]]
+[[!template text="""Let me just make sure that I tell Sasha can""" start="00:01:20.380" video="qanda-mentor" id="subtitle"]]
+[[!template text="""you open ID Mentor. All right so in the""" start="00:01:25.440" video="qanda-mentor" id="subtitle"]]
+[[!template text="""meantime what we'll do is that I'll be""" start="00:01:27.320" video="qanda-mentor" id="subtitle"]]
+[[!template text="""reading questions of the pad and Jeremy will""" start="00:01:29.660" video="qanda-mentor" id="subtitle"]]
+[[!template text="""be answering them whilst we wait for you to""" start="00:01:31.400" video="qanda-mentor" id="subtitle"]]
+[[!template text="""join. Now just to be clear with the time,""" start="00:01:32.800" video="qanda-mentor" id="subtitle"]]
+[[!template text="""we have a little bit of time now,""" start="00:01:34.640" video="qanda-mentor" id="subtitle"]]
+[[!template text="""a little more time than before.""" start="00:01:36.040" video="qanda-mentor" id="subtitle"]]
+[[!template text="""We have 22 minutes, so until 10 of the next""" start="00:01:39.520" video="qanda-mentor" id="subtitle"]]
+[[!template text="""hours to answer as many questions as""" start="00:01:41.260" video="qanda-mentor" id="subtitle"]]
+[[!template text="""possible. And believe me,""" start="00:01:42.520" video="qanda-mentor" id="subtitle"]]
+[[!template text="""if you people watching right now are not""" start="00:01:45.040" video="qanda-mentor" id="subtitle"]]
+[[!template text="""asking questions, I will be asking plenty of""" start="00:01:47.280" video="qanda-mentor" id="subtitle"]]
+[[!template text="""them. So please, save Jeremy from my""" start="00:01:49.840" video="qanda-mentor" id="subtitle"]]
+[[!template text="""[Speaker 1]: I look forward to it.""" start="00:01:53.800" video="qanda-mentor" id="subtitle"]]
+[[!template text="""[Speaker 0]: inquisitive mind. All right.""" start="00:01:55.320" video="qanda-mentor" id="subtitle"]]
+[[!template text="""Starting with the first question,""" start="00:01:56.960" video="qanda-mentor" id="subtitle"]]
+[[!template text="""a very trivial 1, perhaps,""" start="00:01:59.240" video="qanda-mentor" id="subtitle"]]
+[[!template text="""but always 1 that I ask myself when I look at""" start="00:02:01.720" video="qanda-mentor" id="subtitle"]]
+[[!template text="""a keyboard. Regarding super key,""" start="00:02:03.840" video="qanda-mentor" id="subtitle"]]
+[[!template text="""which key do you bind to super?""" start="00:02:05.980" video="qanda-mentor" id="subtitle"]]
+[[!template text="""[Speaker 1]: Yeah, so my left command,""" start="00:02:09.620" video="qanda-mentor" id="subtitle"]]
+[[!template text="""which is on a Mac keyboard,""" start="00:02:12.180" video="qanda-mentor" id="subtitle"]]
+[[!template text="""so the key right to the left of the space bar""" start="00:02:16.620" video="qanda-mentor" id="subtitle"]]
+[[!template text="""is super. And the key immediately to the""" start="00:02:20.860" video="qanda-mentor" id="subtitle"]]
+[[!template text="""right of spacebar, which is the right command""" start="00:02:23.000" video="qanda-mentor" id="subtitle"]]
+[[!template text="""key, is bound to hyper,""" start="00:02:24.320" video="qanda-mentor" id="subtitle"]]
+[[!template text="""which opens up a whole new suite of keys.""" start="00:02:28.140" video="qanda-mentor" id="subtitle"]]
+[[!template text="""And I thought it would take a little bit to""" start="00:02:31.080" video="qanda-mentor" id="subtitle"]]
+[[!template text="""get used to, but it's been amazing.""" start="00:02:33.160" video="qanda-mentor" id="subtitle"]]
+[[!template text="""So I definitely recommend having a hyper""" start="00:02:37.800" video="qanda-mentor" id="subtitle"]]
+[[!template text="""binding.""" start="00:02:38.440" video="qanda-mentor" id="subtitle"]]
+[[!template text="""[Speaker 0]: I will, yes. I was also going to say super""" start="00:02:42.440" video="qanda-mentor" id="subtitle"]]
+[[!template text="""binding. No, it's a hyper binding.""" start="00:02:43.860" video="qanda-mentor" id="subtitle"]]
+[[!template text="""We already have super.""" start="00:02:44.800" video="qanda-mentor" id="subtitle"]]
+[[!template text="""It's your Windows key or your Linux key or""" start="00:02:47.120" video="qanda-mentor" id="subtitle"]]
+[[!template text="""whatever you want to call it.""" start="00:02:48.240" video="qanda-mentor" id="subtitle"]]
+[[!template text="""But I will warn people though,""" start="00:02:51.140" video="qanda-mentor" id="subtitle"]]
+[[!template text="""it's the gateway into fancy keyboard setups""" start="00:02:57.720" video="qanda-mentor" id="subtitle"]]
+[[!template text="""because it starts, it's the Trojan horse of""" start="00:03:00.900" video="qanda-mentor" id="subtitle"]]
+[[!template text="""fancy keyboard setup. Just,""" start="00:03:02.700" video="qanda-mentor" id="subtitle"]]
+[[!template text="""oh I wish I could have another modifier.""" start="00:03:04.320" video="qanda-mentor" id="subtitle"]]
+[[!template text="""And then many years later,""" start="00:03:06.960" video="qanda-mentor" id="subtitle"]]
+[[!template text="""you find yourself with this little thing that""" start="00:03:09.160" video="qanda-mentor" id="subtitle"]]
+[[!template text="""I'm showing, which is a fully customized QMK""" start="00:03:11.260" video="qanda-mentor" id="subtitle"]]
+[[!template text="""keyboard.""" start="00:03:12.100" video="qanda-mentor" id="subtitle"]]
+[[!template text="""[Speaker 2]: All right.""" start="00:03:13.540" video="qanda-mentor" id="subtitle"]]
+[[!template text="""[Speaker 1]: Following on that, then meta is to the left""" start="00:03:18.200" video="qanda-mentor" id="subtitle"]]
+[[!template text="""of super, and then control is to the left of""" start="00:03:21.880" video="qanda-mentor" id="subtitle"]]
+[[!template text="""meta. And also, caps lock maps to control as""" start="00:03:26.720" video="qanda-mentor" id="subtitle"]]
+[[!template text="""well. Definitely tried a bunch of tap for""" start="00:03:31.380" video="qanda-mentor" id="subtitle"]]
+[[!template text="""this and that on a programmable keyboard,""" start="00:03:35.460" video="qanda-mentor" id="subtitle"]]
+[[!template text="""but I have settled on keep it simple and use""" start="00:03:39.280" video="qanda-mentor" id="subtitle"]]
+[[!template text="""something like carabiner elements to do most""" start="00:03:41.580" video="qanda-mentor" id="subtitle"]]
+[[!template text="""[Speaker 0]: Right. It's good that you were able to stop""" start="00:03:46.400" video="qanda-mentor" id="subtitle"]]
+[[!template text="""there. I wish I'd stopped there at some point""" start="00:03:48.480" video="qanda-mentor" id="subtitle"]]
+[[!template text="""[Speaker 1]: of the mapping. It was a terrible moment""" start="00:03:50.940" video="qanda-mentor" id="subtitle"]]
+[[!template text="""where I'm like, oh, what have I done when I""" start="00:03:52.900" video="qanda-mentor" id="subtitle"]]
+[[!template text="""was trying to type once?""" start="00:03:53.760" video="qanda-mentor" id="subtitle"]]
+[[!template text="""[Speaker 0]: in my life. All right,""" start="00:03:57.500" video="qanda-mentor" id="subtitle"]]
+[[!template text="""moving on to the next question.""" start="00:03:58.920" video="qanda-mentor" id="subtitle"]]
+[[!template text="""Great talk. What's the package you used to""" start="00:04:01.360" video="qanda-mentor" id="subtitle"]]
+[[!template text="""make the org slide?""" start="00:04:02.120" video="qanda-mentor" id="subtitle"]]
+[[!template text="""[Speaker 1]: So yeah, it's great. Yeah,""" start="00:04:03.280" video="qanda-mentor" id="subtitle"]]
+[[!template text="""so I am using Protz Logos and have,""" start="00:04:13.680" video="qanda-mentor" id="subtitle"]]
+[[!template text="""I think, like, Olivet mode.""" start="00:04:15.660" video="qanda-mentor" id="subtitle"]]
+[[!template text="""I'll post a link to the configuration for""" start="00:04:19.959" video="qanda-mentor" id="subtitle"]]
+[[!template text="""turning it on and off.""" start="00:04:21.019" video="qanda-mentor" id="subtitle"]]
+[[!template text="""But it's basically narrow region to an org""" start="00:04:24.280" video="qanda-mentor" id="subtitle"]]
+[[!template text="""heading, which is, I find that to be super""" start="00:04:27.940" video="qanda-mentor" id="subtitle"]]
+[[!template text="""helpful. Don't have to fiddle with it.""" start="00:04:30.300" video="qanda-mentor" id="subtitle"]]
+[[!template text="""[Speaker 0]: Right, just to be clear,""" start="00:04:32.900" video="qanda-mentor" id="subtitle"]]
+[[!template text="""it's Olivetti, right? I think that's the...""" start="00:04:34.920" video="qanda-mentor" id="subtitle"]]
+[[!template text="""[Speaker 1]: Oh yeah, Olivetti, yeah.""" start="00:04:36.460" video="qanda-mentor" id="subtitle"]]
+[[!template text="""[Speaker 0]: A typical Italian word that is really tough""" start="00:04:39.960" video="qanda-mentor" id="subtitle"]]
+[[!template text="""to pronounce between Europeans and people in""" start="00:04:42.720" video="qanda-mentor" id="subtitle"]]
+[[!template text="""[Speaker 1]: Yeah, I had a... For some reason I dropped""" start="00:04:46.080" video="qanda-mentor" id="subtitle"]]
+[[!template text="""the I at the end. So in my head""" start="00:04:48.940" video="qanda-mentor" id="subtitle"]]
+[[!template text="""[Speaker 0]: the US. Yeah, moving to the next question if""" start="00:04:52.660" video="qanda-mentor" id="subtitle"]]
+[[!template text="""people do get interested in picking up emacs""" start="00:04:54.440" video="qanda-mentor" id="subtitle"]]
+[[!template text="""because of what they see you do How do you""" start="00:04:56.520" video="qanda-mentor" id="subtitle"]]
+[[!template text="""recommend they say they get into it?""" start="00:04:58.260" video="qanda-mentor" id="subtitle"]]
+[[!template text="""Oh""" start="00:04:58.440" video="qanda-mentor" id="subtitle"]]
+[[!template text="""[Speaker 1]: Yeah, so I've been I think a lot of it comes""" start="00:05:05.600" video="qanda-mentor" id="subtitle"]]
+[[!template text="""down to what are the problems that they're""" start="00:05:09.620" video="qanda-mentor" id="subtitle"]]
+[[!template text="""trying to solve. And so I walked them through""" start="00:05:11.600" video="qanda-mentor" id="subtitle"]]
+[[!template text="""my journey. I worked in TextMate for a long""" start="00:05:15.460" video="qanda-mentor" id="subtitle"]]
+[[!template text="""time, then Sublime, then Atom.""" start="00:05:16.980" video="qanda-mentor" id="subtitle"]]
+[[!template text="""And then in 2020, I hopped over to Emacs,""" start="00:05:20.220" video="qanda-mentor" id="subtitle"]]
+[[!template text="""started writing in it and I chose Space Max""" start="00:05:25.080" video="qanda-mentor" id="subtitle"]]
+[[!template text="""and then I chose Doom.""" start="00:05:26.680" video="qanda-mentor" id="subtitle"]]
+[[!template text="""And then I was like, wait,""" start="00:05:28.140" video="qanda-mentor" id="subtitle"]]
+[[!template text="""start over, erase everything and just do the""" start="00:05:33.080" video="qanda-mentor" id="subtitle"]]
+[[!template text="""tutorial. So I did the tutorial and then I""" start="00:05:36.620" video="qanda-mentor" id="subtitle"]]
+[[!template text="""started writing and I was like,""" start="00:05:37.800" video="qanda-mentor" id="subtitle"]]
+[[!template text="""oh, I really want this functionality.""" start="00:05:39.520" video="qanda-mentor" id="subtitle"]]
+[[!template text="""And so I went and I looked for it and I""" start="00:05:43.380" video="qanda-mentor" id="subtitle"]]
+[[!template text="""installed the package.""" start="00:05:44.060" video="qanda-mentor" id="subtitle"]]
+[[!template text="""And then I got the functionality,""" start="00:05:46.060" video="qanda-mentor" id="subtitle"]]
+[[!template text="""went back to writing, and I'm like,""" start="00:05:47.960" video="qanda-mentor" id="subtitle"]]
+[[!template text="""oh, my editor should really be able to do""" start="00:05:49.920" video="qanda-mentor" id="subtitle"]]
+[[!template text="""this. And I thought about it.""" start="00:05:52.000" video="qanda-mentor" id="subtitle"]]
+[[!template text="""So a lot of it came down to the experience of""" start="00:05:55.380" video="qanda-mentor" id="subtitle"]]
+[[!template text="""what they're trying to accomplish.""" start="00:05:56.320" video="qanda-mentor" id="subtitle"]]
+[[!template text="""And really helping ask them that.""" start="00:06:00.900" video="qanda-mentor" id="subtitle"]]
+[[!template text="""I had 1 mentee had used Vim for a long time""" start="00:06:04.600" video="qanda-mentor" id="subtitle"]]
+[[!template text="""and then was exploring using Evil Mode and""" start="00:06:07.700" video="qanda-mentor" id="subtitle"]]
+[[!template text="""Emacs and we had conversations and it was""" start="00:06:13.100" video="qanda-mentor" id="subtitle"]]
+[[!template text="""like go back to Vim like you were using VS""" start="00:06:16.840" video="qanda-mentor" id="subtitle"]]
+[[!template text="""Code just go back to Vim and they went back""" start="00:06:19.040" video="qanda-mentor" id="subtitle"]]
+[[!template text="""to Vim and then they started writing,""" start="00:06:20.980" video="qanda-mentor" id="subtitle"]]
+[[!template text="""well, they went to NeoVim and they started""" start="00:06:22.760" video="qanda-mentor" id="subtitle"]]
+[[!template text="""writing Lua plugins for stuff and it just""" start="00:06:27.620" video="qanda-mentor" id="subtitle"]]
+[[!template text="""helped free them and they gained that""" start="00:06:29.480" video="qanda-mentor" id="subtitle"]]
+[[!template text="""ownership in their text editor.""" start="00:06:31.320" video="qanda-mentor" id="subtitle"]]
+[[!template text="""So I try to have them think through what are""" start="00:06:37.520" video="qanda-mentor" id="subtitle"]]
+[[!template text="""the common tasks that they're trying to""" start="00:06:40.160" video="qanda-mentor" id="subtitle"]]
+[[!template text="""accomplish and then thinking in terms of""" start="00:06:44.180" video="qanda-mentor" id="subtitle"]]
+[[!template text="""that. So instead of going and finding a""" start="00:06:46.320" video="qanda-mentor" id="subtitle"]]
+[[!template text="""solution, understand the problems they're""" start="00:06:48.340" video="qanda-mentor" id="subtitle"]]
+[[!template text="""experiencing, which tends to be what we""" start="00:06:52.180" video="qanda-mentor" id="subtitle"]]
+[[!template text="""should do in software development.""" start="00:06:53.360" video="qanda-mentor" id="subtitle"]]
+[[!template text="""Instead of implementing the solve a problem.""" start="00:06:57.720" video="qanda-mentor" id="subtitle"]]
+[[!template text="""Sometimes It's fun to implement an idea.""" start="00:07:02.000" video="qanda-mentor" id="subtitle"]]
+[[!template text="""[Speaker 0]: Yeah, I think it's really the crux,""" start="00:07:04.840" video="qanda-mentor" id="subtitle"]]
+[[!template text="""really, when it comes to software""" start="00:07:06.740" video="qanda-mentor" id="subtitle"]]
+[[!template text="""development, because what is at the crux of""" start="00:07:08.760" video="qanda-mentor" id="subtitle"]]
+[[!template text="""any kind of engineering?""" start="00:07:09.520" video="qanda-mentor" id="subtitle"]]
+[[!template text="""Well, it's the problem you're trying to""" start="00:07:11.680" video="qanda-mentor" id="subtitle"]]
+[[!template text="""solve. If you've got 2 islands and you need""" start="00:07:13.480" video="qanda-mentor" id="subtitle"]]
+[[!template text="""to join them up together,""" start="00:07:14.440" video="qanda-mentor" id="subtitle"]]
+[[!template text="""well, I need to build a bridge.""" start="00:07:15.840" video="qanda-mentor" id="subtitle"]]
+[[!template text="""Now, obviously with software,""" start="00:07:17.160" video="qanda-mentor" id="subtitle"]]
+[[!template text="""we have problems that defy the law of""" start="00:07:19.800" video="qanda-mentor" id="subtitle"]]
+[[!template text="""physics, which is great because we get very""" start="00:07:21.600" video="qanda-mentor" id="subtitle"]]
+[[!template text="""complex problems that are very exciting to""" start="00:07:23.520" video="qanda-mentor" id="subtitle"]]
+[[!template text="""solve. But when it comes to onboarding people""" start="00:07:26.380" video="qanda-mentor" id="subtitle"]]
+[[!template text="""into those ways of solving problems,""" start="00:07:28.180" video="qanda-mentor" id="subtitle"]]
+[[!template text="""well, I think mentoring,""" start="00:07:29.540" video="qanda-mentor" id="subtitle"]]
+[[!template text="""The key behind mentoring is that together,""" start="00:07:32.980" video="qanda-mentor" id="subtitle"]]
+[[!template text="""we're going to look at a problem and we're""" start="00:07:35.280" video="qanda-mentor" id="subtitle"]]
+[[!template text="""going to try to see how high would fix it.""" start="00:07:37.200" video="qanda-mentor" id="subtitle"]]
+[[!template text="""And you're going to try to appreciate whether""" start="00:07:40.240" video="qanda-mentor" id="subtitle"]]
+[[!template text="""this is something you would do as well or""" start="00:07:42.280" video="qanda-mentor" id="subtitle"]]
+[[!template text="""would like to do.""" start="00:07:43.260" video="qanda-mentor" id="subtitle"]]
+[[!template text="""[Speaker 1]: Yep, Absolutely. Yeah,""" start="00:07:50.080" video="qanda-mentor" id="subtitle"]]
+[[!template text="""it's really taking time to walk with them on""" start="00:07:54.340" video="qanda-mentor" id="subtitle"]]
+[[!template text="""the journey to understand what's frustrating""" start="00:07:56.500" video="qanda-mentor" id="subtitle"]]
+[[!template text="""them. I have a coworker we've been working""" start="00:07:59.700" video="qanda-mentor" id="subtitle"]]
+[[!template text="""together for a very long time.""" start="00:08:01.240" video="qanda-mentor" id="subtitle"]]
+[[!template text="""She is not a fast navigator of her editor,""" start="00:08:05.280" video="qanda-mentor" id="subtitle"]]
+[[!template text="""but as we've talked, that's not where she's""" start="00:08:08.860" video="qanda-mentor" id="subtitle"]]
+[[!template text="""looking to get better.""" start="00:08:09.960" video="qanda-mentor" id="subtitle"]]
+[[!template text="""She's looking to get better at asking the""" start="00:08:17.380" video="qanda-mentor" id="subtitle"]]
+[[!template text="""questions of the clients early so that we""" start="00:08:20.500" video="qanda-mentor" id="subtitle"]]
+[[!template text="""don't go down long paths of implementation.""" start="00:08:23.160" video="qanda-mentor" id="subtitle"]]
+[[!template text="""So it's been great because she's not looking""" start="00:08:27.940" video="qanda-mentor" id="subtitle"]]
+[[!template text="""to get better at her text editor.""" start="00:08:29.820" video="qanda-mentor" id="subtitle"]]
+[[!template text="""She's adequate for how she navigates.""" start="00:08:32.500" video="qanda-mentor" id="subtitle"]]
+[[!template text="""Other people look and they're like,""" start="00:08:34.700" video="qanda-mentor" id="subtitle"]]
+[[!template text="""man, I want to do it faster.""" start="00:08:35.740" video="qanda-mentor" id="subtitle"]]
+[[!template text="""I want to do it different.""" start="00:08:36.820" video="qanda-mentor" id="subtitle"]]
+[[!template text="""I want to do it better.""" start="00:08:37.840" video="qanda-mentor" id="subtitle"]]
+[[!template text="""And then we have a different conversation.""" start="00:08:39.480" video="qanda-mentor" id="subtitle"]]
+[[!template text="""[Speaker 0]: Right. All right. Moving on to the next""" start="00:08:44.480" video="qanda-mentor" id="subtitle"]]
+[[!template text="""question. I've been using Emacs for about 30""" start="00:08:46.960" video="qanda-mentor" id="subtitle"]]
+[[!template text="""years and I find it really difficult to""" start="00:08:49.120" video="qanda-mentor" id="subtitle"]]
+[[!template text="""figure out how to help people get started""" start="00:08:50.860" video="qanda-mentor" id="subtitle"]]
+[[!template text="""with it So I guess my question is the same as""" start="00:08:54.400" video="qanda-mentor" id="subtitle"]]
+[[!template text="""the green question right about it.""" start="00:08:55.680" video="qanda-mentor" id="subtitle"]]
+[[!template text="""I think it's slightly different though You""" start="00:08:57.900" video="qanda-mentor" id="subtitle"]]
+[[!template text="""could it is more about well go on please.""" start="00:09:00.860" video="qanda-mentor" id="subtitle"]]
+[[!template text="""Yeah""" start="00:09:01.500" video="qanda-mentor" id="subtitle"]]
+[[!template text="""[Speaker 1]: so My wife a while ago,""" start="00:09:06.900" video="qanda-mentor" id="subtitle"]]
+[[!template text="""talked about the idea of,""" start="00:09:10.680" video="qanda-mentor" id="subtitle"]]
+[[!template text="""relative to anybody, I am an expert or""" start="00:09:15.860" video="qanda-mentor" id="subtitle"]]
+[[!template text="""slightly more informed on a topic than the""" start="00:09:19.020" video="qanda-mentor" id="subtitle"]]
+[[!template text="""person quote behind me.""" start="00:09:20.380" video="qanda-mentor" id="subtitle"]]
+[[!template text="""And there's a person ahead of me who's""" start="00:09:22.360" video="qanda-mentor" id="subtitle"]]
+[[!template text="""slightly more informed than I am.""" start="00:09:24.240" video="qanda-mentor" id="subtitle"]]
+[[!template text="""And so what we're looking at is perhaps with""" start="00:09:27.880" video="qanda-mentor" id="subtitle"]]
+[[!template text="""30 years of experience,""" start="00:09:28.820" video="qanda-mentor" id="subtitle"]]
+[[!template text="""introducing someone to Emacs might be""" start="00:09:32.580" video="qanda-mentor" id="subtitle"]]
+[[!template text="""difficult because you've you're too much of""" start="00:09:35.780" video="qanda-mentor" id="subtitle"]]
+[[!template text="""an expert. So maybe the there's a an idea of""" start="00:09:41.120" video="qanda-mentor" id="subtitle"]]
+[[!template text="""like what are the principles of pedagogy.""" start="00:09:42.380" video="qanda-mentor" id="subtitle"]]
+[[!template text="""I know we that was talked about yesterday in""" start="00:09:45.180" video="qanda-mentor" id="subtitle"]]
+[[!template text="""a presentation about like here's a""" start="00:09:47.180" video="qanda-mentor" id="subtitle"]]
+[[!template text="""constraint, you're using Emacs for the""" start="00:09:49.160" video="qanda-mentor" id="subtitle"]]
+[[!template text="""course. But so it's that idea of sharing what""" start="00:09:54.660" video="qanda-mentor" id="subtitle"]]
+[[!template text="""you have, where you're at,""" start="00:09:56.880" video="qanda-mentor" id="subtitle"]]
+[[!template text="""will, I think by nature,""" start="00:10:00.220" video="qanda-mentor" id="subtitle"]]
+[[!template text="""move the entire queue of people,""" start="00:10:03.360" video="qanda-mentor" id="subtitle"]]
+[[!template text="""like they don't really exist.""" start="00:10:04.940" video="qanda-mentor" id="subtitle"]]
+[[!template text="""I mean, they do, but they don't.""" start="00:10:06.380" video="qanda-mentor" id="subtitle"]]
+[[!template text="""Behind you, it'll help move them together""" start="00:10:08.600" video="qanda-mentor" id="subtitle"]]
+[[!template text="""forward just a little bit.""" start="00:10:10.320" video="qanda-mentor" id="subtitle"]]
+[[!template text="""And maybe we all move the condition together.""" start="00:10:13.440" video="qanda-mentor" id="subtitle"]]
+[[!template text="""So It's not a only 1 person kind of thing.""" start="00:10:17.760" video="qanda-mentor" id="subtitle"]]
+[[!template text="""It's a mindset of improving shared""" start="00:10:22.120" video="qanda-mentor" id="subtitle"]]
+[[!template text="""understanding.""" start="00:10:22.540" video="qanda-mentor" id="subtitle"]]
+[[!template text="""[Speaker 0]: Exactly, and I'd like to come back on""" start="00:10:26.520" video="qanda-mentor" id="subtitle"]]
+[[!template text="""something that you mentioned in your answer,""" start="00:10:28.180" video="qanda-mentor" id="subtitle"]]
+[[!template text="""because it's, you know,""" start="00:10:30.940" video="qanda-mentor" id="subtitle"]]
+[[!template text="""what the person asking the question""" start="00:10:33.060" video="qanda-mentor" id="subtitle"]]
+[[!template text="""mentioned, 30 years of advance,""" start="00:10:35.240" video="qanda-mentor" id="subtitle"]]
+[[!template text="""basically, on starting Emacs.""" start="00:10:36.620" video="qanda-mentor" id="subtitle"]]
+[[!template text="""You know, that's a lot of time,""" start="00:10:37.900" video="qanda-mentor" id="subtitle"]]
+[[!template text="""And you tend to equate this to a massive gap""" start="00:10:40.600" video="qanda-mentor" id="subtitle"]]
+[[!template text="""in terms of skills between the 2 people.""" start="00:10:42.440" video="qanda-mentor" id="subtitle"]]
+[[!template text="""And whilst it's obvious that would be a gap""" start="00:10:47.600" video="qanda-mentor" id="subtitle"]]
+[[!template text="""of skills. You know, I find that learning in""" start="00:10:50.280" video="qanda-mentor" id="subtitle"]]
+[[!template text="""terms of pedagogy works best when the person""" start="00:10:54.960" video="qanda-mentor" id="subtitle"]]
+[[!template text="""doing the teaching is very close in terms of""" start="00:10:58.180" video="qanda-mentor" id="subtitle"]]
+[[!template text="""skill levels to the person being taught.""" start="00:11:00.380" video="qanda-mentor" id="subtitle"]]
+[[!template text="""Why is it the case? It's because it's much""" start="00:11:02.620" video="qanda-mentor" id="subtitle"]]
+[[!template text="""fresher in their memory what are the""" start="00:11:05.660" video="qanda-mentor" id="subtitle"]]
+[[!template text="""different elements that they have to go""" start="00:11:08.100" video="qanda-mentor" id="subtitle"]]
+[[!template text="""through to acquire a particular skill.""" start="00:11:09.440" video="qanda-mentor" id="subtitle"]]
+[[!template text="""To go a little bit into the theory,""" start="00:11:12.440" video="qanda-mentor" id="subtitle"]]
+[[!template text="""I'm not sure if you're familiar with Vygotsky""" start="00:11:14.640" video="qanda-mentor" id="subtitle"]]
+[[!template text="""or at least the I plus 1.""" start="00:11:16.380" video="qanda-mentor" id="subtitle"]]
+[[!template text="""Are you familiar with this,""" start="00:11:17.640" video="qanda-mentor" id="subtitle"]]
+[[!template text="""[Speaker 1]: I am not, go on.""" start="00:11:20.540" video="qanda-mentor" id="subtitle"]]
+[[!template text="""[Speaker 0]: Jeremy? So I used to be a teacher before,""" start="00:11:22.600" video="qanda-mentor" id="subtitle"]]
+[[!template text="""and it's 1 of the things they taught us.""" start="00:11:24.520" video="qanda-mentor" id="subtitle"]]
+[[!template text="""It's about the fact that when you are trying""" start="00:11:26.920" video="qanda-mentor" id="subtitle"]]
+[[!template text="""to make someone acquire a skill,""" start="00:11:28.900" video="qanda-mentor" id="subtitle"]]
+[[!template text="""I represents the current knowledge,""" start="00:11:31.840" video="qanda-mentor" id="subtitle"]]
+[[!template text="""and plus 1 is the thing that you should be""" start="00:11:34.960" video="qanda-mentor" id="subtitle"]]
+[[!template text="""teaching them and the theory behind it is""" start="00:11:38.920" video="qanda-mentor" id="subtitle"]]
+[[!template text="""that it's much easier to teach someone to""" start="00:11:41.820" video="qanda-mentor" id="subtitle"]]
+[[!template text="""teach something to someone when they only""" start="00:11:44.260" video="qanda-mentor" id="subtitle"]]
+[[!template text="""have to focus on plus 1 i.e.""" start="00:11:46.100" video="qanda-mentor" id="subtitle"]]
+[[!template text="""Something that is very close nearby to them""" start="00:11:48.460" video="qanda-mentor" id="subtitle"]]
+[[!template text="""If you go with something that is I plus 2,""" start="00:11:50.580" video="qanda-mentor" id="subtitle"]]
+[[!template text="""I plus 3, or god forbid I plus 10,""" start="00:11:53.240" video="qanda-mentor" id="subtitle"]]
+[[!template text="""it's going to be much harder for them to get""" start="00:11:55.760" video="qanda-mentor" id="subtitle"]]
+[[!template text="""to the understanding because the distance is""" start="00:11:58.100" video="qanda-mentor" id="subtitle"]]
+[[!template text="""much greater. And that's why I think""" start="00:12:01.720" video="qanda-mentor" id="subtitle"]]
+[[!template text="""mentoring can be taken in 2 ways.""" start="00:12:05.000" video="qanda-mentor" id="subtitle"]]
+[[!template text="""It could be a mentor who's merely ahead of""" start="00:12:07.740" video="qanda-mentor" id="subtitle"]]
+[[!template text="""you by plus 1, or it could be a mentor that""" start="00:12:10.380" video="qanda-mentor" id="subtitle"]]
+[[!template text="""is ahead of you by plus 10,""" start="00:12:12.040" video="qanda-mentor" id="subtitle"]]
+[[!template text="""but who has the understanding of what plus 1,""" start="00:12:14.380" video="qanda-mentor" id="subtitle"]]
+[[!template text="""plus 2, and plus 3 is.""" start="00:12:15.800" video="qanda-mentor" id="subtitle"]]
+[[!template text="""[Speaker 1]: Yeah, and it can be very challenging to""" start="00:12:22.680" video="qanda-mentor" id="subtitle"]]
+[[!template text="""unwind that. I know if we think about all of""" start="00:12:27.400" video="qanda-mentor" id="subtitle"]]
+[[!template text="""our hands or input methods have a memory of""" start="00:12:33.540" video="qanda-mentor" id="subtitle"]]
+[[!template text="""something that I honestly couldn't tell you""" start="00:12:35.920" video="qanda-mentor" id="subtitle"]]
+[[!template text="""what it is. Right? Like,""" start="00:12:38.440" video="qanda-mentor" id="subtitle"]]
+[[!template text="""I know how to do it on a keyboard,""" start="00:12:40.240" video="qanda-mentor" id="subtitle"]]
+[[!template text="""right? We've internalized so much.""" start="00:12:43.480" video="qanda-mentor" id="subtitle"]]
+[[!template text="""And so, yeah, how to walk backward is a""" start="00:12:47.900" video="qanda-mentor" id="subtitle"]]
+[[!template text="""distinct challenge and being curious with""" start="00:12:51.940" video="qanda-mentor" id="subtitle"]]
+[[!template text="""them and close to them and not asking,""" start="00:12:55.600" video="qanda-mentor" id="subtitle"]]
+[[!template text="""trying to diffuse questions and not ask like""" start="00:13:00.300" video="qanda-mentor" id="subtitle"]]
+[[!template text="""leading, not overly leading.""" start="00:13:03.120" video="qanda-mentor" id="subtitle"]]
+[[!template text="""An example, early on in my mentoring career,""" start="00:13:09.280" video="qanda-mentor" id="subtitle"]]
+[[!template text="""I was working in a community project,""" start="00:13:11.260" video="qanda-mentor" id="subtitle"]]
+[[!template text="""and I really wanted to go in and say to""" start="00:13:14.280" video="qanda-mentor" id="subtitle"]]
+[[!template text="""everybody, why do we suck at sharing code?""" start="00:13:18.000" video="qanda-mentor" id="subtitle"]]
+[[!template text="""But instead I said, wait a minute,""" start="00:13:21.020" video="qanda-mentor" id="subtitle"]]
+[[!template text="""what would be the question I could ask the""" start="00:13:24.880" video="qanda-mentor" id="subtitle"]]
+[[!template text="""group in which I could then ask my question?""" start="00:13:27.680" video="qanda-mentor" id="subtitle"]]
+[[!template text="""So instead I went into the group and I said,""" start="00:13:30.320" video="qanda-mentor" id="subtitle"]]
+[[!template text="""how are we doing about sharing code?""" start="00:13:32.560" video="qanda-mentor" id="subtitle"]]
+[[!template text="""And collectively, we were able to establish""" start="00:13:37.120" video="qanda-mentor" id="subtitle"]]
+[[!template text="""we didn't feel very good about it.""" start="00:13:39.200" video="qanda-mentor" id="subtitle"]]
+[[!template text="""And that conversation now 9 years ago,""" start="00:13:42.740" video="qanda-mentor" id="subtitle"]]
+[[!template text="""helped move a process along for the last,""" start="00:13:47.020" video="qanda-mentor" id="subtitle"]]
+[[!template text="""like it gave it energy for 9 years of how""" start="00:13:50.220" video="qanda-mentor" id="subtitle"]]
+[[!template text="""we're sharing and how we're approaching""" start="00:13:51.560" video="qanda-mentor" id="subtitle"]]
+[[!template text="""stuff. So yeah, the curious questions are""" start="00:13:58.260" video="qanda-mentor" id="subtitle"]]
+[[!template text="""super helpful.""" start="00:14:00.060" video="qanda-mentor" id="subtitle"]]
+[[!template text="""[Speaker 0]: All right, lovely way to finish this point.""" start="00:14:04.440" video="qanda-mentor" id="subtitle"]]
+[[!template text="""We have about 10 more minutes so I'm glad""" start="00:14:06.940" video="qanda-mentor" id="subtitle"]]
+[[!template text="""that we have a little bit of extra time to""" start="00:14:08.600" video="qanda-mentor" id="subtitle"]]
+[[!template text="""answer the questions because we have a little""" start="00:14:10.640" video="qanda-mentor" id="subtitle"]]
+[[!template text="""more. All right, I'm gonna switch to the next""" start="00:14:13.740" video="qanda-mentor" id="subtitle"]]
+[[!template text="""question we can come back to people reacting""" start="00:14:15.160" video="qanda-mentor" id="subtitle"]]
+[[!template text="""to what you just said a little bit later.""" start="00:14:16.720" video="qanda-mentor" id="subtitle"]]
+[[!template text="""[Speaker 2]: Sure.""" start="00:14:17.440" video="qanda-mentor" id="subtitle"]]
+[[!template text="""[Speaker 0]: All right, have you encountered anyone that""" start="00:14:20.640" video="qanda-mentor" id="subtitle"]]
+[[!template text="""are being negative about the fact that you're""" start="00:14:23.760" video="qanda-mentor" id="subtitle"]]
+[[!template text="""using Emacs, assuming that they just don't""" start="00:14:26.400" video="qanda-mentor" id="subtitle"]]
+[[!template text="""know or have misconceptions about Emacs and""" start="00:14:28.740" video="qanda-mentor" id="subtitle"]]
+[[!template text="""nothing malicious? If so,""" start="00:14:30.340" video="qanda-mentor" id="subtitle"]]
+[[!template text="""how do you handle these kinds of people?""" start="00:14:32.220" video="qanda-mentor" id="subtitle"]]
+[[!template text="""[Speaker 1]: Sure, So at work, I get a gentle elbowing of""" start="00:14:40.640" video="qanda-mentor" id="subtitle"]]
+[[!template text="""like, oh, Jeremy's going to talk about Emacs""" start="00:14:42.720" video="qanda-mentor" id="subtitle"]]
+[[!template text="""again. So it's not entirely...""" start="00:14:45.900" video="qanda-mentor" id="subtitle"]]
+[[!template text="""Maybe it's a little dismissive,""" start="00:14:50.600" video="qanda-mentor" id="subtitle"]]
+[[!template text="""but I don't actually care because like it's""" start="00:14:56.840" video="qanda-mentor" id="subtitle"]]
+[[!template text="""like being, I don't know,""" start="00:15:00.160" video="qanda-mentor" id="subtitle"]]
+[[!template text="""it's like being made fun of for using a""" start="00:15:02.360" video="qanda-mentor" id="subtitle"]]
+[[!template text="""particular type of pen.""" start="00:15:03.560" video="qanda-mentor" id="subtitle"]]
+[[!template text="""Like goal is to write something,""" start="00:15:05.680" video="qanda-mentor" id="subtitle"]]
+[[!template text="""right? And I'm using a pen that gives me joy.""" start="00:15:09.080" video="qanda-mentor" id="subtitle"]]
+[[!template text="""When I talk with my mentees,""" start="00:15:11.740" video="qanda-mentor" id="subtitle"]]
+[[!template text="""like I want to meet them exactly where""" start="00:15:14.240" video="qanda-mentor" id="subtitle"]]
+[[!template text="""they're at with their code and like what""" start="00:15:16.980" video="qanda-mentor" id="subtitle"]]
+[[!template text="""they're comfortable with and help them remove""" start="00:15:20.860" video="qanda-mentor" id="subtitle"]]
+[[!template text="""any of that potential like inadequacy,""" start="00:15:23.100" video="qanda-mentor" id="subtitle"]]
+[[!template text="""sense of inadequacy or imposter syndrome or""" start="00:15:27.800" video="qanda-mentor" id="subtitle"]]
+[[!template text="""any of those things because The goal is to,""" start="00:15:32.980" video="qanda-mentor" id="subtitle"]]
+[[!template text="""for me, to be better at computering.""" start="00:15:36.380" video="qanda-mentor" id="subtitle"]]
+[[!template text="""Like hop on my computer.""" start="00:15:39.800" video="qanda-mentor" id="subtitle"]]
+[[!template text="""I want to be able to use it at a speed of""" start="00:15:45.060" video="qanda-mentor" id="subtitle"]]
+[[!template text="""thought that doesn't introduce a lot of""" start="00:15:47.680" video="qanda-mentor" id="subtitle"]]
+[[!template text="""friction. Another speaker talked about that""" start="00:15:50.660" video="qanda-mentor" id="subtitle"]]
+[[!template text="""using HyperBowl and a couple of plugins to""" start="00:15:54.000" video="qanda-mentor" id="subtitle"]]
+[[!template text="""write stream of consciousness.""" start="00:15:55.260" video="qanda-mentor" id="subtitle"]]
+[[!template text="""And that was an important consideration.""" start="00:15:57.980" video="qanda-mentor" id="subtitle"]]
+[[!template text="""I want my text editor to flow with me.""" start="00:16:01.060" video="qanda-mentor" id="subtitle"]]
+[[!template text="""And so I'm like, well,""" start="00:16:02.160" video="qanda-mentor" id="subtitle"]]
+[[!template text="""Emacs flows with me smooth.""" start="00:16:03.560" video="qanda-mentor" id="subtitle"]]
+[[!template text="""Like you can deride it all you want.""" start="00:16:08.220" video="qanda-mentor" id="subtitle"]]
+[[!template text="""It doesn't thread very well,""" start="00:16:09.960" video="qanda-mentor" id="subtitle"]]
+[[!template text="""but it's just me on this machine.""" start="00:16:12.080" video="qanda-mentor" id="subtitle"]]
+[[!template text="""I don't need it to overly thread,""" start="00:16:14.120" video="qanda-mentor" id="subtitle"]]
+[[!template text="""at least for my use cases.""" start="00:16:15.720" video="qanda-mentor" id="subtitle"]]
+[[!template text="""[Speaker 0]: Yeah, I can only agree 100% with what you've""" start="00:16:22.340" video="qanda-mentor" id="subtitle"]]
+[[!template text="""just said. And it's very easy to dismiss""" start="00:16:25.800" video="qanda-mentor" id="subtitle"]]
+[[!template text="""stuff like Vim or Emacs based on the very""" start="00:16:28.860" video="qanda-mentor" id="subtitle"]]
+[[!template text="""trite sentences that everyone use.""" start="00:16:31.260" video="qanda-mentor" id="subtitle"]]
+[[!template text="""But at the end of the day,""" start="00:16:32.440" video="qanda-mentor" id="subtitle"]]
+[[!template text="""I really like what you said.""" start="00:16:33.540" video="qanda-mentor" id="subtitle"]]
+[[!template text="""Those are just pencil that we're using to""" start="00:16:36.280" video="qanda-mentor" id="subtitle"]]
+[[!template text="""express ourselves. And we're doing something""" start="00:16:39.000" video="qanda-mentor" id="subtitle"]]
+[[!template text="""a little more fancy than just writing words""" start="00:16:41.820" video="qanda-mentor" id="subtitle"]]
+[[!template text="""on a page. But ultimately,""" start="00:16:43.680" video="qanda-mentor" id="subtitle"]]
+[[!template text="""It's just text at the very bottom.""" start="00:16:46.480" video="qanda-mentor" id="subtitle"]]
+[[!template text="""So whatever helps us write this test,""" start="00:16:48.560" video="qanda-mentor" id="subtitle"]]
+[[!template text="""this text more easily,""" start="00:16:50.540" video="qanda-mentor" id="subtitle"]]
+[[!template text="""you know, it's always good.""" start="00:16:52.960" video="qanda-mentor" id="subtitle"]]
+[[!template text="""Yeah. All right. Moving on to the next""" start="00:16:56.680" video="qanda-mentor" id="subtitle"]]
+[[!template text="""question. I love the attitudes and worldview""" start="00:16:59.360" video="qanda-mentor" id="subtitle"]]
+[[!template text="""that infuse your blog post and your talk this""" start="00:17:02.980" video="qanda-mentor" id="subtitle"]]
+[[!template text="""weekend. Learn something every week.""" start="00:17:05.400" video="qanda-mentor" id="subtitle"]]
+[[!template text="""It's cumulative. English class was the most""" start="00:17:08.400" video="qanda-mentor" id="subtitle"]]
+[[!template text="""important. What other advice do you have and""" start="00:17:11.319" video="qanda-mentor" id="subtitle"]]
+[[!template text="""how is it generalizable to those of us who""" start="00:17:13.680" video="qanda-mentor" id="subtitle"]]
+[[!template text="""are not devs?""" start="00:17:14.440" video="qanda-mentor" id="subtitle"]]
+[[!template text="""[Speaker 1]: Sure. So I think 1 of the really big changes""" start="00:17:26.280" video="qanda-mentor" id="subtitle"]]
+[[!template text="""for me, and I talked about this in the""" start="00:17:29.140" video="qanda-mentor" id="subtitle"]]
+[[!template text="""writing Q&A, is switching my blog from a""" start="00:17:34.700" video="qanda-mentor" id="subtitle"]]
+[[!template text="""topical 1 about role-playing games and board""" start="00:17:38.160" video="qanda-mentor" id="subtitle"]]
+[[!template text="""games into anything that I think I want to""" start="00:17:43.320" video="qanda-mentor" id="subtitle"]]
+[[!template text="""write. And that shift happened about the time""" start="00:17:47.220" video="qanda-mentor" id="subtitle"]]
+[[!template text="""that I was really exploring using Emacs for""" start="00:17:50.380" video="qanda-mentor" id="subtitle"]]
+[[!template text="""writing. And so previously I had,""" start="00:17:54.060" video="qanda-mentor" id="subtitle"]]
+[[!template text="""I would write blog posts in Markdown using,""" start="00:17:57.860" video="qanda-mentor" id="subtitle"]]
+[[!template text="""or I would write it in the web interface.""" start="00:18:00.560" video="qanda-mentor" id="subtitle"]]
+[[!template text="""And getting to the point where my writing was""" start="00:18:06.820" video="qanda-mentor" id="subtitle"]]
+[[!template text="""the same as my coding,""" start="00:18:08.480" video="qanda-mentor" id="subtitle"]]
+[[!template text="""was the same as my RSS consumption,""" start="00:18:12.040" video="qanda-mentor" id="subtitle"]]
+[[!template text="""was the same of a lot of these things,""" start="00:18:15.060" video="qanda-mentor" id="subtitle"]]
+[[!template text="""freed up my general interests so that they""" start="00:18:21.260" video="qanda-mentor" id="subtitle"]]
+[[!template text="""all can kind of play in that space.""" start="00:18:23.860" video="qanda-mentor" id="subtitle"]]
+[[!template text="""So and that's the, I think,""" start="00:18:27.660" video="qanda-mentor" id="subtitle"]]
+[[!template text="""Feynman said, like, his notes are his""" start="00:18:33.080" video="qanda-mentor" id="subtitle"]]
+[[!template text="""thoughts. It's not him thinking,""" start="00:18:35.860" video="qanda-mentor" id="subtitle"]]
+[[!template text="""I mean, they are him thinking as well.""" start="00:18:38.480" video="qanda-mentor" id="subtitle"]]
+[[!template text="""So it's really framing it that way.""" start="00:18:40.680" video="qanda-mentor" id="subtitle"]]
+[[!template text="""And then for not devs,""" start="00:18:44.180" video="qanda-mentor" id="subtitle"]]
+[[!template text="""My daughter has been doing screenwriting and""" start="00:18:49.060" video="qanda-mentor" id="subtitle"]]
+[[!template text="""she just had her school license for the tool""" start="00:18:53.180" video="qanda-mentor" id="subtitle"]]
+[[!template text="""that they use for writing screenplays.""" start="00:18:54.720" video="qanda-mentor" id="subtitle"]]
+[[!template text="""She had to pay for it on her own.""" start="00:18:57.400" video="qanda-mentor" id="subtitle"]]
+[[!template text="""And I was like, hey, let's take a look at""" start="00:18:59.540" video="qanda-mentor" id="subtitle"]]
+[[!template text="""Emacs. There's a package for this.""" start="00:19:01.000" video="qanda-mentor" id="subtitle"]]
+[[!template text="""Maybe it makes sense to you.""" start="00:19:03.320" video="qanda-mentor" id="subtitle"]]
+[[!template text="""So I think the, really to summarize it is""" start="00:19:09.520" video="qanda-mentor" id="subtitle"]]
+[[!template text="""like the broad curiosity in like,""" start="00:19:12.280" video="qanda-mentor" id="subtitle"]]
+[[!template text="""I have a liberal arts degree,""" start="00:19:14.320" video="qanda-mentor" id="subtitle"]]
+[[!template text="""I have barely any computer science classwork""" start="00:19:20.920" video="qanda-mentor" id="subtitle"]]
+[[!template text="""practice. I have a lot of practical""" start="00:19:23.940" video="qanda-mentor" id="subtitle"]]
+[[!template text="""experience doing software development,""" start="00:19:26.200" video="qanda-mentor" id="subtitle"]]
+[[!template text="""but theory is minimal.""" start="00:19:28.320" video="qanda-mentor" id="subtitle"]]
+[[!template text="""Instead, I look to things like Lord of the""" start="00:19:32.400" video="qanda-mentor" id="subtitle"]]
+[[!template text="""Rings or role-playing games or poetry or""" start="00:19:35.340" video="qanda-mentor" id="subtitle"]]
+[[!template text="""history or whatever and be curious and Then""" start="00:19:40.520" video="qanda-mentor" id="subtitle"]]
+[[!template text="""be playful The introduction of git locally""" start="00:19:47.260" video="qanda-mentor" id="subtitle"]]
+[[!template text="""where I can just have a Git repo means my""" start="00:19:51.060" video="qanda-mentor" id="subtitle"]]
+[[!template text="""text is recoverable. I don't,""" start="00:19:56.960" video="qanda-mentor" id="subtitle"]]
+[[!template text="""I can play. I'll just break it,""" start="00:19:59.060" video="qanda-mentor" id="subtitle"]]
+[[!template text="""I'll change it. It's software,""" start="00:20:00.320" video="qanda-mentor" id="subtitle"]]
+[[!template text="""let it be soft. It's not hard.""" start="00:20:02.860" video="qanda-mentor" id="subtitle"]]
+[[!template text="""It can be hard to work with it,""" start="00:20:05.740" video="qanda-mentor" id="subtitle"]]
+[[!template text="""but let it be soft. Let it be pruned,""" start="00:20:08.080" video="qanda-mentor" id="subtitle"]]
+[[!template text="""let it go away, let it die,""" start="00:20:09.780" video="qanda-mentor" id="subtitle"]]
+[[!template text="""let it come back.""" start="00:20:11.200" video="qanda-mentor" id="subtitle"]]
+[[!template text="""[Speaker 0]: Yeah, That's a lovely attitude to have.""" start="00:20:16.360" video="qanda-mentor" id="subtitle"]]
+[[!template text="""I mean, I've already talked about my past as""" start="00:20:20.980" video="qanda-mentor" id="subtitle"]]
+[[!template text="""an English major in 1 of the EmacsConf talks,""" start="00:20:23.680" video="qanda-mentor" id="subtitle"]]
+[[!template text="""but just like you, I don't have a comp sci""" start="00:20:26.520" video="qanda-mentor" id="subtitle"]]
+[[!template text="""education. I just started with needing a""" start="00:20:30.140" video="qanda-mentor" id="subtitle"]]
+[[!template text="""better pen, and that was about 10 years ago.""" start="00:20:32.120" video="qanda-mentor" id="subtitle"]]
+[[!template text="""And now I find myself hosting Emacs Cons,""" start="00:20:36.660" video="qanda-mentor" id="subtitle"]]
+[[!template text="""but it was a very incremental process,""" start="00:20:38.760" video="qanda-mentor" id="subtitle"]]
+[[!template text="""a very cumulative process,""" start="00:20:40.160" video="qanda-mentor" id="subtitle"]]
+[[!template text="""to reuse the word that we used before.""" start="00:20:42.720" video="qanda-mentor" id="subtitle"]]
+[[!template text="""And What I also like about people outside of""" start="00:20:48.480" video="qanda-mentor" id="subtitle"]]
+[[!template text="""CompSight using Emacs,""" start="00:20:49.640" video="qanda-mentor" id="subtitle"]]
+[[!template text="""and we've got plenty of such examples in the""" start="00:20:53.300" video="qanda-mentor" id="subtitle"]]
+[[!template text="""presentations we've had this year,""" start="00:20:54.940" video="qanda-mentor" id="subtitle"]]
+[[!template text="""but also last year, is that you get so many""" start="00:20:57.720" video="qanda-mentor" id="subtitle"]]
+[[!template text="""different windows into how people are using""" start="00:21:00.540" video="qanda-mentor" id="subtitle"]]
+[[!template text="""Emacs, and it kind of harks back to what I""" start="00:21:03.400" video="qanda-mentor" id="subtitle"]]
+[[!template text="""was saying before about Emacs being a""" start="00:21:06.340" video="qanda-mentor" id="subtitle"]]
+[[!template text="""platform with many horizontal packages""" start="00:21:08.380" video="qanda-mentor" id="subtitle"]]
+[[!template text="""permitting any kind of workflow imaginable""" start="00:21:10.560" video="qanda-mentor" id="subtitle"]]
+[[!template text="""and some people are going to gravitate""" start="00:21:13.580" video="qanda-mentor" id="subtitle"]]
+[[!template text="""towards old mode. I think it was your sister""" start="00:21:16.280" video="qanda-mentor" id="subtitle"]]
+[[!template text="""that you mentioned that was looking into""" start="00:21:18.520" video="qanda-mentor" id="subtitle"]]
+[[!template text="""packages for writing screenplays.""" start="00:21:20.760" video="qanda-mentor" id="subtitle"]]
+[[!template text="""Well, we've got such a thing in Emacs.""" start="00:21:23.220" video="qanda-mentor" id="subtitle"]]
+[[!template text="""I mean, a screenplay is just a monospace font""" start="00:21:26.260" video="qanda-mentor" id="subtitle"]]
+[[!template text="""with some fancy formatting.""" start="00:21:27.900" video="qanda-mentor" id="subtitle"]]
+[[!template text="""It's not very complicated.""" start="00:21:29.300" video="qanda-mentor" id="subtitle"]]
+[[!template text="""And if you can get behind,""" start="00:21:32.460" video="qanda-mentor" id="subtitle"]]
+[[!template text="""you know, someone using such a stable format""" start="00:21:36.280" video="qanda-mentor" id="subtitle"]]
+[[!template text="""for writing screenplay with many rules,""" start="00:21:38.480" video="qanda-mentor" id="subtitle"]]
+[[!template text="""but ultimately all the screenplay look the""" start="00:21:40.680" video="qanda-mentor" id="subtitle"]]
+[[!template text="""same, well, Emacs is kind of just the same.""" start="00:21:42.520" video="qanda-mentor" id="subtitle"]]
+[[!template text="""It's about standardizing the way you edit""" start="00:21:45.060" video="qanda-mentor" id="subtitle"]]
+[[!template text="""text. So I think your sister was already half""" start="00:21:47.760" video="qanda-mentor" id="subtitle"]]
+[[!template text="""[Speaker 1]: Yeah, it was my it was my my daughter.""" start="00:21:51.420" video="qanda-mentor" id="subtitle"]]
+[[!template text="""I'm trying to sell her on.""" start="00:21:52.720" video="qanda-mentor" id="subtitle"]]
+[[!template text="""[Speaker 0]: on the idea. Oh, no, sorry.""" start="00:21:53.320" video="qanda-mentor" id="subtitle"]]
+[[!template text="""[Speaker 1]: Yeah, she also picked up programming just 1""" start="00:21:56.200" video="qanda-mentor" id="subtitle"]]
+[[!template text="""day and was like, I forget that.""" start="00:21:58.140" video="qanda-mentor" id="subtitle"]]
+[[!template text="""Like she was playing with a stage manager""" start="00:22:01.360" video="qanda-mentor" id="subtitle"]]
+[[!template text="""programming thing or like have a little""" start="00:22:03.420" video="qanda-mentor" id="subtitle"]]
+[[!template text="""avatars moving around.""" start="00:22:04.640" video="qanda-mentor" id="subtitle"]]
+[[!template text="""And so she's got a predisposition to like the""" start="00:22:11.280" video="qanda-mentor" id="subtitle"]]
+[[!template text="""craft of things. And I think that's another""" start="00:22:15.620" video="qanda-mentor" id="subtitle"]]
+[[!template text="""aspect is like, I'm not,""" start="00:22:18.320" video="qanda-mentor" id="subtitle"]]
+[[!template text="""I mean, I appreciate science.""" start="00:22:21.080" video="qanda-mentor" id="subtitle"]]
+[[!template text="""I'm here for a scientific approach,""" start="00:22:23.040" video="qanda-mentor" id="subtitle"]]
+[[!template text="""but I also Really enjoy the craft of things""" start="00:22:27.940" video="qanda-mentor" id="subtitle"]]
+[[!template text="""Playing with it Like this is my playground.""" start="00:22:32.500" video="qanda-mentor" id="subtitle"]]
+[[!template text="""I love kind of hacking on it and looking at""" start="00:22:36.000" video="qanda-mentor" id="subtitle"]]
+[[!template text="""packages and Seeing how I might use it pick""" start="00:22:39.160" video="qanda-mentor" id="subtitle"]]
+[[!template text="""it up for a little bit and then maybe I""" start="00:22:42.120" video="qanda-mentor" id="subtitle"]]
+[[!template text="""forget about it""" start="00:22:42.880" video="qanda-mentor" id="subtitle"]]
+[[!template text="""[Speaker 0]: Right, well Jeremy I think that was Lovely""" start="00:22:47.940" video="qanda-mentor" id="subtitle"]]
+[[!template text="""finish. Oh, sorry plasma.""" start="00:22:49.860" video="qanda-mentor" id="subtitle"]]
+[[!template text="""Oh, sorry. I thought he was someone on Mumble""" start="00:22:51.380" video="qanda-mentor" id="subtitle"]]
+[[!template text="""talking to me. I'm actually going to have to""" start="00:22:54.640" video="qanda-mentor" id="subtitle"]]
+[[!template text="""be sorry because we only have about 50""" start="00:22:56.200" video="qanda-mentor" id="subtitle"]]
+[[!template text="""seconds until we move on to the next talk.""" start="00:22:58.000" video="qanda-mentor" id="subtitle"]]
+[[!template text="""But please, Plasma Strike,""" start="00:22:59.600" video="qanda-mentor" id="subtitle"]]
+[[!template text="""If you want to ask your question to Jeremy,""" start="00:23:01.120" video="qanda-mentor" id="subtitle"]]
+[[!template text="""by all means, stay in the room.""" start="00:23:02.720" video="qanda-mentor" id="subtitle"]]
+[[!template text="""[Speaker 1]: Yep, I'll be here.""" start="00:23:04.120" video="qanda-mentor" id="subtitle"]]
+[[!template text="""[Speaker 0]: And we'll be recording all of this and we'll""" start="00:23:07.640" video="qanda-mentor" id="subtitle"]]
+[[!template text="""put this later on the talk page.""" start="00:23:09.440" video="qanda-mentor" id="subtitle"]]
+[[!template text="""So Jeremy, I'll have to say bye now because I""" start="00:23:12.440" video="qanda-mentor" id="subtitle"]]
+[[!template text="""need to prepare the next room.""" start="00:23:13.660" video="qanda-mentor" id="subtitle"]]
+[[!template text="""But It was lovely talking with you and thank""" start="00:23:16.320" video="qanda-mentor" id="subtitle"]]
+[[!template text="""you for all your answers.""" start="00:23:17.040" video="qanda-mentor" id="subtitle"]]
+[[!template text="""[Speaker 1]: Absolutely. Thank you.""" start="00:23:19.040" video="qanda-mentor" id="subtitle"]]
+[[!template text="""[Speaker 0]: Bye-bye. Bye.""" start="00:23:21.220" video="qanda-mentor" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Start of section to review""" start="00:23:26.400" video="qanda-mentor" id="subtitle"]]</div>[[!template text="""[Speaker 2]: See you. Hello. One of the things with Emacs is""" start="00:23:26.400" video="qanda-mentor" id="subtitle"]]
+[[!template text="""it's not... It's like when you change the""" start="00:23:28.740" video="qanda-mentor" id="subtitle"]]
+[[!template text="""file management, you just change very,""" start="00:23:30.860" video="qanda-mentor" id="subtitle"]]
+[[!template text="""very small amounts of what exactly you need,""" start="00:23:33.480" video="qanda-mentor" id="subtitle"]]
+[[!template text="""you want to change. Like you go from text""" start="00:23:38.040" video="qanda-mentor" id="subtitle"]]
+[[!template text="""editing to your file manager,""" start="00:23:43.440" video="qanda-mentor" id="subtitle"]]
+[[!template text="""you're not changing your theme,""" start="00:23:44.720" video="qanda-mentor" id="subtitle"]]
+[[!template text="""you're not changing your font.""" start="00:23:46.680" video="qanda-mentor" id="subtitle"]]
+[[!template text="""[Speaker 3]: And you""" start="00:23:49.940" video="qanda-mentor" id="subtitle"]]
+[[!template text="""[Speaker 2]: use your bookmarks, you use your bookmarks in""" start="00:23:52.360" video="qanda-mentor" id="subtitle"]]
+[[!template text="""your emails, you use your bookmarks in your""" start="00:23:54.340" video="qanda-mentor" id="subtitle"]]
+[[!template text="""org-mod documents, you use it in E-dub,""" start="00:23:59.380" video="qanda-mentor" id="subtitle"]]
+[[!template text="""W-W buffers if you use that,""" start="00:24:02.460" video="qanda-mentor" id="subtitle"]]
+[[!template text="""but it's just the, Yeah,""" start="00:24:06.760" video="qanda-mentor" id="subtitle"]]
+[[!template text="""it's just the least amount of Incremental""" start="00:24:10.080" video="qanda-mentor" id="subtitle"]]
+[[!template text="""changes""" start="00:24:10.940" video="qanda-mentor" id="subtitle"]]
+[[!template text="""[Speaker 1]: yeah, you're when you were talking about like""" start="00:24:14.620" video="qanda-mentor" id="subtitle"]]
+[[!template text="""the Reducing friction like turn off editing""" start="00:24:18.480" video="qanda-mentor" id="subtitle"]]
+[[!template text="""or not editing, but auto correct while you're""" start="00:24:22.280" video="qanda-mentor" id="subtitle"]]
+[[!template text="""typing, it's absolutely spot on.""" start="00:24:25.440" video="qanda-mentor" id="subtitle"]]
+[[!template text="""You're wanting to get whatever is flowing""" start="00:24:29.800" video="qanda-mentor" id="subtitle"]]
+[[!template text="""needs to keep flowing,""" start="00:24:31.280" video="qanda-mentor" id="subtitle"]]
+[[!template text="""like as a programmer or as a creative,""" start="00:24:33.700" video="qanda-mentor" id="subtitle"]]
+[[!template text="""anytime I can hit flow is my goal.""" start="00:24:38.100" video="qanda-mentor" id="subtitle"]]
+[[!template text="""And so paying attention to what removes flow""" start="00:24:42.240" video="qanda-mentor" id="subtitle"]]
+[[!template text="""or hinders it or saps energy and that unified""" start="00:24:48.480" video="qanda-mentor" id="subtitle"]]
+[[!template text="""environment of Emacs is really helpful to""" start="00:24:52.800" video="qanda-mentor" id="subtitle"]]
+[[!template text="""maintain that. So yeah.""" start="00:24:57.260" video="qanda-mentor" id="subtitle"]]
+[[!template text="""[Speaker 2]: I think it's about speed and then once after""" start="00:25:02.300" video="qanda-mentor" id="subtitle"]]
+[[!template text="""you get some of that, then you're like,""" start="00:25:04.040" video="qanda-mentor" id="subtitle"]]
+[[!template text="""well, yeah, it's important,""" start="00:25:06.420" video="qanda-mentor" id="subtitle"]]
+[[!template text="""but this is like the last thing I care about.""" start="00:25:09.320" video="qanda-mentor" id="subtitle"]]
+[[!template text="""[Speaker 1]: Right. Speed is all like,""" start="00:25:14.280" video="qanda-mentor" id="subtitle"]]
+[[!template text="""Yeah, there's a quote that I love called,""" start="00:25:19.700" video="qanda-mentor" id="subtitle"]]
+[[!template text="""I forget the author. It's,""" start="00:25:22.940" video="qanda-mentor" id="subtitle"]]
+[[!template text="""there is a connection between slowness and""" start="00:25:30.060" video="qanda-mentor" id="subtitle"]]
+[[!template text="""remembering and fastness and forgetting.""" start="00:25:33.960" video="qanda-mentor" id="subtitle"]]
+[[!template text="""And the slowness is an interesting,""" start="00:25:39.680" video="qanda-mentor" id="subtitle"]]
+[[!template text="""like it's, I am moving fast in Emacs because""" start="00:25:43.520" video="qanda-mentor" id="subtitle"]]
+[[!template text="""I've forgotten how I'm doing it.""" start="00:25:46.020" video="qanda-mentor" id="subtitle"]]
+[[!template text="""I just do it now, right?""" start="00:25:47.920" video="qanda-mentor" id="subtitle"]]
+[[!template text="""And then the slowness of like being in my""" start="00:25:52.120" video="qanda-mentor" id="subtitle"]]
+[[!template text="""thought and staying on that stream is where I""" start="00:25:57.540" video="qanda-mentor" id="subtitle"]]
+[[!template text="""want to be and ride whatever that pathway is.""" start="00:26:01.700" video="qanda-mentor" id="subtitle"]]
+[[!template text="""And a text editor is still hard to do that""" start="00:26:07.540" video="qanda-mentor" id="subtitle"]]
+[[!template text="""because if I were using a pen and paper it's""" start="00:26:10.260" video="qanda-mentor" id="subtitle"]]
+[[!template text="""more cumbersome to auto-edit.""" start="00:26:11.600" video="qanda-mentor" id="subtitle"]]
+[[!template text="""But I can't get it out without losing my""" start="00:26:18.620" video="qanda-mentor" id="subtitle"]]
+[[!template text="""thinking. And so I ended up having to type""" start="00:26:21.180" video="qanda-mentor" id="subtitle"]]
+[[!template text="""it.""" start="00:26:21.440" video="qanda-mentor" id="subtitle"]]
+[[!template text="""[Speaker 3]: Something I've been experimenting with is""" start="00:26:25.440" video="qanda-mentor" id="subtitle"]]
+[[!template text="""using, well, recording.""" start="00:26:26.600" video="qanda-mentor" id="subtitle"]]
+[[!template text="""Some other people are using dictation for""" start="00:26:29.440" video="qanda-mentor" id="subtitle"]]
+[[!template text="""this to just get the blur out of the ideas""" start="00:26:31.760" video="qanda-mentor" id="subtitle"]]
+[[!template text="""and you can go back and glean some of that""" start="00:26:35.280" video="qanda-mentor" id="subtitle"]]
+[[!template text="""stuff out of it.""" start="00:26:36.200" video="qanda-mentor" id="subtitle"]]
+[[!template text="""[Speaker 1]: Yeah, what I will do when I'm capturing like""" start="00:26:41.320" video="qanda-mentor" id="subtitle"]]
+[[!template text="""quotes or epigraphs is I will almost always""" start="00:26:44.760" video="qanda-mentor" id="subtitle"]]
+[[!template text="""turn on dictation because I got a book in 1""" start="00:26:47.760" video="qanda-mentor" id="subtitle"]]
+[[!template text="""hand. So I'm like, on goes the typing.""" start="00:26:52.020" video="qanda-mentor" id="subtitle"]]
+[[!template text="""And yeah, that is, there's a,""" start="00:26:56.640" video="qanda-mentor" id="subtitle"]]
+[[!template text="""I'm really thankful that that exists as well.""" start="00:26:59.900" video="qanda-mentor" id="subtitle"]]
+[[!template text="""Like my mother is blind.""" start="00:27:01.260" video="qanda-mentor" id="subtitle"]]
+[[!template text="""And so having that helps her and me""" start="00:27:05.020" video="qanda-mentor" id="subtitle"]]
+[[!template text="""communicate Through text because we're both""" start="00:27:08.560" video="qanda-mentor" id="subtitle"]]
+[[!template text="""able to appreciate it And use it in a way""" start="00:27:12.900" video="qanda-mentor" id="subtitle"]]
+[[!template text="""that is accessible for both of us""" start="00:27:15.480" video="qanda-mentor" id="subtitle"]]
+[[!template text="""[Speaker 3]: Go ahead""" start="00:27:19.120" video="qanda-mentor" id="subtitle"]]
+[[!template text="""[Speaker 2]: There's the L feet to package which will""" start="00:27:23.100" video="qanda-mentor" id="subtitle"]]
+[[!template text="""which will allow you to both of us.""" start="00:27:25.160" video="qanda-mentor" id="subtitle"]]
+[[!template text="""There's the ElfieTube package which will""" start="00:27:25.400" video="qanda-mentor" id="subtitle"]]
+[[!template text="""allow you to subscribe to a YouTube channel""" start="00:27:28.320" video="qanda-mentor" id="subtitle"]]
+[[!template text="""and then download the subtitles and give you""" start="00:27:32.500" video="qanda-mentor" id="subtitle"]]
+[[!template text="""remote control access to the MPV player to""" start="00:27:36.760" video="qanda-mentor" id="subtitle"]]
+[[!template text="""watch the YouTube thing.""" start="00:27:37.700" video="qanda-mentor" id="subtitle"]]
+[[!template text="""And considering you have a really big""" start="00:27:41.420" video="qanda-mentor" id="subtitle"]]
+[[!template text="""subtitle thing that you can click at the""" start="00:27:44.580" video="qanda-mentor" id="subtitle"]]
+[[!template text="""various different places,""" start="00:27:45.480" video="qanda-mentor" id="subtitle"]]
+[[!template text="""it's really surprising about how different""" start="00:27:47.860" video="qanda-mentor" id="subtitle"]]
+[[!template text="""that makes YouTube feel.""" start="00:27:49.300" video="qanda-mentor" id="subtitle"]]
+[[!template text="""[Speaker 1]: Yeah I've...""" start="00:27:50.680" video="qanda-mentor" id="subtitle"]]
+[[!template text="""[Speaker 2]: And then on top of that about how much like""" start="00:27:54.140" video="qanda-mentor" id="subtitle"]]
+[[!template text="""if you've used it why would you never have""" start="00:27:57.660" video="qanda-mentor" id="subtitle"]]
+[[!template text="""thought about that before because it's...""" start="00:27:59.160" video="qanda-mentor" id="subtitle"]]
+[[!template text="""Right. It's even better.""" start="00:28:00.720" video="qanda-mentor" id="subtitle"]]
+[[!template text="""[Speaker 1]: Right absolutely. Sasha?""" start="00:28:04.840" video="qanda-mentor" id="subtitle"]]
+[[!template text="""[Speaker 3]: Oh I would say I do use the caption slot also""" start="00:28:10.080" video="qanda-mentor" id="subtitle"]]
+[[!template text="""when I'm skimming through stuff for Emacs""" start="00:28:11.580" video="qanda-mentor" id="subtitle"]]
+[[!template text="""News. But for books specifically,""" start="00:28:13.740" video="qanda-mentor" id="subtitle"]]
+[[!template text="""I often use Google Lens to just capture the""" start="00:28:18.420" video="qanda-mentor" id="subtitle"]]
+[[!template text="""text and copy it so that I don't have to deal""" start="00:28:21.900" video="qanda-mentor" id="subtitle"]]
+[[!template text="""with recognition errors or whatever.""" start="00:28:24.140" video="qanda-mentor" id="subtitle"]]
+[[!template text="""really useful.""" start="00:28:25.760" video="qanda-mentor" id="subtitle"]]
+[[!template text="""[Speaker 1]: It's just So 1 of my hobbies is role-playing""" start="00:28:31.780" video="qanda-mentor" id="subtitle"]]
+[[!template text="""games and the tabular data that is in the""" start="00:28:35.980" video="qanda-mentor" id="subtitle"]]
+[[!template text="""role-playing books is never in correct,""" start="00:28:38.940" video="qanda-mentor" id="subtitle"]]
+[[!template text="""like copy it out. And so I was like this is""" start="00:28:43.160" video="qanda-mentor" id="subtitle"]]
+[[!template text="""really annoying And I ended up taking""" start="00:28:46.260" video="qanda-mentor" id="subtitle"]]
+[[!template text="""screenshots on my machine,""" start="00:28:47.720" video="qanda-mentor" id="subtitle"]]
+[[!template text="""running Tesseract to pipe it in,""" start="00:28:50.280" video="qanda-mentor" id="subtitle"]]
+[[!template text="""and then using Emacs to like edit it because""" start="00:28:53.480" video="qanda-mentor" id="subtitle"]]
+[[!template text="""Tesseract adheres to the column format that""" start="00:28:57.940" video="qanda-mentor" id="subtitle"]]
+[[!template text="""I'm looking for. And I'm really thankful that""" start="00:29:00.520" video="qanda-mentor" id="subtitle"]]
+[[!template text="""we're at a place where the OCR is in good""" start="00:29:05.680" video="qanda-mentor" id="subtitle"]]
+[[!template text="""shape. That's part of my day job is working""" start="00:29:09.720" video="qanda-mentor" id="subtitle"]]
+[[!template text="""on some old documents that OCR is good,""" start="00:29:14.180" video="qanda-mentor" id="subtitle"]]
+[[!template text="""but not great because of like their 19th""" start="00:29:18.100" video="qanda-mentor" id="subtitle"]]
+[[!template text="""century documents, but having that ability to""" start="00:29:23.720" video="qanda-mentor" id="subtitle"]]
+[[!template text="""me is really powerful because we're gonna be""" start="00:29:28.080" video="qanda-mentor" id="subtitle"]]
+[[!template text="""able to share that text And also then once""" start="00:29:32.580" video="qanda-mentor" id="subtitle"]]
+[[!template text="""it's understood in what it's ASCII or UTF-8""" start="00:29:35.860" video="qanda-mentor" id="subtitle"]]
+[[!template text="""encoding is, it can be translated as well.""" start="00:29:39.000" video="qanda-mentor" id="subtitle"]]
+[[!template text="""So we can make it even more generally""" start="00:29:41.960" video="qanda-mentor" id="subtitle"]]
+[[!template text="""available, which I think is a nice thing to""" start="00:29:46.480" video="qanda-mentor" id="subtitle"]]
+[[!template text="""have.""" start="00:29:46.720" video="qanda-mentor" id="subtitle"]]
+[[!template text="""[Speaker 3]: I wanted to go back to the topic of mentoring""" start="00:29:51.820" video="qanda-mentor" id="subtitle"]]
+[[!template text="""since that's something that I'm very much""" start="00:29:54.000" video="qanda-mentor" id="subtitle"]]
+[[!template text="""interested in figuring out how to facilitate""" start="00:29:55.940" video="qanda-mentor" id="subtitle"]]
+[[!template text="""in the Emacs community.""" start="00:29:56.980" video="qanda-mentor" id="subtitle"]]
+[[!template text="""Other people have been working on kind of""" start="00:30:00.520" video="qanda-mentor" id="subtitle"]]
+[[!template text="""remote mentoring initiatives with Emacs""" start="00:30:03.440" video="qanda-mentor" id="subtitle"]]
+[[!template text="""Buddy. And there are meetups as well that""" start="00:30:07.640" video="qanda-mentor" id="subtitle"]]
+[[!template text="""kind of get that sense of like,""" start="00:30:09.140" video="qanda-mentor" id="subtitle"]]
+[[!template text="""you know, what people are doing things and""" start="00:30:10.680" video="qanda-mentor" id="subtitle"]]
+[[!template text="""then somebody can look over their shoulder""" start="00:30:12.040" video="qanda-mentor" id="subtitle"]]
+[[!template text="""and say, hey, have you ever thought about""" start="00:30:14.060" video="qanda-mentor" id="subtitle"]]
+[[!template text="""[Speaker 1]: Right.""" start="00:30:15.060" video="qanda-mentor" id="subtitle"]]
+[[!template text="""[Speaker 3]: this? Is there any things that you can can""" start="00:30:17.780" video="qanda-mentor" id="subtitle"]]
+[[!template text="""suggest specifically in the context of this""" start="00:30:20.320" video="qanda-mentor" id="subtitle"]]
+[[!template text="""kind of mentoring over a distance?""" start="00:30:23.180" video="qanda-mentor" id="subtitle"]]
+[[!template text="""Any chance you've thought about it?""" start="00:30:25.680" video="qanda-mentor" id="subtitle"]]
+[[!template text="""[Speaker 1]: I'm on the Emacs buddy repo and I've had a""" start="00:30:30.800" video="qanda-mentor" id="subtitle"]]
+[[!template text="""handful of people reach out to me.""" start="00:30:32.600" video="qanda-mentor" id="subtitle"]]
+[[!template text="""Most often we start with email and every so""" start="00:30:37.700" video="qanda-mentor" id="subtitle"]]
+[[!template text="""often it'll be like, hey,""" start="00:30:38.980" video="qanda-mentor" id="subtitle"]]
+[[!template text="""let's hop on some kind of video or audio,""" start="00:30:44.340" video="qanda-mentor" id="subtitle"]]
+[[!template text="""even just done phone calls.""" start="00:30:47.320" video="qanda-mentor" id="subtitle"]]
+[[!template text="""Yeah, I haven't done any of the like shared""" start="00:30:53.140" video="qanda-mentor" id="subtitle"]]
+[[!template text="""buffer stuff. I know like at work we have""" start="00:30:57.220" video="qanda-mentor" id="subtitle"]]
+[[!template text="""replit where we can use that.""" start="00:30:59.700" video="qanda-mentor" id="subtitle"]]
+[[!template text="""Seeing the presentation on CDRT,""" start="00:31:02.500" video="qanda-mentor" id="subtitle"]]
+[[!template text="""I was like, oh, that's really great.""" start="00:31:04.440" video="qanda-mentor" id="subtitle"]]
+[[!template text="""But what I found is being able to see""" start="00:31:10.760" video="qanda-mentor" id="subtitle"]]
+[[!template text="""someone, I don't get to see them typing,""" start="00:31:15.280" video="qanda-mentor" id="subtitle"]]
+[[!template text="""but I get to see the results of what they're""" start="00:31:17.640" video="qanda-mentor" id="subtitle"]]
+[[!template text="""doing on the computer.""" start="00:31:18.840" video="qanda-mentor" id="subtitle"]]
+[[!template text="""You know paying attention to that is the big""" start="00:31:22.840" video="qanda-mentor" id="subtitle"]]
+[[!template text="""1 to help them think of a different way.""" start="00:31:26.040" video="qanda-mentor" id="subtitle"]]
+[[!template text="""Depending on where they're at when they're""" start="00:31:28.940" video="qanda-mentor" id="subtitle"]]
+[[!template text="""writing if they are like at a pause point,""" start="00:31:32.960" video="qanda-mentor" id="subtitle"]]
+[[!template text="""if I'm at my best, I'll be like,""" start="00:31:35.160" video="qanda-mentor" id="subtitle"]]
+[[!template text="""so what are you thinking?""" start="00:31:37.920" video="qanda-mentor" id="subtitle"]]
+[[!template text="""Where are you stuck? Cause maybe they're""" start="00:31:40.640" video="qanda-mentor" id="subtitle"]]
+[[!template text="""trying to navigate somewhere and that starts""" start="00:31:43.040" video="qanda-mentor" id="subtitle"]]
+[[!template text="""to create a point for a conversation of like,""" start="00:31:46.500" video="qanda-mentor" id="subtitle"]]
+[[!template text="""how do I go from here to there?""" start="00:31:48.280" video="qanda-mentor" id="subtitle"]]
+[[!template text="""And so it's looking for those moments is""" start="00:31:57.340" video="qanda-mentor" id="subtitle"]]
+[[!template text="""where I try to operate.""" start="00:31:58.840" video="qanda-mentor" id="subtitle"]]
+[[!template text="""[Speaker 3]: And sometimes, you know,""" start="00:32:03.740" video="qanda-mentor" id="subtitle"]]
+[[!template text="""so there's kind of like,""" start="00:32:05.380" video="qanda-mentor" id="subtitle"]]
+[[!template text="""how do you go from here to there?""" start="00:32:06.760" video="qanda-mentor" id="subtitle"]]
+[[!template text="""And sometimes even the,""" start="00:32:08.000" video="qanda-mentor" id="subtitle"]]
+[[!template text="""what there should I be going for is a""" start="00:32:12.380" video="qanda-mentor" id="subtitle"]]
+[[!template text="""challenge, right? Because especially with""" start="00:32:15.060" video="qanda-mentor" id="subtitle"]]
+[[!template text="""Emacs newbies, they might not necessarily""" start="00:32:16.480" video="qanda-mentor" id="subtitle"]]
+[[!template text="""know what's possible or what's nearby in""" start="00:32:19.340" video="qanda-mentor" id="subtitle"]]
+[[!template text="""terms of what their current knowledge is.""" start="00:32:21.200" video="qanda-mentor" id="subtitle"]]
+[[!template text="""And that's an interesting thing to map out.""" start="00:32:23.760" video="qanda-mentor" id="subtitle"]]
+[[!template text="""Is that something that you've thought about""" start="00:32:25.960" video="qanda-mentor" id="subtitle"]]
+[[!template text="""and as you're conversing with all these""" start="00:32:29.020" video="qanda-mentor" id="subtitle"]]
+[[!template text="""people?""" start="00:32:29.280" video="qanda-mentor" id="subtitle"]]
+[[!template text="""[Speaker 1]: The main thing, the main function that I do""" start="00:32:37.680" video="qanda-mentor" id="subtitle"]]
+[[!template text="""talk, I talked about this,""" start="00:32:38.720" video="qanda-mentor" id="subtitle"]]
+[[!template text="""I think in the, I did in the talk where it's,""" start="00:32:41.240" video="qanda-mentor" id="subtitle"]]
+[[!template text="""I need to jump between the test and the""" start="00:32:46.320" video="qanda-mentor" id="subtitle"]]
+[[!template text="""implementation. And since 2005,""" start="00:32:50.900" video="qanda-mentor" id="subtitle"]]
+[[!template text="""I've had that. And I watch folks not have""" start="00:32:56.200" video="qanda-mentor" id="subtitle"]]
+[[!template text="""that. I'm just like, Oh,""" start="00:32:57.880" video="qanda-mentor" id="subtitle"]]
+[[!template text="""my goodness, like there's a convention in the""" start="00:33:00.380" video="qanda-mentor" id="subtitle"]]
+[[!template text="""language we work in. Let's get that""" start="00:33:02.500" video="qanda-mentor" id="subtitle"]]
+[[!template text="""installed. Let's get it going.""" start="00:33:04.080" video="qanda-mentor" id="subtitle"]]
+[[!template text="""Like that's 1 thing, that's 1 access I know""" start="00:33:07.600" video="qanda-mentor" id="subtitle"]]
+[[!template text="""they're gonna go to. Another 1 is the jump to""" start="00:33:11.740" video="qanda-mentor" id="subtitle"]]
+[[!template text="""definition. And I've never gotten like C""" start="00:33:14.280" video="qanda-mentor" id="subtitle"]]
+[[!template text="""tags. I haven't really spent time on that,""" start="00:33:16.680" video="qanda-mentor" id="subtitle"]]
+[[!template text="""but with the advent of LSP,""" start="00:33:18.600" video="qanda-mentor" id="subtitle"]]
+[[!template text="""it works a lot better.""" start="00:33:21.040" video="qanda-mentor" id="subtitle"]]
+[[!template text="""And so I try to get people to use that.""" start="00:33:24.520" video="qanda-mentor" id="subtitle"]]
+[[!template text="""And what I've noticed weirdly is like VS""" start="00:33:30.200" video="qanda-mentor" id="subtitle"]]
+[[!template text="""code, it doesn't work as well as I would have""" start="00:33:34.200" video="qanda-mentor" id="subtitle"]]
+[[!template text="""thought. And there's lots of like errors and""" start="00:33:36.340" video="qanda-mentor" id="subtitle"]]
+[[!template text="""warnings popping up in the bottom corner.""" start="00:33:38.100" video="qanda-mentor" id="subtitle"]]
+[[!template text="""So I'm like, well, you gotta pay attention to""" start="00:33:41.120" video="qanda-mentor" id="subtitle"]]
+[[!template text="""that. But I try not to get into anybody's""" start="00:33:45.640" video="qanda-mentor" id="subtitle"]]
+[[!template text="""business about like, I'm like,""" start="00:33:47.720" video="qanda-mentor" id="subtitle"]]
+[[!template text="""maybe we could fix that.""" start="00:33:48.900" video="qanda-mentor" id="subtitle"]]
+[[!template text="""Maybe we can clean it up,""" start="00:33:50.020" video="qanda-mentor" id="subtitle"]]
+[[!template text="""but it's your, you know,""" start="00:33:51.740" video="qanda-mentor" id="subtitle"]]
+[[!template text="""it's your car you're driving.""" start="00:33:54.440" video="qanda-mentor" id="subtitle"]]
+[[!template text="""I'm just long for a ride.""" start="00:33:56.320" video="qanda-mentor" id="subtitle"]]
+[[!template text="""It's safe, we're fine.""" start="00:33:57.620" video="qanda-mentor" id="subtitle"]]
+[[!template text="""So yeah, that jumped to definition.""" start="00:34:01.360" video="qanda-mentor" id="subtitle"]]
+[[!template text="""And then the, I mean, search in project,""" start="00:34:07.940" video="qanda-mentor" id="subtitle"]]
+[[!template text="""like everybody understanding that.""" start="00:34:10.080" video="qanda-mentor" id="subtitle"]]
+[[!template text="""But I feel that the, like I mentioned in the""" start="00:34:15.219" video="qanda-mentor" id="subtitle"]]
+[[!template text="""talk, the advent of orderless is just huge.""" start="00:34:17.980" video="qanda-mentor" id="subtitle"]]
+[[!template text="""I did not realize how much I loved it because""" start="00:34:21.400" video="qanda-mentor" id="subtitle"]]
+[[!template text="""I don't have to think about things and can""" start="00:34:24.159" video="qanda-mentor" id="subtitle"]]
+[[!template text="""have slightly more forgiving default""" start="00:34:28.080" video="qanda-mentor" id="subtitle"]]
+[[!template text="""searches. Yeah, it's hard.""" start="00:34:34.340" video="qanda-mentor" id="subtitle"]]
+[[!template text="""The principles of organizing 10 things versus""" start="00:34:39.159" video="qanda-mentor" id="subtitle"]]
+[[!template text="""100 versus 1,000 versus 10,000""" start="00:34:41.040" video="qanda-mentor" id="subtitle"]]
+[[!template text="""are just, they're not the same.""" start="00:34:44.440" video="qanda-mentor" id="subtitle"]]
+[[!template text="""[Speaker 2]: A common hang up for, that would easily make""" start="00:34:52.360" video="qanda-mentor" id="subtitle"]]
+[[!template text="""you skip off of Emacs,""" start="00:34:54.320" video="qanda-mentor" id="subtitle"]]
+[[!template text="""Org Mode, Hyperbole is if you go into any of""" start="00:35:00.920" video="qanda-mentor" id="subtitle"]]
+[[!template text="""those with the mindset of I'm going to master""" start="00:35:03.680" video="qanda-mentor" id="subtitle"]]
+[[!template text="""it all before I use it.""" start="00:35:05.080" video="qanda-mentor" id="subtitle"]]
+[[!template text="""That's not going to work.""" start="00:35:06.640" video="qanda-mentor" id="subtitle"]]
+[[!template text="""[Speaker 1]: Absolutely. I was terrified of org mode when""" start="00:35:13.660" video="qanda-mentor" id="subtitle"]]
+[[!template text="""I started because I'm like,""" start="00:35:14.760" video="qanda-mentor" id="subtitle"]]
+[[!template text="""I don't need to organize my life.""" start="00:35:16.720" video="qanda-mentor" id="subtitle"]]
+[[!template text="""I need to like type. And then that,""" start="00:35:20.460" video="qanda-mentor" id="subtitle"]]
+[[!template text="""yes, incremental. What did I find helpful?""" start="00:35:24.520" video="qanda-mentor" id="subtitle"]]
+[[!template text="""[Speaker 2]: It's for the, for the Linux CLI toolbox,""" start="00:35:28.580" video="qanda-mentor" id="subtitle"]]
+[[!template text="""but you have to look at them as more of just,""" start="00:35:30.860" video="qanda-mentor" id="subtitle"]]
+[[!template text="""I have a whole bunch of tools available to me""" start="00:35:34.640" video="qanda-mentor" id="subtitle"]]
+[[!template text="""and I'll just pick them up as I have a""" start="00:35:39.140" video="qanda-mentor" id="subtitle"]]
+[[!template text="""problem and as I, and as the tool can be""" start="00:35:42.480" video="qanda-mentor" id="subtitle"]]
+[[!template text="""useful for this problem and incrementally.""" start="00:35:44.440" video="qanda-mentor" id="subtitle"]]
+[[!template text="""[Speaker 1]: Yeah. It's""" start="00:35:47.700" video="qanda-mentor" id="subtitle"]]
+[[!template text="""[Speaker 3]: actually, so, in fact,""" start="00:35:54.760" video="qanda-mentor" id="subtitle"]]
+[[!template text="""when when I'm mentoring people,""" start="00:35:56.180" video="qanda-mentor" id="subtitle"]]
+[[!template text="""I have to take a step back and say,""" start="00:35:58.440" video="qanda-mentor" id="subtitle"]]
+[[!template text="""OK, what are we with the note taking thing""" start="00:36:00.520" video="qanda-mentor" id="subtitle"]]
+[[!template text="""that you mentioned in your talk.""" start="00:36:01.640" video="qanda-mentor" id="subtitle"]]
+[[!template text="""How do you like to take notes?""" start="00:36:03.120" video="qanda-mentor" id="subtitle"]]
+[[!template text="""How do you like to keep track of the things""" start="00:36:04.840" video="qanda-mentor" id="subtitle"]]
+[[!template text="""that you want to work on when you have an""" start="00:36:06.480" video="qanda-mentor" id="subtitle"]]
+[[!template text="""idea? Where does it go?""" start="00:36:07.540" video="qanda-mentor" id="subtitle"]]
+[[!template text="""Because if you improve that practice,""" start="00:36:10.320" video="qanda-mentor" id="subtitle"]]
+[[!template text="""and especially if you can sneak some literate""" start="00:36:12.840" video="qanda-mentor" id="subtitle"]]
+[[!template text="""programming in without them really noticing,""" start="00:36:14.540" video="qanda-mentor" id="subtitle"]]
+[[!template text="""then it becomes the thing that they can use""" start="00:36:17.860" video="qanda-mentor" id="subtitle"]]
+[[!template text="""to learn more efficiently.""" start="00:36:18.900" video="qanda-mentor" id="subtitle"]]
+[[!template text="""[Speaker 1]: Yeah. I was presenting at,""" start="00:36:23.200" video="qanda-mentor" id="subtitle"]]
+[[!template text="""I wasn't presenting at this seminar,""" start="00:36:26.600" video="qanda-mentor" id="subtitle"]]
+[[!template text="""but I attended it and it was a crash course""" start="00:36:30.560" video="qanda-mentor" id="subtitle"]]
+[[!template text="""in command line tools.""" start="00:36:31.800" video="qanda-mentor" id="subtitle"]]
+[[!template text="""And I didn't, I mean, I went there to listen""" start="00:36:35.520" video="qanda-mentor" id="subtitle"]]
+[[!template text="""and there was a point where the people were""" start="00:36:38.660" video="qanda-mentor" id="subtitle"]]
+[[!template text="""like, I use this command line tool.""" start="00:36:40.560" video="qanda-mentor" id="subtitle"]]
+[[!template text="""I'm not a programmer, I'm a librarian,""" start="00:36:42.360" video="qanda-mentor" id="subtitle"]]
+[[!template text="""I'm an archivist. I use it,""" start="00:36:45.040" video="qanda-mentor" id="subtitle"]]
+[[!template text="""I'm like, great, I'm gonna remember this.""" start="00:36:47.080" video="qanda-mentor" id="subtitle"]]
+[[!template text="""And then I forget about it and I might use it""" start="00:36:49.640" video="qanda-mentor" id="subtitle"]]
+[[!template text="""6 months from now. And so I tried to""" start="00:36:54.340" video="qanda-mentor" id="subtitle"]]
+[[!template text="""encourage everybody, like come up with,""" start="00:36:56.880" video="qanda-mentor" id="subtitle"]]
+[[!template text="""like you have a degree in knowledge and""" start="00:37:00.580" video="qanda-mentor" id="subtitle"]]
+[[!template text="""information, management and organization,""" start="00:37:02.320" video="qanda-mentor" id="subtitle"]]
+[[!template text="""introspect, right? Spend some time on it.""" start="00:37:06.160" video="qanda-mentor" id="subtitle"]]
+[[!template text="""Think about what is a way that I can do this""" start="00:37:09.740" video="qanda-mentor" id="subtitle"]]
+[[!template text="""and ask questions to get to the point where""" start="00:37:13.180" video="qanda-mentor" id="subtitle"]]
+[[!template text="""you can create a discoverable inventory of""" start="00:37:18.960" video="qanda-mentor" id="subtitle"]]
+[[!template text="""the tools you've used and what that means.""" start="00:37:22.500" video="qanda-mentor" id="subtitle"]]
+[[!template text="""And my answer was, I use literate programming""" start="00:37:26.160" video="qanda-mentor" id="subtitle"]]
+[[!template text="""or I shove it in my bin directory in GitHub""" start="00:37:30.800" video="qanda-mentor" id="subtitle"]]
+[[!template text="""and like, I don't know if I'll remember it,""" start="00:37:34.080" video="qanda-mentor" id="subtitle"]]
+[[!template text="""but I can go there every now and then and be""" start="00:37:35.860" video="qanda-mentor" id="subtitle"]]
+[[!template text="""like, oh yeah, that command.""" start="00:37:37.120" video="qanda-mentor" id="subtitle"]]
+[[!template text="""So note taking is the most critical component""" start="00:37:44.220" video="qanda-mentor" id="subtitle"]]
+[[!template text="""of any number of work.""" start="00:37:46.620" video="qanda-mentor" id="subtitle"]]
+[[!template text="""[Speaker 3]: Sometimes I wonder if we can maybe""" start="00:37:51.960" video="qanda-mentor" id="subtitle"]]
+[[!template text="""externalize some of all this mentoring""" start="00:37:54.000" video="qanda-mentor" id="subtitle"]]
+[[!template text="""insight and kind of like this choose your own""" start="00:37:57.520" video="qanda-mentor" id="subtitle"]]
+[[!template text="""adventure thing, where the person says,""" start="00:37:59.700" video="qanda-mentor" id="subtitle"]]
+[[!template text="""OK, this is what I got at the moment.""" start="00:38:01.200" video="qanda-mentor" id="subtitle"]]
+[[!template text="""And then through a series of diagnostic""" start="00:38:03.460" video="qanda-mentor" id="subtitle"]]
+[[!template text="""questions, we can figure out what hurts,""" start="00:38:05.740" video="qanda-mentor" id="subtitle"]]
+[[!template text="""right? Where is the thing that they would""" start="00:38:08.040" video="qanda-mentor" id="subtitle"]]
+[[!template text="""like to learn more about?""" start="00:38:08.980" video="qanda-mentor" id="subtitle"]]
+[[!template text="""And then, okay, if that hurts,""" start="00:38:09.960" video="qanda-mentor" id="subtitle"]]
+[[!template text="""try this and keep that manageable.""" start="00:38:12.620" video="qanda-mentor" id="subtitle"]]
+[[!template text="""And if there's only a way to also be able to""" start="00:38:15.720" video="qanda-mentor" id="subtitle"]]
+[[!template text="""capture each person's state,""" start="00:38:17.280" video="qanda-mentor" id="subtitle"]]
+[[!template text="""the things that they know about and have""" start="00:38:19.360" video="qanda-mentor" id="subtitle"]]
+[[!template text="""absorbed into their habits.""" start="00:38:20.980" video="qanda-mentor" id="subtitle"]]
+[[!template text="""So you can say, right,""" start="00:38:22.800" video="qanda-mentor" id="subtitle"]]
+[[!template text="""you know, my recommendation for someone who's""" start="00:38:25.440" video="qanda-mentor" id="subtitle"]]
+[[!template text="""brand new to org is not the same as somebody""" start="00:38:28.580" video="qanda-mentor" id="subtitle"]]
+[[!template text="""who's like, okay, they've got their agendas""" start="00:38:30.060" video="qanda-mentor" id="subtitle"]]
+[[!template text="""and everything set up already.""" start="00:38:31.400" video="qanda-mentor" id="subtitle"]]
+[[!template text="""Just how do we represent that as like WISPs?""" start="00:38:33.680" video="qanda-mentor" id="subtitle"]]
+[[!template text="""[Speaker 1]: I've given up on trying to map that.""" start="00:38:39.520" video="qanda-mentor" id="subtitle"]]
+[[!template text="""I like the one-on-one conversations and""" start="00:38:43.180" video="qanda-mentor" id="subtitle"]]
+[[!template text="""discovery. And I think that's the part where""" start="00:38:47.480" video="qanda-mentor" id="subtitle"]]
+[[!template text="""you're looking at, you're asking about how do""" start="00:38:51.980" video="qanda-mentor" id="subtitle"]]
+[[!template text="""we make the process and like I heard,""" start="00:38:55.920" video="qanda-mentor" id="subtitle"]]
+[[!template text="""like how do we help equip those who want to""" start="00:38:58.860" video="qanda-mentor" id="subtitle"]]
+[[!template text="""mentor as well, right?""" start="00:39:01.560" video="qanda-mentor" id="subtitle"]]
+[[!template text="""Making that, reducing the barrier in a way.""" start="00:39:05.900" video="qanda-mentor" id="subtitle"]]
+[[!template text="""[Speaker 2]: I don't""" start="00:39:06.040" video="qanda-mentor" id="subtitle"]]
+[[!template text="""[Speaker 3]: know, I think what you said about enjoying""" start="00:39:08.240" video="qanda-mentor" id="subtitle"]]
+[[!template text="""the conversation and the fact that it is""" start="00:39:10.440" video="qanda-mentor" id="subtitle"]]
+[[!template text="""really unique for each person,""" start="00:39:12.080" video="qanda-mentor" id="subtitle"]]
+[[!template text="""each situation that comes up.""" start="00:39:14.760" video="qanda-mentor" id="subtitle"]]
+[[!template text="""I suspect what it just comes down to is more""" start="00:39:18.480" video="qanda-mentor" id="subtitle"]]
+[[!template text="""like capturing the good stuff of each""" start="00:39:21.560" video="qanda-mentor" id="subtitle"]]
+[[!template text="""mentoring session or whatever.""" start="00:39:23.160" video="qanda-mentor" id="subtitle"]]
+[[!template text="""Maybe it's getting the mentees to write very""" start="00:39:25.840" video="qanda-mentor" id="subtitle"]]
+[[!template text="""short blog posts about what they learned this""" start="00:39:27.700" video="qanda-mentor" id="subtitle"]]
+[[!template text="""week or whatever else.""" start="00:39:28.780" video="qanda-mentor" id="subtitle"]]
+[[!template text="""And then, oh, yeah, you know,""" start="00:39:30.900" video="qanda-mentor" id="subtitle"]]
+[[!template text="""we ran into the same problem 3 months ago.""" start="00:39:33.700" video="qanda-mentor" id="subtitle"]]
+[[!template text="""Let me go look it up. And then that becomes a""" start="00:39:36.280" video="qanda-mentor" id="subtitle"]]
+[[!template text="""reusable segment.""" start="00:39:37.080" video="qanda-mentor" id="subtitle"]]
+[[!template text="""[Speaker 1]: Yeah, when I worked at a coding bootcamp,""" start="00:39:41.280" video="qanda-mentor" id="subtitle"]]
+[[!template text="""they tried to encourage the mentors to say,""" start="00:39:46.420" video="qanda-mentor" id="subtitle"]]
+[[!template text="""like write a blog posts for the mentees.""" start="00:39:49.320" video="qanda-mentor" id="subtitle"]]
+[[!template text="""And that was, some of them did,""" start="00:39:57.160" video="qanda-mentor" id="subtitle"]]
+[[!template text="""but it was intimidating because like they""" start="00:40:01.980" video="qanda-mentor" id="subtitle"]]
+[[!template text="""didn't wanna, I don't know.""" start="00:40:03.260" video="qanda-mentor" id="subtitle"]]
+[[!template text="""Are we enculturated in an education system""" start="00:40:06.900" video="qanda-mentor" id="subtitle"]]
+[[!template text="""where we can't get it wrong or we need to""" start="00:40:09.800" video="qanda-mentor" id="subtitle"]]
+[[!template text="""look like we're more of an expert than we""" start="00:40:11.760" video="qanda-mentor" id="subtitle"]]
+[[!template text="""are? I don't know. I have a lot of like,""" start="00:40:15.720" video="qanda-mentor" id="subtitle"]]
+[[!template text="""I'm a middle aged white guy,""" start="00:40:17.720" video="qanda-mentor" id="subtitle"]]
+[[!template text="""I've got a lot of background and privilege in""" start="00:40:20.140" video="qanda-mentor" id="subtitle"]]
+[[!template text="""my career. So like, it's not as scary to put""" start="00:40:25.440" video="qanda-mentor" id="subtitle"]]
+[[!template text="""something forward for myself as it might be""" start="00:40:28.620" video="qanda-mentor" id="subtitle"]]
+[[!template text="""as like a woman in tech or a minority in""" start="00:40:31.080" video="qanda-mentor" id="subtitle"]]
+[[!template text="""tech, because that's a different place.""" start="00:40:35.400" video="qanda-mentor" id="subtitle"]]
+[[!template text="""And I want to really get done with that.""" start="00:40:38.900" video="qanda-mentor" id="subtitle"]]
+[[!template text="""I don't like that at all.""" start="00:40:40.760" video="qanda-mentor" id="subtitle"]]
+[[!template text="""And I would love our, like,""" start="00:40:43.820" video="qanda-mentor" id="subtitle"]]
+[[!template text="""just write. And it doesn't have to be public,""" start="00:40:46.640" video="qanda-mentor" id="subtitle"]]
+[[!template text="""right? You don't have to make it public,""" start="00:40:48.540" video="qanda-mentor" id="subtitle"]]
+[[!template text="""but if you make it discoverable to yourself,""" start="00:40:51.880" video="qanda-mentor" id="subtitle"]]
+[[!template text="""that's the big thing. And 1 of my coworkers,""" start="00:40:58.320" video="qanda-mentor" id="subtitle"]]
+[[!template text="""She doesn't blog, but she definitely has a""" start="00:41:04.840" video="qanda-mentor" id="subtitle"]]
+[[!template text="""large knowledge base of stuff that she""" start="00:41:07.200" video="qanda-mentor" id="subtitle"]]
+[[!template text="""references because she's pulling out all""" start="00:41:08.980" video="qanda-mentor" id="subtitle"]]
+[[!template text="""kinds of stuff and I'm like whatever you're""" start="00:41:10.520" video="qanda-mentor" id="subtitle"]]
+[[!template text="""doing is working.""" start="00:41:11.120" video="qanda-mentor" id="subtitle"]]
+[[!template text="""[Speaker 2]: I'm trying to have something.""" start="00:41:17.920" video="qanda-mentor" id="subtitle"]]
+[[!template text="""There's a good opportunity with the Emacs""" start="00:41:23.680" video="qanda-mentor" id="subtitle"]]
+[[!template text="""conference to accomplish this.""" start="00:41:25.680" video="qanda-mentor" id="subtitle"]]
+[[!template text="""So like if you make like a,""" start="00:41:28.420" video="qanda-mentor" id="subtitle"]]
+[[!template text="""because 1 of the things with it is,""" start="00:41:31.640" video="qanda-mentor" id="subtitle"]]
+[[!template text="""Sasha, you do a really good job of using all.""" start="00:41:36.600" video="qanda-mentor" id="subtitle"]]
+[[!template text="""You're the 1 who has the Emacs buffer with""" start="00:41:38.800" video="qanda-mentor" id="subtitle"]]
+[[!template text="""the time on it, right?""" start="00:41:39.780" video="qanda-mentor" id="subtitle"]]
+[[!template text="""Is that your screen that's being recorded for""" start="00:41:41.820" video="qanda-mentor" id="subtitle"]]
+[[!template text="""that? Because you have a really good example""" start="00:41:45.860" video="qanda-mentor" id="subtitle"]]
+[[!template text="""of a really consolidated emacs workflow that""" start="00:41:50.400" video="qanda-mentor" id="subtitle"]]
+[[!template text="""works really good with the Emacs conference""" start="00:41:53.440" video="qanda-mentor" id="subtitle"]]
+[[!template text="""so if you had like a page that described how""" start="00:41:56.520" video="qanda-mentor" id="subtitle"]]
+[[!template text="""you did all that stuff in the emacs""" start="00:42:00.100" video="qanda-mentor" id="subtitle"]]
+[[!template text="""conference like on that and then we then you""" start="00:42:04.280" video="qanda-mentor" id="subtitle"]]
+[[!template text="""did even more stuff with that.""" start="00:42:06.140" video="qanda-mentor" id="subtitle"]]
+[[!template text="""Like you do the org mode file that you can""" start="00:42:09.560" video="qanda-mentor" id="subtitle"]]
+[[!template text="""just put straight into your agenda for your""" start="00:42:12.140" video="qanda-mentor" id="subtitle"]]
+[[!template text="""time zone. I used that.""" start="00:42:14.720" video="qanda-mentor" id="subtitle"]]
+[[!template text="""That was really nice, just because it allowed""" start="00:42:17.540" video="qanda-mentor" id="subtitle"]]
+[[!template text="""me to reorganize and see how all the talks""" start="00:42:19.600" video="qanda-mentor" id="subtitle"]]
+[[!template text="""would work together, and which ones I wanted""" start="00:42:21.580" video="qanda-mentor" id="subtitle"]]
+[[!template text="""to do. You could add Org Mode to do tags with""" start="00:42:25.840" video="qanda-mentor" id="subtitle"]]
+[[!template text="""that, to say, plan to watch,""" start="00:42:31.020" video="qanda-mentor" id="subtitle"]]
+[[!template text="""I want to re-watch but I have to skip it""" start="00:42:36.080" video="qanda-mentor" id="subtitle"]]
+[[!template text="""because there's another talk I'm watching,""" start="00:42:37.540" video="qanda-mentor" id="subtitle"]]
+[[!template text="""you know, like a couple tags don't care about""" start="00:42:40.760" video="qanda-mentor" id="subtitle"]]
+[[!template text="""so that people can easily tag all the talks""" start="00:42:43.940" video="qanda-mentor" id="subtitle"]]
+[[!template text="""that they care about on top of that.""" start="00:42:47.360" video="qanda-mentor" id="subtitle"]]
+[[!template text="""And then with, I'm going to try to email""" start="00:42:52.660" video="qanda-mentor" id="subtitle"]]
+[[!template text="""these ideas on it too,""" start="00:42:54.660" video="qanda-mentor" id="subtitle"]]
+[[!template text="""but then you can also,""" start="00:42:57.980" video="qanda-mentor" id="subtitle"]]
+[[!template text="""you have the either pad questions,""" start="00:43:00.940" video="qanda-mentor" id="subtitle"]]
+[[!template text="""you could put all those in org-mode documents""" start="00:43:03.960" video="qanda-mentor" id="subtitle"]]
+[[!template text="""with crdt.el, post all those in the Emacs""" start="00:43:08.300" video="qanda-mentor" id="subtitle"]]
+[[!template text="""conference and then people could use that to""" start="00:43:11.400" video="qanda-mentor" id="subtitle"]]
+[[!template text="""edit all the documents at the same time so""" start="00:43:13.820" video="qanda-mentor" id="subtitle"]]
+[[!template text="""then everybody's actually collaboratively""" start="00:43:15.160" video="qanda-mentor" id="subtitle"]]
+[[!template text="""editing. And then people have all the""" start="00:43:20.180" video="qanda-mentor" id="subtitle"]]
+[[!template text="""scaffolding for if you do the Emacs meetings,""" start="00:43:24.520" video="qanda-mentor" id="subtitle"]]
+[[!template text="""buddy meetings, because they know exactly how""" start="00:43:27.760" video="qanda-mentor" id="subtitle"]]
+[[!template text="""to set it all up with that.""" start="00:43:29.820" video="qanda-mentor" id="subtitle"]]
+[[!template text="""And then you combine it with any number of""" start="00:43:34.040" video="qanda-mentor" id="subtitle"]]
+[[!template text="""whatever chat video program so that people""" start="00:43:38.040" video="qanda-mentor" id="subtitle"]]
+[[!template text="""can talk and watch each other.""" start="00:43:39.780" video="qanda-mentor" id="subtitle"]]
+[[!template text="""[Speaker 3]: I have a presentation later on EmacsConf""" start="00:43:45.420" video="qanda-mentor" id="subtitle"]]
+[[!template text="""infrastructure and I will capture the note""" start="00:43:48.920" video="qanda-mentor" id="subtitle"]]
+[[!template text="""And maybe I can include a mini tutorial in""" start="00:43:51.380" video="qanda-mentor" id="subtitle"]]
+[[!template text="""the schedule org so that people can be like,""" start="00:43:53.460" video="qanda-mentor" id="subtitle"]]
+[[!template text="""hey, by the way, you could refile these""" start="00:43:55.440" video="qanda-mentor" id="subtitle"]]
+[[!template text="""things into your own org files or tag them""" start="00:43:58.860" video="qanda-mentor" id="subtitle"]]
+[[!template text="""and here's a list thingy that filters your""" start="00:44:01.520" video="qanda-mentor" id="subtitle"]]
+[[!template text="""agenda by your tag or whatever,""" start="00:44:03.420" video="qanda-mentor" id="subtitle"]]
+[[!template text="""it'll be fine. But it's,""" start="00:44:04.940" video="qanda-mentor" id="subtitle"]]
+[[!template text="""you know, it's, it's kind of like,""" start="00:44:06.100" video="qanda-mentor" id="subtitle"]]
+[[!template text="""it is, you're right. It is an opportunity to""" start="00:44:09.640" video="qanda-mentor" id="subtitle"]]
+[[!template text="""expose people to more things that they could""" start="00:44:12.440" video="qanda-mentor" id="subtitle"]]
+[[!template text="""do in kind of a scaffolded way.""" start="00:44:14.620" video="qanda-mentor" id="subtitle"]]
+[[!template text="""That's interesting stuff,""" start="00:44:16.600" video="qanda-mentor" id="subtitle"]]
+[[!template text="""but I, your point actually driving also going""" start="00:44:18.780" video="qanda-mentor" id="subtitle"]]
+[[!template text="""back to previous parts of conversation about,""" start="00:44:21.180" video="qanda-mentor" id="subtitle"]]
+[[!template text="""it's difficult for people to share.""" start="00:44:24.340" video="qanda-mentor" id="subtitle"]]
+[[!template text="""When you realize, like I keep telling""" start="00:44:26.420" video="qanda-mentor" id="subtitle"]]
+[[!template text="""everyone, hey, if you blog about Emacs,""" start="00:44:28.380" video="qanda-mentor" id="subtitle"]]
+[[!template text="""you'll not only learn things for yourself and""" start="00:44:30.720" video="qanda-mentor" id="subtitle"]]
+[[!template text="""make things more searchable,""" start="00:44:31.440" video="qanda-mentor" id="subtitle"]]
+[[!template text="""other people will come by and tell you even""" start="00:44:33.520" video="qanda-mentor" id="subtitle"]]
+[[!template text="""better ways of doing things,""" start="00:44:34.840" video="qanda-mentor" id="subtitle"]]
+[[!template text="""which is something that always happens to me""" start="00:44:36.940" video="qanda-mentor" id="subtitle"]]
+[[!template text="""too, and I'm posting this.""" start="00:44:37.800" video="qanda-mentor" id="subtitle"]]
+[[!template text="""Has that ever happened?""" start="00:44:38.400" video="qanda-mentor" id="subtitle"]]
+[[!template text="""I'm sure that happens to you.""" start="00:44:39.960" video="qanda-mentor" id="subtitle"]]
+[[!template text="""[Speaker 1]: It's great. I love getting those things like,""" start="00:44:45.020" video="qanda-mentor" id="subtitle"]]
+[[!template text="""yeah, Howard's presentation on the game""" start="00:44:49.360" video="qanda-mentor" id="subtitle"]]
+[[!template text="""stuff. I'm like, I'm going to go explore that""" start="00:44:51.720" video="qanda-mentor" id="subtitle"]]
+[[!template text="""now. Because it's my little house.""" start="00:44:54.560" video="qanda-mentor" id="subtitle"]]
+[[!template text="""[Speaker 3]: You just have to make it less intimidating,""" start="00:44:57.280" video="qanda-mentor" id="subtitle"]]
+[[!template text="""right? And kind of change people's perception""" start="00:45:00.600" video="qanda-mentor" id="subtitle"]]
+[[!template text="""that, oh, blogging or sharing tutorials or""" start="00:45:03.420" video="qanda-mentor" id="subtitle"]]
+[[!template text="""whatever, that's then when you're an expert,""" start="00:45:05.460" video="qanda-mentor" id="subtitle"]]
+[[!template text="""when you're an experienced,""" start="00:45:06.340" video="qanda-mentor" id="subtitle"]]
+[[!template text="""to rather working out loud,""" start="00:45:09.480" video="qanda-mentor" id="subtitle"]]
+[[!template text="""thinking out loud, this is just that I'm""" start="00:45:11.520" video="qanda-mentor" id="subtitle"]]
+[[!template text="""learning along the way.""" start="00:45:12.800" video="qanda-mentor" id="subtitle"]]
+[[!template text="""And it might not be the most efficient way to""" start="00:45:15.840" video="qanda-mentor" id="subtitle"]]
+[[!template text="""do things, but this is what I'm doing right""" start="00:45:17.720" video="qanda-mentor" id="subtitle"]]
+[[!template text="""now.""" start="00:45:17.880" video="qanda-mentor" id="subtitle"]]
+[[!template text="""[Speaker 1]: Yeah. And I had a handful of times where I""" start="00:45:23.940" video="qanda-mentor" id="subtitle"]]
+[[!template text="""posted something and someone was like,""" start="00:45:25.760" video="qanda-mentor" id="subtitle"]]
+[[!template text="""Oh yeah, this is, this would have you tried""" start="00:45:27.620" video="qanda-mentor" id="subtitle"]]
+[[!template text="""this? Or I'm like, I didn't even know that""" start="00:45:30.060" video="qanda-mentor" id="subtitle"]]
+[[!template text="""existed. That makes this easier.""" start="00:45:32.440" video="qanda-mentor" id="subtitle"]]
+[[!template text="""[Speaker 3]: I've written this like little hack and I'm""" start="00:45:37.540" video="qanda-mentor" id="subtitle"]]
+[[!template text="""very proud of it because it's clever.""" start="00:45:38.860" video="qanda-mentor" id="subtitle"]]
+[[!template text="""And then someone's like,""" start="00:45:39.760" video="qanda-mentor" id="subtitle"]]
+[[!template text="""Oh yeah, there's a package for that.""" start="00:45:41.000" video="qanda-mentor" id="subtitle"]]
+[[!template text="""It's called this. Right?""" start="00:45:42.720" video="qanda-mentor" id="subtitle"]]
+[[!template text="""[Speaker 1]: Thank you. Right? Yeah.""" start="00:45:43.660" video="qanda-mentor" id="subtitle"]]
+[[!template text="""It's just it's Yeah, it the fantastic part""" start="00:45:49.380" video="qanda-mentor" id="subtitle"]]
+[[!template text="""it. I played Legos as a kid and me and my""" start="00:45:54.140" video="qanda-mentor" id="subtitle"]]
+[[!template text="""friends would play Legos at the house.""" start="00:45:55.760" video="qanda-mentor" id="subtitle"]]
+[[!template text="""And Emacs has this like feeling of playing""" start="00:46:00.800" video="qanda-mentor" id="subtitle"]]
+[[!template text="""Legos with a group of people across the""" start="00:46:04.360" video="qanda-mentor" id="subtitle"]]
+[[!template text="""world. In fact, 1 of my current,""" start="00:46:06.120" video="qanda-mentor" id="subtitle"]]
+[[!template text="""well, 1 of my best friends now,""" start="00:46:09.080" video="qanda-mentor" id="subtitle"]]
+[[!template text="""we met a year ago. And it turns out we both""" start="00:46:14.040" video="qanda-mentor" id="subtitle"]]
+[[!template text="""love Emacs. We talk every Thursday and we""" start="00:46:18.460" video="qanda-mentor" id="subtitle"]]
+[[!template text="""hang out and we talk poetry.""" start="00:46:19.920" video="qanda-mentor" id="subtitle"]]
+[[!template text="""We talk Tom Petty. We talk Emacs.""" start="00:46:23.500" video="qanda-mentor" id="subtitle"]]
+[[!template text="""We talk software development.""" start="00:46:24.920" video="qanda-mentor" id="subtitle"]]
+[[!template text="""He does Python. I do Ruby.""" start="00:46:26.840" video="qanda-mentor" id="subtitle"]]
+[[!template text="""Just anything and everything.""" start="00:46:29.860" video="qanda-mentor" id="subtitle"]]
+[[!template text="""And it's also we both are curious because we""" start="00:46:36.660" video="qanda-mentor" id="subtitle"]]
+[[!template text="""don't use it the same way.""" start="00:46:38.100" video="qanda-mentor" id="subtitle"]]
+[[!template text="""And we like how we accomplish a task.""" start="00:46:43.920" video="qanda-mentor" id="subtitle"]]
+[[!template text="""I think that's the fascinating part to me is""" start="00:46:47.020" video="qanda-mentor" id="subtitle"]]
+[[!template text="""we each get to explore our way to interact""" start="00:46:50.140" video="qanda-mentor" id="subtitle"]]
+[[!template text="""with the computer uniquely by whatever""" start="00:46:54.060" video="qanda-mentor" id="subtitle"]]
+[[!template text="""pathways are in our brain.""" start="00:46:55.860" video="qanda-mentor" id="subtitle"]]
+[[!template text="""We see stuff, we pick it up,""" start="00:46:58.340" video="qanda-mentor" id="subtitle"]]
+[[!template text="""and we're like, that doesn't quite work for""" start="00:47:00.060" video="qanda-mentor" id="subtitle"]]
+[[!template text="""me, or, oh, that worked really well.""" start="00:47:01.960" video="qanda-mentor" id="subtitle"]]
+[[!template text="""Fascinating, like, I don't know,""" start="00:47:06.660" video="qanda-mentor" id="subtitle"]]
+[[!template text="""shared art installation.""" start="00:47:08.200" video="qanda-mentor" id="subtitle"]]
+[[!template text="""[Speaker 3]: I think you're onto something that I also""" start="00:47:13.740" video="qanda-mentor" id="subtitle"]]
+[[!template text="""resonate with. 1 of the things that""" start="00:47:15.460" video="qanda-mentor" id="subtitle"]]
+[[!template text="""fascinates me about Emacs is all these""" start="00:47:18.820" video="qanda-mentor" id="subtitle"]]
+[[!template text="""people's configuration jobs are crystallized""" start="00:47:21.220" video="qanda-mentor" id="subtitle"]]
+[[!template text="""workflows. And it's really when you talk to""" start="00:47:24.960" video="qanda-mentor" id="subtitle"]]
+[[!template text="""them and you see how they're using it,""" start="00:47:26.580" video="qanda-mentor" id="subtitle"]]
+[[!template text="""and you understand a little bit of their""" start="00:47:29.200" video="qanda-mentor" id="subtitle"]]
+[[!template text="""story and things that they need,""" start="00:47:32.140" video="qanda-mentor" id="subtitle"]]
+[[!template text="""the ideas they've had,""" start="00:47:33.160" video="qanda-mentor" id="subtitle"]]
+[[!template text="""that's really fascinating.""" start="00:47:35.640" video="qanda-mentor" id="subtitle"]]
+[[!template text="""And I think that's 1 of the things that makes""" start="00:47:37.580" video="qanda-mentor" id="subtitle"]]
+[[!template text="""it possible to be perpetually curious about""" start="00:47:39.840" video="qanda-mentor" id="subtitle"]]
+[[!template text="""Emacs, because it's not just the,""" start="00:47:42.660" video="qanda-mentor" id="subtitle"]]
+[[!template text="""you know, this is the,""" start="00:47:43.820" video="qanda-mentor" id="subtitle"]]
+[[!template text="""these are all the Lego pieces there are,""" start="00:47:45.520" video="qanda-mentor" id="subtitle"]]
+[[!template text="""but you have this community of people who are""" start="00:47:47.760" video="qanda-mentor" id="subtitle"]]
+[[!template text="""using these Lego bricks in such fascinating""" start="00:47:50.320" video="qanda-mentor" id="subtitle"]]
+[[!template text="""ways and always inventing new things for it.""" start="00:47:53.440" video="qanda-mentor" id="subtitle"]]
+[[!template text="""[Speaker 1]: Yeah, new colors, new shapes,""" start="00:47:56.100" video="qanda-mentor" id="subtitle"]]
+[[!template text="""they show up. It's great.""" start="00:47:59.640" video="qanda-mentor" id="subtitle"]]
+[[!template text="""[Speaker 2]: It's like powered twice or something like""" start="00:48:03.200" video="qanda-mentor" id="subtitle"]]
+[[!template text="""that because it's like you can use Emacs with""" start="00:48:06.040" video="qanda-mentor" id="subtitle"]]
+[[!template text="""a thousand different customizations and then""" start="00:48:09.720" video="qanda-mentor" id="subtitle"]]
+[[!template text="""you can interact with people who can each""" start="00:48:12.340" video="qanda-mentor" id="subtitle"]]
+[[!template text="""also Use Emacs in a thousand different ways""" start="00:48:16.540" video="qanda-mentor" id="subtitle"]]
+[[!template text="""[Speaker 1]: Mm-hmm, Right,""" start="00:48:17.520" video="qanda-mentor" id="subtitle"]]
+[[!template text="""[Speaker 2]: Then you can both learn from each other and""" start="00:48:20.200" video="qanda-mentor" id="subtitle"]]
+[[!template text="""that can go a thousand different ways.""" start="00:48:21.720" video="qanda-mentor" id="subtitle"]]
+[[!template text="""So it's like, it's like powering your""" start="00:48:24.000" video="qanda-mentor" id="subtitle"]]
+[[!template text="""[Speaker 3]: Yep.""" start="00:48:25.240" video="qanda-mentor" id="subtitle"]]
+[[!template text="""[Speaker 2]: Something along those lines with each other""" start="00:48:27.400" video="qanda-mentor" id="subtitle"]]
+[[!template text="""and like how different and how much you can""" start="00:48:30.720" video="qanda-mentor" id="subtitle"]]
+[[!template text="""learn from it.""" start="00:48:31.560" video="qanda-mentor" id="subtitle"]]
+[[!template text="""[Speaker 1]: Yeah, the kind of touching back to the mentee""" start="00:48:38.480" video="qanda-mentor" id="subtitle"]]
+[[!template text="""that I have who went, he had originally""" start="00:48:41.920" video="qanda-mentor" id="subtitle"]]
+[[!template text="""started in Vim and then did VS code.""" start="00:48:44.480" video="qanda-mentor" id="subtitle"]]
+[[!template text="""And then we were talking and he was gonna go""" start="00:48:47.420" video="qanda-mentor" id="subtitle"]]
+[[!template text="""into Emacs and I didn't have a,""" start="00:48:50.420" video="qanda-mentor" id="subtitle"]]
+[[!template text="""I mean, sure, that'd be great.""" start="00:48:52.000" video="qanda-mentor" id="subtitle"]]
+[[!template text="""But he's like, I don't have a lot of time.""" start="00:48:53.860" video="qanda-mentor" id="subtitle"]]
+[[!template text="""And I'm like, well, go back to the place that""" start="00:48:56.120" video="qanda-mentor" id="subtitle"]]
+[[!template text="""you have that experience.""" start="00:48:57.840" video="qanda-mentor" id="subtitle"]]
+[[!template text="""And he did, And then he started writing Lua""" start="00:49:01.000" video="qanda-mentor" id="subtitle"]]
+[[!template text="""plugins. He was like, this is so much fun.""" start="00:49:02.960" video="qanda-mentor" id="subtitle"]]
+[[!template text="""I'm like, good, you're on the right path.""" start="00:49:05.380" video="qanda-mentor" id="subtitle"]]
+[[!template text="""Like maybe there'll be space like over time,""" start="00:49:10.840" video="qanda-mentor" id="subtitle"]]
+[[!template text="""how Lua plugins and Emacs,""" start="00:49:13.860" video="qanda-mentor" id="subtitle"]]
+[[!template text="""you know, who knows? I know that Lua,""" start="00:49:16.840" video="qanda-mentor" id="subtitle"]]
+[[!template text="""you can use Fennel to write Lisp.""" start="00:49:19.040" video="qanda-mentor" id="subtitle"]]
+[[!template text="""In you write Lisp and it will transpile""" start="00:49:24.240" video="qanda-mentor" id="subtitle"]]
+[[!template text="""Fennel to Lua. I forget how that plays out,""" start="00:49:29.060" video="qanda-mentor" id="subtitle"]]
+[[!template text="""but we're not too far away from those 2""" start="00:49:31.880" video="qanda-mentor" id="subtitle"]]
+[[!template text="""things being able to play.""" start="00:49:34.480" video="qanda-mentor" id="subtitle"]]
+[[!template text="""But I guess the question is,""" start="00:49:39.020" video="qanda-mentor" id="subtitle"]]
+[[!template text="""does it need to? I don't know.""" start="00:49:41.980" video="qanda-mentor" id="subtitle"]]
+[[!template text="""[Speaker 3]: Yeah, I mean, even without direct code""" start="00:49:44.540" video="qanda-mentor" id="subtitle"]]
+[[!template text="""translation, the cross-pollination of ideas""" start="00:49:47.620" video="qanda-mentor" id="subtitle"]]
+[[!template text="""is certainly enough. I love the fact that""" start="00:49:51.460" video="qanda-mentor" id="subtitle"]]
+[[!template text="""people are borrowing ideas from VS Code and""" start="00:49:54.720" video="qanda-mentor" id="subtitle"]]
+[[!template text="""from Vim and people look at Emacs videos and""" start="00:49:57.840" video="qanda-mentor" id="subtitle"]]
+[[!template text="""other things and say, hey,""" start="00:49:58.840" video="qanda-mentor" id="subtitle"]]
+[[!template text="""that's a cool thing in Emacs,""" start="00:49:59.860" video="qanda-mentor" id="subtitle"]]
+[[!template text="""but I don't want to ever use Emacs.""" start="00:50:01.240" video="qanda-mentor" id="subtitle"]]
+[[!template text="""I'm going to do that whole thing in Vim.""" start="00:50:03.240" video="qanda-mentor" id="subtitle"]]
+[[!template text="""And I think that's fantastic.""" start="00:50:04.600" video="qanda-mentor" id="subtitle"]]
+[[!template text="""[Speaker 1]: Absolutely. Yeah. I mean,""" start="00:50:07.480" video="qanda-mentor" id="subtitle"]]
+[[!template text="""monocultures die. They just do.""" start="00:50:10.640" video="qanda-mentor" id="subtitle"]]
+[[!template text="""And computer software and computer industry""" start="00:50:16.840" video="qanda-mentor" id="subtitle"]]
+[[!template text="""pushes towards monoculture because of it""" start="00:50:24.120" video="qanda-mentor" id="subtitle"]]
+[[!template text="""wants the highest efficiency.""" start="00:50:26.660" video="qanda-mentor" id="subtitle"]]
+[[!template text="""And I'm like, I'm not,""" start="00:50:31.440" video="qanda-mentor" id="subtitle"]]
+[[!template text="""I mean, sometimes I'm here for that,""" start="00:50:33.640" video="qanda-mentor" id="subtitle"]]
+[[!template text="""but most of the time I'm like,""" start="00:50:35.600" video="qanda-mentor" id="subtitle"]]
+[[!template text="""I want the bumps and the warts.""" start="00:50:37.120" video="qanda-mentor" id="subtitle"]]
+[[!template text="""I want the art, the human interaction,""" start="00:50:40.680" video="qanda-mentor" id="subtitle"]]
+[[!template text="""the like, why are we trying to accomplish""" start="00:50:42.720" video="qanda-mentor" id="subtitle"]]
+[[!template text="""this?""" start="00:50:43.360" video="qanda-mentor" id="subtitle"]]
+[[!template text="""[Speaker 2]: It determines, It depends on how you""" start="00:50:46.440" video="qanda-mentor" id="subtitle"]]
+[[!template text="""determine efficiency because Emacs is far""" start="00:50:49.640" video="qanda-mentor" id="subtitle"]]
+[[!template text="""Even if Emacs isn't multi-threaded is far""" start="00:50:52.840" video="qanda-mentor" id="subtitle"]]
+[[!template text="""more efficient because because of the mental""" start="00:50:56.980" video="qanda-mentor" id="subtitle"]]
+[[!template text="""model shifts because you're able to play and""" start="00:51:00.060" video="qanda-mentor" id="subtitle"]]
+[[!template text="""tweak with it and then have as much of a""" start="00:51:04.440" video="qanda-mentor" id="subtitle"]]
+[[!template text="""mental model shift for each task change that""" start="00:51:07.160" video="qanda-mentor" id="subtitle"]]
+[[!template text="""you want. Like, yeah, I want my file manager""" start="00:51:10.760" video="qanda-mentor" id="subtitle"]]
+[[!template text="""to not be an editable text buffer.""" start="00:51:16.260" video="qanda-mentor" id="subtitle"]]
+[[!template text="""Although sometimes when I want to rename""" start="00:51:18.660" video="qanda-mentor" id="subtitle"]]
+[[!template text="""files, I want it to be that.""" start="00:51:20.320" video="qanda-mentor" id="subtitle"]]
+[[!template text="""[Speaker 1]: Right. Yeah, and really,""" start="00:51:23.800" video="qanda-mentor" id="subtitle"]]
+[[!template text="""like, to be clear, I like the idea of Emacs""" start="00:51:26.640" video="qanda-mentor" id="subtitle"]]
+[[!template text="""as a projection of, like,""" start="00:51:29.060" video="qanda-mentor" id="subtitle"]]
+[[!template text="""how I think about stuff.""" start="00:51:30.320" video="qanda-mentor" id="subtitle"]]
+[[!template text="""So it's that whatever my neurons have made a""" start="00:51:33.780" video="qanda-mentor" id="subtitle"]]
+[[!template text="""good pathway for, I can have Emacs flow with""" start="00:51:37.040" video="qanda-mentor" id="subtitle"]]
+[[!template text="""me. That efficiency side is I want a factory,""" start="00:51:41.660" video="qanda-mentor" id="subtitle"]]
+[[!template text="""I want to stamp out widgets,""" start="00:51:43.080" video="qanda-mentor" id="subtitle"]]
+[[!template text="""I want them to be the same,""" start="00:51:44.540" video="qanda-mentor" id="subtitle"]]
+[[!template text="""chop, chop, chop, chop,""" start="00:51:45.400" video="qanda-mentor" id="subtitle"]]
+[[!template text="""chop, chop. That emacs runs in its spirit""" start="00:51:51.860" video="qanda-mentor" id="subtitle"]]
+[[!template text="""along with vim contrary to that and I like""" start="00:51:57.180" video="qanda-mentor" id="subtitle"]]
+[[!template text="""that""" start="00:51:57.440" video="qanda-mentor" id="subtitle"]]
+[[!template text="""[Speaker 2]: emacs is a 1 of the things with the like the""" start="00:52:00.530" video="qanda-mentor" id="subtitle"]]
+[[!template text="""mental model of Emacs is you should look at""" start="00:52:03.480" video="qanda-mentor" id="subtitle"]]
+[[!template text="""Emacs like this is probably something that""" start="00:52:06.180" video="qanda-mentor" id="subtitle"]]
+[[!template text="""people should think about when they are""" start="00:52:08.100" video="qanda-mentor" id="subtitle"]]
+[[!template text="""introducing Emacs to other people is Emacs is""" start="00:52:10.440" video="qanda-mentor" id="subtitle"]]
+[[!template text="""a treasure trove of conflicting ways of""" start="00:52:15.720" video="qanda-mentor" id="subtitle"]]
+[[!template text="""solving the same problem so you get,""" start="00:52:18.080" video="qanda-mentor" id="subtitle"]]
+[[!template text="""so you can individuate yourself on how you""" start="00:52:22.040" video="qanda-mentor" id="subtitle"]]
+[[!template text="""actually want to solve that problem.""" start="00:52:23.520" video="qanda-mentor" id="subtitle"]]
+[[!template text="""[Speaker 3]: Do you""" start="00:52:25.440" video="qanda-mentor" id="subtitle"]]
+[[!template text="""[Speaker 2]: want Vim bindings or not?""" start="00:52:26.700" video="qanda-mentor" id="subtitle"]]
+[[!template text="""You get to choose. Or do you want Meow""" start="00:52:30.200" video="qanda-mentor" id="subtitle"]]
+[[!template text="""bindings? You can choose.""" start="00:52:31.900" video="qanda-mentor" id="subtitle"]]
+[[!template text="""[Speaker 1]: Yep. Absolutely. Yeah.""" start="00:52:34.780" video="qanda-mentor" id="subtitle"]]
+[[!template text="""I, I came, I'm, I consider my,""" start="00:52:38.780" video="qanda-mentor" id="subtitle"]]
+[[!template text="""I, I lament because in 2005 I almost picked""" start="00:52:42.380" video="qanda-mentor" id="subtitle"]]
+[[!template text="""up Emacs and it wasn't until 2020 that I""" start="00:52:46.100" video="qanda-mentor" id="subtitle"]]
+[[!template text="""picked it up. And fortunately I picked it up""" start="00:52:49.040" video="qanda-mentor" id="subtitle"]]
+[[!template text="""when I did because I was able to look at""" start="00:52:54.000" video="qanda-mentor" id="subtitle"]]
+[[!template text="""things I had previously accomplished and find""" start="00:52:58.020" video="qanda-mentor" id="subtitle"]]
+[[!template text="""analogs And things like Helm and Ivy were""" start="00:53:05.140" video="qanda-mentor" id="subtitle"]]
+[[!template text="""both 2 different ways of doing it and consult""" start="00:53:08.940" video="qanda-mentor" id="subtitle"]]
+[[!template text="""and then, or Selectrum and then consult,""" start="00:53:11.600" video="qanda-mentor" id="subtitle"]]
+[[!template text="""like they all had these different ways And it""" start="00:53:15.860" video="qanda-mentor" id="subtitle"]]
+[[!template text="""felt great because I could find the thing""" start="00:53:18.900" video="qanda-mentor" id="subtitle"]]
+[[!template text="""that worked for me. And they're close,""" start="00:53:24.520" video="qanda-mentor" id="subtitle"]]
+[[!template text="""but then they also like branch out and do""" start="00:53:27.680" video="qanda-mentor" id="subtitle"]]
+[[!template text="""things differently. And it was so fascinating""" start="00:53:30.360" video="qanda-mentor" id="subtitle"]]
+[[!template text="""to explore each of those and spend an hour or""" start="00:53:34.860" video="qanda-mentor" id="subtitle"]]
+[[!template text="""2 on a primary task in seeing where that""" start="00:53:39.100" video="qanda-mentor" id="subtitle"]]
+[[!template text="""little thread went. It's great.""" start="00:53:42.040" video="qanda-mentor" id="subtitle"]]
+[[!template text="""[Speaker 3]: So tell me a bit more about how you got into""" start="00:53:47.200" video="qanda-mentor" id="subtitle"]]
+[[!template text="""Emacs. What pulled you""" start="00:53:51.040" video="qanda-mentor" id="subtitle"]]
+[[!template text="""[Speaker 1]: in? Yeah, this is a great little moment.""" start="00:53:55.120" video="qanda-mentor" id="subtitle"]]
+[[!template text="""I started in TextMate,""" start="00:53:59.680" video="qanda-mentor" id="subtitle"]]
+[[!template text="""That's kind of where I would say the""" start="00:54:03.280" video="qanda-mentor" id="subtitle"]]
+[[!template text="""beginning for coding for open source and""" start="00:54:06.460" video="qanda-mentor" id="subtitle"]]
+[[!template text="""using open source software.""" start="00:54:07.840" video="qanda-mentor" id="subtitle"]]
+[[!template text="""Sorry, using open source frameworks and""" start="00:54:11.760" video="qanda-mentor" id="subtitle"]]
+[[!template text="""languages. So TextMate to Sublime,""" start="00:54:14.540" video="qanda-mentor" id="subtitle"]]
+[[!template text="""basically TextMate couldn't search very well""" start="00:54:18.260" video="qanda-mentor" id="subtitle"]]
+[[!template text="""at the time. It was getting bogged down.""" start="00:54:20.740" video="qanda-mentor" id="subtitle"]]
+[[!template text="""So I moved to Sublime,""" start="00:54:21.640" video="qanda-mentor" id="subtitle"]]
+[[!template text="""which solved it, felt well,""" start="00:54:23.260" video="qanda-mentor" id="subtitle"]]
+[[!template text="""carried the same UI look with me.""" start="00:54:27.900" video="qanda-mentor" id="subtitle"]]
+[[!template text="""And then when I was at a conference,""" start="00:54:30.680" video="qanda-mentor" id="subtitle"]]
+[[!template text="""there was a talk about using an open source""" start="00:54:34.540" video="qanda-mentor" id="subtitle"]]
+[[!template text="""editor. I was like, yeah,""" start="00:54:36.600" video="qanda-mentor" id="subtitle"]]
+[[!template text="""I need to do that. I really need to.""" start="00:54:38.720" video="qanda-mentor" id="subtitle"]]
+[[!template text="""And Adam was viable. I was like,""" start="00:54:43.080" video="qanda-mentor" id="subtitle"]]
+[[!template text="""Oh, this is really close.""" start="00:54:44.320" video="qanda-mentor" id="subtitle"]]
+[[!template text="""I'll use it. And I didn't think too much""" start="00:54:47.120" video="qanda-mentor" id="subtitle"]]
+[[!template text="""about it. And then the writing was on the""" start="00:54:49.540" video="qanda-mentor" id="subtitle"]]
+[[!template text="""wall, that Adam is going away.""" start="00:54:51.120" video="qanda-mentor" id="subtitle"]]
+[[!template text="""And I was like, I need to find an open source""" start="00:54:55.760" video="qanda-mentor" id="subtitle"]]
+[[!template text="""editor that speaks to me.""" start="00:54:57.100" video="qanda-mentor" id="subtitle"]]
+[[!template text="""And I said, all right,""" start="00:54:59.200" video="qanda-mentor" id="subtitle"]]
+[[!template text="""Vim, This is my fifth time.""" start="00:55:00.760" video="qanda-mentor" id="subtitle"]]
+[[!template text="""I will try. And I gave an earnest 2 weeks.""" start="00:55:06.300" video="qanda-mentor" id="subtitle"]]
+[[!template text="""And I'm just like, I cannot get this mental""" start="00:55:09.060" video="qanda-mentor" id="subtitle"]]
+[[!template text="""model in my head. So I'm like,""" start="00:55:11.600" video="qanda-mentor" id="subtitle"]]
+[[!template text="""all right, I set it down.""" start="00:55:12.800" video="qanda-mentor" id="subtitle"]]
+[[!template text="""I can use Vim, I'm comfortable.""" start="00:55:14.540" video="qanda-mentor" id="subtitle"]]
+[[!template text="""I think it's a great tool,""" start="00:55:15.940" video="qanda-mentor" id="subtitle"]]
+[[!template text="""but my mental model doesn't map well there.""" start="00:55:19.000" video="qanda-mentor" id="subtitle"]]
+[[!template text="""And I'm like, all right,""" start="00:55:21.040" video="qanda-mentor" id="subtitle"]]
+[[!template text="""here we go, VS code. All right,""" start="00:55:24.780" video="qanda-mentor" id="subtitle"]]
+[[!template text="""you're fine. But I feel like I might""" start="00:55:28.280" video="qanda-mentor" id="subtitle"]]
+[[!template text="""accidentally charge my credit card in the""" start="00:55:31.340" video="qanda-mentor" id="subtitle"]]
+[[!template text="""text editor on the default installation.""" start="00:55:33.000" video="qanda-mentor" id="subtitle"]]
+[[!template text="""And that was alluded to by in 1 of the talks,""" start="00:55:38.680" video="qanda-mentor" id="subtitle"]]
+[[!template text="""I forget who he German about mandating Emacs""" start="00:55:46.120" video="qanda-mentor" id="subtitle"]]
+[[!template text="""in his computer science classes.""" start="00:55:48.000" video="qanda-mentor" id="subtitle"]]
+[[!template text="""He mentioned like the Microsoft Office or""" start="00:55:51.020" video="qanda-mentor" id="subtitle"]]
+[[!template text="""Microsoft Marketplace felt like it was there.""" start="00:55:54.060" video="qanda-mentor" id="subtitle"]]
+[[!template text="""So that was 1, but the moment where I was""" start="00:55:58.860" video="qanda-mentor" id="subtitle"]]
+[[!template text="""like, oh, hell no, VS Code.""" start="00:56:02.380" video="qanda-mentor" id="subtitle"]]
+[[!template text="""Or I wanted to use a commit from the command""" start="00:56:08.520" video="qanda-mentor" id="subtitle"]]
+[[!template text="""palette, and it brought up an HTML text input""" start="00:56:12.280" video="qanda-mentor" id="subtitle"]]
+[[!template text="""area, and it was 30 characters.""" start="00:56:15.060" video="qanda-mentor" id="subtitle"]]
+[[!template text="""And in that moment, I saw several things.""" start="00:56:23.000" video="qanda-mentor" id="subtitle"]]
+[[!template text="""1, I'm like, no, that's terrible because I""" start="00:56:27.040" video="qanda-mentor" id="subtitle"]]
+[[!template text="""want to write something meaningful.""" start="00:56:28.100" video="qanda-mentor" id="subtitle"]]
+[[!template text="""2, this is the behavior that this tool is""" start="00:56:33.640" video="qanda-mentor" id="subtitle"]]
+[[!template text="""modeling. That tells me that history and like""" start="00:56:38.960" video="qanda-mentor" id="subtitle"]]
+[[!template text="""how it is built is not important.""" start="00:56:41.320" video="qanda-mentor" id="subtitle"]]
+[[!template text="""And yes, I can fix it and get around it.""" start="00:56:47.160" video="qanda-mentor" id="subtitle"]]
+[[!template text="""And I kind of did. And I was like,""" start="00:56:49.240" video="qanda-mentor" id="subtitle"]]
+[[!template text="""the principles are just,""" start="00:56:51.440" video="qanda-mentor" id="subtitle"]]
+[[!template text="""they're there. And then also understanding""" start="00:56:53.680" video="qanda-mentor" id="subtitle"]]
+[[!template text="""like there's a bunch of telemetry underneath""" start="00:56:56.100" video="qanda-mentor" id="subtitle"]]
+[[!template text="""it. So I used VS Codium,""" start="00:56:58.860" video="qanda-mentor" id="subtitle"]]
+[[!template text="""there's still telemetry.""" start="00:57:00.240" video="qanda-mentor" id="subtitle"]]
+[[!template text="""And I was like, all right,""" start="00:57:03.340" video="qanda-mentor" id="subtitle"]]
+[[!template text="""2005 Jeremy, let's go try Emacs,""" start="00:57:07.380" video="qanda-mentor" id="subtitle"]]
+[[!template text="""let's see if we can do it.""" start="00:57:08.940" video="qanda-mentor" id="subtitle"]]
+[[!template text="""And I hopped in, I grabbed Space Max.""" start="00:57:13.860" video="qanda-mentor" id="subtitle"]]
+[[!template text="""I was Like, yeah, this works pretty well.""" start="00:57:16.640" video="qanda-mentor" id="subtitle"]]
+[[!template text="""Like, I don't know how to use the keys very""" start="00:57:18.740" video="qanda-mentor" id="subtitle"]]
+[[!template text="""well. I'm figuring it out.""" start="00:57:20.880" video="qanda-mentor" id="subtitle"]]
+[[!template text="""And. And I was like, you know what?""" start="00:57:26.040" video="qanda-mentor" id="subtitle"]]
+[[!template text="""Why don't I do the tutorial?""" start="00:57:27.340" video="qanda-mentor" id="subtitle"]]
+[[!template text="""And it was the tutorial that hooked me.""" start="00:57:30.860" video="qanda-mentor" id="subtitle"]]
+[[!template text="""Not because everything made 100% sense""" start="00:57:36.820" video="qanda-mentor" id="subtitle"]]
+[[!template text="""because Emacs is old. It had a lot of""" start="00:57:42.440" video="qanda-mentor" id="subtitle"]]
+[[!template text="""language that was hard to internalize,""" start="00:57:45.420" video="qanda-mentor" id="subtitle"]]
+[[!template text="""but it presented it in a conversational I'm""" start="00:57:50.500" video="qanda-mentor" id="subtitle"]]
+[[!template text="""gonna meet you where you're at and we're""" start="00:57:52.360" video="qanda-mentor" id="subtitle"]]
+[[!template text="""gonna walk with it together.""" start="00:57:53.440" video="qanda-mentor" id="subtitle"]]
+[[!template text="""And then when I was done with the tutorial,""" start="00:57:56.480" video="qanda-mentor" id="subtitle"]]
+[[!template text="""I said, you know, Space Max,""" start="00:57:58.420" video="qanda-mentor" id="subtitle"]]
+[[!template text="""I don't understand it.""" start="00:57:59.760" video="qanda-mentor" id="subtitle"]]
+[[!template text="""And it's got some performance.""" start="00:58:00.920" video="qanda-mentor" id="subtitle"]]
+[[!template text="""It looks like there's like extra stuff that I""" start="00:58:04.180" video="qanda-mentor" id="subtitle"]]
+[[!template text="""may not need. So I went vanilla,""" start="00:58:08.420" video="qanda-mentor" id="subtitle"]]
+[[!template text="""nothing Emacs and just started working.""" start="00:58:11.780" video="qanda-mentor" id="subtitle"]]
+[[!template text="""I was like, well, how do you do this?""" start="00:58:14.060" video="qanda-mentor" id="subtitle"]]
+[[!template text="""[Speaker 2]: Although 5 minutes of Space Max or any of""" start="00:58:17.280" video="qanda-mentor" id="subtitle"]]
+[[!template text="""those Emacs distribution shows you""" start="00:58:19.600" video="qanda-mentor" id="subtitle"]]
+[[!template text="""unequivocally how different it can be.""" start="00:58:22.360" video="qanda-mentor" id="subtitle"]]
+[[!template text="""[Speaker 1]: It was, it was, it was so amazing,""" start="00:58:25.880" video="qanda-mentor" id="subtitle"]]
+[[!template text="""and it was so good. But I knew my nature was,""" start="00:58:31.600" video="qanda-mentor" id="subtitle"]]
+[[!template text="""I was frustrated in, like I wrote an Atom""" start="00:58:34.780" video="qanda-mentor" id="subtitle"]]
+[[!template text="""package, and that was awful.""" start="00:58:37.780" video="qanda-mentor" id="subtitle"]]
+[[!template text="""It was so terrible. But I knew what I wanted.""" start="00:58:42.860" video="qanda-mentor" id="subtitle"]]
+[[!template text="""And then I wrote, I started writing a VS code""" start="00:58:48.280" video="qanda-mentor" id="subtitle"]]
+[[!template text="""and I'm like, oh no, no,""" start="00:58:49.640" video="qanda-mentor" id="subtitle"]]
+[[!template text="""no, we're not here for this.""" start="00:58:50.800" video="qanda-mentor" id="subtitle"]]
+[[!template text="""And so, yeah, SpaceMax showed me like this""" start="00:58:55.520" video="qanda-mentor" id="subtitle"]]
+[[!template text="""can look and feel like a space that I used to""" start="00:59:00.600" video="qanda-mentor" id="subtitle"]]
+[[!template text="""be in. And then it has more functionality,""" start="00:59:03.920" video="qanda-mentor" id="subtitle"]]
+[[!template text="""more stuff. It's gonna be great.""" start="00:59:07.440" video="qanda-mentor" id="subtitle"]]
+[[!template text="""And then I just was like,""" start="00:59:09.960" video="qanda-mentor" id="subtitle"]]
+[[!template text="""I'm gonna go find my own.""" start="00:59:11.880" video="qanda-mentor" id="subtitle"]]
+[[!template text="""I'm really happy that I took the path because""" start="00:59:15.920" video="qanda-mentor" id="subtitle"]]
+[[!template text="""I just worked, wrote, and I'm like,""" start="00:59:19.300" video="qanda-mentor" id="subtitle"]]
+[[!template text="""I bet you this, I bet you the tool,""" start="00:59:21.000" video="qanda-mentor" id="subtitle"]]
+[[!template text="""I know it can do this because it,""" start="00:59:22.540" video="qanda-mentor" id="subtitle"]]
+[[!template text="""you know, text me, did this or Adam,""" start="00:59:24.620" video="qanda-mentor" id="subtitle"]]
+[[!template text="""I'm gonna go, I went on to Melpa and I found""" start="00:59:27.800" video="qanda-mentor" id="subtitle"]]
+[[!template text="""a couple different things.""" start="00:59:29.440" video="qanda-mentor" id="subtitle"]]
+[[!template text="""I'm like, all right, let's try them.""" start="00:59:31.120" video="qanda-mentor" id="subtitle"]]
+[[!template text="""I'm like, that's the 1,""" start="00:59:32.320" video="qanda-mentor" id="subtitle"]]
+[[!template text="""great. Roll it in, keep working.""" start="00:59:34.480" video="qanda-mentor" id="subtitle"]]
+[[!template text="""I know it can do this.""" start="00:59:36.000" video="qanda-mentor" id="subtitle"]]
+[[!template text="""Find a package. And so I built up this sense""" start="00:59:39.800" video="qanda-mentor" id="subtitle"]]
+[[!template text="""of the packages and my strategy was go to""" start="00:59:46.060" video="qanda-mentor" id="subtitle"]]
+[[!template text="""Melpa, look at, that was the 1 that showed""" start="00:59:49.680" video="qanda-mentor" id="subtitle"]]
+[[!template text="""up, look at the number of downloads.""" start="00:59:52.540" video="qanda-mentor" id="subtitle"]]
+[[!template text="""So I'm like, what's the high stuff?""" start="00:59:54.520" video="qanda-mentor" id="subtitle"]]
+[[!template text="""What really gets used?""" start="00:59:55.900" video="qanda-mentor" id="subtitle"]]
+[[!template text="""There's something there.""" start="00:59:57.680" video="qanda-mentor" id="subtitle"]]
+[[!template text="""And then also look at what was most recently""" start="01:00:00.320" video="qanda-mentor" id="subtitle"]]
+[[!template text="""updated. So kind of pivot on those along with""" start="01:00:03.420" video="qanda-mentor" id="subtitle"]]
+[[!template text="""a keyword search and I found the tools that""" start="01:00:06.960" video="qanda-mentor" id="subtitle"]]
+[[!template text="""worked well. But it really came down to like""" start="01:00:17.780" video="qanda-mentor" id="subtitle"]]
+[[!template text="""that VS Code I was almost in,""" start="01:00:19.960" video="qanda-mentor" id="subtitle"]]
+[[!template text="""but I've been around long enough to know what""" start="01:00:24.400" video="qanda-mentor" id="subtitle"]]
+[[!template text="""Microsoft will do.""" start="01:00:25.560" video="qanda-mentor" id="subtitle"]]
+[[!template text="""[Speaker 2]: For me, I was always like customizing things.""" start="01:00:32.240" video="qanda-mentor" id="subtitle"]]
+[[!template text="""I think I saw some interesting emacs videos.""" start="01:00:34.600" video="qanda-mentor" id="subtitle"]]
+[[!template text="""I wanted to try Well, I wanted to try working""" start="01:00:42.320" video="qanda-mentor" id="subtitle"]]
+[[!template text="""more with the keyboard and not need I think""" start="01:00:44.500" video="qanda-mentor" id="subtitle"]]
+[[!template text="""[Speaker 1]: mm-hmm""" start="01:00:46.800" video="qanda-mentor" id="subtitle"]]
+[[!template text="""[Speaker 2]: the mouse on a laptop And so I was looking""" start="01:00:51.180" video="qanda-mentor" id="subtitle"]]
+[[!template text="""explicitly for ways to just work on the""" start="01:00:54.380" video="qanda-mentor" id="subtitle"]]
+[[!template text="""keyboard only, which meant that I wasn't""" start="01:00:56.920" video="qanda-mentor" id="subtitle"]]
+[[!template text="""looking for programs that followed Cua,""" start="01:00:59.060" video="qanda-mentor" id="subtitle"]]
+[[!template text="""which really leaves you like 2 options,""" start="01:01:04.400" video="qanda-mentor" id="subtitle"]]
+[[!template text="""Vim and Emacs. And when I looked at the 2,""" start="01:01:10.960" video="qanda-mentor" id="subtitle"]]
+[[!template text="""I saw 1 of the big differentiating factors I""" start="01:01:13.940" video="qanda-mentor" id="subtitle"]]
+[[!template text="""saw was Tramp, which was,""" start="01:01:15.660" video="qanda-mentor" id="subtitle"]]
+[[!template text="""oh, you mean I get a SSH into a machine and""" start="01:01:18.480" video="qanda-mentor" id="subtitle"]]
+[[!template text="""have my customizations too?""" start="01:01:19.840" video="qanda-mentor" id="subtitle"]]
+[[!template text="""[Speaker 1]: Yep. Yeah.""" start="01:01:22.740" video="qanda-mentor" id="subtitle"]]
+[[!template text="""[Speaker 2]: And then I started using Emacs more and more.""" start="01:01:29.140" video="qanda-mentor" id="subtitle"]]
+[[!template text="""Eventually I combined that with a tiling""" start="01:01:34.440" video="qanda-mentor" id="subtitle"]]
+[[!template text="""window manager, NixOS,""" start="01:01:36.400" video="qanda-mentor" id="subtitle"]]
+[[!template text="""and started banishing as much of the GUI as I""" start="01:01:40.840" video="qanda-mentor" id="subtitle"]]
+[[!template text="""possibly could, running MPV or VLC,""" start="01:01:44.060" video="qanda-mentor" id="subtitle"]]
+[[!template text="""so I could edit so that my config files could""" start="01:01:49.180" video="qanda-mentor" id="subtitle"]]
+[[!template text="""be keyboard oriented. My settings config""" start="01:01:53.720" video="qanda-mentor" id="subtitle"]]
+[[!template text="""menus are now keyboard oriented.""" start="01:01:55.920" video="qanda-mentor" id="subtitle"]]
+[[!template text="""And yeah, that was the incremental process of""" start="01:02:00.860" video="qanda-mentor" id="subtitle"]]
+[[!template text="""just, yeah, making the computer nicer,""" start="01:02:04.400" video="qanda-mentor" id="subtitle"]]
+[[!template text="""more efficient, and then you figure out all""" start="01:02:06.680" video="qanda-mentor" id="subtitle"]]
+[[!template text="""the other advantages of the...""" start="01:02:08.080" video="qanda-mentor" id="subtitle"]]
+[[!template text="""[Speaker 1]: Yeah. How did you get in to it,""" start="01:02:13.440" video="qanda-mentor" id="subtitle"]]
+[[!template text="""[Speaker 2]: Oh, you're lost.""" start="01:02:18.940" video="qanda-mentor" id="subtitle"]]
+[[!template text="""[Speaker 1]: Sasha? Your sound is gone.""" start="01:02:21.840" video="qanda-mentor" id="subtitle"]]
+[[!template text="""[Speaker 3]: Sorry, my face mute button.""" start="01:02:27.345" video="qanda-mentor" id="subtitle"]]
+[[!template text="""Okay, I'll tell you that story,""" start="01:02:29.600" video="qanda-mentor" id="subtitle"]]
+[[!template text="""I get thought out of my head,""" start="01:02:30.840" video="qanda-mentor" id="subtitle"]]
+[[!template text="""so I forget it. But what you described,""" start="01:02:32.780" video="qanda-mentor" id="subtitle"]]
+[[!template text="""Jerry, about kind of starting with the""" start="01:02:34.900" video="qanda-mentor" id="subtitle"]]
+[[!template text="""distribution and then pulling back and""" start="01:02:37.340" video="qanda-mentor" id="subtitle"]]
+[[!template text="""starting with vanilla and building up,""" start="01:02:39.140" video="qanda-mentor" id="subtitle"]]
+[[!template text="""kind of close the stories that I've heard""" start="01:02:41.040" video="qanda-mentor" id="subtitle"]]
+[[!template text="""from a lot of people in the community where""" start="01:02:42.980" video="qanda-mentor" id="subtitle"]]
+[[!template text="""the distribution gives them kind of an end""" start="01:02:46.600" video="qanda-mentor" id="subtitle"]]
+[[!template text="""goal, at least work requirements,""" start="01:02:48.140" video="qanda-mentor" id="subtitle"]]
+[[!template text="""So get the stuff done and they're not""" start="01:02:50.280" video="qanda-mentor" id="subtitle"]]
+[[!template text="""slugging through the weeds around the start.""" start="01:02:52.260" video="qanda-mentor" id="subtitle"]]
+[[!template text="""I have a hard time modifying it because""" start="01:02:55.440" video="qanda-mentor" id="subtitle"]]
+[[!template text="""modifying the distribution itself is very""" start="01:02:57.440" video="qanda-mentor" id="subtitle"]]
+[[!template text="""different from the tools they see.""" start="01:02:59.140" video="qanda-mentor" id="subtitle"]]
+[[!template text="""They feel like they want to understand the""" start="01:03:01.520" video="qanda-mentor" id="subtitle"]]
+[[!template text="""different possible part.""" start="01:03:02.320" video="qanda-mentor" id="subtitle"]]
+[[!template text="""And so then they pull back and say,""" start="01:03:04.240" video="qanda-mentor" id="subtitle"]]
+[[!template text="""okay, I've got this thing that can use""" start="01:03:06.300" video="qanda-mentor" id="subtitle"]]
+[[!template text="""everything to just get some quick work done,""" start="01:03:08.360" video="qanda-mentor" id="subtitle"]]
+[[!template text="""but I have this thing that I can call,""" start="01:03:10.380" video="qanda-mentor" id="subtitle"]]
+[[!template text="""that's mine. And I understand because I'm""" start="01:03:13.500" video="qanda-mentor" id="subtitle"]]
+[[!template text="""building it up from the ground up.""" start="01:03:15.960" video="qanda-mentor" id="subtitle"]]
+[[!template text="""Okay, so that's like, oh,""" start="01:03:19.540" video="qanda-mentor" id="subtitle"]]
+[[!template text="""interesting, there's a lot of people who are""" start="01:03:21.500" video="qanda-mentor" id="subtitle"]]
+[[!template text="""like that, and it really helps them to both""" start="01:03:23.940" video="qanda-mentor" id="subtitle"]]
+[[!template text="""have that insight, which is see through""" start="01:03:27.240" video="qanda-mentor" id="subtitle"]]
+[[!template text="""distributions and also videos of other""" start="01:03:29.540" video="qanda-mentor" id="subtitle"]]
+[[!template text="""people's workflows and press kind of""" start="01:03:32.060" video="qanda-mentor" id="subtitle"]]
+[[!template text="""conference presentations often about""" start="01:03:34.080" video="qanda-mentor" id="subtitle"]]
+[[!template text="""completely different topics,""" start="01:03:35.140" video="qanda-mentor" id="subtitle"]]
+[[!template text="""right? So someone whizzing through Ruby on""" start="01:03:37.540" video="qanda-mentor" id="subtitle"]]
+[[!template text="""Rails or whatever else and doing all of this.""" start="01:03:39.920" video="qanda-mentor" id="subtitle"]]
+[[!template text="""But also having 1 help them break out,""" start="01:03:43.580" video="qanda-mentor" id="subtitle"]]
+[[!template text="""okay, well, there's a lot of work from where""" start="01:03:46.560" video="qanda-mentor" id="subtitle"]]
+[[!template text="""I am to where that is.""" start="01:03:47.900" video="qanda-mentor" id="subtitle"]]
+[[!template text="""How do I do it without being overwhelmed?""" start="01:03:49.740" video="qanda-mentor" id="subtitle"]]
+[[!template text="""Because if they try to learn everything,""" start="01:03:51.400" video="qanda-mentor" id="subtitle"]]
+[[!template text="""they'll go crazy. And then they'll fall.""" start="01:03:55.520" video="qanda-mentor" id="subtitle"]]
+[[!template text="""And the brain is super important.""" start="01:03:57.500" video="qanda-mentor" id="subtitle"]]
+[[!template text="""And how I got into this whole eMac thing was""" start="01:04:01.500" video="qanda-mentor" id="subtitle"]]
+[[!template text="""I was reading all the computer science books""" start="01:04:03.520" video="qanda-mentor" id="subtitle"]]
+[[!template text="""in the university library and 1 of the Unix""" start="01:04:06.180" video="qanda-mentor" id="subtitle"]]
+[[!template text="""power tools had a chapter on Emacs and had""" start="01:04:09.160" video="qanda-mentor" id="subtitle"]]
+[[!template text="""them you know well there's another type of""" start="01:04:11.040" video="qanda-mentor" id="subtitle"]]
+[[!template text="""whatever. Okay that's interesting so I went""" start="01:04:14.440" video="qanda-mentor" id="subtitle"]]
+[[!template text="""and tried it out But the reason I really got""" start="01:04:17.080" video="qanda-mentor" id="subtitle"]]
+[[!template text="""into it was because I was using John Wigley's""" start="01:04:19.280" video="qanda-mentor" id="subtitle"]]
+[[!template text="""Planner Mode. This was before Org Mode came""" start="01:04:23.520" video="qanda-mentor" id="subtitle"]]
+[[!template text="""about. So Planner Mode was a link.""" start="01:04:25.320" video="qanda-mentor" id="subtitle"]]
+[[!template text="""I said, hey, this is great.""" start="01:04:27.040" video="qanda-mentor" id="subtitle"]]
+[[!template text="""I'm looking for ways to help out.""" start="01:04:29.380" video="qanda-mentor" id="subtitle"]]
+[[!template text="""If you need help verifying any bugs,""" start="01:04:31.560" video="qanda-mentor" id="subtitle"]]
+[[!template text="""you know, send it to me and I'll do the""" start="01:04:34.160" video="qanda-mentor" id="subtitle"]]
+[[!template text="""figuring out. He's an author and an inventor.""" start="01:04:37.540" video="qanda-mentor" id="subtitle"]]
+[[!template text="""[Speaker 2]: And then""" start="01:04:37.960" video="qanda-mentor" id="subtitle"]]
+[[!template text="""[Speaker 3]: he made me the miniature for it.""" start="01:04:39.480" video="qanda-mentor" id="subtitle"]]
+[[!template text="""So I'm like, okay. And then that's how I got""" start="01:04:42.720" video="qanda-mentor" id="subtitle"]]
+[[!template text="""to know this wonderful community of people""" start="01:04:44.680" video="qanda-mentor" id="subtitle"]]
+[[!template text="""who customize emacs so much.""" start="01:04:46.840" video="qanda-mentor" id="subtitle"]]
+[[!template text="""And it just goes there because really,""" start="01:04:51.680" video="qanda-mentor" id="subtitle"]]
+[[!template text="""when you see all these different ways that""" start="01:04:54.100" video="qanda-mentor" id="subtitle"]]
+[[!template text="""people use in all these different stories""" start="01:04:55.860" video="qanda-mentor" id="subtitle"]]
+[[!template text="""that you get send off because they're using""" start="01:05:00.060" video="qanda-mentor" id="subtitle"]]
+[[!template text="""it to bake sourdough bread and do knitting""" start="01:05:03.960" video="qanda-mentor" id="subtitle"]]
+[[!template text="""and all the crazy things that people come up""" start="01:05:06.700" video="qanda-mentor" id="subtitle"]]
+[[!template text="""with. I've been using it as an audio editor.""" start="01:05:08.900" video="qanda-mentor" id="subtitle"]]
+[[!template text="""It's just weird. It's just fun.""" start="01:05:11.000" video="qanda-mentor" id="subtitle"]]
+[[!template text="""[Speaker 1]: Yeah, that's great.""" start="01:05:13.100" video="qanda-mentor" id="subtitle"]]
+[[!template text="""[Speaker 2]: Yeah. Every, Sasha, like 2 things that I was""" start="01:05:19.640" video="qanda-mentor" id="subtitle"]]
+[[!template text="""meaning to say is every time I see the on the""" start="01:05:22.900" video="qanda-mentor" id="subtitle"]]
+[[!template text="""EMAX conference the time that the scratch""" start="01:05:26.140" video="qanda-mentor" id="subtitle"]]
+[[!template text="""buffer with the big clock that is ticking""" start="01:05:29.900" video="qanda-mentor" id="subtitle"]]
+[[!template text="""down as and the multi multiple sized fonts As""" start="01:05:34.980" video="qanda-mentor" id="subtitle"]]
+[[!template text="""I always think wow, that's really cool.""" start="01:05:37.720" video="qanda-mentor" id="subtitle"]]
+[[!template text="""I didn't know Emacs could do that.""" start="01:05:38.980" video="qanda-mentor" id="subtitle"]]
+[[!template text="""Wait, no, I saw that last year.""" start="01:05:40.440" video="qanda-mentor" id="subtitle"]]
+[[!template text="""How do you do, now, how do I do that?""" start="01:05:43.860" video="qanda-mentor" id="subtitle"]]
+[[!template text="""Cause that's not, and that's not something I""" start="01:05:45.360" video="qanda-mentor" id="subtitle"]]
+[[!template text="""normally even think about Emacs doing.""" start="01:05:46.920" video="qanda-mentor" id="subtitle"]]
+[[!template text="""[Speaker 1]: Right.""" start="01:05:48.080" video="qanda-mentor" id="subtitle"]]
+[[!template text="""[Speaker 2]: I'll think about putting""" start="01:05:51.220" video="qanda-mentor" id="subtitle"]]
+[[!template text="""[Speaker 3]: There's an EmacsConf-stream.el""" start="01:05:55.760" video="qanda-mentor" id="subtitle"]]
+[[!template text="""in the EmacsConf-el repository.""" start="01:05:59.760" video="qanda-mentor" id="subtitle"]]
+[[!template text="""Grab the link and open but you can grab the""" start="01:06:03.960" video="qanda-mentor" id="subtitle"]]
+[[!template text="""code from there. It's basically the text""" start="01:06:07.940" video="qanda-mentor" id="subtitle"]]
+[[!template text="""property.""" start="01:06:08.260" video="qanda-mentor" id="subtitle"]]
+[[!template text="""[Speaker 2]: But it's a thought that has repeated multiple""" start="01:06:15.020" video="qanda-mentor" id="subtitle"]]
+[[!template text="""years. Like, I didn't know we could do that""" start="01:06:17.140" video="qanda-mentor" id="subtitle"]]
+[[!template text="""way. I thought about that.""" start="01:06:18.220" video="qanda-mentor" id="subtitle"]]
+[[!template text="""I had this exact thought last year when I saw""" start="01:06:21.260" video="qanda-mentor" id="subtitle"]]
+[[!template text="""it.""" start="01:06:21.600" video="qanda-mentor" id="subtitle"]]
+[[!template text="""[Speaker 1]: It's, we're like, I'm at the point where it's""" start="01:06:28.260" video="qanda-mentor" id="subtitle"]]
+[[!template text="""like I have memories of remembering doing""" start="01:06:31.220" video="qanda-mentor" id="subtitle"]]
+[[!template text="""something. I don't have memories of doing it.""" start="01:06:34.540" video="qanda-mentor" id="subtitle"]]
+[[!template text="""Like all of the things.""" start="01:06:36.680" video="qanda-mentor" id="subtitle"]]
+[[!template text="""Like so it's again, we,""" start="01:06:40.560" video="qanda-mentor" id="subtitle"]]
+[[!template text="""Emacs helps expose like the,""" start="01:06:45.240" video="qanda-mentor" id="subtitle"]]
+[[!template text="""like it's, anything's possible.""" start="01:06:48.640" video="qanda-mentor" id="subtitle"]]
+[[!template text="""And we see how it becomes possible through""" start="01:06:53.300" video="qanda-mentor" id="subtitle"]]
+[[!template text="""other people. And then it gets our brains""" start="01:06:55.640" video="qanda-mentor" id="subtitle"]]
+[[!template text="""thinking about other ways of doing stuff.""" start="01:06:57.780" video="qanda-mentor" id="subtitle"]]
+[[!template text="""And I think that's the exciting part.""" start="01:06:59.920" video="qanda-mentor" id="subtitle"]]
+[[!template text="""Dog who wants to go play Frisbee.""" start="01:07:02.360" video="qanda-mentor" id="subtitle"]]
+[[!template text="""[Speaker 3]: And that's actually 1 of the reasons why I""" start="01:07:07.900" video="qanda-mentor" id="subtitle"]]
+[[!template text="""want to encourage people to not only talk""" start="01:07:11.060" video="qanda-mentor" id="subtitle"]]
+[[!template text="""about Emacs and write Emacs blog posts,""" start="01:07:12.840" video="qanda-mentor" id="subtitle"]]
+[[!template text="""but also actually demonstrate Emacs in the""" start="01:07:15.380" video="qanda-mentor" id="subtitle"]]
+[[!template text="""sense of doing something else.""" start="01:07:16.560" video="qanda-mentor" id="subtitle"]]
+[[!template text="""So for example, we can match people at Emacs""" start="01:07:20.220" video="qanda-mentor" id="subtitle"]]
+[[!template text="""if you're presenting about Ruby on Rails and""" start="01:07:23.560" video="qanda-mentor" id="subtitle"]]
+[[!template text="""you're doing all of your and education and""" start="01:07:27.040" video="qanda-mentor" id="subtitle"]]
+[[!template text="""things while you're presenting Rails,""" start="01:07:30.240" video="qanda-mentor" id="subtitle"]]
+[[!template text="""you reach all these people who are interested""" start="01:07:32.900" video="qanda-mentor" id="subtitle"]]
+[[!template text="""in Rails, developer Rails,""" start="01:07:34.400" video="qanda-mentor" id="subtitle"]]
+[[!template text="""but might not have even considered Emacs.""" start="01:07:36.260" video="qanda-mentor" id="subtitle"]]
+[[!template text="""And here, you know, you probably would.""" start="01:07:41.920" video="qanda-mentor" id="subtitle"]]
+[[!template text="""I would probably have a hard time writing an""" start="01:07:44.860" video="qanda-mentor" id="subtitle"]]
+[[!template text="""entire talk about adding text properties,""" start="01:07:47.040" video="qanda-mentor" id="subtitle"]]
+[[!template text="""but the fact that there's a thing here that""" start="01:07:49.540" video="qanda-mentor" id="subtitle"]]
+[[!template text="""shows, hey, this is possible,""" start="01:07:50.800" video="qanda-mentor" id="subtitle"]]
+[[!template text="""Emacs can get people to think,""" start="01:07:53.000" video="qanda-mentor" id="subtitle"]]
+[[!template text="""okay, so how do I get from here to there?""" start="01:07:54.880" video="qanda-mentor" id="subtitle"]]
+[[!template text="""Just showing the possible.""" start="01:07:57.440" video="qanda-mentor" id="subtitle"]]
+[[!template text="""Yeah. Which source code is in the,""" start="01:08:02.120" video="qanda-mentor" id="subtitle"]]
+[[!template text="""whatchamacallit.""" start="01:08:02.360" video="qanda-mentor" id="subtitle"]]
+[[!template text="""[Speaker 1]: Right, yeah. Yeah, I just saw that.""" start="01:08:04.600" video="qanda-mentor" id="subtitle"]]
+[[!template text="""[Speaker 2]: There's a weird interesting thing how Emacs""" start="01:08:08.240" video="qanda-mentor" id="subtitle"]]
+[[!template text="""dovetails with people who are interested in""" start="01:08:12.540" video="qanda-mentor" id="subtitle"]]
+[[!template text="""making their own local first Zettelkasten,""" start="01:08:15.940" video="qanda-mentor" id="subtitle"]]
+[[!template text="""because look at how many Zettelkasten""" start="01:08:17.720" video="qanda-mentor" id="subtitle"]]
+[[!template text="""packages you have. Especially with how much,""" start="01:08:21.300" video="qanda-mentor" id="subtitle"]]
+[[!template text="""like it feels like, it seems like Emacs has""" start="01:08:23.800" video="qanda-mentor" id="subtitle"]]
+[[!template text="""more than Vim, but Vim is bigger or VS,""" start="01:08:27.439" video="qanda-mentor" id="subtitle"]]
+[[!template text="""feels like it has more than Vim or VS Code,""" start="01:08:30.140" video="qanda-mentor" id="subtitle"]]
+[[!template text="""and VS Code's bigger. I'm not sure,""" start="01:08:31.920" video="qanda-mentor" id="subtitle"]]
+[[!template text="""but it feels like it. Same thing with that""" start="01:08:36.819" video="qanda-mentor" id="subtitle"]]
+[[!template text="""HyperCore. That HyperCore felt more like a""" start="01:08:39.920" video="qanda-mentor" id="subtitle"]]
+[[!template text="""local first peer-to-peer system.""" start="01:08:42.540" video="qanda-mentor" id="subtitle"]]
+[[!template text="""So there's a weird dovetail where they want""" start="01:08:48.240" video="qanda-mentor" id="subtitle"]]
+[[!template text="""the knowledge bases that are local first,""" start="01:08:52.279" video="qanda-mentor" id="subtitle"]]
+[[!template text="""comprehensive, because 1 of the properties of""" start="01:08:58.260" video="qanda-mentor" id="subtitle"]]
+[[!template text="""the Zettelkasten or Org Mode agendas is that""" start="01:09:03.500" video="qanda-mentor" id="subtitle"]]
+[[!template text="""it's all your notes in 1 place.""" start="01:09:07.359" video="qanda-mentor" id="subtitle"]]
+[[!template text="""It's not, you know, your notes in either pad""" start="01:09:14.439" video="qanda-mentor" id="subtitle"]]
+[[!template text="""and your notes in Google Calendar,""" start="01:09:19.540" video="qanda-mentor" id="subtitle"]]
+[[!template text="""your notes in 20 different places,""" start="01:09:23.180" video="qanda-mentor" id="subtitle"]]
+[[!template text="""your notes in Evernote.""" start="01:09:24.520" video="qanda-mentor" id="subtitle"]]
+[[!template text="""It's your notes in 1 program in 1 place""" start="01:09:28.700" video="qanda-mentor" id="subtitle"]]
+[[!template text="""because you have to deal with them And""" start="01:09:30.840" video="qanda-mentor" id="subtitle"]]
+[[!template text="""they're going to be in files on your hard""" start="01:09:32.600" video="qanda-mentor" id="subtitle"]]
+[[!template text="""drive, and you're going to have packages""" start="01:09:34.279" video="qanda-mentor" id="subtitle"]]
+[[!template text="""there. That's the other weird thing too,""" start="01:09:37.080" video="qanda-mentor" id="subtitle"]]
+[[!template text="""is how many, like, you install an Emacs""" start="01:09:40.240" video="qanda-mentor" id="subtitle"]]
+[[!template text="""package, 1 of the guarantees,""" start="01:09:41.399" video="qanda-mentor" id="subtitle"]]
+[[!template text="""some of the guarantees you seem to get with""" start="01:09:43.439" video="qanda-mentor" id="subtitle"]]
+[[!template text="""it is if it does use an external program,""" start="01:09:46.260" video="qanda-mentor" id="subtitle"]]
+[[!template text="""it's going to have a lot of configuration in""" start="01:09:48.399" video="qanda-mentor" id="subtitle"]]
+[[!template text="""Emacs. It's going to be installed.""" start="01:09:51.020" video="qanda-mentor" id="subtitle"]]
+[[!template text="""It's going to be local first.""" start="01:09:53.760" video="qanda-mentor" id="subtitle"]]
+[[!template text="""Cause like you have flow bits,""" start="01:09:56.780" video="qanda-mentor" id="subtitle"]]
+[[!template text="""but how many programs like are,""" start="01:09:59.340" video="qanda-mentor" id="subtitle"]]
+[[!template text="""are cloud first. And it feels like most of""" start="01:10:05.140" video="qanda-mentor" id="subtitle"]]
+[[!template text="""those are like org Trello,""" start="01:10:06.820" video="qanda-mentor" id="subtitle"]]
+[[!template text="""where it's like, I want to use org mode,""" start="01:10:10.160" video="qanda-mentor" id="subtitle"]]
+[[!template text="""but other people use Trello.""" start="01:10:12.040" video="qanda-mentor" id="subtitle"]]
+[[!template text="""So I'm going to be grudgingly using this org""" start="01:10:15.460" video="qanda-mentor" id="subtitle"]]
+[[!template text="""Trello to be a bridge between the 2,""" start="01:10:17.400" video="qanda-mentor" id="subtitle"]]
+[[!template text="""not because I wanted to use org,""" start="01:10:19.200" video="qanda-mentor" id="subtitle"]]
+[[!template text="""not because I wanted to use Trello in the""" start="01:10:21.240" video="qanda-mentor" id="subtitle"]]
+[[!template text="""first place or I started off with Trello and""" start="01:10:23.200" video="qanda-mentor" id="subtitle"]]
+[[!template text="""now I wanna use org mode.""" start="01:10:24.280" video="qanda-mentor" id="subtitle"]]
+[[!template text="""[Speaker 1]: Right, no, you're that local first.""" start="01:10:27.680" video="qanda-mentor" id="subtitle"]]
+[[!template text="""The Thought I have is with the 2022 interest""" start="01:10:37.020" video="qanda-mentor" id="subtitle"]]
+[[!template text="""rates going up, the era of free money,""" start="01:10:43.080" video="qanda-mentor" id="subtitle"]]
+[[!template text="""or even like getting money for more,""" start="01:10:46.520" video="qanda-mentor" id="subtitle"]]
+[[!template text="""more money than it actually costs Like it was""" start="01:10:49.960" video="qanda-mentor" id="subtitle"]]
+[[!template text="""minting money. We are going to be seeing how""" start="01:10:55.600" video="qanda-mentor" id="subtitle"]]
+[[!template text="""these organizations that had financial""" start="01:10:59.440" video="qanda-mentor" id="subtitle"]]
+[[!template text="""runways, all of these cloud services,""" start="01:11:01.840" video="qanda-mentor" id="subtitle"]]
+[[!template text="""what's not gonna last because there's no""" start="01:11:06.760" video="qanda-mentor" id="subtitle"]]
+[[!template text="""funding. And like the durability of our local""" start="01:11:12.440" video="qanda-mentor" id="subtitle"]]
+[[!template text="""first plain text, free open source stuff.""" start="01:11:16.400" video="qanda-mentor" id="subtitle"]]
+[[!template text="""Like I won't have to do a content migration""" start="01:11:21.320" video="qanda-mentor" id="subtitle"]]
+[[!template text="""unless I get a B of my bonnet and want to""" start="01:11:24.320" video="qanda-mentor" id="subtitle"]]
+[[!template text="""like change from org mode to markdown for""" start="01:11:27.700" video="qanda-mentor" id="subtitle"]]
+[[!template text="""some reason. Like I have it and Then I can""" start="01:11:30.660" video="qanda-mentor" id="subtitle"]]
+[[!template text="""send it out. So there's also like that posse""" start="01:11:32.980" video="qanda-mentor" id="subtitle"]]
+[[!template text="""principle publish on-site syndicate""" start="01:11:36.400" video="qanda-mentor" id="subtitle"]]
+[[!template text="""everywhere Is what emacs and vim like they""" start="01:11:41.660" video="qanda-mentor" id="subtitle"]]
+[[!template text="""allow for us to do?""" start="01:11:42.780" video="qanda-mentor" id="subtitle"]]
+[[!template text="""[Speaker 2]: Well, that's part of the individuation is you""" start="01:11:46.440" video="qanda-mentor" id="subtitle"]]
+[[!template text="""have multiple options of doing something so""" start="01:11:48.900" video="qanda-mentor" id="subtitle"]]
+[[!template text="""you can choose something so you can take""" start="01:11:51.580" video="qanda-mentor" id="subtitle"]]
+[[!template text="""ownership of your data in the way you want.""" start="01:11:54.360" video="qanda-mentor" id="subtitle"]]
+[[!template text="""It all dovetails into each other and I think""" start="01:12:00.220" video="qanda-mentor" id="subtitle"]]
+[[!template text="""that's something worth thinking about,""" start="01:12:02.840" video="qanda-mentor" id="subtitle"]]
+[[!template text="""especially in relation with who should learn""" start="01:12:05.540" video="qanda-mentor" id="subtitle"]]
+[[!template text="""and how should you introduce Emacs to people,""" start="01:12:08.040" video="qanda-mentor" id="subtitle"]]
+[[!template text="""because like, with the idea of people should""" start="01:12:14.180" video="qanda-mentor" id="subtitle"]]
+[[!template text="""try an Emacs distribution and then start""" start="01:12:16.560" video="qanda-mentor" id="subtitle"]]
+[[!template text="""their own from scratch,""" start="01:12:17.240" video="qanda-mentor" id="subtitle"]]
+[[!template text="""just so that they, like,""" start="01:12:18.880" video="qanda-mentor" id="subtitle"]]
+[[!template text="""if you use it for 10 minutes,""" start="01:12:20.280" video="qanda-mentor" id="subtitle"]]
+[[!template text="""you'll gain so much because you use your 3""" start="01:12:24.400" video="qanda-mentor" id="subtitle"]]
+[[!template text="""and then all of a sudden you realize,""" start="01:12:25.760" video="qanda-mentor" id="subtitle"]]
+[[!template text="""you also know how malleable Emacs can be.""" start="01:12:29.180" video="qanda-mentor" id="subtitle"]]
+[[!template text="""And then you start saying,""" start="01:12:30.520" video="qanda-mentor" id="subtitle"]]
+[[!template text="""now, how do I do that?""" start="01:12:32.000" video="qanda-mentor" id="subtitle"]]
+[[!template text="""So I get to make those choices?""" start="01:12:33.240" video="qanda-mentor" id="subtitle"]]
+[[!template text="""[Speaker 1]: Yeah.""" start="01:12:34.840" video="qanda-mentor" id="subtitle"]]
+[[!template text="""[Speaker 2]: Or you might say, this person did it well""" start="01:12:39.340" video="qanda-mentor" id="subtitle"]]
+[[!template text="""enough, I don't have to.""" start="01:12:40.320" video="qanda-mentor" id="subtitle"]]
+[[!template text="""[Speaker 3]: That reminded me of something that I also""" start="01:12:43.500" video="qanda-mentor" id="subtitle"]]
+[[!template text="""wanted to mention, shocking word,""" start="01:12:45.360" video="qanda-mentor" id="subtitle"]]
+[[!template text="""as in malleability. Another tip I came""" start="01:12:49.040" video="qanda-mentor" id="subtitle"]]
+[[!template text="""across, don't know from whom,""" start="01:12:50.600" video="qanda-mentor" id="subtitle"]]
+[[!template text="""might have been from you,""" start="01:12:51.500" video="qanda-mentor" id="subtitle"]]
+[[!template text="""I don't know, is to define aliases,""" start="01:12:53.440" video="qanda-mentor" id="subtitle"]]
+[[!template text="""because we use different words from what the""" start="01:12:56.320" video="qanda-mentor" id="subtitle"]]
+[[!template text="""functions are. It's 1 of those little meta""" start="01:12:58.680" video="qanda-mentor" id="subtitle"]]
+[[!template text="""things that, you know,""" start="01:13:00.420" video="qanda-mentor" id="subtitle"]]
+[[!template text="""If you keep calling it something else,""" start="01:13:02.080" video="qanda-mentor" id="subtitle"]]
+[[!template text="""just define it so that you can call it like""" start="01:13:05.900" video="qanda-mentor" id="subtitle"]]
+[[!template text="""commencing your words.""" start="01:13:06.760" video="qanda-mentor" id="subtitle"]]
+[[!template text="""[Speaker 1]: it's interesting. Anyway,""" start="01:13:12.440" video="qanda-mentor" id="subtitle"]]
+[[!template text="""[Speaker 3]: Yeah. Yeah, gotta go disappear and get ready""" start="01:13:14.020" video="qanda-mentor" id="subtitle"]]
+[[!template text="""for my dog. Okay, I'll listen to what you""" start="01:13:17.220" video="qanda-mentor" id="subtitle"]]
+[[!template text="""say. All right, I""" start="01:13:18.120" video="qanda-mentor" id="subtitle"]]
+[[!template text="""[Speaker 1]: I need to take my dogs out and play Frisbee.""" start="01:13:20.020" video="qanda-mentor" id="subtitle"]]
+[[!template text="""They have been so patient.""" start="01:13:21.780" video="qanda-mentor" id="subtitle"]]
+[[!template text="""So it was great talking with all of you and""" start="01:13:26.040" video="qanda-mentor" id="subtitle"]]
+[[!template text="""Sasha, thanks for the organizing energy""" start="01:13:29.640" video="qanda-mentor" id="subtitle"]]
+[[!template text="""you've put into this. Plasma Strike,""" start="01:13:31.680" video="qanda-mentor" id="subtitle"]]
+[[!template text="""thank you for your presentation.""" start="01:13:32.800" video="qanda-mentor" id="subtitle"]]
+[[!template text="""I love this conference.""" start="01:13:34.860" video="qanda-mentor" id="subtitle"]]
+[[!template text="""So thank you very much.""" start="01:13:36.660" video="qanda-mentor" id="subtitle"]]
+[[!template text="""And now have a good rest of your Sunday.""" start="01:13:41.760" video="qanda-mentor" id="subtitle"]]
+[[!template text="""Bye.""" start="01:13:43.100" video="qanda-mentor" id="subtitle"]]
+
+</div>Questions or comments? Please e-mail [jeremy@jeremyfriesen.com](mailto:jeremy@jeremyfriesen.com?subject=Comment%20for%20EmacsConf%202023%20mentor%3A%20Mentoring%20VS-Coders%20as%20an%20Emacsian%20%28or%20How%20to%20show%20not%20tell%20people%20about%20the%20wonders%20of%20Emacs%29)
<!-- End of emacsconf-publish-after-page -->
diff --git a/2023/info/mentor-before.md b/2023/info/mentor-before.md
index f1f6f49a..114baf27 100644
--- a/2023/info/mentor-before.md
+++ b/2023/info/mentor-before.md
@@ -1,12 +1,18 @@
<!-- Automatically generated by emacsconf-publish-before-page -->
[[!toc ]]
-Format: 10-min talk followed by live web conference Q&A
-Discuss on IRC: [#emacsconf](https://chat.emacsconf.org/?join=emacsconf)
-Status: Waiting for video from speaker
+Format: 11-min talk ; Q&A: BigBlueButton conference room
+Status: TO_INDEX_QA
+# Talk
+
+<div class="vid mainVideo"><video controls preload="none" id="mainVideo-mentor"><source src="https://media.emacsconf.org/2023/emacsconf-2023-mentor--mentoring-vscoders-as-an-emacsian-or-how-to-show-not-tell-people-about-the-wonders-of-emacs--jeremy-friesen--main.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2023/captions/emacsconf-2023-mentor--mentoring-vscoders-as-an-emacsian-or-how-to-show-not-tell-people-about-the-wonders-of-emacs--jeremy-friesen--main.vtt" default />"""<p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video><div></div>Duration: 10:44 minutes<div class="files resources"><ul><li><a href="https://pad.emacsconf.org/2023-mentor">Open Etherpad</a></li><li><a href="https://bbb.emacsverse.org/playback/presentation/2.0/playback.html?meetingId=d3faf3bd5abcc5316e6a997b22b29d962480ad5c-1701630488401">Play recording from BigBlueButton</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-mentor--mentoring-vscoders-as-an-emacsian-or-how-to-show-not-tell-people-about-the-wonders-of-emacs--jeremy-friesen--intro.vtt">Download --intro.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-mentor--mentoring-vscoders-as-an-emacsian-or-how-to-show-not-tell-people-about-the-wonders-of-emacs--jeremy-friesen--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-mentor--mentoring-vscoders-as-an-emacsian-or-how-to-show-not-tell-people-about-the-wonders-of-emacs--jeremy-friesen--main.opus">Download --main.opus (6.2MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-mentor--mentoring-vscoders-as-an-emacsian-or-how-to-show-not-tell-people-about-the-wonders-of-emacs--jeremy-friesen--main.vtt">Download --main.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-mentor--mentoring-vscoders-as-an-emacsian-or-how-to-show-not-tell-people-about-the-wonders-of-emacs--jeremy-friesen--main.webm">Download --main.webm (26MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-mentor--mentoring-vscoders-as-an-emacsian-or-how-to-show-not-tell-people-about-the-wonders-of-emacs--jeremy-friesen.pdf">Download .pdf</a></li><li><a href="https://toobnix.org/w/sV9eKtGiPYZi5urxjoqerv">View on Toobnix</a></li><li><a href="https://www.youtube.com/watch?v=44rt1f1llhQ">View on Youtube</a></li></ul></div></div>
+
+# Q&A
+
+<div class="vid qanda"><video controls preload="none" id="qanda-mentor"><source src="https://media.emacsconf.org/2023/emacsconf-2023-mentor--mentoring-vscoders-as-an-emacsian-or-how-to-show-not-tell-people-about-the-wonders-of-emacs--jeremy-friesen--answers.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2023/captions/emacsconf-2023-mentor--mentoring-vscoders-as-an-emacsian-or-how-to-show-not-tell-people-about-the-wonders-of-emacs--jeremy-friesen--answers.vtt" default />"""<p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video><div>Listen to just the audio:<br /><audio controls preload="none" id="qanda-mentor-audio" src="https://media.emacsconf.org/2023/emacsconf-2023-mentor--mentoring-vscoders-as-an-emacsian-or-how-to-show-not-tell-people-about-the-wonders-of-emacs--jeremy-friesen--answers.opus"></audio></div><div></div>Duration: 1:13:43 minutes<div class="files resources"><ul><li><a href="https://pad.emacsconf.org/2023-mentor">Open Etherpad</a></li><li><a href="https://bbb.emacsverse.org/playback/presentation/2.0/playback.html?meetingId=d3faf3bd5abcc5316e6a997b22b29d962480ad5c-1701630488401">Play recording from BigBlueButton</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-mentor--mentoring-vscoders-as-an-emacsian-or-how-to-show-not-tell-people-about-the-wonders-of-emacs--jeremy-friesen--answers--trimmed.webm">Download --answers--trimmed.webm (176MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-mentor--mentoring-vscoders-as-an-emacsian-or-how-to-show-not-tell-people-about-the-wonders-of-emacs--jeremy-friesen--answers.opus">Download --answers.opus (25MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-mentor--mentoring-vscoders-as-an-emacsian-or-how-to-show-not-tell-people-about-the-wonders-of-emacs--jeremy-friesen--answers.vtt">Download --answers.vtt</a> (unedited)</li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-mentor--mentoring-vscoders-as-an-emacsian-or-how-to-show-not-tell-people-about-the-wonders-of-emacs--jeremy-friesen--answers.webm">Download --answers.webm (176MB)</a></li></ul></div></div>
# Description
<!-- End of emacsconf-publish-before-page --> \ No newline at end of file
diff --git a/2023/info/mentor-nav.md b/2023/info/mentor-nav.md
index bcfc9149..66cf8ef4 100644
--- a/2023/info/mentor-nav.md
+++ b/2023/info/mentor-nav.md
@@ -1,7 +1,7 @@
<div class="talk-nav">
Back to the [[talks]]
-Previous by track: <a href="/2023/talks/emms">Emacs MultiMedia System (EMMS)</a>
-Next by track: <a href="/2023/talks/hn">The many ways to browse Hacker News from Emacs</a>
-Track: <span class="sched-track General">General</span>
+Previous by track: <a href="/2023/talks/steno">Programming with steno</a>
+Next by track: <a href="/2023/talks/web">Emacs saves the Web (maybe)</a>
+Track: <span class="sched-track General">General</span> - <strong><a href="https://emacsconf.org/2023/watch/gen">Watch</a></strong>
</div>
diff --git a/2023/info/nabokov-after.md b/2023/info/nabokov-after.md
index 208fc59b..1e45bfcc 100644
--- a/2023/info/nabokov-after.md
+++ b/2023/info/nabokov-after.md
@@ -1,7 +1,500 @@
<!-- Automatically generated by emacsconf-publish-after-page -->
-Questions or comments? Please e-mail [ewj@inkwellandoften.com](mailto:ewj@inkwellandoften.com?subject=Comment%20for%20EmacsConf%202022%20nabokov%3A%20Why%20Nabokov%20would%20use%20Org-Mode%20if%20he%20were%20writing%20today)
+<div class="transcript transcript-mainVideo"><a name="nabokov-mainVideo-transcript"></a><h1>Transcript</h1>
+
+
+<div class="transcript-heading">[[!template new="1" text="""Introduction""" start="00:00:00.000" video="mainVideo-nabokov" id="subtitle"]]</div>[[!template text="""Hello, fellow Emacs enthusiasts.""" start="00:00:00.000" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""My name is Edmund Jorgensen.""" start="00:00:05.240" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""I'm a software engineer by day,""" start="00:00:06.800" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""but by night I love to write novels,""" start="00:00:08.520" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""and I lean on Emacs heavily""" start="00:00:10.600" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""for both of these activities.""" start="00:00:11.774" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""Today, I would like to talk to you about how Emacs,""" start="00:00:13.760" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""specifically with Org mode,""" start="00:00:15.880" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""has helped me manage some of the practical""" start="00:00:17.320" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""difficulties of writing long-form prose,""" start="00:00:18.840" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""novels in my case,""" start="00:00:20.940" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""and I'd like to get at this by talking about how""" start="00:00:22.040" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""another, much more famous novelist managed""" start="00:00:24.320" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""some of those same difficulties in a way""" start="00:00:26.440" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""that makes me suspect he might well use Emacs""" start="00:00:28.360" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""and Org mode himself""" start="00:00:30.874" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""if he were still alive and writing today.""" start="00:00:31.960" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""This talk will probably be""" start="00:00:34.520" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""of the most interest to listeners""" start="00:00:35.600" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""who either already write long-form prose in Emacs""" start="00:00:36.960" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""or are considering doing so,""" start="00:00:39.240" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""but I think that anyone""" start="00:00:40.880" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""with an interest in literature or Emacs""" start="00:00:42.040" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""will find something to take away.""" start="00:00:44.080" video="mainVideo-nabokov" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Nabokov's process of writing novels""" start="00:00:45.760" video="mainVideo-nabokov" id="subtitle"]]</div>[[!template text="""So let's get to it.""" start="00:00:45.760" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""Here's a picture of a man lying on a bed,""" start="00:00:51.120" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""writing something on an index card.""" start="00:00:53.920" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""If we didn't know any better,""" start="00:00:56.000" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""we might think that he was just jotting down""" start="00:00:57.520" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""a recipe for beef stew or something like that.""" start="00:00:58.960" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""But in fact, this is not just any old man.""" start="00:01:01.680" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""This is Vladimir Nabokov, one of the most""" start="00:01:03.840" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""celebrated novelists of the 20th century,""" start="00:01:06.174" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""and he's not jotting down""" start="00:01:08.080" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""a recipe for beef stew in this picture.""" start="00:01:09.280" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""He's actually hard at work here,""" start="00:01:11.480" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""composing a classic of English literature""" start="00:01:12.760" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""on an index card.""" start="00:01:15.007" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""That's how he wrote all his novels, in fact,""" start="00:01:16.560" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""on index cards.""" start="00:01:18.800" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""I don't mean that he just took notes on these cards""" start="00:01:20.160" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""or wrote outlines on them.""" start="00:01:22.760" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""He did both of those things as well,""" start="00:01:24.160" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""but he also wrote the actual prose of his novels,""" start="00:01:25.680" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""word by word, sentence by sentence, on index cards.""" start="00:01:28.920" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""Let's see what that looked like at scale.""" start="00:01:32.800" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""This box you see here,""" start="00:01:37.360" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""full of groups of bundled cards,""" start="00:01:39.440" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""is what a novel in progress looked like for Nabokov.""" start="00:01:41.240" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""If you squint, you can see that these cards""" start="00:01:43.920" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""were from the composition of Lolita,""" start="00:01:46.080" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""probably his most famous novel.""" start="00:01:47.640" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""So why did he write novels on index cards?""" start="00:01:50.560" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""It's not necessarily an obvious choice.""" start="00:01:53.720" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""Yes, sadly, Emacs wasn't available to him at the time,""" start="00:01:56.040" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""but most writers in his day,""" start="00:01:59.000" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""if they weren't using typewriters,""" start="00:02:01.240" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""which were available,""" start="00:02:02.640" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""were using notebooks or loose-leaf sheets""" start="00:02:03.920" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""or something like that.""" start="00:02:06.000" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""Not these tiny little index cards.""" start="00:02:07.360" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""But Nabokov loved index cards.""" start="00:02:09.960" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""He swore by them because they represented""" start="00:02:11.920" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""an elegant solution""" start="00:02:14.360" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""to three of the most pressing practical problems""" start="00:02:15.200" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""that every novelist faces.""" start="00:02:18.000" video="mainVideo-nabokov" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Three practical problems novelists face""" start="00:02:24.080" video="mainVideo-nabokov" id="subtitle"]]</div>[[!template text="""Writing a good novel""" start="00:02:24.080" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""is artistically difficult, of course.""" start="00:02:25.307" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""You have to write something interesting""" start="00:02:27.480" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""with a good story,""" start="00:02:28.960" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""something that people want to read.""" start="00:02:30.107" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""But writing any novel at all,""" start="00:02:31.920" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""whether it's good or bad,""" start="00:02:33.520" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""is brutally, practically difficult.""" start="00:02:35.000" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""You're hacking something like 100,000 words""" start="00:02:37.720" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""into unified shape over a long period of time,""" start="00:02:39.920" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""months or years.""" start="00:02:42.440" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""There are organizational challenges""" start="00:02:43.800" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""inherent in that process,""" start="00:02:45.720" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""and each writer needs practical techniques""" start="00:02:46.960" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""to manage those challenges.""" start="00:02:48.920" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""The most basic challenge, of course, is that,""" start="00:02:51.080" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""unless you're trying to bring back""" start="00:02:53.400" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""the Homeric Bard tradition""" start="00:02:55.360" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""of reciting books from memory in firelit halls,""" start="00:02:57.040" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""you need to actually set down""" start="00:02:59.600" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""those 100,000 words on some medium.""" start="00:03:01.200" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""In Nabokov's case, index cards worked fine for this.""" start="00:03:03.320" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""A little cramped, maybe, but workable.""" start="00:03:05.840" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""Secondly, as you're writing,""" start="00:03:08.440" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""you're bound to think of little but important things""" start="00:03:09.680" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""about the story that you want to record.""" start="00:03:11.720" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""I'm not talking here about big thematic notes""" start="00:03:13.920" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""or research that can go in a separate document,""" start="00:03:16.207" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""but smaller, more contextual notes""" start="00:03:19.040" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""that belong right along the prose that they refer to.""" start="00:03:21.160" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""These might be reminders, like,""" start="00:03:23.880" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""&quot;Remember to clean up this sentence,&quot;""" start="00:03:26.640" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""or questions for yourself""" start="00:03:28.520" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""to consider during rewrites, like,""" start="00:03:29.707" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""&quot;Why does Shirley feel this way here?&quot;""" start="00:03:31.907" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""Nabokov recorded these notes""" start="00:03:33.240" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""in the margins of his cards or on the backs.""" start="00:03:35.600" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""Paper, in general, is great for this kind of""" start="00:03:37.560" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""intertextual note-taking.""" start="00:03:40.000" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""That's not particular to index cards.""" start="00:03:41.040" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""But what Nabokov really loved about index cards""" start="00:03:44.600" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""was how they solved the novelist's""" start="00:03:47.920" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""third and most difficult practical problem,""" start="00:03:49.520" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""which is imposing some kind of structure""" start="00:03:52.120" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""on this mountain of words.""" start="00:03:54.280" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""To have any hope of wrangling a novel into being,""" start="00:03:55.600" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""you need some way to break it down""" start="00:03:58.520" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""into parts, chapters, scenes, snatches of dialogue.""" start="00:04:00.120" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""You need some kind of higher-level outline""" start="00:04:03.640" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""that you can read, navigate, and rearrange""" start="00:04:05.840" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""as you consider and reconsider your story.""" start="00:04:08.000" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""You need structure.""" start="00:04:09.920" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""Index cards gave Nabokov a really powerful way""" start="00:04:11.920" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""to impose this structure""" start="00:04:14.880" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""because they created small, independent""" start="00:04:16.240" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""chunks of prose""" start="00:04:18.560" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""that he could bundle together into groups,""" start="00:04:19.000" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""like we saw in the box.""" start="00:04:21.360" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""This let him navigate his novel in progress quickly.""" start="00:04:22.760" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""He could just flip through those bundles,""" start="00:04:31.960" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""bundle by bundle, instead of card by card.""" start="00:04:33.800" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""He could also impose on""" start="00:04:36.120" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""and modify the structure of his novel""" start="00:04:38.240" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""just by shuffling those bundles around.""" start="00:04:40.080" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""So that's why Nabokov loved index cards""" start="00:04:42.000" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""for writing novels.""" start="00:04:45.307" video="mainVideo-nabokov" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Org mode for writing novels""" start="00:04:46.560" video="mainVideo-nabokov" id="subtitle"]]</div>[[!template text="""Now I'd love to talk about""" start="00:04:46.560" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""why I love Org mode so much for writing novels""" start="00:04:48.760" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""and how it helps me tackle those same challenges.""" start="00:04:51.280" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""The first practical challenge,""" start="00:04:54.000" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""recording your words on some medium,""" start="00:05:01.760" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""is pretty simple.""" start="00:05:03.760" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""Org mode is a part of Emacs,""" start="00:05:04.774" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""a text editor, so you can just type in your text.""" start="00:05:06.440" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""We're not going to spend any more time on that.""" start="00:05:09.200" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""For the second practical challenge,""" start="00:05:10.920" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""recording small intertextual notes,""" start="00:05:13.440" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""Org mode offers comments, like this one here.""" start="00:05:16.040" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""The comment, &quot;maybe I need to say which store?&quot;,""" start="00:05:19.040" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""with the leading pound sign there.""" start="00:05:21.960" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""I think that comments are generally""" start="00:05:23.240" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""underappreciated outside of coding.""" start="00:05:25.874" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""When writing fiction, for example,""" start="00:05:28.240" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""I love that Org mode lets me keep these comments""" start="00:05:29.800" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""close to the prose they refer to.""" start="00:05:32.360" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""I can see right here that I'm talking about""" start="00:05:33.960" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""saying which store in this first line,""" start="00:05:37.160" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""&quot;One day, Bob went to the store.&quot;""" start="00:05:39.120" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""I get to keep these things close to""" start="00:05:40.600" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""the prose they refer to""" start="00:05:44.000" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""without ever having to worry that""" start="00:05:45.000" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""they'll accidentally be exported to a reader.""" start="00:05:46.520" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""That's great.""" start="00:05:48.480" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""So let's talk about how Org Mode handles the third""" start="00:05:50.540" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""and most brutal challenge of all, which is structure.""" start="00:05:52.807" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""Here we've taken the same text""" start="00:06:00.920" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""and we've imposed some structure on it.""" start="00:06:03.040" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""Like index cards,""" start="00:06:04.880" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""this is where Org mode really shines.""" start="00:06:07.807" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""Org mode extends outline mode,""" start="00:06:09.640" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""which is built around the concept of header lines,""" start="00:06:12.000" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""with different levels denoted by""" start="00:06:14.360" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""different numbers of leading asterisks (`*`).""" start="00:06:15.960" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""Personally, I tend to use top line headers""" start="00:06:18.080" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""as chapters and second line headers as scenes.""" start="00:06:20.974" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""You can see that here, where chapter one says""" start="00:06:23.360" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""&quot;Bob and Shirley meet.&quot;""" start="00:06:26.080" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""Here's a scene, &quot;Bob goes to the store.&quot;""" start="00:06:27.320" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""And here below is chapter two, yet unwritten,""" start="00:06:29.600" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""where Bob goes to work.""" start="00:06:32.640" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""Pretty exciting. Since Org mode supports folding,""" start="00:06:34.320" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""I can read quickly through a summary of my novel""" start="00:06:39.680" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""at either the chapter or the scene level""" start="00:06:42.160" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""just by flipping through different levels of""" start="00:06:44.080" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""visibility, just like Nabokov could flip through""" start="00:06:46.240" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""different bundles of cards.""" start="00:06:48.800" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""So here's the chapter level.""" start="00:06:51.307" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""I can see at a chapter level,""" start="00:06:52.600" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""&quot;Bob and Shirley meet&quot;, &quot;Bob goes to work.&quot;""" start="00:06:54.720" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""And then I can get one level more specific""" start="00:06:56.680" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""and see the various scenes in the chapter""" start="00:06:59.080" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""at the second header level.""" start="00:07:01.160" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""And I can, if I want,""" start="00:07:02.960" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""I can go all the way back to the prose level.""" start="00:07:04.000" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""And just like Nabokov shuffling""" start="00:07:10.360" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""his index cards around,""" start="00:07:12.774" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""I can move scenes around as logical units.""" start="00:07:14.040" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""Let's say, for example,""" start="00:07:16.760" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""that we wanted to move Bob's thoughts about life,""" start="00:07:18.200" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""which are down here, up further.""" start="00:07:20.400" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""Well, I can grab &quot;Bob thinks about life,&quot;""" start="00:07:22.920" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""and I can move it up or down as a logical unit.""" start="00:07:26.960" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""But Org mode offers some even more powerful tricks""" start="00:07:30.480" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""for structuring and navigating your novel,""" start="00:07:34.720" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""beyond what even index cards can do.""" start="00:07:36.520" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""For example, you can use tags""" start="00:07:38.560" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""on your scene headings. You can see these here.""" start="00:07:41.974" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""They're the prominent colon separated words""" start="00:07:44.480" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""on the header lines.""" start="00:07:46.600" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""In this case, I'm using `bob` and `shirley`.""" start="00:07:47.560" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""These tags can represent characters""" start="00:07:49.840" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""who appear in the scene,""" start="00:07:52.720" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""which is what I'm doing here,""" start="00:07:53.674" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""or locations in which the scenes occur,""" start="00:07:54.640" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""or plot lines that the scenes further,""" start="00:07:57.207" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""really anything that you want.""" start="00:07:59.160" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""And you can then use Org mode's sparse view features""" start="00:08:00.480" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""to query a set of tags and trim your novel down to""" start="00:08:04.240" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""a subset of related scenes.""" start="00:08:07.560" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""For example, let's say we want to filter down to""" start="00:08:09.520" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""only the scenes in which Shirley appears.""" start="00:08:12.560" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""This could allow us to read quickly through""" start="00:08:14.800" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""just a subset of the prose,""" start="00:08:25.760" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""the prose that referred to Shirley in some way.""" start="00:08:27.440" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""Maybe we want to do that""" start="00:08:29.600" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""to check continuity for her character,""" start="00:08:31.360" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""or make sure that her character develops""" start="00:08:33.280" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""along a compelling arc,""" start="00:08:35.520" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""or even just to get a sense""" start="00:08:37.000" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""of how much airtime she gets in the novel.""" start="00:08:38.320" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""Thanks for listening to this whirlwind exploration""" start="00:08:44.040" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""of some of the practical challenges of writing""" start="00:08:49.760" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""novels and other long-form prose,""" start="00:08:51.880" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""and how Org mode can help tackle them.""" start="00:08:53.600" video="mainVideo-nabokov" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Takeaways and next steps""" start="00:08:55.600" video="mainVideo-nabokov" id="subtitle"]]</div>[[!template text="""I'd like to leave you with a couple takeaways""" start="00:08:55.600" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""and next steps for those who are interested.""" start="00:08:57.880" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""First, if you're writing a novel""" start="00:08:59.760" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""or other long-form prose,""" start="00:09:01.907" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""or even considering doing so,""" start="00:09:02.841" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""take a look at Org mode,""" start="00:09:04.874" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""especially if you're already familiar with Emacs.""" start="00:09:06.108" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""It won't solve the artistic problem""" start="00:09:08.375" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""of writing an interesting book for you,""" start="00:09:10.475" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""not even with a ChatGPT plugin,""" start="00:09:11.875" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""but it's a fantastic tool for managing""" start="00:09:13.908" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""some of the practical challenges""" start="00:09:15.875" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""that come with hacking 100,000 words into shape""" start="00:09:16.875" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""over the months or years that that process takes.""" start="00:09:19.841" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""Second, if you're interested in learning more""" start="00:09:22.741" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""about some of the advanced features of Org mode""" start="00:09:25.840" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""and how they can help in this process,""" start="00:09:27.960" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""I wrote a long blog post about my difficulties""" start="00:09:29.520" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""writing a novel with 13 interconnected subplots,""" start="00:09:32.320" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""and how Emacs and Org mode saved it from imploding.""" start="00:09:34.880" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""I'll put a link here below. [ewj.io/emacs]""" start="00:09:37.760" video="mainVideo-nabokov" id="subtitle"]]
+[[!template text="""Thanks for listening, and Emacs on!""" start="00:09:44.000" video="mainVideo-nabokov" id="subtitle"]]
+
+</div>
+
+Captioner: bhavin192
+
+<div class="transcript transcript-qanda"><a name="nabokov-qanda-transcript"></a><h1>Q&A transcript (unedited)</h1>
+
+[[!template text="""[Speaker 0]: About 3""" start="00:00:03.560" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""seconds. And I believe we are live.""" start="00:00:16.020" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""Hi Edmund, how are you doing?""" start="00:00:17.280" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""[Speaker 1]: Hi, how's it going Leo?""" start="00:00:19.240" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""I'm doing well, thanks.""" start="00:00:20.279" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""Yourself?""" start="00:00:20.560" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""[Speaker 0]: I'm also doing well. So Edmund doesn't have""" start="00:00:24.480" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""his webcam on but he will be able to answer""" start="00:00:26.980" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""questions that you ask inside of the Azure""" start="00:00:29.960" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""pad that I've shared again on IRC.""" start="00:00:32.159" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""By the way, we only have 1 question and we""" start="00:00:35.440" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""have about 40 minutes of question time,""" start="00:00:37.120" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""so feel free to add as many questions as you""" start="00:00:40.380" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""want and in the meantime,""" start="00:00:41.940" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""we'll get started on the first 1.""" start="00:00:43.380" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""Unless, Edmond, do you have anything to say""" start="00:00:45.020" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""after your presentation?""" start="00:00:45.920" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""[Speaker 1]: No, we can jump in.""" start="00:00:48.280" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""[Speaker 0]: Okay, lovely. So first question,""" start="00:00:51.560" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""is the index, sorry, does the index really""" start="00:00:54.940" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""matter here? I mean his colleague is also""" start="00:00:57.840" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""using some A4 paper and you think that the""" start="00:01:00.380" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""index card is the most important thing here?""" start="00:01:02.400" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""[Speaker 1]: That's a great question.""" start="00:01:04.540" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""I mean, I think you can do anything with a""" start="00:01:08.000" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""larger piece of paper that you can do with a""" start="00:01:09.520" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""smaller piece of paper.""" start="00:01:10.240" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""But I actually encourage you to try this out.""" start="00:01:12.280" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""I did, not for research for this talk,""" start="00:01:14.820" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""but just when I read about Nabokov and his""" start="00:01:17.040" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""index cards to begin with,""" start="00:01:18.160" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""I kind of tried it out a little bit and wrote""" start="00:01:20.380" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""some shorter things on index cards and so on""" start="00:01:22.480" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""and there really is something about the size""" start="00:01:24.640" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""and the kind of ability to manipulate them.""" start="00:01:27.940" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""You really can bundle them and move them""" start="00:01:30.200" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""around easier and I think that that I think""" start="00:01:33.420" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""he enjoyed that. So sure I mean I think you""" start="00:01:35.800" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""can do anything with a4 paper that you could""" start="00:01:37.540" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""do with index cards but I think there's""" start="00:01:38.860" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""something about that form that lends itself""" start="00:01:40.760" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""to the especially to the reorganization maybe""" start="00:01:43.840" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""to the focus as well just because it's""" start="00:01:45.540" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""smaller but but definitely to the""" start="00:01:47.060" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""reorganization.""" start="00:01:47.220" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""[Speaker 0]: Definitely So we have a lot more questions""" start="00:01:53.600" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""now. So thank you, everyone,""" start="00:01:54.640" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""for answering my plea for more questions.""" start="00:01:56.479" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""Next question. How do you explore the second""" start="00:01:59.760" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""level headings, i.e. The scenes in this""" start="00:02:01.880" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""example, without the heading itself,""" start="00:02:03.600" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""just the content? Is that clear enough?""" start="00:02:05.740" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""[Speaker 1]: Great question. Yeah, so I've tried 2 ways,""" start="00:02:09.240" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""sorry, 3 ways with this and landed on 1 that""" start="00:02:13.280" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""I like. Originally I used the OX package.""" start="00:02:16.080" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""There's an OX ignore thing in there where you""" start="00:02:20.080" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""can add an ignore tag to where you don't want""" start="00:02:23.240" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""the headings, but you do want the content""" start="00:02:24.720" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""exported. I found that a little bit annoying,""" start="00:02:26.920" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""just visually annoying,""" start="00:02:27.940" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""when I'm, again, My theme here is navigating""" start="00:02:31.320" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""100,000 word documents effectively and having""" start="00:02:34.840" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""that extra visual noise was kind of a pain.""" start="00:02:36.900" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""So I ended up, first I just did like a dumb""" start="00:02:40.520" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""ox script as part of my publication kind of""" start="00:02:43.040" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""pipeline that removed headlines at the scene""" start="00:02:47.720" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""level. And then actually,""" start="00:02:48.940" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""because I ended up leaning so heavily on""" start="00:02:50.980" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""Pandoc, and Pandoc, for those of you who have""" start="00:02:53.680" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""not looked at recent versions of Pandoc,""" start="00:02:56.200" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""they've got a really fantastic way to use Lua""" start="00:03:00.920" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""at this point to write filters.""" start="00:03:02.420" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""So you can kind of take the AST of your""" start="00:03:04.940" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""document and run these very simple Lua""" start="00:03:07.120" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""filters over it. They used to be in Haskell,""" start="00:03:09.140" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""which I'm not smart enough to write Haskell""" start="00:03:11.780" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""is 1 of the things that I've discovered.""" start="00:03:13.140" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""I keep bouncing off of it,""" start="00:03:14.440" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""but I'm just smart enough to write Lua.""" start="00:03:16.360" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""And so I use a Lua filter now,""" start="00:03:19.480" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""which I'm happy to publish to anyone who's""" start="00:03:21.180" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""interested. That basically lets me say,""" start="00:03:22.880" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""you know, what level headings to get rid of""" start="00:03:27.440" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""the heading, but publish the content.""" start="00:03:28.740" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""And part of the reason that's been useful is""" start="00:03:30.320" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""that some of the other novels I'm working on""" start="00:03:31.920" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""for example have different levels of""" start="00:03:33.540" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""hierarchy where maybe there's a part and then""" start="00:03:35.640" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""you know at the top level and then chapter""" start="00:03:37.260" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""and then scene and it's now the third level""" start="00:03:39.160" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""instead of the second and it's much easier in""" start="00:03:41.400" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""the Lua to just be like remove the third""" start="00:03:43.840" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""level headings or the second level headings""" start="00:03:45.400" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""or whatever it is so that's been that's been""" start="00:03:47.680" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""helpful.""" start="00:03:47.860" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""[Speaker 0]: Great, Moving on to the next question,""" start="00:03:53.040" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""slightly off topic, where can we see your""" start="00:03:58.120" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""novels?""" start="00:03:58.260" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""[Speaker 1]: Oh well yeah, you can,""" start="00:04:01.060" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""they're on Amazon, there's 2 of them and a""" start="00:04:05.500" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""book of short stories.""" start="00:04:06.160" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""I think the short stories and the second""" start="00:04:10.120" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""novel, which is called World Enough in Time,""" start="00:04:11.960" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""which is the 1 that kind of prompted this""" start="00:04:13.940" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""talk, are probably of more interest to this,""" start="00:04:16.160" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""to the Emacs focused group.""" start="00:04:18.320" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""The first one's like a philosophical murder""" start="00:04:20.380" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""mystery, but the World Enough in Time is a""" start="00:04:25.240" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""kind of Douglas Adams inspired sci-fi comedy""" start="00:04:29.820" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""about kind of hijinks on a relativistic speed""" start="00:04:34.440" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""space cruiser, which was a lot of fun to""" start="00:04:37.360" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""write. It has a lot of twisty subplots,""" start="00:04:38.980" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""which is where I developed that technique of""" start="00:04:42.500" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""being able to filter down to tags and see a""" start="00:04:46.560" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""reduced version of the novel,""" start="00:04:47.840" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""which was very handy when trying to juggle 13""" start="00:04:51.560" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""subplots. So yeah, check it out.""" start="00:04:53.520" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""[Speaker 0]: Great, we'll make sure that you have the""" start="00:04:57.240" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""links available on the talk page afterwards.""" start="00:04:59.860" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""Right now I sadly have to host so I cannot""" start="00:05:03.420" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""look up the links but we'll make sure or if""" start="00:05:05.680" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""[Speaker 1]: I put it in there for you.""" start="00:05:08.100" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""[Speaker 0]: anyone in the chat... Oh you did?""" start="00:05:09.020" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""Yeah. In the meantime we'll move on to the""" start="00:05:13.800" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""next question. Have you looked at the Denote""" start="00:05:16.560" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""signature features? The hierarchical nature""" start="00:05:19.700" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""of Lumen's ideas and index cards works well""" start="00:05:23.180" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""with Denote signatures.""" start="00:05:24.100" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""So are you familiar with Denote first?""" start="00:05:26.120" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""[Speaker 1]: I am not. No, it sounds like something that I""" start="00:05:28.740" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""should check out.""" start="00:05:29.240" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""[Speaker 0]: Yeah, Denote is a way to work with slip""" start="00:05:33.080" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""boxes. We talked a little bit about it""" start="00:05:35.460" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""earlier today. We talked about Orgroam,""" start="00:05:37.240" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""we talked about Denote as well as a lighter""" start="00:05:40.600" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""alternative to Orgroam.""" start="00:05:41.580" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""And yeah, the organization with index cards""" start="00:05:45.520" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""feels like it's something that would highly""" start="00:05:47.360" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""benefit from linking and back links and any""" start="00:05:50.740" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""kind of UX functionality for relating pieces""" start="00:05:53.880" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""of information. So yeah,""" start="00:05:56.680" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""definitely look it up.""" start="00:05:57.620" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""[Speaker 1]: Yeah, I'm a heavy org-roam user.""" start="00:06:00.040" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""I use org-roam for a lot of different stuff""" start="00:06:03.280" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""and I would love, I will definitely check out""" start="00:06:05.740" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""Denote as an alternative.""" start="00:06:06.740" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""[Speaker 0]: Sure, I'm not particularly personally""" start="00:06:09.520" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""familiar with what Signature is within Denote""" start="00:06:11.720" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""and it'd be great if the person who asked the""" start="00:06:13.940" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""question could perhaps provide more details""" start="00:06:15.580" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""so that Edmund could get a little more""" start="00:06:17.980" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""information when he returns to the document.""" start="00:06:20.000" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""But yeah, if you're using Org-ROM,""" start="00:06:21.480" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""you're already within the mindset that you""" start="00:06:25.140" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""need, and perhaps you'd gain a little bit""" start="00:06:27.180" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""extra stuff from using Dino's signature,""" start="00:06:29.260" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""I assume. We have 8 minutes.""" start="00:06:32.920" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""We're still good on time.""" start="00:06:34.040" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""Next question, do you have a workflow""" start="00:06:36.500" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""combining handwritten index cards and org""" start="00:06:39.020" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""mode?""" start="00:06:39.360" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""[Speaker 1]: Great question. I do not.""" start="00:06:42.400" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""I do write by hand when I get,""" start="00:06:46.620" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""I don't know what a good term for it is,""" start="00:06:49.120" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""I'll call it like editorial paralysis or""" start="00:06:51.420" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""something when I find it very hard to move""" start="00:06:53.100" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""forward in something because I keep going""" start="00:06:54.720" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""back and tweaking. And I will handwrite stuff""" start="00:06:56.940" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""at that point and then type it in because""" start="00:06:58.520" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""it's so much harder to get stuck in editing""" start="00:07:02.120" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""mode when you have to move forward on the""" start="00:07:04.480" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""page. I don't use index cards.""" start="00:07:07.360" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""In the blog article that I link in my talk,""" start="00:07:11.680" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""the ewj.io slash emacs 1,""" start="00:07:14.400" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""I did try using handwritten or spreadsheet""" start="00:07:18.240" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""outlines at 1 point and found them very,""" start="00:07:22.360" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""very clumsy for novel writing just because I""" start="00:07:27.640" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""do so much, I mean, I do so much revision""" start="00:07:29.820" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""that moving things around meant that I had to""" start="00:07:32.600" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""keep 2 things in sync with each other,""" start="00:07:34.480" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""the pros and the outline.""" start="00:07:35.440" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""And that was what really led me to Org Mode""" start="00:07:37.540" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""as a way to keep the, again,""" start="00:07:39.800" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""I think part of the key for me is keeping the""" start="00:07:42.040" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""outline and the pros right next to each other""" start="00:07:44.580" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""in a way that they move around which is just""" start="00:07:46.440" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""really, I don't know, for me really really""" start="00:07:48.800" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""powerful.""" start="00:07:49.000" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""[Speaker 0]: Okay great, so we finished the list of""" start="00:07:54.280" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""questions available on the pad,""" start="00:07:55.840" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""but I see that some people have joined us on""" start="00:07:58.260" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""BBB, so hi everyone. If you have any""" start="00:08:01.100" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""questions feel free to unmute yourself and""" start="00:08:03.340" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""ask them. Otherwise, we might go on a break.""" start="00:08:06.560" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""So I'm going to give you about 10 seconds to""" start="00:08:08.360" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""unmute yourself. Or if you just want to add""" start="00:08:14.480" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""more questions on the pad,""" start="00:08:15.660" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""that's also fine. And that'll give you about""" start="00:08:17.680" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""30 seconds. Otherwise,""" start="00:08:19.540" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""we'll need to go on a break.""" start="00:08:20.660" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""And in the meantime, I'll thank you,""" start="00:08:24.020" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""Edmund, for your presentation,""" start="00:08:25.600" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""because it's always nice,""" start="00:08:27.880" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""you know, we The reason why we have 2 tracks,""" start="00:08:31.400" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""and we've been having 2 tracks for the last 2""" start="00:08:34.200" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""or 3 editions of EmacsConf is because it's""" start="00:08:36.039" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""really nice to have those talks which are""" start="00:08:38.799" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""still related to Emacs and to far distance""" start="00:08:43.500" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""developments because we are obviously using""" start="00:08:45.440" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""packages. But it's really nice to see when we""" start="00:08:48.160" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""foray into other areas like writing or any""" start="00:08:51.960" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""kind of academia-based topics.""" start="00:08:53.400" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""So thank you, it's really nice.""" start="00:08:55.440" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""It brings different colors to the spectrum of""" start="00:09:01.500" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""what EmacsConf is and what ultimately Emacs""" start="00:09:03.580" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""is as well. Thank you.""" start="00:09:04.680" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""[Speaker 1]: Well thanks to everyone who tuned in and Leo""" start="00:09:06.960" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""thanks to you and all the other organizers""" start="00:09:08.160" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""for putting this together.""" start="00:09:09.060" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""Appreciate it.""" start="00:09:09.720" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""[Speaker 0]: Thank you. All right I think we're going to""" start="00:09:12.720" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""go on a little break for 5 minutes because I""" start="00:09:14.380" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""don't see other questions being asked.""" start="00:09:16.060" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""So everyone we'll see you again in 5 minutes""" start="00:09:18.900" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""and thank you again, Edmund.""" start="00:09:19.900" video="qanda-nabokov" id="subtitle"]]
+[[!template text="""[Speaker 1]: Cheers.""" start="00:09:20.720" video="qanda-nabokov" id="subtitle"]]
+
+</div>Questions or comments? Please e-mail [ewj@inkwellandoften.com](mailto:ewj@inkwellandoften.com?subject=Comment%20for%20EmacsConf%202023%20nabokov%3A%20Why%20Nabokov%20would%20use%20Org-Mode%20if%20he%20were%20writing%20today)
<!-- End of emacsconf-publish-after-page -->
diff --git a/2023/info/nabokov-before.md b/2023/info/nabokov-before.md
index f1f6f49a..b24c82de 100644
--- a/2023/info/nabokov-before.md
+++ b/2023/info/nabokov-before.md
@@ -1,12 +1,25 @@
<!-- Automatically generated by emacsconf-publish-before-page -->
[[!toc ]]
-Format: 10-min talk followed by live web conference Q&A
-Discuss on IRC: [#emacsconf](https://chat.emacsconf.org/?join=emacsconf)
-Status: Waiting for video from speaker
+Format: 10-min talk ; Q&A: BigBlueButton conference room
+Status: Q&A to be extracted from the room recordings
+# Talk
+
+<div class="vid mainVideo"><video controls preload="none" id="mainVideo-nabokov"><source src="https://media.emacsconf.org/2023/emacsconf-2023-nabokov--why-nabokov-would-use-orgmode-if-he-were-writing-today--edmund-jorgensen--main.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2023/captions/emacsconf-2023-nabokov--why-nabokov-would-use-orgmode-if-he-were-writing-today--edmund-jorgensen--main.vtt" default />"""<track kind="chapters" label="Chapters" src="/2023/captions/emacsconf-2023-nabokov--why-nabokov-would-use-orgmode-if-he-were-writing-today--edmund-jorgensen--main--chapters.vtt" /><p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video>[[!template id="chapters" vidid="mainVideo-nabokov" data="""
+00:00.000 Introduction
+00:45.760 Nabokov's process of writing novels
+02:24.080 Three practical problems novelists face
+04:46.560 Org mode for writing novels
+08:55.600 Takeaways and next steps
+
+"""]]<div></div>Duration: 09:51 minutes<div class="files resources"><ul><li><a href="https://pad.emacsconf.org/2023-nabokov">Open Etherpad</a></li><li><a href="https://bbb.emacsverse.org/playback/presentation/2.0/playback.html?meetingId=d4fb146b412ea04565adc44dfe1a9162d553b956-1701540322974">Play recording from BigBlueButton</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-nabokov--why-nabokov-would-use-orgmode-if-he-were-writing-today--edmund-jorgensen--intro.vtt">Download --intro.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-nabokov--why-nabokov-would-use-orgmode-if-he-were-writing-today--edmund-jorgensen--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-nabokov--why-nabokov-would-use-orgmode-if-he-were-writing-today--edmund-jorgensen--main--chapters.vtt">Download --main--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-nabokov--why-nabokov-would-use-orgmode-if-he-were-writing-today--edmund-jorgensen--main.opus">Download --main.opus (6.3MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-nabokov--why-nabokov-would-use-orgmode-if-he-were-writing-today--edmund-jorgensen--main.vtt">Download --main.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-nabokov--why-nabokov-would-use-orgmode-if-he-were-writing-today--edmund-jorgensen--main.webm">Download --main.webm (22MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-nabokov--why-nabokov-would-use-orgmode-if-he-were-writing-today--edmund-jorgensen--silence.mkv">Download --silence.mkv (12MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-nabokov--why-nabokov-would-use-orgmode-if-he-were-writing-today--edmund-jorgensen.org">Download .org</a></li><li><a href="https://toobnix.org/w/bDou9TDETryMt18KcdB56A">View on Toobnix</a></li><li><a href="https://www.youtube.com/watch?v=-E_uNxwL2_I">View on Youtube</a></li></ul></div></div>
+
+# Q&A
+
+<div class="vid qanda"><video controls preload="none" id="qanda-nabokov"><source src="https://media.emacsconf.org/2023/emacsconf-2023-nabokov--why-nabokov-would-use-orgmode-if-he-were-writing-today--edmund-jorgensen--answers.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2023/captions/emacsconf-2023-nabokov--why-nabokov-would-use-orgmode-if-he-were-writing-today--edmund-jorgensen--answers.vtt" default />"""<p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video><div>Listen to just the audio:<br /><audio controls preload="none" id="qanda-nabokov-audio" src="https://media.emacsconf.org/2023/emacsconf-2023-nabokov--why-nabokov-would-use-orgmode-if-he-were-writing-today--edmund-jorgensen--answers.opus"></audio></div><div></div>Duration: 09:21 minutes<div class="files resources"><ul><li><a href="https://pad.emacsconf.org/2023-nabokov">Open Etherpad</a></li><li><a href="https://bbb.emacsverse.org/playback/presentation/2.0/playback.html?meetingId=d4fb146b412ea04565adc44dfe1a9162d553b956-1701540322974">Play recording from BigBlueButton</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-nabokov--why-nabokov-would-use-orgmode-if-he-were-writing-today--edmund-jorgensen--answers.json">Download --answers.json</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-nabokov--why-nabokov-would-use-orgmode-if-he-were-writing-today--edmund-jorgensen--answers.opus">Download --answers.opus (3.1MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-nabokov--why-nabokov-would-use-orgmode-if-he-were-writing-today--edmund-jorgensen--answers.vtt">Download --answers.vtt</a> (unedited)</li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-nabokov--why-nabokov-would-use-orgmode-if-he-were-writing-today--edmund-jorgensen--answers.webm">Download --answers.webm (9.1MB)</a></li></ul></div></div>
# Description
<!-- End of emacsconf-publish-before-page --> \ No newline at end of file
diff --git a/2023/info/nabokov-nav.md b/2023/info/nabokov-nav.md
index f7ef3f32..c0a6997d 100644
--- a/2023/info/nabokov-nav.md
+++ b/2023/info/nabokov-nav.md
@@ -3,5 +3,5 @@
Back to the [[talks]]
Previous by track: <a href="/2023/talks/writing">Emacs turbo-charges my writing</a>
Next by track: <a href="/2023/talks/collab">Collaborative data processing and documenting using org-babel</a>
-Track: <span class="sched-track General">General</span>
+Track: <span class="sched-track General">General</span> - <strong><a href="https://emacsconf.org/2023/watch/gen">Watch</a></strong>
</div>
diff --git a/2023/info/one-after.md b/2023/info/one-after.md
index 9832af36..7af4f390 100644
--- a/2023/info/one-after.md
+++ b/2023/info/one-after.md
@@ -1,7 +1,878 @@
<!-- Automatically generated by emacsconf-publish-after-page -->
-Questions or comments? Please e-mail [tony@tonyaldon.com](mailto:tony@tonyaldon.com?subject=Comment%20for%20EmacsConf%202022%20one%3A%20one.el%3A%20the%20static%20site%20generator%20for%20Emacs%20Lisp%20Programmers)
+<div class="transcript transcript-mainVideo"><a name="one-mainVideo-transcript"></a><h1>Transcript</h1>
+
+
+<div class="transcript-heading">[[!template new="1" text="""Introduction""" start="00:00:00.000" video="mainVideo-one" id="subtitle"]]</div>[[!template text="""Hi, everybody. Welcome to the EmacsConf 2023.""" start="00:00:00.000" video="mainVideo-one" id="subtitle"]]
+[[!template text="""I hope you're doing well and you're having fun.""" start="00:00:04.160" video="mainVideo-one" id="subtitle"]]
+[[!template text="""I'm Tony Aldon, and in this talk,""" start="00:00:06.400" video="mainVideo-one" id="subtitle"]]
+[[!template text="""we are going to see how to build a static website""" start="00:00:08.360" video="mainVideo-one" id="subtitle"]]
+[[!template text="""with the package one.el that I wrote.""" start="00:00:11.160" video="mainVideo-one" id="subtitle"]]
+[[!template text="""But before we start, I'd like to thank""" start="00:00:14.520" video="mainVideo-one" id="subtitle"]]
+[[!template text="""all the people who organized that conference,""" start="00:00:17.600" video="mainVideo-one" id="subtitle"]]
+[[!template text="""so thank you all for the great work.""" start="00:00:20.560" video="mainVideo-one" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Documentation""" start="00:00:24.000" video="mainVideo-one" id="subtitle"]]</div>[[!template text="""Now let's jump into the documentation of one.el,""" start="00:00:24.000" video="mainVideo-one" id="subtitle"]]
+[[!template text="""which is built with one.el. In the install page,""" start="00:00:27.720" video="mainVideo-one" id="subtitle"]]
+[[!template text="""we can see that we have a sidebar""" start="00:00:31.680" video="mainVideo-one" id="subtitle"]]
+[[!template text="""with all of the pages in the documentation,""" start="00:00:33.080" video="mainVideo-one" id="subtitle"]]
+[[!template text="""some buttons to switch between pages,""" start="00:00:35.560" video="mainVideo-one" id="subtitle"]]
+[[!template text="""and we also have a table of contents""" start="00:00:39.040" video="mainVideo-one" id="subtitle"]]
+[[!template text="""for some of the pages if we need it.""" start="00:00:41.960" video="mainVideo-one" id="subtitle"]]
+[[!template text="""Now let's jump into one.el repository""" start="00:00:45.120" video="mainVideo-one" id="subtitle"]]
+[[!template text="""and see why I like how it is implemented,""" start="00:00:49.440" video="mainVideo-one" id="subtitle"]]
+[[!template text="""because the website that we've seen,""" start="00:00:52.560" video="mainVideo-one" id="subtitle"]]
+[[!template text="""the documentation, is just one file.""" start="00:00:53.840" video="mainVideo-one" id="subtitle"]]
+[[!template text="""So this is that file, with the headline of level 1""" start="00:00:55.960" video="mainVideo-one" id="subtitle"]]
+[[!template text="""being the web pages.""" start="00:01:00.720" video="mainVideo-one" id="subtitle"]]
+[[!template text="""There needs to be a web page to have the property,""" start="00:01:03.280" video="mainVideo-one" id="subtitle"]]
+[[!template text="""the Org property `:ONE:`, set to a render function.""" start="00:01:06.080" video="mainVideo-one" id="subtitle"]]
+[[!template text="""We are going to see how they work after.""" start="00:01:09.240" video="mainVideo-one" id="subtitle"]]
+[[!template text="""And the `:CUSTOM_ID:`, the value of the `:CUSTOM_ID:`,""" start="00:01:11.800" video="mainVideo-one" id="subtitle"]]
+[[!template text="""is the path of the page. So really,""" start="00:01:14.640" video="mainVideo-one" id="subtitle"]]
+[[!template text="""the website that we have on the left""" start="00:01:17.520" video="mainVideo-one" id="subtitle"]]
+[[!template text="""is this file. So to me, this is something simple like that""" start="00:01:20.080" video="mainVideo-one" id="subtitle"]]
+[[!template text="""that I wanted.""" start="00:01:24.640" video="mainVideo-one" id="subtitle"]]
+[[!template text="""And another thing is that when we want to""" start="00:01:25.920" video="mainVideo-one" id="subtitle"]]
+[[!template text="""change something with one.el,""" start="00:01:29.840" video="mainVideo-one" id="subtitle"]]
+[[!template text="""we don't change configuration""" start="00:01:33.560" video="mainVideo-one" id="subtitle"]]
+[[!template text="""or write JavaScript or anything else.""" start="00:01:36.680" video="mainVideo-one" id="subtitle"]]
+[[!template text="""We just write Emacs Lisp code or a bit of CSS.""" start="00:01:38.880" video="mainVideo-one" id="subtitle"]]
+[[!template text="""So this is what we have with a minibuffer website""" start="00:01:43.480" video="mainVideo-one" id="subtitle"]]
+[[!template text="""that is built with one.el,""" start="00:01:45.920" video="mainVideo-one" id="subtitle"]]
+[[!template text="""and the only thing that I had to do""" start="00:01:47.960" video="mainVideo-one" id="subtitle"]]
+[[!template text="""is to write Emacs Lisp code.""" start="00:01:50.280" video="mainVideo-one" id="subtitle"]]
+[[!template text="""So those are two things: the content in one file,""" start="00:01:51.920" video="mainVideo-one" id="subtitle"]]
+[[!template text="""and if we want to change the layout, CSS and Emacs Lisp.""" start="00:01:55.120" video="mainVideo-one" id="subtitle"]]
+[[!template text="""This is one.el.""" start="00:01:58.680" video="mainVideo-one" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Starting a new project""" start="00:02:02.200" video="mainVideo-one" id="subtitle"]]</div>[[!template text="""Now let's go to our node,""" start="00:02:02.200" video="mainVideo-one" id="subtitle"]]
+[[!template text="""and we are going to start a new project.""" start="00:02:03.880" video="mainVideo-one" id="subtitle"]]
+[[!template text="""How do we do that?""" start="00:02:07.160" video="mainVideo-one" id="subtitle"]]
+[[!template text="""In a new empty directory,""" start="00:02:09.600" video="mainVideo-one" id="subtitle"]]
+[[!template text="""so new project directory,""" start="00:02:11.360" video="mainVideo-one" id="subtitle"]]
+[[!template text="""we call the function `one-default-new-project`.""" start="00:02:15.160" video="mainVideo-one" id="subtitle"]]
+[[!template text="""We have that project, which is one file with the""" start="00:02:19.560" video="mainVideo-one" id="subtitle"]]
+[[!template text="""five default type of pages that we have,""" start="00:02:22.320" video="mainVideo-one" id="subtitle"]]
+[[!template text="""and one CSS file.""" start="00:02:25.760" video="mainVideo-one" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Building""" start="00:02:27.400" video="mainVideo-one" id="subtitle"]]</div>[[!template text="""How to build that website?""" start="00:02:27.400" video="mainVideo-one" id="subtitle"]]
+[[!template text="""Okay, so we call the function `one-build`.""" start="00:02:29.440" video="mainVideo-one" id="subtitle"]]
+[[!template text="""This builds the website.""" start="00:02:32.840" video="mainVideo-one" id="subtitle"]]
+[[!template text="""We jump into a terminal, and now if we run tree,""" start="00:02:33.960" video="mainVideo-one" id="subtitle"]]
+[[!template text="""we can see that the website""" start="00:02:36.800" video="mainVideo-one" id="subtitle"]]
+[[!template text="""has been built in the public directory""" start="00:02:39.800" video="mainVideo-one" id="subtitle"]]
+[[!template text="""with the information in the Org properties""" start="00:02:42.680" video="mainVideo-one" id="subtitle"]]
+[[!template text="""and the content of one.org files. Okay, cool.""" start="00:02:45.560" video="mainVideo-one" id="subtitle"]]
+[[!template text="""Now we are going to render that in the browser""" start="00:02:50.160" video="mainVideo-one" id="subtitle"]]
+[[!template text="""to serve that, and to do that""" start="00:02:53.920" video="mainVideo-one" id="subtitle"]]
+[[!template text="""we can use browser-sync utility,""" start="00:02:58.080" video="mainVideo-one" id="subtitle"]]
+[[!template text="""which is cool with that,""" start="00:03:01.160" video="mainVideo-one" id="subtitle"]]
+[[!template text="""in that each time we are going to...""" start="00:03:02.560" video="mainVideo-one" id="subtitle"]]
+[[!template text="""So we go into public...""" start="00:03:06.420" video="mainVideo-one" id="subtitle"]]
+[[!template text="""Each time we are going to change and rebuild the website,""" start="00:03:07.861" video="mainVideo-one" id="subtitle"]]
+[[!template text="""this will be reloaded in the browser.""" start="00:03:11.760" video="mainVideo-one" id="subtitle"]]
+[[!template text="""So one, this is that website, is now this one.""" start="00:03:14.320" video="mainVideo-one" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Side by side""" start="00:03:19.760" video="mainVideo-one" id="subtitle"]]</div>[[!template text="""So let's put them side by side.""" start="00:03:19.760" video="mainVideo-one" id="subtitle"]]
+[[!template text="""We go there, and we may do something like that.""" start="00:03:22.560" video="mainVideo-one" id="subtitle"]]
+[[!template text="""So one.el, the home page, so our custom ID""" start="00:03:26.320" video="mainVideo-one" id="subtitle"]]
+[[!template text="""with the value just a /,""" start="00:03:30.240" video="mainVideo-one" id="subtitle"]]
+[[!template text="""is rendered with that function `one-default-home`,""" start="00:03:32.000" video="mainVideo-one" id="subtitle"]]
+[[!template text="""which is a render function,""" start="00:03:36.080" video="mainVideo-one" id="subtitle"]]
+[[!template text="""and the first argument of that function is the headline,""" start="00:03:37.240" video="mainVideo-one" id="subtitle"]]
+[[!template text="""this current headline. So, parsed with the Org parser,""" start="00:03:41.560" video="mainVideo-one" id="subtitle"]]
+[[!template text="""and then we do the thing that we want to do,""" start="00:03:45.600" video="mainVideo-one" id="subtitle"]]
+[[!template text="""and the render function returns an HTML string""" start="00:03:48.360" video="mainVideo-one" id="subtitle"]]
+[[!template text="""that is used to build the pages at the custom ID.""" start="00:03:52.080" video="mainVideo-one" id="subtitle"]]
+[[!template text="""Now we can go to another web page, the second web page,""" start="00:03:57.200" video="mainVideo-one" id="subtitle"]]
+[[!template text="""and we see that there is a different value""" start="00:04:03.280" video="mainVideo-one" id="subtitle"]]
+[[!template text="""for the `:ONE:` property, so another render function,""" start="00:04:05.800" video="mainVideo-one" id="subtitle"]]
+[[!template text="""and the custom ID at the path of that page.""" start="00:04:10.120" video="mainVideo-one" id="subtitle"]]
+[[!template text="""So we can see that in the browser.""" start="00:04:14.000" video="mainVideo-one" id="subtitle"]]
+[[!template text="""So this is `/blog/default-home-list-pages`.""" start="00:04:16.400" video="mainVideo-one" id="subtitle"]]
+[[!template text="""So this is that. Now there are three other pages,""" start="00:04:19.600" video="mainVideo-one" id="subtitle"]]
+[[!template text="""but we can list that like that.""" start="00:04:23.480" video="mainVideo-one" id="subtitle"]]
+[[!template text="""We do a grep in that files,""" start="00:04:25.680" video="mainVideo-one" id="subtitle"]]
+[[!template text="""and we see the different default render function.""" start="00:04:28.360" video="mainVideo-one" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Writing a render function""" start="00:04:32.160" video="mainVideo-one" id="subtitle"]]</div>[[!template text="""In the second part of that talk,""" start="00:04:32.160" video="mainVideo-one" id="subtitle"]]
+[[!template text="""we are going to write a render function.""" start="00:04:34.840" video="mainVideo-one" id="subtitle"]]
+[[!template text="""So we are going to see that after.""" start="00:04:38.400" video="mainVideo-one" id="subtitle"]]
+[[!template text="""Now maybe we can go to the default page,""" start="00:04:41.080" video="mainVideo-one" id="subtitle"]]
+[[!template text="""and let's modify that default page.""" start="00:04:47.080" video="mainVideo-one" id="subtitle"]]
+[[!template text="""We see that this uses `one-default` render function,""" start="00:04:50.960" video="mainVideo-one" id="subtitle"]]
+[[!template text="""and now let's write &quot;foo bar baz&quot;.""" start="00:04:54.640" video="mainVideo-one" id="subtitle"]]
+[[!template text="""We want to modify the content. We save.""" start="00:04:57.000" video="mainVideo-one" id="subtitle"]]
+[[!template text="""We call again one-build distribute,""" start="00:05:00.600" video="mainVideo-one" id="subtitle"]]
+[[!template text="""and we see here we have it: foo bar baz in the default page.""" start="00:05:10.440" video="mainVideo-one" id="subtitle"]]
+[[!template text="""Now we can use... When we use one-build,""" start="00:05:16.200" video="mainVideo-one" id="subtitle"]]
+[[!template text="""this also copies the files in the asset directory""" start="00:05:19.760" video="mainVideo-one" id="subtitle"]]
+[[!template text="""into the public directory.""" start="00:05:23.800" video="mainVideo-one" id="subtitle"]]
+[[!template text="""This is not always what we want to do.""" start="00:05:25.920" video="mainVideo-one" id="subtitle"]]
+[[!template text="""Sometimes we just change the content,""" start="00:05:28.040" video="mainVideo-one" id="subtitle"]]
+[[!template text="""and for that we can use `one-render-page-at-point`.""" start="00:05:29.880" video="mainVideo-one" id="subtitle"]]
+[[!template text="""If we use that one, this just renders the current page.""" start="00:05:34.080" video="mainVideo-one" id="subtitle"]]
+[[!template text="""So we see that we have again &quot;foo bar baz&quot; in the page.""" start="00:05:39.480" video="mainVideo-one" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""New page""" start="00:05:44.680" video="mainVideo-one" id="subtitle"]]</div>[[!template text="""Now let's add a new page. To add a new page,""" start="00:05:44.680" video="mainVideo-one" id="subtitle"]]
+[[!template text="""we just have to copy one of them, maybe the default page.""" start="00:05:47.920" video="mainVideo-one" id="subtitle"]]
+[[!template text="""We are going to call it maybe emacsconf-2023.""" start="00:05:52.200" video="mainVideo-one" id="subtitle"]]
+[[!template text="""We still use one default render function to render it,""" start="00:05:58.320" video="mainVideo-one" id="subtitle"]]
+[[!template text="""but we want to change the path.""" start="00:06:01.840" video="mainVideo-one" id="subtitle"]]
+[[!template text="""So the custom ID, we are going to give it /blog""" start="00:06:04.520" video="mainVideo-one" id="subtitle"]]
+[[!template text="""and emacsconf-2023 with a slash at the end,""" start="00:06:08.520" video="mainVideo-one" id="subtitle"]]
+[[!template text="""and the content... We no longer want this one,""" start="00:06:12.640" video="mainVideo-one" id="subtitle"]]
+[[!template text="""but maybe &quot;We're having a lot of fun&quot;.""" start="00:06:18.360" video="mainVideo-one" id="subtitle"]]
+[[!template text="""So we save that, we rebuild with `one-build` this,""" start="00:06:22.040" video="mainVideo-one" id="subtitle"]]
+[[!template text="""and now we can look at the top""" start="00:06:28.600" video="mainVideo-one" id="subtitle"]]
+[[!template text="""and pass it the path `/blog/emacsconf-2023/.""" start="00:06:33.600" video="mainVideo-one" id="subtitle"]]
+[[!template text="""So we have that new page.""" start="00:06:39.280" video="mainVideo-one" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Linking between pages""" start="00:06:41.720" video="mainVideo-one" id="subtitle"]]</div>[[!template text="""Now, how to link between pages?""" start="00:06:41.720" video="mainVideo-one" id="subtitle"]]
+[[!template text="""So we are going to write a link""" start="00:06:44.160" video="mainVideo-one" id="subtitle"]]
+[[!template text="""that links to the last page,""" start="00:06:46.080" video="mainVideo-one" id="subtitle"]]
+[[!template text="""so a page with the table of contents.""" start="00:06:48.000" video="mainVideo-one" id="subtitle"]]
+[[!template text="""To do that, we just have to use the value of the custom ID,""" start="00:06:50.520" video="mainVideo-one" id="subtitle"]]
+[[!template text="""and to link to a custom ID inside Org mode,""" start="00:06:54.400" video="mainVideo-one" id="subtitle"]]
+[[!template text="""we use the hashtag. We pass it here,""" start="00:06:58.480" video="mainVideo-one" id="subtitle"]]
+[[!template text="""then we pass it in the description,""" start="00:07:03.080" video="mainVideo-one" id="subtitle"]]
+[[!template text="""so TOC and sidebar,""" start="00:07:07.280" video="mainVideo-one" id="subtitle"]]
+[[!template text="""and now if we press RET inside Emacs,""" start="00:07:09.800" video="mainVideo-one" id="subtitle"]]
+[[!template text="""we jump to that page. So this is cool.""" start="00:07:12.800" video="mainVideo-one" id="subtitle"]]
+[[!template text="""Now we build again,""" start="00:07:15.840" video="mainVideo-one" id="subtitle"]]
+[[!template text="""and we see that we are going to have""" start="00:07:17.720" video="mainVideo-one" id="subtitle"]]
+[[!template text="""the link to the page in the browser.""" start="00:07:19.920" video="mainVideo-one" id="subtitle"]]
+[[!template text="""So this link to the default page with a table of contents,""" start="00:07:22.280" video="mainVideo-one" id="subtitle"]]
+[[!template text="""fine, but maybe what we want to do""" start="00:07:27.000" video="mainVideo-one" id="subtitle"]]
+[[!template text="""is to link to the &quot;Headline foo&quot; in that page.""" start="00:07:29.880" video="mainVideo-one" id="subtitle"]]
+[[!template text="""How do we do that?""" start="00:07:33.000" video="mainVideo-one" id="subtitle"]]
+[[!template text="""We do that by adding a custom id.""" start="00:07:34.680" video="mainVideo-one" id="subtitle"]]
+[[!template text="""We keep the first part,""" start="00:07:36.920" video="mainVideo-one" id="subtitle"]]
+[[!template text="""which is the page where we are,""" start="00:07:41.640" video="mainVideo-one" id="subtitle"]]
+[[!template text="""and we added hash with foo,""" start="00:07:43.760" video="mainVideo-one" id="subtitle"]]
+[[!template text="""so that Headline foo will have the ID &quot;foo&quot;""" start="00:07:46.360" video="mainVideo-one" id="subtitle"]]
+[[!template text="""in its H2 tag, HTML tag,""" start="00:07:50.800" video="mainVideo-one" id="subtitle"]]
+[[!template text="""and now we can link it here with still custom ID, so &quot;foo&quot;,""" start="00:07:57.600" video="mainVideo-one" id="subtitle"]]
+[[!template text="""and now it's headline... headline with what?""" start="00:08:05.081" video="mainVideo-one" id="subtitle"]]
+[[!template text="""Headline foo in TOC page. So we have that.""" start="00:08:10.540" video="mainVideo-one" id="subtitle"]]
+[[!template text="""If we press RET, we jump to that headline in Emacs.""" start="00:08:14.800" video="mainVideo-one" id="subtitle"]]
+[[!template text="""So this is super cool.""" start="00:08:19.160" video="mainVideo-one" id="subtitle"]]
+[[!template text="""And now, if we call `one-build`,""" start="00:08:20.920" video="mainVideo-one" id="subtitle"]]
+[[!template text="""we see in the browser""" start="00:08:23.560" video="mainVideo-one" id="subtitle"]]
+[[!template text="""that we have a new link,""" start="00:08:25.800" video="mainVideo-one" id="subtitle"]]
+[[!template text="""and this link linked to that specific headline.""" start="00:08:26.800" video="mainVideo-one" id="subtitle"]]
+[[!template text="""So this is cool. So we have the link between pages""" start="00:08:30.320" video="mainVideo-one" id="subtitle"]]
+[[!template text="""that works inside Emacs""" start="00:08:34.440" video="mainVideo-one" id="subtitle"]]
+[[!template text="""and that works well also in the browser.""" start="00:08:36.320" video="mainVideo-one" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""CSS""" start="00:08:40.000" video="mainVideo-one" id="subtitle"]]</div>[[!template text="""Now let's say that we want to change the CSS.""" start="00:08:40.000" video="mainVideo-one" id="subtitle"]]
+[[!template text="""So we've added a page with specific content,""" start="00:08:44.520" video="mainVideo-one" id="subtitle"]]
+[[!template text="""and we've done some links.""" start="00:08:50.720" video="mainVideo-one" id="subtitle"]]
+[[!template text="""Now we want to modify the CSS file""" start="00:08:51.720" video="mainVideo-one" id="subtitle"]]
+[[!template text="""which is in the asset directory, the one.css.""" start="00:08:55.600" video="mainVideo-one" id="subtitle"]]
+[[!template text="""Each time we change it,""" start="00:09:00.280" video="mainVideo-one" id="subtitle"]]
+[[!template text="""we want to have live reload""" start="00:09:02.960" video="mainVideo-one" id="subtitle"]]
+[[!template text="""that copy that file into the public directory,""" start="00:09:05.200" video="mainVideo-one" id="subtitle"]]
+[[!template text="""so the same. We go back here,""" start="00:09:10.800" video="mainVideo-one" id="subtitle"]]
+[[!template text="""and there is a utility called `entr`, e-n-t-r.""" start="00:09:14.660" video="mainVideo-one" id="subtitle"]]
+[[!template text="""Yes, this one, and using that, so a new terminal,""" start="00:09:18.880" video="mainVideo-one" id="subtitle"]]
+[[!template text="""we are at the beginning.""" start="00:09:26.560" video="mainVideo-one" id="subtitle"]]
+[[!template text="""This will watch the changing in what.css,""" start="00:09:28.680" video="mainVideo-one" id="subtitle"]]
+[[!template text="""and `entr` will copy it into the public directory""" start="00:09:32.360" video="mainVideo-one" id="subtitle"]]
+[[!template text="""each time this changes. Let's go back to Org mode,""" start="00:09:35.520" video="mainVideo-one" id="subtitle"]]
+[[!template text="""because I chose some color that is cool,""" start="00:09:38.520" video="mainVideo-one" id="subtitle"]]
+[[!template text="""and now we go back to the CSS files.""" start="00:09:43.320" video="mainVideo-one" id="subtitle"]]
+[[!template text="""We put them side by side, and maybe we go to the new page""" start="00:09:47.800" video="mainVideo-one" id="subtitle"]]
+[[!template text="""that we were changing,""" start="00:09:53.640" video="mainVideo-one" id="subtitle"]]
+[[!template text="""and we are going to change the body,""" start="00:09:55.640" video="mainVideo-one" id="subtitle"]]
+[[!template text="""the background color, and maybe we can change""" start="00:10:01.000" video="mainVideo-one" id="subtitle"]]
+[[!template text="""with the color that we've just taken.""" start="00:10:03.960" video="mainVideo-one" id="subtitle"]]
+[[!template text="""So we save, and we see the changing happening.""" start="00:10:06.120" video="mainVideo-one" id="subtitle"]]
+[[!template text="""We can do it again with the color""" start="00:10:10.220" video="mainVideo-one" id="subtitle"]]
+[[!template text="""that we have at the beginning,""" start="00:10:14.680" video="mainVideo-one" id="subtitle"]]
+[[!template text="""and this is the user experience""" start="00:10:16.120" video="mainVideo-one" id="subtitle"]]
+[[!template text="""that we have with one.el and the default function.""" start="00:10:18.880" video="mainVideo-one" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""How to write a render function""" start="00:10:23.160" video="mainVideo-one" id="subtitle"]]</div>[[!template text="""Now that we've seen that,""" start="00:10:23.160" video="mainVideo-one" id="subtitle"]]
+[[!template text="""we've done all of that part,""" start="00:10:26.280" video="mainVideo-one" id="subtitle"]]
+[[!template text="""and now we are going to see""" start="00:10:30.461" video="mainVideo-one" id="subtitle"]]
+[[!template text="""how to write a render function.""" start="00:10:31.920" video="mainVideo-one" id="subtitle"]]
+[[!template text="""So let's go. The render function,""" start="00:10:34.280" video="mainVideo-one" id="subtitle"]]
+[[!template text="""so one.org, we remember these are the functions""" start="00:10:36.760" video="mainVideo-one" id="subtitle"]]
+[[!template text="""that are in the `:ONE:` Org property.""" start="00:10:41.480" video="mainVideo-one" id="subtitle"]]
+[[!template text="""So we are going to remove that part.""" start="00:10:43.400" video="mainVideo-one" id="subtitle"]]
+[[!template text="""We no longer want that one. We don't want this.""" start="00:10:45.600" video="mainVideo-one" id="subtitle"]]
+[[!template text="""We just keep that. `one-default`,""" start="00:10:49.440" video="mainVideo-one" id="subtitle"]]
+[[!template text="""we want this to be the home of our website.""" start="00:10:52.440" video="mainVideo-one" id="subtitle"]]
+[[!template text="""We have that. We rebuild,""" start="00:10:55.840" video="mainVideo-one" id="subtitle"]]
+[[!template text="""and now we just have one page, and we have that page.""" start="00:10:57.660" video="mainVideo-one" id="subtitle"]]
+[[!template text="""We are going to add another page that we call &quot;foo&quot;,""" start="00:11:05.080" video="mainVideo-one" id="subtitle"]]
+[[!template text="""and here we pass it the render function foo""" start="00:11:10.680" video="mainVideo-one" id="subtitle"]]
+[[!template text="""that doesn't exist yet, and we are going to write it.""" start="00:11:15.520" video="mainVideo-one" id="subtitle"]]
+[[!template text="""So maybe with some content, and we copy, copy.""" start="00:11:20.320" video="mainVideo-one" id="subtitle"]]
+[[!template text="""We have that. We call it &quot;bar&quot; to have something to show.""" start="00:11:27.160" video="mainVideo-one" id="subtitle"]]
+[[!template text="""So here we are. If we build that, so we build it,""" start="00:11:33.160" video="mainVideo-one" id="subtitle"]]
+[[!template text="""and we see in the echo area at the bottom""" start="00:11:39.960" video="mainVideo-one" id="subtitle"]]
+[[!template text="""that we have an error &quot;void&quot;,""" start="00:11:42.600" video="mainVideo-one" id="subtitle"]]
+[[!template text="""which is because the function foo doesn't exist.""" start="00:11:43.720" video="mainVideo-one" id="subtitle"]]
+[[!template text="""So now we are going to write that function,""" start="00:11:46.800" video="mainVideo-one" id="subtitle"]]
+[[!template text="""and we write it in the onerc.el""" start="00:11:48.800" video="mainVideo-one" id="subtitle"]]
+[[!template text="""where we put any Elisp code""" start="00:11:53.360" video="mainVideo-one" id="subtitle"]]
+[[!template text="""that we want to be run""" start="00:11:57.200" video="mainVideo-one" id="subtitle"]]
+[[!template text="""each time we build the website or render the pages.""" start="00:11:58.360" video="mainVideo-one" id="subtitle"]]
+[[!template text="""So we want a render function called foo.""" start="00:12:03.480" video="mainVideo-one" id="subtitle"]]
+[[!template text="""So that takes three arguments: page-tree, pages, and global.""" start="00:12:06.520" video="mainVideo-one" id="subtitle"]]
+[[!template text="""We are going to look at the page-tree in our case,""" start="00:12:10.000" video="mainVideo-one" id="subtitle"]]
+[[!template text="""and the render function return an HTML string.""" start="00:12:16.640" video="mainVideo-one" id="subtitle"]]
+[[!template text="""This is the thing that we want from them.""" start="00:12:19.760" video="mainVideo-one" id="subtitle"]]
+[[!template text="""So maybe foo, bar, and baz.""" start="00:12:22.320" video="mainVideo-one" id="subtitle"]]
+[[!template text="""Now this is something well-defined,""" start="00:12:25.160" video="mainVideo-one" id="subtitle"]]
+[[!template text="""and with one.org here, the file, we rebuild this,""" start="00:12:28.160" video="mainVideo-one" id="subtitle"]]
+[[!template text="""and we can see now in the browser,""" start="00:12:34.200" video="mainVideo-one" id="subtitle"]]
+[[!template text="""if we go to the page foo, that we have &quot;foo bar baz&quot;.""" start="00:12:39.620" video="mainVideo-one" id="subtitle"]]
+[[!template text="""So this is exactly what we have rendered""" start="00:12:42.960" video="mainVideo-one" id="subtitle"]]
+[[!template text="""by the render function that is set,""" start="00:12:45.460" video="mainVideo-one" id="subtitle"]]
+[[!template text="""we see at the bottom in the one.org file,""" start="00:12:47.880" video="mainVideo-one" id="subtitle"]]
+[[!template text="""in the `:ONE:` property. Now this is HTML, so we can pass it,""" start="00:12:51.600" video="mainVideo-one" id="subtitle"]]
+[[!template text="""for instance, h1, the tag h1.""" start="00:12:56.120" video="mainVideo-one" id="subtitle"]]
+[[!template text="""We save that file. We go in the one.org file,""" start="00:13:00.880" video="mainVideo-one" id="subtitle"]]
+[[!template text="""we build again, and now we see that we have an h1.""" start="00:13:06.040" video="mainVideo-one" id="subtitle"]]
+[[!template text="""Okay, this is interesting, but if we would have to""" start="00:13:10.400" video="mainVideo-one" id="subtitle"]]
+[[!template text="""build this function with a string like that,""" start="00:13:14.840" video="mainVideo-one" id="subtitle"]]
+[[!template text="""this is boring and not the best way.""" start="00:13:18.120" video="mainVideo-one" id="subtitle"]]
+[[!template text="""So we can use the library Jack,""" start="00:13:22.320" video="mainVideo-one" id="subtitle"]]
+[[!template text="""which offers function `jack-html`""" start="00:13:24.640" video="mainVideo-one" id="subtitle"]]
+[[!template text="""that takes some data structure,""" start="00:13:27.589" video="mainVideo-one" id="subtitle"]]
+[[!template text="""for instance, an h1, a nested list""" start="00:13:31.581" video="mainVideo-one" id="subtitle"]]
+[[!template text="""that represents the HTML that we want to render,""" start="00:13:34.180" video="mainVideo-one" id="subtitle"]]
+[[!template text="""and transform it into an HTML string.""" start="00:13:38.480" video="mainVideo-one" id="subtitle"]]
+[[!template text="""So we have that, we saved,""" start="00:13:41.040" video="mainVideo-one" id="subtitle"]]
+[[!template text="""we rebuild in the one.org file with `one-build`,""" start="00:13:43.960" video="mainVideo-one" id="subtitle"]]
+[[!template text="""and we see now that this has been built using `jack-html`.""" start="00:13:48.280" video="mainVideo-one" id="subtitle"]]
+[[!template text="""Now what do we want to do?""" start="00:13:55.400" video="mainVideo-one" id="subtitle"]]
+[[!template text="""Okay, see, the thing that we want to do""" start="00:13:59.160" video="mainVideo-one" id="subtitle"]]
+[[!template text="""is to understand page-tree. So what is page-tree?""" start="00:14:02.000" video="mainVideo-one" id="subtitle"]]
+[[!template text="""page-tree is when we go to one.org,""" start="00:14:05.000" video="mainVideo-one" id="subtitle"]]
+[[!template text="""this is really for foo,""" start="00:14:07.600" video="mainVideo-one" id="subtitle"]]
+[[!template text="""this is the parsed data of that headline, that page.""" start="00:14:09.480" video="mainVideo-one" id="subtitle"]]
+[[!template text="""So this is done with, no, not this one, we use,""" start="00:14:17.920" video="mainVideo-one" id="subtitle"]]
+[[!template text="""so in the mini-buffer, we use `one-parse-buffer`,""" start="00:14:23.120" video="mainVideo-one" id="subtitle"]]
+[[!template text="""and we see this is the data""" start="00:14:27.880" video="mainVideo-one" id="subtitle"]]
+[[!template text="""that we have with that function, first headline,""" start="00:14:30.000" video="mainVideo-one" id="subtitle"]]
+[[!template text="""and the second headline,""" start="00:14:33.360" video="mainVideo-one" id="subtitle"]]
+[[!template text="""this is the parse tree that we have there.""" start="00:14:34.440" video="mainVideo-one" id="subtitle"]]
+[[!template text="""This is that data that is passed to""" start="00:14:38.200" video="mainVideo-one" id="subtitle"]]
+[[!template text="""the `foo` render function. One thing that is cool,""" start="00:14:40.720" video="mainVideo-one" id="subtitle"]]
+[[!template text="""so I see here, is that as we are dealing with data,""" start="00:14:45.280" video="mainVideo-one" id="subtitle"]]
+[[!template text="""we have all the data of the website,""" start="00:14:51.600" video="mainVideo-one" id="subtitle"]]
+[[!template text="""we can show them in the web page. Now, why not?""" start="00:14:53.360" video="mainVideo-one" id="subtitle"]]
+[[!template text="""It's great to write the website""" start="00:14:57.361" video="mainVideo-one" id="subtitle"]]
+[[!template text="""and also to debug if we need to debug at some point.""" start="00:15:00.080" video="mainVideo-one" id="subtitle"]]
+[[!template text="""So let's render page-tree directly in the page, one.org,""" start="00:15:02.840" video="mainVideo-one" id="subtitle"]]
+[[!template text="""and we rebuild, we reload, and we see this is what we have,""" start="00:15:10.280" video="mainVideo-one" id="subtitle"]]
+[[!template text="""this is the data that we have, okay?""" start="00:15:15.680" video="mainVideo-one" id="subtitle"]]
+[[!template text="""And we have, for instance, the `:raw-value` with this &quot;foo&quot;,""" start="00:15:17.160" video="mainVideo-one" id="subtitle"]]
+[[!template text="""which is the headline,""" start="00:15:20.600" video="mainVideo-one" id="subtitle"]]
+[[!template text="""the content of the headline in a raw format,""" start="00:15:22.520" video="mainVideo-one" id="subtitle"]]
+[[!template text="""and we also have custom,""" start="00:15:27.040" video="mainVideo-one" id="subtitle"]]
+[[!template text="""so here we have the `:CUSTOM_ID: foo` and `:ONE: foo`,""" start="00:15:29.720" video="mainVideo-one" id="subtitle"]]
+[[!template text="""which are the properties,""" start="00:15:33.840" video="mainVideo-one" id="subtitle"]]
+[[!template text="""and when we are inside those render functions,""" start="00:15:35.000" video="mainVideo-one" id="subtitle"]]
+[[!template text="""we have access to this.""" start="00:15:40.360" video="mainVideo-one" id="subtitle"]]
+[[!template text="""So let's, what can we do now, is to,""" start="00:15:43.241" video="mainVideo-one" id="subtitle"]]
+[[!template text="""let's get the row value.""" start="00:15:46.800" video="mainVideo-one" id="subtitle"]]
+[[!template text="""So we no longer need that.""" start="00:15:48.640" video="mainVideo-one" id="subtitle"]]
+[[!template text="""Maybe we can do something like that.""" start="00:15:51.760" video="mainVideo-one" id="subtitle"]]
+[[!template text="""We create now HTML. In HTML, we want the body,""" start="00:15:54.840" video="mainVideo-one" id="subtitle"]]
+[[!template text="""we want an h1 tag, and we are going to pass it""" start="00:16:04.000" video="mainVideo-one" id="subtitle"]]
+[[!template text="""a title, and in the title,""" start="00:16:08.040" video="mainVideo-one" id="subtitle"]]
+[[!template text="""this is something that we let-bind here,""" start="00:16:10.560" video="mainVideo-one" id="subtitle"]]
+[[!template text="""so the value of the title,""" start="00:16:13.840" video="mainVideo-one" id="subtitle"]]
+[[!template text="""we get it with `org-element-property`,""" start="00:16:15.600" video="mainVideo-one" id="subtitle"]]
+[[!template text="""and the `:raw-value`, so this is the property that we want,""" start="00:16:24.720" video="mainVideo-one" id="subtitle"]]
+[[!template text="""so `raw-value`, and from which data we want that,""" start="00:16:29.760" video="mainVideo-one" id="subtitle"]]
+[[!template text="""to page-tree. So now, let's have one.org at the bottom,""" start="00:16:34.040" video="mainVideo-one" id="subtitle"]]
+[[!template text="""we build again, and now we reload,""" start="00:16:40.600" video="mainVideo-one" id="subtitle"]]
+[[!template text="""and we see that we get a foo. This is that title,""" start="00:16:46.040" video="mainVideo-one" id="subtitle"]]
+[[!template text="""the value of that variable in that data structure.""" start="00:16:50.840" video="mainVideo-one" id="subtitle"]]
+[[!template text="""Now, let's get those two properties.""" start="00:16:56.560" video="mainVideo-one" id="subtitle"]]
+[[!template text="""How do we get those two properties?""" start="00:17:00.320" video="mainVideo-one" id="subtitle"]]
+[[!template text="""The same way, `:ONE:` that we call one, so raw-value,""" start="00:17:03.040" video="mainVideo-one" id="subtitle"]]
+[[!template text="""we change that for `:ONE`, the other raw-value""" start="00:17:07.200" video="mainVideo-one" id="subtitle"]]
+[[!template text="""for `:CUSTOM_ID`, we change the title for `custom-id`,""" start="00:17:11.640" video="mainVideo-one" id="subtitle"]]
+[[!template text="""and what we want now is for instance,""" start="00:17:19.360" video="mainVideo-one" id="subtitle"]]
+[[!template text="""yes, h1 again, and org properties.""" start="00:17:23.560" video="mainVideo-one" id="subtitle"]]
+[[!template text="""We add the org properties, and let's do a list,""" start="00:17:30.160" video="mainVideo-one" id="subtitle"]]
+[[!template text="""another list, with li element, one,""" start="00:17:34.800" video="mainVideo-one" id="subtitle"]]
+[[!template text="""we want that value, and that value will be""" start="00:17:39.800" video="mainVideo-one" id="subtitle"]]
+[[!template text="""the value of the variable one.""" start="00:17:43.160" video="mainVideo-one" id="subtitle"]]
+[[!template text="""We can do that with also custom-id,""" start="00:17:45.760" video="mainVideo-one" id="subtitle"]]
+[[!template text="""and now, in the one that we have to save,""" start="00:17:52.480" video="mainVideo-one" id="subtitle"]]
+[[!template text="""and in one of our files, not like that,""" start="00:17:56.120" video="mainVideo-one" id="subtitle"]]
+[[!template text="""we rebuild that, and we see""" start="00:17:59.440" video="mainVideo-one" id="subtitle"]]
+[[!template text="""that we can get those properties.""" start="00:18:03.200" video="mainVideo-one" id="subtitle"]]
+[[!template text="""This is super cool.""" start="00:18:05.800" video="mainVideo-one" id="subtitle"]]
+[[!template text="""As we are dealing with data,""" start="00:18:07.000" video="mainVideo-one" id="subtitle"]]
+[[!template text="""and we have the information of the whole website,""" start="00:18:09.160" video="mainVideo-one" id="subtitle"]]
+[[!template text="""we can do whatever we want,""" start="00:18:11.720" video="mainVideo-one" id="subtitle"]]
+[[!template text="""because we have access to that data.""" start="00:18:14.040" video="mainVideo-one" id="subtitle"]]
+[[!template text="""Let's, for instance, add a date, the date of 2023,""" start="00:18:16.600" video="mainVideo-one" id="subtitle"]]
+[[!template text="""so I think this is 02, when there is the conference, see,""" start="00:18:23.840" video="mainVideo-one" id="subtitle"]]
+[[!template text="""and we can get access to that `one` again,""" start="00:18:28.320" video="mainVideo-one" id="subtitle"]]
+[[!template text="""here, so `date`, and we go,""" start="00:18:32.760" video="mainVideo-one" id="subtitle"]]
+[[!template text="""we change the `:CUSTOM_ID` with the `:DATE`,""" start="00:18:37.955" video="mainVideo-one" id="subtitle"]]
+[[!template text="""and in the list here,""" start="00:18:42.360" video="mainVideo-one" id="subtitle"]]
+[[!template text="""so we want in the list, this to be the date,""" start="00:18:46.640" video="mainVideo-one" id="subtitle"]]
+[[!template text="""and we build again that,""" start="00:18:53.360" video="mainVideo-one" id="subtitle"]]
+[[!template text="""and we have access to the date.""" start="00:18:56.560" video="mainVideo-one" id="subtitle"]]
+[[!template text="""Really, we can do whatever we want.""" start="00:18:58.800" video="mainVideo-one" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Rendering content""" start="00:19:03.200" video="mainVideo-one" id="subtitle"]]</div>[[!template text="""Now, we want the content. So far,""" start="00:19:03.200" video="mainVideo-one" id="subtitle"]]
+[[!template text="""we get the property, but what about the content,""" start="00:19:06.760" video="mainVideo-one" id="subtitle"]]
+[[!template text="""so h1, and now we put &quot;Org content&quot;,""" start="00:19:11.600" video="mainVideo-one" id="subtitle"]]
+[[!template text="""and this is going to be something in the variable content,""" start="00:19:17.040" video="mainVideo-one" id="subtitle"]]
+[[!template text="""and we have to add that variable,""" start="00:19:21.360" video="mainVideo-one" id="subtitle"]]
+[[!template text="""so in the let binding, we write our content,""" start="00:19:25.080" video="mainVideo-one" id="subtitle"]]
+[[!template text="""we are going to have that content from the page-tree.""" start="00:19:28.000" video="mainVideo-one" id="subtitle"]]
+[[!template text="""To do that, we use `org-export`,""" start="00:19:30.640" video="mainVideo-one" id="subtitle"]]
+[[!template text="""so we need to export something into HTML,""" start="00:19:33.680" video="mainVideo-one" id="subtitle"]]
+[[!template text="""we export the data with the backend.""" start="00:19:36.120" video="mainVideo-one" id="subtitle"]]
+[[!template text="""So the data that we want is page-tree,""" start="00:19:37.600" video="mainVideo-one" id="subtitle"]]
+[[!template text="""but we don't want the first headline,""" start="00:19:40.240" video="mainVideo-one" id="subtitle"]]
+[[!template text="""so we use `org-element-contents`,""" start="00:19:42.240" video="mainVideo-one" id="subtitle"]]
+[[!template text="""and we pass it `page-tree`, so this is that.""" start="00:19:46.760" video="mainVideo-one" id="subtitle"]]
+[[!template text="""But for the exported, we need to pass it,""" start="00:19:50.520" video="mainVideo-one" id="subtitle"]]
+[[!template text="""and also, how do we call that, we call that an Org backend.""" start="00:19:53.120" video="mainVideo-one" id="subtitle"]]
+[[!template text="""So `one-ox` is our backend provided by one.el,""" start="00:20:00.600" video="mainVideo-one" id="subtitle"]]
+[[!template text="""and the last argument is nil.""" start="00:20:06.760" video="mainVideo-one" id="subtitle"]]
+[[!template text="""We are almost done. Now with one.org,""" start="00:20:09.520" video="mainVideo-one" id="subtitle"]]
+[[!template text="""we build the website, and we see that we have an error,""" start="00:20:14.080" video="mainVideo-one" id="subtitle"]]
+[[!template text="""it's because this is not a content,""" start="00:20:18.880" video="mainVideo-one" id="subtitle"]]
+[[!template text="""so there.. No, okay,""" start="00:20:22.080" video="mainVideo-one" id="subtitle"]]
+[[!template text="""there was this `org-element-contents`, I think,""" start="00:20:27.040" video="mainVideo-one" id="subtitle"]]
+[[!template text="""and now we build it, and we must see it here.""" start="00:20:32.840" video="mainVideo-one" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Rendering CSS""" start="00:20:37.160" video="mainVideo-one" id="subtitle"]]</div>[[!template text="""So we have the content,""" start="00:20:37.160" video="mainVideo-one" id="subtitle"]]
+[[!template text="""we have the Org values,""" start="00:20:39.960" video="mainVideo-one" id="subtitle"]]
+[[!template text="""and last thing that we can do maybe is to put some CSS.""" start="00:20:43.320" video="mainVideo-one" id="subtitle"]]
+[[!template text="""Let's have a look to `one-default` function.""" start="00:20:48.400" video="mainVideo-one" id="subtitle"]]
+[[!template text="""We can see in one.el file that we have a lot of""" start="00:20:51.920" video="mainVideo-one" id="subtitle"]]
+[[!template text="""default functions that we can use to take inspiration.""" start="00:20:56.400" video="mainVideo-one" id="subtitle"]]
+[[!template text="""The last thing that we need""" start="00:21:01.920" video="mainVideo-one" id="subtitle"]]
+[[!template text="""is to link to the one.css file,""" start="00:21:05.600" video="mainVideo-one" id="subtitle"]]
+[[!template text="""so we are going to do that `onerc` file.""" start="00:21:08.000" video="mainVideo-one" id="subtitle"]]
+[[!template text="""This is here, so `html` we don't need,""" start="00:21:14.920" video="mainVideo-one" id="subtitle"]]
+[[!template text="""we have that one, we want the head to be here,""" start="00:21:20.320" video="mainVideo-one" id="subtitle"]]
+[[!template text="""and we pass it a class, which is a title,""" start="00:21:26.480" video="mainVideo-one" id="subtitle"]]
+[[!template text="""a div with the class content. We have that.""" start="00:21:37.320" video="mainVideo-one" id="subtitle"]]
+[[!template text="""Now with one.org, we build it again,""" start="00:21:42.240" video="mainVideo-one" id="subtitle"]]
+[[!template text="""and we should see the website render with the CSS,""" start="00:21:46.160" video="mainVideo-one" id="subtitle"]]
+[[!template text="""the property, and all the content,""" start="00:21:50.600" video="mainVideo-one" id="subtitle"]]
+[[!template text="""and we've done that just with that Emacs Lisp file,""" start="00:21:56.760" video="mainVideo-one" id="subtitle"]]
+[[!template text="""so this is all I wanted to show you today with one.el,""" start="00:22:01.520" video="mainVideo-one" id="subtitle"]]
+[[!template text="""I hope you enjoyed the talk, and have a nice day,""" start="00:22:08.960" video="mainVideo-one" id="subtitle"]]
+[[!template text="""and a nice conference.""" start="00:22:14.880" video="mainVideo-one" id="subtitle"]]
+
+</div>
+
+Captioner: sachac
+
+<div class="transcript transcript-qanda"><a name="one-qanda-transcript"></a><h1>Q&A transcript (unedited)</h1>
+
+[[!template text="""[Speaker 0]: So, will you, when I'm looking at my,""" start="00:00:00.459" video="qanda-one" id="subtitle"]]
+[[!template text="""the other screen, I don't see the chat,""" start="00:00:06.279" video="qanda-one" id="subtitle"]]
+[[!template text="""so maybe someone can tell me.""" start="00:00:08.480" video="qanda-one" id="subtitle"]]
+[[!template text="""[Speaker 1]: It's fine, don't worry about it,""" start="00:00:11.259" video="qanda-one" id="subtitle"]]
+[[!template text="""and we are live. So hi again everyone.""" start="00:00:12.360" video="qanda-one" id="subtitle"]]
+[[!template text="""Hi Tony, how are you doing?""" start="00:00:15.060" video="qanda-one" id="subtitle"]]
+[[!template text="""[Speaker 0]: Really well, and you?""" start="00:00:17.040" video="qanda-one" id="subtitle"]]
+[[!template text="""[Speaker 1]: I am doing fantastically,""" start="00:00:19.440" video="qanda-one" id="subtitle"]]
+[[!template text="""as fantastically as I can be doing,""" start="00:00:21.380" video="qanda-one" id="subtitle"]]
+[[!template text="""having to put out fire in the background""" start="00:00:24.099" video="qanda-one" id="subtitle"]]
+[[!template text="""[Speaker 0]: Cool!""" start="00:00:30.140" video="qanda-one" id="subtitle"]]
+[[!template text="""[Speaker 1]: during MaxConf. But I'm doing great! Alright,""" start="00:00:25.840" video="qanda-one" id="subtitle"]]
+[[!template text="""Let me just try to set up everything so that""" start="00:00:31.640" video="qanda-one" id="subtitle"]]
+[[!template text="""I can show the questions and all this.""" start="00:00:34.960" video="qanda-one" id="subtitle"]]
+[[!template text="""Do you mind if I read you the question?""" start="00:00:37.260" video="qanda-one" id="subtitle"]]
+[[!template text="""It might be a little more interactive and""" start="00:00:38.600" video="qanda-one" id="subtitle"]]
+[[!template text="""this way you can focus on either presenting""" start="00:00:39.960" video="qanda-one" id="subtitle"]]
+[[!template text="""stuff on your end.""" start="00:00:42.800" video="qanda-one" id="subtitle"]]
+[[!template text="""[Speaker 0]: Yes, tell me what are the questions and what""" start="00:00:44.059" video="qanda-one" id="subtitle"]]
+[[!template text="""to do and I will do that.""" start="00:00:48.680" video="qanda-one" id="subtitle"]]
+[[!template text="""[Speaker 1]: Okay great so what I'll do,""" start="00:00:53.420" video="qanda-one" id="subtitle"]]
+[[!template text="""I'll invite people to go to the pad and ask""" start="00:00:56.400" video="qanda-one" id="subtitle"]]
+[[!template text="""questions because it was a very interesting""" start="00:00:58.580" video="qanda-one" id="subtitle"]]
+[[!template text="""talk and I'm sure you have plenty of""" start="00:01:00.060" video="qanda-one" id="subtitle"]]
+[[!template text="""questions but I only see 1 right now.""" start="00:01:01.480" video="qanda-one" id="subtitle"]]
+[[!template text="""Do we have people on BigBlueButton?""" start="00:01:03.460" video="qanda-one" id="subtitle"]]
+[[!template text="""Yes we do have people joining right now.""" start="00:01:05.640" video="qanda-one" id="subtitle"]]
+[[!template text="""So reading the first question then.""" start="00:01:11.000" video="qanda-one" id="subtitle"]]
+[[!template text="""So what's the main motivation for this new""" start="00:01:12.620" video="qanda-one" id="subtitle"]]
+[[!template text="""package? I used to use org.yugo""" start="00:01:14.380" video="qanda-one" id="subtitle"]]
+[[!template text="""and use GitHub Actions to build a blog.""" start="00:01:16.280" video="qanda-one" id="subtitle"]]
+[[!template text="""So can you go in a little bit of details on""" start="00:01:18.340" video="qanda-one" id="subtitle"]]
+[[!template text="""this?""" start="00:01:20.600" video="qanda-one" id="subtitle"]]
+[[!template text="""[Speaker 0]: Yes, OK. So the main goal,""" start="00:01:21.540" video="qanda-one" id="subtitle"]]
+[[!template text="""I didn't want to have,""" start="00:01:30.900" video="qanda-one" id="subtitle"]]
+[[!template text="""to, I will push that here.""" start="00:01:33.805" video="qanda-one" id="subtitle"]]
+[[!template text="""So my goal was to not have to rely on another""" start="00:01:38.040" video="qanda-one" id="subtitle"]]
+[[!template text="""static site generator to produce my website.""" start="00:01:45.060" video="qanda-one" id="subtitle"]]
+[[!template text="""So if you use a Yugo, that means that you""" start="00:01:49.920" video="qanda-one" id="subtitle"]]
+[[!template text="""take, so this is the website that we've seen""" start="00:01:54.780" video="qanda-one" id="subtitle"]]
+[[!template text="""in the talk, this 1. And I didn't want to""" start="00:02:01.960" video="qanda-one" id="subtitle"]]
+[[!template text="""have to use a piece of software in Emacs that""" start="00:02:07.880" video="qanda-one" id="subtitle"]]
+[[!template text="""translate to some other files to be feed to""" start="00:02:13.320" video="qanda-one" id="subtitle"]]
+[[!template text="""another statistic generator because this way""" start="00:02:16.960" video="qanda-one" id="subtitle"]]
+[[!template text="""I have 2 things to understand.""" start="00:02:20.680" video="qanda-one" id="subtitle"]]
+[[!template text="""I have to understand how that software""" start="00:02:23.680" video="qanda-one" id="subtitle"]]
+[[!template text="""translates my files into the other files and""" start="00:02:26.780" video="qanda-one" id="subtitle"]]
+[[!template text="""then I have to understand how Hugo works.""" start="00:02:32.440" video="qanda-one" id="subtitle"]]
+[[!template text="""So if I want to change something I need to""" start="00:02:37.060" video="qanda-one" id="subtitle"]]
+[[!template text="""understand Hugo. So at some point I need to""" start="00:02:39.480" video="qanda-one" id="subtitle"]]
+[[!template text="""work with Hugo. So if I need to work with""" start="00:02:43.660" video="qanda-one" id="subtitle"]]
+[[!template text="""Hugo, maybe I can work with it directly.""" start="00:02:46.200" video="qanda-one" id="subtitle"]]
+[[!template text="""And I wanted also something that was purely""" start="00:02:51.800" video="qanda-one" id="subtitle"]]
+[[!template text="""Emacs-centric and working on it,""" start="00:02:56.960" video="qanda-one" id="subtitle"]]
+[[!template text="""I found out about that solution.""" start="00:03:03.700" video="qanda-one" id="subtitle"]]
+[[!template text="""And I wanted also something that we have only""" start="00:03:05.600" video="qanda-one" id="subtitle"]]
+[[!template text="""1 file that have all the entries.""" start="00:03:11.780" video="qanda-one" id="subtitle"]]
+[[!template text="""And when I thought about that,""" start="00:03:15.560" video="qanda-one" id="subtitle"]]
+[[!template text="""finally I found a way that maybe we can just""" start="00:03:19.140" video="qanda-one" id="subtitle"]]
+[[!template text="""use 1 or 3 to pass it the information of the""" start="00:03:22.720" video="qanda-one" id="subtitle"]]
+[[!template text="""website. And if you look,""" start="00:03:30.360" video="qanda-one" id="subtitle"]]
+[[!template text="""If you just try to work with Gatsby,""" start="00:03:33.405" video="qanda-one" id="subtitle"]]
+[[!template text="""Ugo or all those websites,""" start="00:03:37.920" video="qanda-one" id="subtitle"]]
+[[!template text="""when you start, you download 10,""" start="00:03:40.940" video="qanda-one" id="subtitle"]]
+[[!template text="""20, 30, thousand for hundreds of dependencies""" start="00:03:46.240" video="qanda-one" id="subtitle"]]
+[[!template text="""to do. Just to me, I'm a small guy and I just""" start="00:03:53.440" video="qanda-one" id="subtitle"]]
+[[!template text="""want to have some documentation on the""" start="00:03:59.620" video="qanda-one" id="subtitle"]]
+[[!template text="""website like this 1. It just,""" start="00:04:02.720" video="qanda-one" id="subtitle"]]
+[[!template text="""it shouldn't need that much of a dependency.""" start="00:04:05.460" video="qanda-one" id="subtitle"]]
+[[!template text="""And if you look at the website,""" start="00:04:09.160" video="qanda-one" id="subtitle"]]
+[[!template text="""if you want to hack on something,""" start="00:04:11.460" video="qanda-one" id="subtitle"]]
+[[!template text="""you need a lot of to understand how the""" start="00:04:13.540" video="qanda-one" id="subtitle"]]
+[[!template text="""config files work. So you need to,""" start="00:04:17.320" video="qanda-one" id="subtitle"]]
+[[!template text="""how does it work this config file?""" start="00:04:19.459" video="qanda-one" id="subtitle"]]
+[[!template text="""But I want, it's always happened that you""" start="00:04:21.060" video="qanda-one" id="subtitle"]]
+[[!template text="""want to add 1 thing or to add that things.""" start="00:04:23.320" video="qanda-one" id="subtitle"]]
+[[!template text="""What do you have to do?""" start="00:04:26.420" video="qanda-one" id="subtitle"]]
+[[!template text="""You have to, you can't because it's not""" start="00:04:27.780" video="qanda-one" id="subtitle"]]
+[[!template text="""offered by the configuration file.""" start="00:04:30.340" video="qanda-one" id="subtitle"]]
+[[!template text="""With that solution that I built for me first,""" start="00:04:34.380" video="qanda-one" id="subtitle"]]
+[[!template text="""I don't care if I need something else.""" start="00:04:38.920" video="qanda-one" id="subtitle"]]
+[[!template text="""I just have to go in that file.""" start="00:04:42.020" video="qanda-one" id="subtitle"]]
+[[!template text="""It doesn't need to be that file because as I""" start="00:04:49.840" video="qanda-one" id="subtitle"]]
+[[!template text="""am in Emacs if the render functions are""" start="00:04:52.440" video="qanda-one" id="subtitle"]]
+[[!template text="""already evaluated they exist and I can use it""" start="00:04:56.120" video="qanda-one" id="subtitle"]]
+[[!template text="""but I just have to change that file so if I""" start="00:04:58.940" video="qanda-one" id="subtitle"]]
+[[!template text="""want something more I just I go there let's""" start="00:05:02.520" video="qanda-one" id="subtitle"]]
+[[!template text="""say so does it answer the question or I""" start="00:05:07.860" video="qanda-one" id="subtitle"]]
+[[!template text="""continue to show something?""" start="00:05:10.920" video="qanda-one" id="subtitle"]]
+[[!template text="""[Speaker 1]: It's up to you, I think you are answering the""" start="00:05:14.320" video="qanda-one" id="subtitle"]]
+[[!template text="""question. I think you veered off a little bit""" start="00:05:16.060" video="qanda-one" id="subtitle"]]
+[[!template text="""from just why not you go but then you kind of""" start="00:05:17.600" video="qanda-one" id="subtitle"]]
+[[!template text="""redid part of your presentation to justify""" start="00:05:19.940" video="qanda-one" id="subtitle"]]
+[[!template text="""[Speaker 0]: own system. But stop me if I go because I""" start="00:05:23.480" video="qanda-one" id="subtitle"]]
+[[!template text="""used to want to show more things than what""" start="00:05:26.360" video="qanda-one" id="subtitle"]]
+[[!template text="""there is in the question.""" start="00:05:29.920" video="qanda-one" id="subtitle"]]
+[[!template text="""[Speaker 1]: why you had to roll your Yeah that's fine.""" start="00:05:21.940" video="qanda-one" id="subtitle"]]
+[[!template text="""Just for people who do not know,""" start="00:05:32.080" video="qanda-one" id="subtitle"]]
+[[!template text="""we tend to restrict speakers when they submit""" start="00:05:33.340" video="qanda-one" id="subtitle"]]
+[[!template text="""a presentation. We tell them,""" start="00:05:35.500" video="qanda-one" id="subtitle"]]
+[[!template text="""oh, you can do a flash talk in 10 minutes or""" start="00:05:36.620" video="qanda-one" id="subtitle"]]
+[[!template text="""a bit of a longer talk in 20 minutes or 40""" start="00:05:39.000" video="qanda-one" id="subtitle"]]
+[[!template text="""minutes. And usually, because we have a lot""" start="00:05:41.100" video="qanda-one" id="subtitle"]]
+[[!template text="""of speakers, we have to kind of coerce people""" start="00:05:43.180" video="qanda-one" id="subtitle"]]
+[[!template text="""into going to shorter formats and sometimes""" start="00:05:46.260" video="qanda-one" id="subtitle"]]
+[[!template text="""it's a lot about killing your darlings.""" start="00:05:48.340" video="qanda-one" id="subtitle"]]
+[[!template text="""But just to reassure you,""" start="00:05:51.100" video="qanda-one" id="subtitle"]]
+[[!template text="""we're just about to go on a launch break in""" start="00:05:52.360" video="qanda-one" id="subtitle"]]
+[[!template text="""about 10 minutes, so you've got the full 10""" start="00:05:54.560" video="qanda-one" id="subtitle"]]
+[[!template text="""minutes to use however you want,""" start="00:05:56.840" video="qanda-one" id="subtitle"]]
+[[!template text="""but I'll just tell you,""" start="00:05:58.320" video="qanda-one" id="subtitle"]]
+[[!template text="""you have a lot of questions so you might want""" start="00:05:59.340" video="qanda-one" id="subtitle"]]
+[[!template text="""to perhaps move on to the next 1 as soon as""" start="00:06:01.080" video="qanda-one" id="subtitle"]]
+[[!template text="""you can.""" start="00:06:03.400" video="qanda-one" id="subtitle"]]
+[[!template text="""[Speaker 0]: Yes okay so tell me the next 1 and if people""" start="00:06:04.540" video="qanda-one" id="subtitle"]]
+[[!template text="""want to stay more I can also stay more.""" start="00:06:08.940" video="qanda-one" id="subtitle"]]
+[[!template text="""Right. I understand if people need to go to""" start="00:06:14.240" video="qanda-one" id="subtitle"]]
+[[!template text="""lunch, they can, but people that want to""" start="00:06:17.220" video="qanda-one" id="subtitle"]]
+[[!template text="""stay, if it's possible,""" start="00:06:19.020" video="qanda-one" id="subtitle"]]
+[[!template text="""I'm here to answer any question.""" start="00:06:20.340" video="qanda-one" id="subtitle"]]
+[[!template text="""[Speaker 1]: Splendid. All right, so moving on to the next""" start="00:06:24.060" video="qanda-one" id="subtitle"]]
+[[!template text="""question. Is it possible to include the""" start="00:06:26.240" video="qanda-one" id="subtitle"]]
+[[!template text="""include org tag to add content from other""" start="00:06:29.180" video="qanda-one" id="subtitle"]]
+[[!template text="""files. Do you see what I'm talking about?""" start="00:06:31.560" video="qanda-one" id="subtitle"]]
+[[!template text="""[Speaker 0]: Yes, so it's not included.""" start="00:06:35.200" video="qanda-one" id="subtitle"]]
+[[!template text="""So the idea was really to have only 1 file""" start="00:06:39.380" video="qanda-one" id="subtitle"]]
+[[!template text="""and have no options. So if you look at the,""" start="00:06:45.720" video="qanda-one" id="subtitle"]]
+[[!template text="""let's go into, so the answer is no,""" start="00:06:49.760" video="qanda-one" id="subtitle"]]
+[[!template text="""but if you want, you can write the code that""" start="00:06:52.240" video="qanda-one" id="subtitle"]]
+[[!template text="""do it. But let's just go into one.n,""" start="00:06:56.320" video="qanda-one" id="subtitle"]]
+[[!template text="""so that files. So this is the files where you""" start="00:07:02.280" video="qanda-one" id="subtitle"]]
+[[!template text="""have everything, and there is only 2""" start="00:07:07.900" video="qanda-one" id="subtitle"]]
+[[!template text="""dependencies. Maybe we can see that at the""" start="00:07:11.440" video="qanda-one" id="subtitle"]]
+[[!template text="""top so which are htmlis on the Jack and the""" start="00:07:13.980" video="qanda-one" id="subtitle"]]
+[[!template text="""other are Augment. So for me,""" start="00:07:18.080" video="qanda-one" id="subtitle"]]
+[[!template text="""they're not dependencies because they come""" start="00:07:19.840" video="qanda-one" id="subtitle"]]
+[[!template text="""with Emacs. But the question is,""" start="00:07:21.820" video="qanda-one" id="subtitle"]]
+[[!template text="""can I add other things?""" start="00:07:25.440" video="qanda-one" id="subtitle"]]
+[[!template text="""If you look at that, you don't see the orange""" start="00:07:27.440" video="qanda-one" id="subtitle"]]
+[[!template text="""color which are viable,""" start="00:07:31.640" video="qanda-one" id="subtitle"]]
+[[!template text="""it's because I didn't want any configuration""" start="00:07:33.600" video="qanda-one" id="subtitle"]]
+[[!template text="""nor option. So there is no,""" start="00:07:38.440" video="qanda-one" id="subtitle"]]
+[[!template text="""if you think about, you are used to use org""" start="00:07:41.960" video="qanda-one" id="subtitle"]]
+[[!template text="""export normally and to use all the options""" start="00:07:45.660" video="qanda-one" id="subtitle"]]
+[[!template text="""that are possible on all the things they are""" start="00:07:49.540" video="qanda-one" id="subtitle"]]
+[[!template text="""not included. You can add them because when""" start="00:07:52.000" video="qanda-one" id="subtitle"]]
+[[!template text="""you are in a render function.""" start="00:08:04.900" video="qanda-one" id="subtitle"]]
+[[!template text="""So this is the render function that I showed""" start="00:08:07.060" video="qanda-one" id="subtitle"]]
+[[!template text="""in the theme. You have a page tree so you""" start="00:08:08.940" video="qanda-one" id="subtitle"]]
+[[!template text="""have the information but in the global I""" start="00:08:11.980" video="qanda-one" id="subtitle"]]
+[[!template text="""think, yes in global, you can pass anything""" start="00:08:18.358" video="qanda-one" id="subtitle"]]
+[[!template text="""you want and if you want you can pass the""" start="00:08:21.020" video="qanda-one" id="subtitle"]]
+[[!template text="""parse tree of the whole file.""" start="00:08:24.720" video="qanda-one" id="subtitle"]]
+[[!template text="""So if you pass the parse tree of the whole""" start="00:08:28.080" video="qanda-one" id="subtitle"]]
+[[!template text="""file, what you can do is that you can get it""" start="00:08:30.840" video="qanda-one" id="subtitle"]]
+[[!template text="""there. So I don't have it right now,""" start="00:08:35.400" video="qanda-one" id="subtitle"]]
+[[!template text="""but you might have your include stuff and you""" start="00:08:38.659" video="qanda-one" id="subtitle"]]
+[[!template text="""get it with a node property that target""" start="00:08:43.980" video="qanda-one" id="subtitle"]]
+[[!template text="""something in the global variable.""" start="00:08:48.580" video="qanda-one" id="subtitle"]]
+[[!template text="""So if we look just to be short but those 3""" start="00:08:50.940" video="qanda-one" id="subtitle"]]
+[[!template text="""parts, the first 1 is page tree.""" start="00:08:55.320" video="qanda-one" id="subtitle"]]
+[[!template text="""So it's this page that you are on the right,""" start="00:08:57.180" video="qanda-one" id="subtitle"]]
+[[!template text="""pages are a list of all the pages and global""" start="00:08:59.160" video="qanda-one" id="subtitle"]]
+[[!template text="""is something that you can set and reset once""" start="00:09:02.840" video="qanda-one" id="subtitle"]]
+[[!template text="""and you have the whole part street.""" start="00:09:06.580" video="qanda-one" id="subtitle"]]
+[[!template text="""So anything that you add in your op-files""" start="00:09:10.840" video="qanda-one" id="subtitle"]]
+[[!template text="""could go in global if you want,""" start="00:09:15.040" video="qanda-one" id="subtitle"]]
+[[!template text="""but it's not included.""" start="00:09:16.840" video="qanda-one" id="subtitle"]]
+[[!template text="""[Speaker 1]: All right. I think that's also answering the""" start="00:09:20.600" video="qanda-one" id="subtitle"]]
+[[!template text="""question. Can this generate a single file""" start="00:09:23.140" video="qanda-one" id="subtitle"]]
+[[!template text="""from different sources like blog.org,""" start="00:09:24.840" video="qanda-one" id="subtitle"]]
+[[!template text="""videos.org? I think you've just answered""" start="00:09:26.880" video="qanda-one" id="subtitle"]]
+[[!template text="""[Speaker 0]: Yes, I think yes.""" start="00:09:30.040" video="qanda-one" id="subtitle"]]
+[[!template text="""[Speaker 1]: this, right? Right. Okay.""" start="00:09:28.820" video="qanda-one" id="subtitle"]]
+[[!template text="""So moving on to the other question.""" start="00:09:32.660" video="qanda-one" id="subtitle"]]
+[[!template text="""Do you have pre-made templates already along""" start="00:09:34.660" video="qanda-one" id="subtitle"]]
+[[!template text="""with the 1.el package?""" start="00:09:37.200" video="qanda-one" id="subtitle"]]
+[[!template text="""[Speaker 0]: So, yes and no. So, The answer is if we go to""" start="00:09:41.680" video="qanda-one" id="subtitle"]]
+[[!template text="""1.n, so this file, so the first are blah,""" start="00:09:49.960" video="qanda-one" id="subtitle"]]
+[[!template text="""blah, blah. How it works,""" start="00:09:55.520" video="qanda-one" id="subtitle"]]
+[[!template text="""so, okay, so you have the 1-hocs,""" start="00:10:01.780" video="qanda-one" id="subtitle"]]
+[[!template text="""which is what can translate the org parse""" start="00:10:07.200" video="qanda-one" id="subtitle"]]
+[[!template text="""tree into HTML. So this is for the content of""" start="00:10:11.980" video="qanda-one" id="subtitle"]]
+[[!template text="""each page. So this is very useful.""" start="00:10:16.260" video="qanda-one" id="subtitle"]]
+[[!template text="""Then we have a bunch of functions that help""" start="00:10:18.480" video="qanda-one" id="subtitle"]]
+[[!template text="""to render the function,""" start="00:10:22.660" video="qanda-one" id="subtitle"]]
+[[!template text="""each page. And you have a bunch of...""" start="00:10:26.040" video="qanda-one" id="subtitle"]]
+[[!template text="""Everything that starts with dash default is a""" start="00:10:31.360" video="qanda-one" id="subtitle"]]
+[[!template text="""render function. So there's no template,""" start="00:10:33.920" video="qanda-one" id="subtitle"]]
+[[!template text="""but each page that if you want,""" start="00:10:37.480" video="qanda-one" id="subtitle"]]
+[[!template text="""so that 1, the home, you can use 1 default""" start="00:10:42.240" video="qanda-one" id="subtitle"]]
+[[!template text="""home. So, if you want to list the page,""" start="00:10:46.400" video="qanda-one" id="subtitle"]]
+[[!template text="""you have that 1. For a page with no table of""" start="00:10:48.740" video="qanda-one" id="subtitle"]]
+[[!template text="""content, you use that thing.""" start="00:10:53.220" video="qanda-one" id="subtitle"]]
+[[!template text="""And if you go back to be short,""" start="00:10:55.840" video="qanda-one" id="subtitle"]]
+[[!template text="""if we go there, I put this like that.""" start="00:10:58.260" video="qanda-one" id="subtitle"]]
+[[!template text="""So this that we see here is the first inline""" start="00:11:03.900" video="qanda-one" id="subtitle"]]
+[[!template text="""of 1.org. By the way, it doesn't have to be""" start="00:11:09.960" video="qanda-one" id="subtitle"]]
+[[!template text="""called 1.org. It's just as you want,""" start="00:11:14.440" video="qanda-one" id="subtitle"]]
+[[!template text="""but maybe we can call it.""" start="00:11:17.160" video="qanda-one" id="subtitle"]]
+[[!template text="""So default, what was the other 1?""" start="00:11:20.740" video="qanda-one" id="subtitle"]]
+[[!template text="""Default with sidebar. Or is it default with""" start="00:11:23.220" video="qanda-one" id="subtitle"]]
+[[!template text="""sidebar or default? Yes,""" start="00:11:28.280" video="qanda-one" id="subtitle"]]
+[[!template text="""with sidebar. Sidebar,""" start="00:11:30.080" video="qanda-one" id="subtitle"]]
+[[!template text="""if it's worked correctly.""" start="00:11:36.400" video="qanda-one" id="subtitle"]]
+[[!template text="""Okay, so, okay, so I don't know why the CSS""" start="00:11:39.140" video="qanda-one" id="subtitle"]]
+[[!template text="""is not working correctly.""" start="00:11:46.760" video="qanda-one" id="subtitle"]]
+[[!template text="""[Speaker 1]: It's okay. It wouldn't be a live demo without""" start="00:11:50.740" video="qanda-one" id="subtitle"]]
+[[!template text="""problems occurring at some point.""" start="00:11:53.860" video="qanda-one" id="subtitle"]]
+[[!template text="""Okay.""" start="00:11:55.440" video="qanda-one" id="subtitle"]]
+[[!template text="""[Speaker 0]: But so maybe we can use this 1.""" start="00:11:56.980" video="qanda-one" id="subtitle"]]
+[[!template text="""Or we stuck. So we are going to use this 1,""" start="00:12:02.940" video="qanda-one" id="subtitle"]]
+[[!template text="""we've talked this 1, but maybe better in this""" start="00:12:06.980" video="qanda-one" id="subtitle"]]
+[[!template text="""1 that add something. So we build it again""" start="00:12:16.020" video="qanda-one" id="subtitle"]]
+[[!template text="""and now, oh, come on. We have it and we have""" start="00:12:20.340" video="qanda-one" id="subtitle"]]
+[[!template text="""the, sorry, if we have just default,""" start="00:12:32.180" video="qanda-one" id="subtitle"]]
+[[!template text="""we rebuild and now this is the default layer""" start="00:12:37.820" video="qanda-one" id="subtitle"]]
+[[!template text="""that if we do with table of content,""" start="00:12:41.120" video="qanda-one" id="subtitle"]]
+[[!template text="""you have it, you have the default content.""" start="00:12:46.060" video="qanda-one" id="subtitle"]]
+[[!template text="""So how to change, and they are not template.""" start="00:12:48.620" video="qanda-one" id="subtitle"]]
+[[!template text="""They are render functions that takes your""" start="00:12:53.940" video="qanda-one" id="subtitle"]]
+[[!template text="""page as a tree and render HTML string.""" start="00:13:00.300" video="qanda-one" id="subtitle"]]
+[[!template text="""So you can build any function that you want.""" start="00:13:06.260" video="qanda-one" id="subtitle"]]
+[[!template text="""So yes, I think that answers the question.""" start="00:13:10.600" video="qanda-one" id="subtitle"]]
+[[!template text="""There is no template like in other systems.""" start="00:13:12.280" video="qanda-one" id="subtitle"]]
+[[!template text="""[Speaker 1]: Cool, that makes sense.""" start="00:13:17.780" video="qanda-one" id="subtitle"]]
+[[!template text="""We have 2 more questions and then we'll need""" start="00:13:19.020" video="qanda-one" id="subtitle"]]
+[[!template text="""to go on a lunch break.""" start="00:13:21.000" video="qanda-one" id="subtitle"]]
+[[!template text="""I don't see anyone join the room.""" start="00:13:22.200" video="qanda-one" id="subtitle"]]
+[[!template text="""Remember, Tony has said that he would be""" start="00:13:23.740" video="qanda-one" id="subtitle"]]
+[[!template text="""willing to answer more questions during the""" start="00:13:25.640" video="qanda-one" id="subtitle"]]
+[[!template text="""lunch break, perhaps because it's not lunch""" start="00:13:27.500" video="qanda-one" id="subtitle"]]
+[[!template text="""break for you. Are you in Europe right now?""" start="00:13:29.120" video="qanda-one" id="subtitle"]]
+[[!template text="""So that's why for us, also for me it's very""" start="00:13:32.360" video="qanda-one" id="subtitle"]]
+[[!template text="""dark, but it's not lunch break for us,""" start="00:13:34.600" video="qanda-one" id="subtitle"]]
+[[!template text="""it's going to be dinner break soon actually.""" start="00:13:37.660" video="qanda-one" id="subtitle"]]
+[[!template text="""[Speaker 0]: Yes. Yes, exactly, so I'm just,""" start="00:13:31.280" video="qanda-one" id="subtitle"]]
+[[!template text="""I'm okay.""" start="00:13:44.020" video="qanda-one" id="subtitle"]]
+[[!template text="""[Speaker 1]: Right, Okay, so moving on to 1 of the last 2""" start="00:13:45.580" video="qanda-one" id="subtitle"]]
+[[!template text="""questions. What additional features are there""" start="00:13:49.200" video="qanda-one" id="subtitle"]]
+[[!template text="""that you would like to add to 1.EL""" start="00:13:51.680" video="qanda-one" id="subtitle"]]
+[[!template text="""in the future?""" start="00:13:53.960" video="qanda-one" id="subtitle"]]
+[[!template text="""[Speaker 0]: Yes, there's only 1, which is a full text""" start="00:13:56.120" video="qanda-one" id="subtitle"]]
+[[!template text="""search done in a simple way.""" start="00:14:00.560" video="qanda-one" id="subtitle"]]
+[[!template text="""So I don't meet what simple way means,""" start="00:14:06.540" video="qanda-one" id="subtitle"]]
+[[!template text="""but when I see something complicated,""" start="00:14:10.320" video="qanda-one" id="subtitle"]]
+[[!template text="""it doesn't enter in 1 to me.""" start="00:14:12.620" video="qanda-one" id="subtitle"]]
+[[!template text="""So, but really, if you see that,""" start="00:14:15.400" video="qanda-one" id="subtitle"]]
+[[!template text="""I would like to have some way.""" start="00:14:19.120" video="qanda-one" id="subtitle"]]
+[[!template text="""So, this is the documentation and I would""" start="00:14:22.300" video="qanda-one" id="subtitle"]]
+[[!template text="""like to have some way to just have another""" start="00:14:25.080" video="qanda-one" id="subtitle"]]
+[[!template text="""function because we are not talking about""" start="00:14:27.500" video="qanda-one" id="subtitle"]]
+[[!template text="""those websites on the 1.L.""" start="00:14:31.300" video="qanda-one" id="subtitle"]]
+[[!template text="""It's not made for a big company or of your""" start="00:14:34.440" video="qanda-one" id="subtitle"]]
+[[!template text="""things, it's just for a random guy that have""" start="00:14:39.520" video="qanda-one" id="subtitle"]]
+[[!template text="""a blog or a few blogs and If you are a great""" start="00:14:42.440" video="qanda-one" id="subtitle"]]
+[[!template text="""blogger, maybe you are going to write 100 or""" start="00:14:46.200" video="qanda-one" id="subtitle"]]
+[[!template text="""200 or 300 pages in many years.""" start="00:14:53.040" video="qanda-one" id="subtitle"]]
+[[!template text="""So this enter in that category.""" start="00:14:57.240" video="qanda-one" id="subtitle"]]
+[[!template text="""So it's small. So I think it can,""" start="00:15:00.060" video="qanda-one" id="subtitle"]]
+[[!template text="""we could find a way to make a full text""" start="00:15:04.080" video="qanda-one" id="subtitle"]]
+[[!template text="""search. And that is simple.""" start="00:15:07.580" video="qanda-one" id="subtitle"]]
+[[!template text="""I don't need to, to go with,""" start="00:15:10.240" video="qanda-one" id="subtitle"]]
+[[!template text="""with solution like Algolia that is,""" start="00:15:13.520" video="qanda-one" id="subtitle"]]
+[[!template text="""that works super fine.""" start="00:15:16.620" video="qanda-one" id="subtitle"]]
+[[!template text="""But this is something that I don't control""" start="00:15:17.900" video="qanda-one" id="subtitle"]]
+[[!template text="""and I have to give them the data and I'm not""" start="00:15:21.600" video="qanda-one" id="subtitle"]]
+[[!template text="""against that but it's just that I think with""" start="00:15:26.200" video="qanda-one" id="subtitle"]]
+[[!template text="""a bit of work something can be done with full""" start="00:15:29.320" video="qanda-one" id="subtitle"]]
+[[!template text="""textile. But this is the only thing that I""" start="00:15:32.800" video="qanda-one" id="subtitle"]]
+[[!template text="""would like to add.""" start="00:15:35.600" video="qanda-one" id="subtitle"]]
+[[!template text="""[Speaker 1]: Very clear answer. Next question.""" start="00:15:38.720" video="qanda-one" id="subtitle"]]
+[[!template text="""Can you create navbars on a website and fancy""" start="00:15:41.580" video="qanda-one" id="subtitle"]]
+[[!template text="""things like carousels using 1.EL?""" start="00:15:44.380" video="qanda-one" id="subtitle"]]
+[[!template text="""Now carousels is just,""" start="00:15:46.800" video="qanda-one" id="subtitle"]]
+[[!template text="""I think, a fancy way to display pictures and""" start="00:15:48.260" video="qanda-one" id="subtitle"]]
+[[!template text="""please correct me whoever asked this""" start="00:15:51.820" video="qanda-one" id="subtitle"]]
+[[!template text="""question. Otherwise I see you taking notes""" start="00:15:53.800" video="qanda-one" id="subtitle"]]
+[[!template text="""for the answers, thank you very much.""" start="00:15:55.440" video="qanda-one" id="subtitle"]]
+[[!template text="""But if you could specify maybe carousels so""" start="00:15:56.820" video="qanda-one" id="subtitle"]]
+[[!template text="""that Tony and I may get a better idea.""" start="00:15:58.740" video="qanda-one" id="subtitle"]]
+[[!template text="""But still, first part of the question,""" start="00:16:01.920" video="qanda-one" id="subtitle"]]
+[[!template text="""can you create navbars on a website?""" start="00:16:03.340" video="qanda-one" id="subtitle"]]
+[[!template text="""[Speaker 0]: Yes. So if, for instance,""" start="00:16:05.980" video="qanda-one" id="subtitle"]]
+[[!template text="""you see there, to me, it's not a,""" start="00:16:10.900" video="qanda-one" id="subtitle"]]
+[[!template text="""it's a navbar. So you already have it.""" start="00:16:14.600" video="qanda-one" id="subtitle"]]
+[[!template text="""I didn't show that in the talk,""" start="00:16:19.860" video="qanda-one" id="subtitle"]]
+[[!template text="""but the CSS for the default function that""" start="00:16:23.080" video="qanda-one" id="subtitle"]]
+[[!template text="""works is responsive. So,""" start="00:16:27.440" video="qanda-one" id="subtitle"]]
+[[!template text="""out of the box, if you are using something,""" start="00:16:31.720" video="qanda-one" id="subtitle"]]
+[[!template text="""you will have an app bar done for you with""" start="00:16:34.600" video="qanda-one" id="subtitle"]]
+[[!template text="""all the pages that you have.""" start="00:16:37.540" video="qanda-one" id="subtitle"]]
+[[!template text="""So, if we go to install,""" start="00:16:38.680" video="qanda-one" id="subtitle"]]
+[[!template text="""we have that. And if we no longer have that,""" start="00:16:40.920" video="qanda-one" id="subtitle"]]
+[[!template text="""we have that sidebar there.""" start="00:16:44.900" video="qanda-one" id="subtitle"]]
+[[!template text="""And how it's done. So,""" start="00:16:50.220" video="qanda-one" id="subtitle"]]
+[[!template text="""the same way. I like simple fields that are""" start="00:16:52.660" video="qanda-one" id="subtitle"]]
+[[!template text="""flexible and I didn't want configuration""" start="00:16:56.380" video="qanda-one" id="subtitle"]]
+[[!template text="""because if you want to write the code to""" start="00:16:58.860" video="qanda-one" id="subtitle"]]
+[[!template text="""change something you just have to write code.""" start="00:17:01.280" video="qanda-one" id="subtitle"]]
+[[!template text="""So any function, render function,""" start="00:17:03.480" video="qanda-one" id="subtitle"]]
+[[!template text="""is yours. So you can do whatever you want and""" start="00:17:05.859" video="qanda-one" id="subtitle"]]
+[[!template text="""you enter the html that you want to render.""" start="00:17:08.760" video="qanda-one" id="subtitle"]]
+[[!template text="""So let's see how do we get that navigation""" start="00:17:11.520" video="qanda-one" id="subtitle"]]
+[[!template text="""bar that we have when we do that this is a""" start="00:17:17.920" video="qanda-one" id="subtitle"]]
+[[!template text="""CSS stuff. But when we click,""" start="00:17:20.920" video="qanda-one" id="subtitle"]]
+[[!template text="""this is a JS stuff that,""" start="00:17:23.099" video="qanda-one" id="subtitle"]]
+[[!template text="""so let's go to one.l And maybe this is a""" start="00:17:27.040" video="qanda-one" id="subtitle"]]
+[[!template text="""sidebar. Why that function because,""" start="00:17:32.320" video="qanda-one" id="subtitle"]]
+[[!template text="""okay. So when that function,""" start="00:17:36.300" video="qanda-one" id="subtitle"]]
+[[!template text="""so 1 default sidebar is 1 that is used to do""" start="00:17:40.680" video="qanda-one" id="subtitle"]]
+[[!template text="""some of the things at some point,""" start="00:17:45.340" video="qanda-one" id="subtitle"]]
+[[!template text="""what we return is a JackHTML that take a data""" start="00:17:47.120" video="qanda-one" id="subtitle"]]
+[[!template text="""structure and return a string.""" start="00:17:52.120" video="qanda-one" id="subtitle"]]
+[[!template text="""So this is your HTML. So you can see at the""" start="00:17:54.340" video="qanda-one" id="subtitle"]]
+[[!template text="""top you have the end, then you have the body,""" start="00:17:57.280" video="qanda-one" id="subtitle"]]
+[[!template text="""and if we go at the end we can add a script""" start="00:18:01.120" video="qanda-one" id="subtitle"]]
+[[!template text="""thing. So what we've seen with the sidebar""" start="00:18:06.080" video="qanda-one" id="subtitle"]]
+[[!template text="""it's just that much line of JavaScript.""" start="00:18:08.920" video="qanda-one" id="subtitle"]]
+[[!template text="""So this is the only JavaScript that there is""" start="00:18:11.920" video="qanda-one" id="subtitle"]]
+[[!template text="""to get what we have here when we do that.""" start="00:18:17.440" video="qanda-one" id="subtitle"]]
+[[!template text="""So you can add whatever you want.""" start="00:18:25.360" video="qanda-one" id="subtitle"]]
+[[!template text="""It's code and you're the master of that code.""" start="00:18:29.500" video="qanda-one" id="subtitle"]]
+[[!template text="""[Speaker 1]: Splendid, great. So to specify the carousel""" start="00:18:35.280" video="qanda-one" id="subtitle"]]
+[[!template text="""stuff that we mentioned before,""" start="00:18:38.800" video="qanda-one" id="subtitle"]]
+[[!template text="""it's pictures rolling or sliding from 1 to""" start="00:18:39.860" video="qanda-one" id="subtitle"]]
+[[!template text="""the other. It's kind of like having a""" start="00:18:42.520" video="qanda-one" id="subtitle"]]
+[[!template text="""gallery, imagine a fancy dynamic gallery""" start="00:18:44.620" video="qanda-one" id="subtitle"]]
+[[!template text="""where you can scroll pictures.""" start="00:18:47.540" video="qanda-one" id="subtitle"]]
+[[!template text="""Do you see what I'm talking about?""" start="00:18:48.740" video="qanda-one" id="subtitle"]]
+[[!template text="""[Speaker 0]: Yes, so that things would just be I think""" start="00:18:50.380" video="qanda-one" id="subtitle"]]
+[[!template text="""some javascript added somewhere and I can""" start="00:18:53.620" video="qanda-one" id="subtitle"]]
+[[!template text="""show you another website.""" start="00:18:57.620" video="qanda-one" id="subtitle"]]
+[[!template text="""So for instance if we go because there are""" start="00:18:59.440" video="qanda-one" id="subtitle"]]
+[[!template text="""not all the data of the website are not all""" start="00:19:04.200" video="qanda-one" id="subtitle"]]
+[[!template text="""public, but the website they are.""" start="00:19:08.160" video="qanda-one" id="subtitle"]]
+[[!template text="""So for instance, a mini-buffer,""" start="00:19:10.140" video="qanda-one" id="subtitle"]]
+[[!template text="""it's not a carousel, but at the home page,""" start="00:19:14.480" video="qanda-one" id="subtitle"]]
+[[!template text="""we can do whatever we want.""" start="00:19:19.140" video="qanda-one" id="subtitle"]]
+[[!template text="""Still those pages, still,""" start="00:19:22.660" video="qanda-one" id="subtitle"]]
+[[!template text="""this is only 1 file for each page.""" start="00:19:24.560" video="qanda-one" id="subtitle"]]
+[[!template text="""So if we click, we can get those things.""" start="00:19:28.980" video="qanda-one" id="subtitle"]]
+[[!template text="""It's just that when we,""" start="00:19:31.720" video="qanda-one" id="subtitle"]]
+[[!template text="""for the home page for instance,""" start="00:19:33.420" video="qanda-one" id="subtitle"]]
+[[!template text="""when we go back on that home page,""" start="00:19:35.860" video="qanda-one" id="subtitle"]]
+[[!template text="""we have the list at that point.""" start="00:19:38.160" video="qanda-one" id="subtitle"]]
+[[!template text="""So let's go back to that function that we're,""" start="00:19:40.580" video="qanda-one" id="subtitle"]]
+[[!template text="""so not that 1, maybe the 1,""" start="00:19:45.540" video="qanda-one" id="subtitle"]]
+[[!template text="""1 different, it's better because that 1 is""" start="00:19:47.740" video="qanda-one" id="subtitle"]]
+[[!template text="""simpler. So almost nothing happened.""" start="00:19:50.760" video="qanda-one" id="subtitle"]]
+[[!template text="""We have the list of the pages.""" start="00:19:53.620" video="qanda-one" id="subtitle"]]
+[[!template text="""So I can do whatever I want with that list.""" start="00:19:56.240" video="qanda-one" id="subtitle"]]
+[[!template text="""I can loop over and we can see that 1,""" start="00:20:00.360" video="qanda-one" id="subtitle"]]
+[[!template text="""that default home list of pages,""" start="00:20:06.340" video="qanda-one" id="subtitle"]]
+[[!template text="""so that list of the pages,""" start="00:20:08.600" video="qanda-one" id="subtitle"]]
+[[!template text="""and we see where is the list.""" start="00:20:10.260" video="qanda-one" id="subtitle"]]
+[[!template text="""Okay, so this is a, here we have a function""" start="00:20:13.200" video="qanda-one" id="subtitle"]]
+[[!template text="""that just, we want the pages,""" start="00:20:17.680" video="qanda-one" id="subtitle"]]
+[[!template text="""but I think we, but the home page,""" start="00:20:21.100" video="qanda-one" id="subtitle"]]
+[[!template text="""and we have that list,""" start="00:20:24.620" video="qanda-one" id="subtitle"]]
+[[!template text="""and then here we do that.""" start="00:20:28.300" video="qanda-one" id="subtitle"]]
+[[!template text="""And we get something listed,""" start="00:20:37.740" video="qanda-one" id="subtitle"]]
+[[!template text="""But then as you control everything that you""" start="00:20:40.680" video="qanda-one" id="subtitle"]]
+[[!template text="""do, you can pass any CSS class that you want""" start="00:20:44.060" video="qanda-one" id="subtitle"]]
+[[!template text="""to do those things. So,""" start="00:20:51.820" video="qanda-one" id="subtitle"]]
+[[!template text="""for instance, that div,""" start="00:20:53.620" video="qanda-one" id="subtitle"]]
+[[!template text="""add the class either. Yes,""" start="00:20:55.260" video="qanda-one" id="subtitle"]]
+[[!template text="""you can do. I don't remember the question,""" start="00:21:00.660" video="qanda-one" id="subtitle"]]
+[[!template text="""but I think I was answering the right 1.""" start="00:21:02.840" video="qanda-one" id="subtitle"]]
+[[!template text="""[Speaker 1]: No, no, you were answering it.""" start="00:21:05.860" video="qanda-one" id="subtitle"]]
+[[!template text="""It was about carousels and about having fancy""" start="00:21:07.260" video="qanda-one" id="subtitle"]]
+[[!template text="""display for image galleries.""" start="00:21:09.720" video="qanda-one" id="subtitle"]]
+[[!template text="""And I think you've answered.""" start="00:21:11.720" video="qanda-one" id="subtitle"]]
+[[!template text="""Basically, you just put your JavaScript,""" start="00:21:12.660" video="qanda-one" id="subtitle"]]
+[[!template text="""you embed it inside the code.""" start="00:21:14.160" video="qanda-one" id="subtitle"]]
+[[!template text="""[Speaker 0]: Exactly.""" start="00:21:16.620" video="qanda-one" id="subtitle"]]
+[[!template text="""[Speaker 1]: So, other question. Would there be an""" start="00:21:18.620" video="qanda-one" id="subtitle"]]
+[[!template text="""automated way to convert an existing HTML""" start="00:21:20.220" video="qanda-one" id="subtitle"]]
+[[!template text="""document into a JackHTML form?""" start="00:21:22.860" video="qanda-one" id="subtitle"]]
+[[!template text="""[Speaker 0]: Okay, so that 1, I don't have 1.""" start="00:21:28.180" video="qanda-one" id="subtitle"]]
+[[!template text="""It's another topic, but maybe there are some""" start="00:21:32.200" video="qanda-one" id="subtitle"]]
+[[!template text="""kind of session because some people that""" start="00:21:35.660" video="qanda-one" id="subtitle"]]
+[[!template text="""know, that are used to Lisp,""" start="00:21:37.940" video="qanda-one" id="subtitle"]]
+[[!template text="""common Lisp or Clojure or other,""" start="00:21:43.080" video="qanda-one" id="subtitle"]]
+[[!template text="""Jack-html, that function,""" start="00:21:46.300" video="qanda-one" id="subtitle"]]
+[[!template text="""is something classic, but I didn't find,""" start="00:21:50.740" video="qanda-one" id="subtitle"]]
+[[!template text="""So I wrote it because I didn't find it""" start="00:21:53.680" video="qanda-one" id="subtitle"]]
+[[!template text="""already done the way I want for Emacs.""" start="00:22:00.840" video="qanda-one" id="subtitle"]]
+[[!template text="""And this is something for E-cup closure.""" start="00:22:06.040" video="qanda-one" id="subtitle"]]
+[[!template text="""So really I take, it's not that I take my""" start="00:22:09.640" video="qanda-one" id="subtitle"]]
+[[!template text="""impression, just that when you have something""" start="00:22:13.260" video="qanda-one" id="subtitle"]]
+[[!template text="""that exists and you look at how it's done.""" start="00:22:15.060" video="qanda-one" id="subtitle"]]
+[[!template text="""So you have a eCup for Crusher,""" start="00:22:20.640" video="qanda-one" id="subtitle"]]
+[[!template text="""does the same thing that HTML.""" start="00:22:25.160" video="qanda-one" id="subtitle"]]
+[[!template text="""It's more that I do a Jack HTML do what eCup""" start="00:22:26.660" video="qanda-one" id="subtitle"]]
+[[!template text="""does, but maybe they do it a better way.""" start="00:22:32.440" video="qanda-one" id="subtitle"]]
+[[!template text="""So I think maybe in that community,""" start="00:22:37.800" video="qanda-one" id="subtitle"]]
+[[!template text="""it might already exist something that go from""" start="00:22:42.320" video="qanda-one" id="subtitle"]]
+[[!template text="""HTML to Jack. So you can see,""" start="00:22:46.320" video="qanda-one" id="subtitle"]]
+[[!template text="""is it big enough? I will make it big enough.""" start="00:22:53.640" video="qanda-one" id="subtitle"]]
+[[!template text="""[Speaker 1]: It's good enough, don't worry.""" start="00:22:57.626" video="qanda-one" id="subtitle"]]
+[[!template text="""[Speaker 0]: So if you see- So you have the hash HTML and""" start="00:22:56.820" video="qanda-one" id="subtitle"]]
+[[!template text="""you see those things. There are things that I""" start="00:23:01.420" video="qanda-one" id="subtitle"]]
+[[!template text="""couldn't do, for instance,""" start="00:23:04.200" video="qanda-one" id="subtitle"]]
+[[!template text="""for the ID, I couldn't use the hash in the""" start="00:23:05.460" video="qanda-one" id="subtitle"]]
+[[!template text="""name of, of how do we name that,""" start="00:23:09.280" video="qanda-one" id="subtitle"]]
+[[!template text="""of the keywords, because it's used for""" start="00:23:14.760" video="qanda-one" id="subtitle"]]
+[[!template text="""something else in a Emacs Lisp.""" start="00:23:18.480" video="qanda-one" id="subtitle"]]
+[[!template text="""So, I use... Anyway, so you see that you have""" start="00:23:21.180" video="qanda-one" id="subtitle"]]
+[[!template text="""that things but in Emacs we don't have the""" start="00:23:25.520" video="qanda-one" id="subtitle"]]
+[[!template text="""map with that syntax. We have a hash map but""" start="00:23:30.260" video="qanda-one" id="subtitle"]]
+[[!template text="""they are not with that syntax and I wanted""" start="00:23:34.960" video="qanda-one" id="subtitle"]]
+[[!template text="""that syntax so we use only list and Here we""" start="00:23:37.120" video="qanda-one" id="subtitle"]]
+[[!template text="""have an array with a hash map.""" start="00:23:46.080" video="qanda-one" id="subtitle"]]
+[[!template text="""So let me just say, so the question was,""" start="00:23:49.200" video="qanda-one" id="subtitle"]]
+[[!template text="""does it exist something?""" start="00:23:52.360" video="qanda-one" id="subtitle"]]
+[[!template text="""I think not, but it could be built or maybe""" start="00:23:55.240" video="qanda-one" id="subtitle"]]
+[[!template text="""exist for E-Cups, you are interested.""" start="00:23:58.680" video="qanda-one" id="subtitle"]]
+[[!template text="""[Speaker 1]: Okay, great. I think that answers the""" start="00:24:03.240" video="qanda-one" id="subtitle"]]
+[[!template text="""question perfectly. And our final question,""" start="00:24:04.860" video="qanda-one" id="subtitle"]]
+[[!template text="""does this or you use any other Emacs packages""" start="00:24:08.440" video="qanda-one" id="subtitle"]]
+[[!template text="""for your packages slash website,""" start="00:24:12.240" video="qanda-one" id="subtitle"]]
+[[!template text="""example, or publish? Like,""" start="00:24:14.840" video="qanda-one" id="subtitle"]]
+[[!template text="""rephrasing the question,""" start="00:24:17.020" video="qanda-one" id="subtitle"]]
+[[!template text="""do you use it for your own personal usage or""" start="00:24:17.960" video="qanda-one" id="subtitle"]]
+[[!template text="""do you interact with other packages?""" start="00:24:20.820" video="qanda-one" id="subtitle"]]
+[[!template text="""[Speaker 0]: I'm not sure I understand the question.""" start="00:24:24.120" video="qanda-one" id="subtitle"]]
+[[!template text="""Can you please repeat the question?""" start="00:24:26.640" video="qanda-one" id="subtitle"]]
+[[!template text="""[Speaker 1]: Yes, I will reread it as it is written and I""" start="00:24:29.820" video="qanda-one" id="subtitle"]]
+[[!template text="""will leave you interpret it however you want.""" start="00:24:32.460" video="qanda-one" id="subtitle"]]
+[[!template text="""Thank you. Does this or you use any other""" start="00:24:34.760" video="qanda-one" id="subtitle"]]
+[[!template text="""Emacs packages for your package slash website""" start="00:24:39.220" video="qanda-one" id="subtitle"]]
+[[!template text="""like org-publish?""" start="00:24:43.840" video="qanda-one" id="subtitle"]]
+[[!template text="""[Speaker 0]: No, no, no. I don't use nothing.""" start="00:24:46.620" video="qanda-one" id="subtitle"]]
+[[!template text="""I just accept dependency of 1.n.""" start="00:24:49.660" video="qanda-one" id="subtitle"]]
+[[!template text="""So, we are in 1.n and we go at the top and we""" start="00:24:57.660" video="qanda-one" id="subtitle"]]
+[[!template text="""see that those are the dependencies.""" start="00:25:01.000" video="qanda-one" id="subtitle"]]
+[[!template text="""I use nothing. So what I do is that I""" start="00:25:04.820" video="qanda-one" id="subtitle"]]
+[[!template text="""publish, I just generate the public""" start="00:25:09.520" video="qanda-one" id="subtitle"]]
+[[!template text="""directory. So if we go to public,""" start="00:25:12.620" video="qanda-one" id="subtitle"]]
+[[!template text="""this 1, no, I don't want this 1.""" start="00:25:16.500" video="qanda-one" id="subtitle"]]
+[[!template text="""I want to go to the website of the video.""" start="00:25:18.240" video="qanda-one" id="subtitle"]]
+[[!template text="""If we see here, everything is rendered in the""" start="00:25:23.620" video="qanda-one" id="subtitle"]]
+[[!template text="""public. Any services, if you use your own""" start="00:25:27.400" video="qanda-one" id="subtitle"]]
+[[!template text="""server and you save those files,""" start="00:25:37.380" video="qanda-one" id="subtitle"]]
+[[!template text="""you have your website.""" start="00:25:39.280" video="qanda-one" id="subtitle"]]
+[[!template text="""So I don't use anything else.""" start="00:25:40.580" video="qanda-one" id="subtitle"]]
+[[!template text="""I just git push and I'm using Netlify as a""" start="00:25:42.580" video="qanda-one" id="subtitle"]]
+[[!template text="""service to run to save my files,""" start="00:25:49.700" video="qanda-one" id="subtitle"]]
+[[!template text="""but you can use anything you want.""" start="00:25:52.580" video="qanda-one" id="subtitle"]]
+[[!template text="""Because your website is really what is into a""" start="00:25:55.900" video="qanda-one" id="subtitle"]]
+[[!template text="""public. So, this is another,""" start="00:25:58.620" video="qanda-one" id="subtitle"]]
+[[!template text="""It's not the concern of 1.L""" start="00:26:01.360" video="qanda-one" id="subtitle"]]
+[[!template text="""to answer. I'm not using org.publish.""" start="00:26:04.860" video="qanda-one" id="subtitle"]]
+[[!template text="""[Speaker 1]: Cool, great. Well, thank you.""" start="00:26:08.960" video="qanda-one" id="subtitle"]]
+[[!template text="""I think the question was also about other""" start="00:26:10.900" video="qanda-one" id="subtitle"]]
+[[!template text="""things, but I think If the person wants a""" start="00:26:13.000" video="qanda-one" id="subtitle"]]
+[[!template text="""more clear answer to their question,""" start="00:26:16.500" video="qanda-one" id="subtitle"]]
+[[!template text="""feel free to clarify the question and Tony""" start="00:26:18.820" video="qanda-one" id="subtitle"]]
+[[!template text="""might be able to answer it later on.""" start="00:26:21.260" video="qanda-one" id="subtitle"]]
+[[!template text="""Alright Tony, I think that's all the""" start="00:26:22.960" video="qanda-one" id="subtitle"]]
+[[!template text="""questions we had. Thank you so much for""" start="00:26:24.220" video="qanda-one" id="subtitle"]]
+[[!template text="""taking the time not only to present Adimax""" start="00:26:25.760" video="qanda-one" id="subtitle"]]
+[[!template text="""Kant, but also for answering all the""" start="00:26:27.680" video="qanda-one" id="subtitle"]]
+[[!template text="""questions people had.""" start="00:26:29.240" video="qanda-one" id="subtitle"]]
+[[!template text="""[Speaker 0]: Thank you to everybody participating,""" start="00:26:31.220" video="qanda-one" id="subtitle"]]
+[[!template text="""organizing and thank you for all those""" start="00:26:34.540" video="qanda-one" id="subtitle"]]
+[[!template text="""questions and you can send me any emails if""" start="00:26:38.000" video="qanda-one" id="subtitle"]]
+[[!template text="""you have a question and open the issues if""" start="00:26:42.180" video="qanda-one" id="subtitle"]]
+[[!template text="""it's not working the way it should work for""" start="00:26:45.180" video="qanda-one" id="subtitle"]]
+[[!template text="""you. Please send me those things.""" start="00:26:47.720" video="qanda-one" id="subtitle"]]
+[[!template text="""Thank you, everybody.""" start="00:26:49.840" video="qanda-one" id="subtitle"]]
+[[!template text="""[Speaker 1]: Splendid, thank you. And before,""" start="00:26:51.940" video="qanda-one" id="subtitle"]]
+[[!template text="""so right now we're gonna go on a lunch break.""" start="00:26:54.280" video="qanda-one" id="subtitle"]]
+[[!template text="""We'll be back in about 40 minutes for the""" start="00:26:56.140" video="qanda-one" id="subtitle"]]
+[[!template text="""talk called Emacs Turbocharges My Writing.""" start="00:26:58.660" video="qanda-one" id="subtitle"]]
+[[!template text="""And I will not tell you more.""" start="00:27:01.300" video="qanda-one" id="subtitle"]]
+[[!template text="""You can look at the talk page to see a little""" start="00:27:02.540" video="qanda-one" id="subtitle"]]
+[[!template text="""bit of a synopsis but otherwise keep the""" start="00:27:04.280" video="qanda-one" id="subtitle"]]
+[[!template text="""surprise. So have a good lunch or have a good""" start="00:27:06.340" video="qanda-one" id="subtitle"]]
+[[!template text="""dinner if you are in dinner-friendly times""" start="00:27:08.900" video="qanda-one" id="subtitle"]]
+[[!template text="""and I will see you afterwards.""" start="00:27:11.880" video="qanda-one" id="subtitle"]]
+[[!template text="""Thank you again, Tony.""" start="00:27:13.180" video="qanda-one" id="subtitle"]]
+[[!template text="""[Speaker 0]: See you.""" start="00:27:14.860" video="qanda-one" id="subtitle"]]
+[[!template text="""[Speaker 1]: All right. Let me just close everything.""" start="00:27:17.960" video="qanda-one" id="subtitle"]]
+[[!template text="""All right, got it. OK,""" start="00:27:29.080" video="qanda-one" id="subtitle"]]
+[[!template text="""so thank you so much, Tony.""" start="00:27:30.480" video="qanda-one" id="subtitle"]]
+[[!template text="""I just had to clear everything up on the""" start="00:27:31.400" video="qanda-one" id="subtitle"]]
+[[!template text="""stream. I'm going to need to...""" start="00:27:33.520" video="qanda-one" id="subtitle"]]
+[[!template text="""Sorry. I'm going to stop.""" start="00:27:36.160" video="qanda-one" id="subtitle"]]
+
+</div>Questions or comments? Please e-mail [tony@tonyaldon.com](mailto:tony@tonyaldon.com?subject=Comment%20for%20EmacsConf%202023%20one%3A%20one.el%3A%20the%20static%20site%20generator%20for%20Emacs%20Lisp%20Programmers)
<!-- End of emacsconf-publish-after-page -->
diff --git a/2023/info/one-before.md b/2023/info/one-before.md
index 82e0c9b6..5c64f269 100644
--- a/2023/info/one-before.md
+++ b/2023/info/one-before.md
@@ -1,14 +1,32 @@
<!-- Automatically generated by emacsconf-publish-before-page -->
-one.el is a static site generator with no dependencies in any external static site generator, using an Org file with headlines and properties. In this talk, we'll look at how to get started with one.el and write a a simple blog as an example.
-
[[!toc ]]
-Format: 20-min talk followed by live web conference Q&A
-Discuss on IRC: [#emacsconf](https://chat.emacsconf.org/?join=emacsconf)
-Status: Waiting for video from speaker
+Format: 23-min talk ; Q&A: BigBlueButton conference room
+Status: Q&A to be extracted from the room recordings
+
+
+
+
+# Talk
+<div class="vid mainVideo"><video controls preload="none" id="mainVideo-one"><source src="https://media.emacsconf.org/2023/emacsconf-2023-one--oneel-the-static-site-generator-for-emacs-lisp-programmers--tony-aldon--main.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2023/captions/emacsconf-2023-one--oneel-the-static-site-generator-for-emacs-lisp-programmers--tony-aldon--main.vtt" default />"""<track kind="chapters" label="Chapters" src="/2023/captions/emacsconf-2023-one--oneel-the-static-site-generator-for-emacs-lisp-programmers--tony-aldon--main--chapters.vtt" /><p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video>[[!template id="chapters" vidid="mainVideo-one" data="""
+00:00.000 Introduction
+00:24.000 Documentation
+02:02.200 Starting a new project
+02:27.400 Building
+03:19.760 Side by side
+04:32.160 Writing a render function
+05:44.680 New page
+06:41.720 Linking between pages
+08:40.000 CSS
+10:23.160 How to write a render function
+19:03.200 Rendering content
+20:37.160 Rendering CSS
+"""]]<div></div>Duration: 22:18 minutes<div class="files resources"><ul><li><a href="https://pad.emacsconf.org/2023-one">Open Etherpad</a></li><li><a href="https://bbb.emacsverse.org/playback/presentation/2.0/playback.html?meetingId=62b4e0d50b581001f2d6526461e9ffb754b38371-1701534084270">Play recording from BigBlueButton</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-one--oneel-the-static-site-generator-for-emacs-lisp-programmers--tony-aldon--intro.vtt">Download --intro.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-one--oneel-the-static-site-generator-for-emacs-lisp-programmers--tony-aldon--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-one--oneel-the-static-site-generator-for-emacs-lisp-programmers--tony-aldon--main--chapters.vtt">Download --main--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-one--oneel-the-static-site-generator-for-emacs-lisp-programmers--tony-aldon--main.opus">Download --main.opus (14MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-one--oneel-the-static-site-generator-for-emacs-lisp-programmers--tony-aldon--main.vtt">Download --main.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-one--oneel-the-static-site-generator-for-emacs-lisp-programmers--tony-aldon--main.webm">Download --main.webm (54MB)</a></li><li><a href="https://toobnix.org/w/x2yYYWLHQe75FTV8sWiDmy">View on Toobnix</a></li><li><a href="https://www.youtube.com/watch?v=GGP2mxZn4mY">View on Youtube</a></li></ul></div></div>
+# Q&A
+<div class="vid qanda"><video controls preload="none" id="qanda-one"><source src="https://media.emacsconf.org/2023/emacsconf-2023-one--oneel-the-static-site-generator-for-emacs-lisp-programmers--tony-aldon--answers.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2023/captions/emacsconf-2023-one--oneel-the-static-site-generator-for-emacs-lisp-programmers--tony-aldon--answers.vtt" default />"""<p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video><div>Listen to just the audio:<br /><audio controls preload="none" id="qanda-one-audio" src="https://media.emacsconf.org/2023/emacsconf-2023-one--oneel-the-static-site-generator-for-emacs-lisp-programmers--tony-aldon--answers.opus"></audio></div><div></div>Duration: 27:39 minutes<div class="files resources"><ul><li><a href="https://pad.emacsconf.org/2023-one">Open Etherpad</a></li><li><a href="https://bbb.emacsverse.org/playback/presentation/2.0/playback.html?meetingId=62b4e0d50b581001f2d6526461e9ffb754b38371-1701534084270">Play recording from BigBlueButton</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-one--oneel-the-static-site-generator-for-emacs-lisp-programmers--tony-aldon--answers.json">Download --answers.json (1.1MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-one--oneel-the-static-site-generator-for-emacs-lisp-programmers--tony-aldon--answers.opus">Download --answers.opus (15MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-one--oneel-the-static-site-generator-for-emacs-lisp-programmers--tony-aldon--answers.vtt">Download --answers.vtt</a> (unedited)</li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-one--oneel-the-static-site-generator-for-emacs-lisp-programmers--tony-aldon--answers.webm">Download --answers.webm (96MB)</a></li></ul></div></div>
# Description
<!-- End of emacsconf-publish-before-page --> \ No newline at end of file
diff --git a/2023/info/one-nav.md b/2023/info/one-nav.md
index 2160cad5..2fe56716 100644
--- a/2023/info/one-nav.md
+++ b/2023/info/one-nav.md
@@ -1,7 +1,7 @@
<div class="talk-nav">
Back to the [[talks]]
-Previous by track: <a href="/2023/talks/taming">Taming things with Org Mode</a>
+Previous by track: <a href="/2023/talks/table">Who needs Excel? Managing your students qualifications with org-table</a>
Next by track: <a href="/2023/talks/writing">Emacs turbo-charges my writing</a>
-Track: <span class="sched-track General">General</span>
+Track: <span class="sched-track General">General</span> - <strong><a href="https://emacsconf.org/2023/watch/gen">Watch</a></strong>
</div>
diff --git a/2023/info/overlay-after.md b/2023/info/overlay-after.md
index bffd3ef2..3d710d06 100644
--- a/2023/info/overlay-after.md
+++ b/2023/info/overlay-after.md
@@ -1,7 +1,677 @@
<!-- Automatically generated by emacsconf-publish-after-page -->
-Questions or comments? Please e-mail [emacsconf-org-private@gnu.org](mailto:emacsconf-org-private@gnu.org?subject=Comment%20for%20EmacsConf%202022%20overlay%3A%20Improving%20compiler%20diagnostics%20with%20Overlays)
+<div class="transcript transcript-mainVideo"><a name="overlay-mainVideo-transcript"></a><h1>Transcript</h1>
+
+
+<div class="transcript-heading">[[!template new="1" text="""Introduction""" start="00:00:00.000" video="mainVideo-overlay" id="subtitle"]]</div>[[!template text="""Hi, I'm Jeff Trull, and today I'm going to talk to you""" start="00:00:00.000" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""about improving C++ compiler diagnostics""" start="00:00:04.898" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""using overlays and other features from Emacs.""" start="00:00:08.460" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""First an overview of my talk.""" start="00:00:13.600" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""I'm going to cover what overlays are""" start="00:00:15.840" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""and how you can use them in code,""" start="00:00:17.657" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""then I'm going to talk about C++""" start="00:00:19.326" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""and why its compiler errors can be so onerous.""" start="00:00:21.479" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""Finally, we'll take that information""" start="00:00:24.480" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""and build a new minor mode""" start="00:00:26.751" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""using overlays and other Emacs features.""" start="00:00:28.448" video="mainVideo-overlay" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Overlays and what they can do""" start="00:00:33.560" video="mainVideo-overlay" id="subtitle"]]</div>[[!template text="""First of all, overlays.""" start="00:00:33.560" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""What are they?""" start="00:00:35.520" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""They are objects consisting of a buffer range""" start="00:00:36.680" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""and a set of properties.""" start="00:00:39.125" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""That means that they cover a region in a buffer.""" start="00:00:40.400" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""The properties can be a certain set""" start="00:00:43.120" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""of special property names,""" start="00:00:45.534" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""in which case they can be used to cause""" start="00:00:47.345" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""special effects in the buffer,""" start="00:00:50.289" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""but they never change the underlying text.""" start="00:00:52.570" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""You can use them for things like hiding things.""" start="00:00:55.660" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""So, for example, overlays are working right now""" start="00:00:59.900" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""in this window. `org-present`,""" start="00:01:02.887" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""the technology I'm using for this presentation,""" start="00:01:04.661" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""is hiding the asterisk before every headline,""" start="00:01:07.596" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""as well as the things called emphasis markers;""" start="00:01:10.032" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""that is, those things that make things look""" start="00:01:12.521" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""monospaced for verbatim, or italic, or bold.""" start="00:01:16.270" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""The special characters we use to mark off those sections""" start="00:01:20.700" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""are also hidden by `org-present` using overlays.""" start="00:01:24.422" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""But those things are still in the buffer""" start="00:01:28.940" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""and they're still visible to code.""" start="00:01:30.602" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""So if I run this little snippet of code down here,""" start="00:01:31.980" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""it's going to go up to the headline &quot;Overlays""" start="00:01:34.922" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""and what they can do,&quot; and it's going to tell us""" start="00:01:37.404" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""what's there in the buffer.""" start="00:01:40.052" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""Let's go down and run this.""" start="00:01:41.540" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""So according to this code, the contents of the buffer""" start="00:01:45.100" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""to the left of the headline is a star in a space,""" start="00:01:48.958" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""which means that even though we can't see that star,""" start="00:01:51.991" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""it's still there, because it's hidden by an overlay.""" start="00:01:55.205" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""And that's kind of the essence of what overlays are.""" start="00:01:58.220" video="mainVideo-overlay" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Simple overlay example - creating an overlay""" start="00:02:02.500" video="mainVideo-overlay" id="subtitle"]]</div>[[!template text="""Let's do a simple overlay example.""" start="00:02:02.500" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""We have some text on the right here,""" start="00:02:04.780" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""which is a famous poem by William Carlos Williams,""" start="00:02:06.720" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""which has been the subject of many memes.""" start="00:02:09.340" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""Let's create an overlay that covers it.""" start="00:02:12.180" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""I'll go down here and use this snippet of code here.""" start="00:02:17.860" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""We'll go up to the top, and we'll mark everything""" start="00:02:20.700" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""between `#+BEGIN_VERSE` and `#+END_VERSE`.""" start="00:02:25.919" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""You can see we've created an overlay""" start="00:02:29.540" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""from position 74 to 224.""" start="00:02:33.277" video="mainVideo-overlay" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Adding properties""" start="00:02:35.700" video="mainVideo-overlay" id="subtitle"]]</div>[[!template text="""Now we can take that overlay that we already created""" start="00:02:35.700" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""and add a property, in this case a `face` property,""" start="00:02:38.064" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""to change the appearance of the text.""" start="00:02:41.212" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""This is a poem, and it's currently using""" start="00:02:43.540" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""a face that is monospaced,""" start="00:02:46.280" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""and so it looks like a computer program,""" start="00:02:48.084" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""even though it's a poem.""" start="00:02:50.492" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""I think it would be nicer to use something""" start="00:02:51.900" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""with variable-width font, maybe with some serifs.""" start="00:02:54.586" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""So let's give that a try.""" start="00:02:57.980" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""Now you can see that the poem looks quite a bit different.""" start="00:03:01.140" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""It looks more like what we'd see in a book.""" start="00:03:03.700" video="mainVideo-overlay" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Deleting an overlay""" start="00:03:10.940" video="mainVideo-overlay" id="subtitle"]]</div>[[!template text="""We can also delete overlays.""" start="00:03:10.940" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""So I've named this one.""" start="00:03:13.100" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""So we can just go down and run `delete-overlay`""" start="00:03:15.140" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""and get rid of it, and it'll go back to""" start="00:03:17.766" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""the appearance it had before.""" start="00:03:20.049" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""And there it is.""" start="00:03:22.660" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""It's back to normal.""" start="00:03:23.660" video="mainVideo-overlay" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Setting fonts the right way""" start="00:03:24.660" video="mainVideo-overlay" id="subtitle"]]</div>[[!template text="""Now, if you're interested in changing all of the verses""" start="00:03:24.660" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""inside an Org Mode file to a different face""" start="00:03:28.474" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""or a different font family,""" start="00:03:31.109" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""this isn't the way you'd really do it.""" start="00:03:32.786" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""I'll just show you that real quick.""" start="00:03:35.060" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""The right way is probably to change the `org-verse` face,""" start="00:03:37.520" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""which is the face used for all of the verse blocks""" start="00:03:43.472" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""inside your Org Mode file.""" start="00:03:48.869" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""And so this is how you do it here:""" start="00:03:51.620" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""`face-remap-add-relative`.""" start="00:03:55.100" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""Let's give it a try.""" start="00:03:56.100" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""It worked!""" start="00:03:58.340" video="mainVideo-overlay" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""More properties""" start="00:03:59.540" video="mainVideo-overlay" id="subtitle"]]</div>[[!template text="""There are more advanced things that you can do""" start="00:03:59.540" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""other than just changing fonts.""" start="00:04:01.806" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""There's a whole long list of them in the manual,""" start="00:04:03.300" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""but let's talk about the ones we're going to use today.""" start="00:04:05.544" video="mainVideo-overlay" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Visibility""" start="00:04:12.580" video="mainVideo-overlay" id="subtitle"]]</div>[[!template text="""You can make text invisible, just like `org-present` did.""" start="00:04:12.580" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""The simplest way is to set the `invisible` property to true,""" start="00:04:17.380" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""so here's a code snippet that will do that.""" start="00:04:21.820" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""What we're going to do is""" start="00:04:24.500" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""go and find the word &quot;plums&quot; inside the poem,""" start="00:04:26.160" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""and then we're going to make it invisible""" start="00:04:28.967" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""by creating an overlay that covers it,""" start="00:04:31.285" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""and then setting the invisible property to true.""" start="00:04:33.437" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""Boom!""" start="00:04:36.820" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""It's gone.""" start="00:04:37.940" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""We've eaten the plums.""" start="00:04:38.940" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""Visibility is a huge topic and very complicated.""" start="00:04:39.940" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""There are powerful mechanisms for using it.""" start="00:04:42.180" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""I suggest reading the manual""" start="00:04:44.220" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""if you'd like to know more about that.""" start="00:04:46.627" video="mainVideo-overlay" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Adding text""" start="00:04:49.780" video="mainVideo-overlay" id="subtitle"]]</div>[[!template text="""Another thing we can do with properties""" start="00:04:49.780" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""is to add text either before or after an overlay.""" start="00:04:52.118" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""Since we've made the word &quot;plums&quot; invisible,""" start="00:04:54.980" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""or anything that you make invisible in the buffer,""" start="00:04:57.348" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""if you add text then afterwards,""" start="00:05:00.575" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""it looks like you've replaced the original words""" start="00:05:02.663" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""with new words.""" start="00:05:05.700" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""So let's add a property, a `before-string` property,""" start="00:05:08.220" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""to the overlay that we used before""" start="00:05:12.047" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""to make it seem as though we're eating cherries""" start="00:05:14.194" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""instead of plums.""" start="00:05:17.138" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""Boom!""" start="00:05:18.180" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""There it is.""" start="00:05:19.580" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""So that's how you can replace words using overlays.""" start="00:05:22.020" video="mainVideo-overlay" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Custom properties""" start="00:05:27.820" video="mainVideo-overlay" id="subtitle"]]</div>[[!template text="""You can also have custom properties""" start="00:05:27.820" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""that you name and then use yourself.""" start="00:05:29.761" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""For example, you can use it to mark regions in the buffer.""" start="00:05:31.700" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""You can also use it to add information""" start="00:05:35.320" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""to regions in the buffer for your own tracking""" start="00:05:38.009" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""in a minor mode or something like that, which we will use.""" start="00:05:41.180" video="mainVideo-overlay" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Notes on properties""" start="00:05:45.380" video="mainVideo-overlay" id="subtitle"]]</div>[[!template text="""Finally, two notes on properties.""" start="00:05:45.380" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""We've been talking about overlay properties,""" start="00:05:49.620" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""but there's also something called text properties.""" start="00:05:51.951" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""Text properties are attached to text in a buffer.""" start="00:05:54.540" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""When you copy that text, the properties come along with it.""" start="00:05:57.460" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""If you modify the properties,""" start="00:06:00.900" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""the buffer is considered modified.""" start="00:06:03.057" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""Org Mode makes heavy use of text properties,""" start="00:06:05.500" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""as we can see by running this little code snippet here,""" start="00:06:08.460" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""which is going to tell us the properties""" start="00:06:11.678" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""and the string attached""" start="00:06:14.060" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""to the &quot;Some poetry&quot; headline on the right.""" start="00:06:16.566" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""There's also some controversy regarding performance.""" start="00:06:20.740" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""It may be that text properties""" start="00:06:23.660" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""perform better than overlay properties,""" start="00:06:25.521" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""so do some research""" start="00:06:27.860" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""if you're going to make heavy use of them.""" start="00:06:28.893" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""I prefer overlays because they're just easier to use.""" start="00:06:31.060" video="mainVideo-overlay" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Improving C++ compiler output""" start="00:06:36.100" video="mainVideo-overlay" id="subtitle"]]</div>[[!template text="""C++ compiler output.""" start="00:06:36.100" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""So my day job is C++ programmer,""" start="00:06:37.540" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""and although I've been an Emacser for many years,""" start="00:06:41.171" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""it can be a little bit of a chore dealing with errors.""" start="00:06:46.561" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""The error messages that come out of the compiler""" start="00:06:52.860" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""can be pretty hard to understand.""" start="00:06:55.681" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""This has often been a barrier,""" start="00:06:57.580" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""particularly for people who are new to C++.""" start="00:07:00.538" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""So let's see what that's like.""" start="00:07:04.640" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""I have an example""" start="00:07:09.040" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""which is generously supplied by Ben Deane of Intel.""" start="00:07:10.560" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""So let's see what it looks like""" start="00:07:14.780" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""when you compile a C++ program""" start="00:07:17.083" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""that has a difficult error in it.""" start="00:07:19.314" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""Okay.""" start="00:07:24.400" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""Okay.""" start="00:07:28.400" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""So you see we have a lot of fairly verbose messages.""" start="00:07:31.400" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""The most verbose one I think is probably here.""" start="00:07:35.680" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""This one here.""" start="00:07:39.400" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""These are pretty bad.""" start="00:07:41.000" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""I think there might be bigger ones.""" start="00:07:42.000" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""Oh, yeah. Here we go.""" start="00:07:43.000" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""Here's my favorite one.""" start="00:07:43.721" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""You can see... Let's look for specialization... Basically,""" start="00:07:44.961" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""this whole section of the buffer here,""" start="00:07:51.064" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""that is specifying the specific types""" start="00:07:55.179" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""that a function template was instantiated with.""" start="00:07:58.229" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""And it's a lot there.""" start="00:08:02.000" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""So if you're trying to figure out""" start="00:08:04.000" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""what's wrong with your program""" start="00:08:05.474" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""and you're looking at something like this,""" start="00:08:06.818" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""it can be really, really hard to understand.""" start="00:08:08.885" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""Okay.""" start="00:08:11.000" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""Back to our presentation.""" start="00:08:12.000" video="mainVideo-overlay" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""The problem with C++ error messages""" start="00:08:17.680" video="mainVideo-overlay" id="subtitle"]]</div>[[!template text="""So it's often this way in C++""" start="00:08:17.680" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""because we compose types from other types.""" start="00:08:20.064" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""They can be long to begin with,""" start="00:08:23.400" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""but then a couple of other factors come into play.""" start="00:08:26.217" video="mainVideo-overlay" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Many standard class templates have default arguments""" start="00:08:30.240" video="mainVideo-overlay" id="subtitle"]]</div>[[!template text="""First of all, we can have default template arguments.""" start="00:08:30.240" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""These are arguments you didn't write,""" start="00:08:33.280" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""but that are implicitly there""" start="00:08:35.364" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""and can sometimes refer""" start="00:08:37.009" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""to the arguments that you did write,""" start="00:08:38.326" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""which causes them to get a bit bigger,""" start="00:08:40.301" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""such as these allocator arguments here and here.""" start="00:08:42.441" video="mainVideo-overlay" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Some types are aliases for longer things, too""" start="00:08:47.520" video="mainVideo-overlay" id="subtitle"]]</div>[[!template text="""Then there are type aliases.""" start="00:08:47.520" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""For example, `std::string` here expands to""" start="00:08:49.360" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""a type with three template arguments.""" start="00:08:54.015" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""So you can imagine, when we combine""" start="00:08:58.320" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""those two things together,""" start="00:09:01.941" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""our simple vector of maps from strings to ints""" start="00:09:04.734" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""becomes this humongous thing here, which...""" start="00:09:09.764" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""Let's run the comparison.""" start="00:09:14.258" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""Yeah.""" start="00:09:18.360" video="mainVideo-overlay" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Reporting type information accurately means long lines""" start="00:09:20.960" video="mainVideo-overlay" id="subtitle"]]</div>[[!template text="""So in summary, to properly understand an error""" start="00:09:20.960" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""when you're a C++ programmer""" start="00:09:24.925" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""requires knowing the exact types""" start="00:09:27.371" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""that were supplied to your function.""" start="00:09:29.719" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""And types are built recursively,""" start="00:09:32.280" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""and therefore the types can--""" start="00:09:34.431" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""the correct exact name for the type""" start="00:09:36.647" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""can just be really huge""" start="00:09:40.514" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""and have many levels and layers to it.""" start="00:09:42.777" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""So when I was trying to understand""" start="00:09:46.360" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""the things I'd done wrong,""" start="00:09:48.114" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""especially when I was a newer C++ programmer,""" start="00:09:49.467" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""but honestly still even recently,""" start="00:09:52.402" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""if I was having a really intractable problem,""" start="00:09:54.571" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""I would just copy the entire error message out,""" start="00:09:57.440" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""stick it in the scratch buffer,""" start="00:10:00.124" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""and then manually reformat it""" start="00:10:01.736" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""so I could see what it was telling me""" start="00:10:03.650" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""I'd actually called the function""" start="00:10:05.564" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""or whatever it was with, the exact type.""" start="00:10:07.262" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""I had to sit there""" start="00:10:09.320" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""and go through the whole thing.""" start="00:10:11.312" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""But there's a better way.""" start="00:10:13.240" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""Now, anyway.""" start="00:10:15.240" video="mainVideo-overlay" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Emacs can help - Treat C++ type names as just another kind of balanced expression""" start="00:10:18.240" video="mainVideo-overlay" id="subtitle"]]</div>[[!template text="""So what can Emacs do to help us with this problem?""" start="00:10:18.240" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""First of all, if you think about a type name,""" start="00:10:23.960" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""it's a lot like what we call S-expressions""" start="00:10:28.871" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""or balanced expressions.""" start="00:10:33.080" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""Lisp code itself is an S-expression.""" start="00:10:35.480" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""It's basically things with parentheses""" start="00:10:38.400" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""and little atoms or symbols in it,""" start="00:10:41.465" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""or strings or numbers.""" start="00:10:44.215" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""But parenthesized balanced expressions""" start="00:10:46.520" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""are things that Emacs was actually built to deal with.""" start="00:10:50.232" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""They were... I found an old manual from 1981,""" start="00:10:55.800" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""and the two major modes that they recommended""" start="00:10:58.945" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""or that they actually documented in the manual were""" start="00:11:02.160" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""one, assembly language, and two, Lisp.""" start="00:11:05.766" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""They mentioned that there were other modes,""" start="00:11:08.400" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""but they didn't say anything about them.""" start="00:11:10.653" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""So Lisp is something""" start="00:11:12.700" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""with a really long history with Emacs.""" start="00:11:14.626" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""Balanced expressions and manipulating them""" start="00:11:17.440" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""and doing them efficiently""" start="00:11:19.977" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""is just a thing that Emacs knows how to do,""" start="00:11:21.435" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""and Emacs is good at it.""" start="00:11:24.156" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""There's just a legacy""" start="00:11:25.640" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""of algorithms and functions for doing it.""" start="00:11:27.706" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""So we take types,""" start="00:11:31.320" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""and we take the angle brackets in the types,""" start="00:11:33.183" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""and we get the symbols right.""" start="00:11:37.840" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""Then we can treat them""" start="00:11:40.840" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""as though they were balanced expressions or S-expressions,""" start="00:11:41.815" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""the same kind that Emacs is really good at handling.""" start="00:11:44.313" video="mainVideo-overlay" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Add overlays to improve readability""" start="00:11:49.320" video="mainVideo-overlay" id="subtitle"]]</div>[[!template text="""Secondly, we can use overlays""" start="00:11:49.320" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""to improve the readability of errors.""" start="00:11:51.980" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""We can take long lines and break and indent them""" start="00:11:55.260" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""using `before-string`s, so the same thing""" start="00:11:58.013" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""I used to add &quot;cherries&quot; into the poem.""" start="00:12:00.200" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""We can use that to insert new lines""" start="00:12:03.440" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""followed by indentation""" start="00:12:06.612" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""and produce a much nicer-looking listing of a type.""" start="00:12:08.726" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""We can also use the `invisible` property""" start="00:12:15.160" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""to hide unwanted detail.""" start="00:12:19.642" video="mainVideo-overlay" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Create a minor mode that runs during compilation""" start="00:12:22.400" video="mainVideo-overlay" id="subtitle"]]</div>[[!template text="""Last of all, we can create a minor mode.""" start="00:12:22.400" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""When we're compiling things in Emacs,""" start="00:12:24.960" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""we often use `compilation-mode`.""" start="00:12:27.855" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""`compilation-mode` allows you to install""" start="00:12:30.140" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""compilation filters that run""" start="00:12:32.098" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""when the compiler is producing output,""" start="00:12:33.554" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""and at that time, then, we can add our overlays.""" start="00:12:36.435" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""We can also add in minor-mode commands""" start="00:12:39.980" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""that do whatever we want to the keymap.""" start="00:12:42.869" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""In this case, we're going to show and hide""" start="00:12:45.758" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""lower-level details interactively""" start="00:12:48.322" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""so that we can see a simplified version""" start="00:12:50.177" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""or a more detailed version of a type, depending on our needs.""" start="00:12:53.907" video="mainVideo-overlay" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Parsing types as balanced expressions""" start="00:12:59.500" video="mainVideo-overlay" id="subtitle"]]</div>[[!template text="""First of all, parsing types as balanced expressions.""" start="00:12:59.500" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""We need to be able to quickly locate""" start="00:13:03.980" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""the boundaries and the contents""" start="00:13:05.687" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""of parenthesized expressions,""" start="00:13:07.163" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""or in this case, expressions in angle brackets.""" start="00:13:08.500" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""We use a syntax table inside Emacs""" start="00:13:12.100" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""to allow movement functions like `forward-list`""" start="00:13:14.996" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""to jump between matching angle brackets.""" start="00:13:18.801" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""By default, they're just parentheses.""" start="00:13:21.100" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""First of all, let's look at our syntax table.""" start="00:13:23.460" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""We're going to add here syntax entries""" start="00:13:25.900" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""to handle angle brackets as though they were parentheses.""" start="00:13:29.190" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""Then we have a lot of types""" start="00:13:33.900" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""that have colons in them, and those are namespaces in C++.""" start="00:13:37.248" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""By default, Emacs does not recognize them""" start="00:13:42.980" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""as parts of symbols, so we're going to tell Emacs""" start="00:13:45.767" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""that a colon is something called a symbol constituent,""" start="00:13:49.135" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""that it can be part of a name.""" start="00:13:52.840" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""Once we do that, then we can use our functions""" start="00:13:54.860" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""like `forward-list`, `backward-word`,""" start="00:13:57.614" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""all of the navigation and movement functions that we have""" start="00:13:59.443" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""that do things, that do more complicated things""" start="00:14:03.289" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""like S-expressions and so on,""" start="00:14:06.624" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""can be used now with our angle brackets""" start="00:14:08.708" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""and inside of our types.""" start="00:14:11.486" video="mainVideo-overlay" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Indent and fill with overlays - Use ancient "pretty printing" algorithms"""" start="00:14:16.100" video="mainVideo-overlay" id="subtitle"]]</div>[[!template text="""The next thing we can do is""" start="00:14:16.100" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""perform indent and fill with overlays.""" start="00:14:18.463" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""We're going to use `before-string` properties""" start="00:14:21.540" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""to break lines and create indentation""" start="00:14:23.736" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""to make the output look a little better.""" start="00:14:25.631" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""Today, we fill mostly text and we indent mostly code.""" start="00:14:28.900" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""We fill text in order to prevent it""" start="00:14:35.320" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""from running off the side of the right margin,""" start="00:14:37.308" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""and we indent code to line up syntactic elements.""" start="00:14:39.903" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""Back in the day, they had algorithms that could do both.""" start="00:14:43.940" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""Those are what we're going to leverage.""" start="00:14:47.080" video="mainVideo-overlay" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Overlays can mimic line breaks and indentation""" start="00:14:52.260" video="mainVideo-overlay" id="subtitle"]]</div>[[!template text="""We can use the `before-string` property""" start="00:14:52.260" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""to insert a new line in the correct number of spaces""" start="00:14:54.583" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""to emulate indentation.""" start="00:14:57.760" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""As a simplified example, here's some code""" start="00:15:00.240" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""that will indent 4 upon each open angle bracket.""" start="00:15:03.526" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""Let's give it a try.""" start="00:15:07.280" video="mainVideo-overlay" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Hiding details - Marking depths with overlays""" start="00:15:14.520" video="mainVideo-overlay" id="subtitle"]]</div>[[!template text="""The next thing we're going to need to do is hide details.""" start="00:15:14.520" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""So we have nested types, and the user is going to want to""" start="00:15:18.280" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""be able to reveal lower-level or hide lower-level parts""" start="00:15:22.689" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""of the nested type interactively""" start="00:15:27.372" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""once we've already reformatted the error messages.""" start="00:15:30.132" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""Let's see how we can do that using invisible properties.""" start="00:15:35.480" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""The first thing we're going to do is""" start="00:15:40.440" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""mark depths within the type.""" start="00:15:43.993" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""When we're originally analyzing and formatting""" start="00:15:46.680" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""and doing the indentation and the line breaks,""" start="00:15:49.329" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""at the same time, we're going to go through""" start="00:15:51.920" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""and mark the nested levels inside the type names,""" start="00:15:55.072" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""just as this diagram shows.""" start="00:15:58.818" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""So depth 1, for example, will be everything""" start="00:16:00.840" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""inside the first level of angle brackets.""" start="00:16:03.574" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""Depth 2 will be everything inside the second level,""" start="00:16:06.120" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""and so on.""" start="00:16:09.039" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""And then later on, when the users request it,""" start="00:16:09.760" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""we can go and look at the depth that they've selected""" start="00:16:12.071" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""and then mark those sections invisible.""" start="00:16:16.304" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""Let's see how that might work.""" start="00:16:19.360" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""First of all, let's delete the overlays""" start="00:16:20.520" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""that we already have that created the indentation.""" start="00:16:24.023" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""Now we're going to go and do that marking""" start="00:16:28.400" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""with the custom depth properties here.""" start="00:16:32.420" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""To prove that I didn't pull a fast one,""" start="00:16:35.740" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""let's go and see what `describe-char` tells us""" start="00:16:38.761" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""about the depths inside here.""" start="00:16:42.083" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""Let's start here.""" start="00:16:44.660" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""Okay, so inside this part here, `std::string`,""" start="00:16:46.460" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""There are two overlays.""" start="00:16:52.820" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""One of them is of depth 1, and the other is of depth 2,""" start="00:16:54.980" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""which makes sense, because depth 1 is going to be""" start="00:16:57.781" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""from about here to here,""" start="00:17:00.602" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""and depth 2 is going to be from about here to this area.""" start="00:17:02.012" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""So it's reasonable that there should be two,""" start="00:17:07.660" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""and that's what we expect.""" start="00:17:10.830" video="mainVideo-overlay" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Hiding to a target depth""" start="00:17:12.660" video="mainVideo-overlay" id="subtitle"]]</div>[[!template text="""Now that we've marked the nested types with their depths,""" start="00:17:12.660" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""let's experiment with hiding details.""" start="00:17:17.354" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""This fragment of code takes a user-supplied depth,""" start="00:17:21.380" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""in this case 2, and will hide,""" start="00:17:26.774" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""based on those markings""" start="00:17:29.086" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""that we've already made on the overlays,""" start="00:17:30.876" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""the custom depth properties.""" start="00:17:33.933" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""We'll take those and apply your requested level of detail.""" start="00:17:36.020" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""So let's try it out.""" start="00:17:40.020" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""Depth 2.""" start="00:17:42.020" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""All right, that hid everything under the `std::map`,""" start="00:17:43.020" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""so the deepest level.""" start="00:17:46.006" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""If we make it 1, we should get a level higher than that.""" start="00:17:47.260" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""So now level 1 and below are hidden.""" start="00:17:52.140" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""Now if we put it back to 3, it should reveal everything.""" start="00:17:54.540" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""So that's what we're going to use in our minor mode.""" start="00:17:59.660" video="mainVideo-overlay" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Demo""" start="00:18:04.900" video="mainVideo-overlay" id="subtitle"]]</div>[[!template text="""Let's have a demo.""" start="00:18:04.900" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""We're going to revisit the initial example""" start="00:18:05.900" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""with the minor mode installed.""" start="00:18:08.539" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""Now we're going to have a compilation filter""" start="00:18:10.380" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""that will run on every chunk of output""" start="00:18:12.102" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""produced by the compiler.""" start="00:18:13.594" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""It's going to add those overlays""" start="00:18:15.780" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""with the line breaks and the indentation.""" start="00:18:17.850" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""It's also going to add overlays""" start="00:18:20.420" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""that mark up the nested types""" start="00:18:22.207" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""with the depths for each region.""" start="00:18:23.881" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""Let's add the hook for `tspew-mode`.""" start="00:18:26.220" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""And now we can compile again.""" start="00:18:31.580" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""All right, we can already see""" start="00:18:38.220" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""that these things are formatted a little bit better""" start="00:18:41.504" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""than they were before.""" start="00:18:47.196" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""They're not all on one line.""" start="00:18:49.180" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""Things are getting kind of lined up here.""" start="00:18:50.180" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""Here's a good example.""" start="00:18:53.580" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""And here's our big ugly one from before""" start="00:19:05.620" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""with all the characters in it.""" start="00:19:08.638" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""Let's try hiding some of this information.""" start="00:19:10.900" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""We'll just slowly decrease the level of detail""" start="00:19:14.500" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""and you can see how it works.""" start="00:19:17.432" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""Over here, where there's these ellipses""" start="00:19:19.740" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""next to string constant, the &quot;...&quot; there,""" start="00:19:22.334" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""that's where we are starting to hide information""" start="00:19:25.460" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""and go to the next level.""" start="00:19:30.387" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""Hiding more, hiding more, hiding more.""" start="00:19:32.900" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""Now we can go back and start adding it back.""" start="00:19:36.460" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""You can see here now we just have about four layers,""" start="00:19:38.220" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""which is a lot easier to understand.""" start="00:19:42.737" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""And if we start understanding what it is""" start="00:19:45.540" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""and we need more detail, we can just increase detail again.""" start="00:19:47.734" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""And every time we increase or decrease detail,""" start="00:19:52.180" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""it reformats so it still stays kind of consolidated""" start="00:19:55.403" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""and nice looking.""" start="00:19:58.900" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""Let's increase it a little bit more.""" start="00:19:59.900" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""Okay, so you can see how that worked.""" start="00:20:02.060" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""Let's go back to our presentation.""" start="00:20:04.540" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""All right.""" start="00:20:08.340" video="mainVideo-overlay" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Conclusion""" start="00:20:10.220" video="mainVideo-overlay" id="subtitle"]]</div>[[!template text="""In conclusion, we saw how we could solve""" start="00:20:10.220" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""a real problem for C++ programmers""" start="00:20:12.997" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""by combining several Emacs features: overlays,""" start="00:20:15.368" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""compilation mode extensions,""" start="00:20:18.535" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""and balanced expression navigation using syntax tables.""" start="00:20:20.490" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""Emacs is often compared unfavorably""" start="00:20:25.700" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""to newer IDEs and editors with slicker user interfaces.""" start="00:20:27.979" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""What Emacs has that they don't is powerful abstractions,""" start="00:20:32.220" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""tons of libraries, and decades of work""" start="00:20:36.387" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""by some of the luminaries in the field of software.""" start="00:20:38.863" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""I think that this project would have been much harder to do""" start="00:20:42.100" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""in a prettier but less powerful environment.""" start="00:20:45.344" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""In short, there's plenty of hope for Emacs.""" start="00:20:48.020" video="mainVideo-overlay" id="subtitle"]]
+[[!template text="""Thank you.""" start="00:20:50.860" video="mainVideo-overlay" id="subtitle"]]
+
+</div>
+
+Captioner: sachac
+
+<div class="transcript transcript-qanda"><a name="overlay-qanda-transcript"></a><h1>Q&A transcript (unedited)</h1>
+
+[[!template text="""[Speaker 0]: Out here or also you can continue discussing""" start="00:00:02.899" video="qanda-overlay" id="subtitle"]]
+[[!template text="""on IRC.""" start="00:00:06.200" video="qanda-overlay" id="subtitle"]]
+[[!template text="""So I see 2 questions coming in already on the""" start="00:00:23.200" video="qanda-overlay" id="subtitle"]]
+[[!template text="""pad. So the first question is,""" start="00:00:24.400" video="qanda-overlay" id="subtitle"]]
+[[!template text="""how did you draw the under braces and over""" start="00:00:26.759" video="qanda-overlay" id="subtitle"]]
+[[!template text="""braces? Sorry, Jeff, you're muted on the blue""" start="00:00:38.360" video="qanda-overlay" id="subtitle"]]
+[[!template text="""button.""" start="00:00:38.559" video="qanda-overlay" id="subtitle"]]
+[[!template text="""[Speaker 1]: I'm sorry for some reason I'm seeing""" start="00:00:43.340" video="qanda-overlay" id="subtitle"]]
+[[!template text="""everything twice. I'm hearing everything""" start="00:00:45.960" video="qanda-overlay" id="subtitle"]]
+[[!template text="""twice. So it's, it's about with about a 5""" start="00:00:48.420" video="qanda-overlay" id="subtitle"]]
+[[!template text="""[Speaker 0]: Probably my stream turned on""" start="00:00:53.400" video="qanda-overlay" id="subtitle"]]
+[[!template text="""[Speaker 1]: second delay. It's straight Oh,""" start="00:00:57.340" video="qanda-overlay" id="subtitle"]]
+[[!template text="""you're right Thank you so much I MPB is""" start="00:01:03.820" video="qanda-overlay" id="subtitle"]]
+[[!template text="""showing the the big blue button Okay,""" start="00:01:07.340" video="qanda-overlay" id="subtitle"]]
+[[!template text="""sorry everyone. Okay now.""" start="00:01:09.060" video="qanda-overlay" id="subtitle"]]
+[[!template text="""I'm together now Let's see How did I draw the""" start="00:01:12.180" video="qanda-overlay" id="subtitle"]]
+[[!template text="""over braces and under braces?""" start="00:01:13.140" video="qanda-overlay" id="subtitle"]]
+[[!template text="""LaTeX. That is a, that's a,""" start="00:01:17.120" video="qanda-overlay" id="subtitle"]]
+[[!template text="""yeah, and a SVG, I think,""" start="00:01:25.020" video="qanda-overlay" id="subtitle"]]
+[[!template text="""produced by LaTeX through a separate file.""" start="00:01:29.160" video="qanda-overlay" id="subtitle"]]
+[[!template text="""I tried to do like a LaTeX code block and""" start="00:01:31.960" video="qanda-overlay" id="subtitle"]]
+[[!template text="""didn't get around to it.""" start="00:01:33.940" video="qanda-overlay" id="subtitle"]]
+[[!template text="""Also, the code to produce it in TickSet was""" start="00:01:36.900" video="qanda-overlay" id="subtitle"]]
+[[!template text="""really, really long. So I didn't put it in""" start="00:01:39.800" video="qanda-overlay" id="subtitle"]]
+[[!template text="""[Speaker 0]: The next question is, you've got a nice""" start="00:01:47.300" video="qanda-overlay" id="subtitle"]]
+[[!template text="""sounding keyboard. What kind is it?""" start="00:01:48.840" video="qanda-overlay" id="subtitle"]]
+[[!template text="""[Speaker 1]: the notes. GARY ILLYES-CHAKRABARTYTT I'm so""" start="00:01:50.380" video="qanda-overlay" id="subtitle"]]
+[[!template text="""sorry. It is an Ergodox split keyboard for my""" start="00:01:55.960" video="qanda-overlay" id="subtitle"]]
+[[!template text="""wrists. Sorry about the noise.""" start="00:01:59.700" video="qanda-overlay" id="subtitle"]]
+[[!template text="""[Speaker 0]: Awesome. Yeah, no worries.""" start="00:02:01.020" video="qanda-overlay" id="subtitle"]]
+[[!template text="""I mean, I like to hear it.""" start="00:02:02.220" video="qanda-overlay" id="subtitle"]]
+[[!template text="""We like to hear it. I think a lot of us do.""" start="00:02:03.900" video="qanda-overlay" id="subtitle"]]
+[[!template text="""[Speaker 1]: Do we have anything on IRC?""" start="00:02:07.080" video="qanda-overlay" id="subtitle"]]
+[[!template text="""Let's see. Someone's asking for ligatures.""" start="00:02:15.880" video="qanda-overlay" id="subtitle"]]
+[[!template text="""Do you have any questions,""" start="00:02:23.420" video="qanda-overlay" id="subtitle"]]
+[[!template text="""Ben? Charles?""" start="00:02:26.100" video="qanda-overlay" id="subtitle"]]
+[[!template text="""[Speaker 0]: I see a bunch on the path that I can read for""" start="00:02:35.280" video="qanda-overlay" id="subtitle"]]
+[[!template text="""[Speaker 1]: Oh, yeah, please do.""" start="00:02:36.980" video="qanda-overlay" id="subtitle"]]
+[[!template text="""[Speaker 0]: now. Sure. So next question is,""" start="00:02:39.960" video="qanda-overlay" id="subtitle"]]
+[[!template text="""do you find that the invasive,""" start="00:02:41.580" video="qanda-overlay" id="subtitle"]]
+[[!template text="""quote unquote, 3-formatting interferes with""" start="00:02:44.540" video="qanda-overlay" id="subtitle"]]
+[[!template text="""navigation?""" start="00:02:44.680" video="qanda-overlay" id="subtitle"]]
+[[!template text="""[Speaker 1]: Yes, it does. That is true.""" start="00:02:48.700" video="qanda-overlay" id="subtitle"]]
+[[!template text="""Let me see. Yeah, it's weird.""" start="00:03:01.300" video="qanda-overlay" id="subtitle"]]
+[[!template text="""The good news is that,""" start="00:03:04.120" video="qanda-overlay" id="subtitle"]]
+[[!template text="""oh, you know what? The first thing I did,""" start="00:03:06.260" video="qanda-overlay" id="subtitle"]]
+[[!template text="""my first attempt at this,""" start="00:03:07.600" video="qanda-overlay" id="subtitle"]]
+[[!template text="""I actually made all of the incoming text""" start="00:03:11.140" video="qanda-overlay" id="subtitle"]]
+[[!template text="""invisible and just replaced it with my own""" start="00:03:13.440" video="qanda-overlay" id="subtitle"]]
+[[!template text="""text. And that was actually a lot worse.""" start="00:03:15.440" video="qanda-overlay" id="subtitle"]]
+[[!template text="""The more of the input that is removed or made""" start="00:03:21.420" video="qanda-overlay" id="subtitle"]]
+[[!template text="""invisible, the harder the navigation becomes.""" start="00:03:23.600" video="qanda-overlay" id="subtitle"]]
+[[!template text="""So the fact that now I'm just inserting line""" start="00:03:26.520" video="qanda-overlay" id="subtitle"]]
+[[!template text="""breaks and spaces makes it a lot easier.""" start="00:03:29.440" video="qanda-overlay" id="subtitle"]]
+[[!template text="""And I can still search.""" start="00:03:30.540" video="qanda-overlay" id="subtitle"]]
+[[!template text="""And when I get to the destination of the""" start="00:03:34.600" video="qanda-overlay" id="subtitle"]]
+[[!template text="""search, I'm still in proper normal text.""" start="00:03:38.300" video="qanda-overlay" id="subtitle"]]
+[[!template text="""So it got a little better by changing my""" start="00:03:41.980" video="qanda-overlay" id="subtitle"]]
+[[!template text="""strategy a bit, but it's still a little bit""" start="00:03:43.740" video="qanda-overlay" id="subtitle"]]
+[[!template text="""of a problem. Let's see.""" start="00:03:50.180" video="qanda-overlay" id="subtitle"]]
+[[!template text="""I'll go look at the etherpad.""" start="00:03:51.720" video="qanda-overlay" id="subtitle"]]
+[[!template text="""Where is it?""" start="00:03:55.080" video="qanda-overlay" id="subtitle"]]
+[[!template text="""[Speaker 0]: I can read the questions from etherpad if""" start="00:03:57.260" video="qanda-overlay" id="subtitle"]]
+[[!template text="""you'd like me to. And then If at any point""" start="00:04:00.660" video="qanda-overlay" id="subtitle"]]
+[[!template text="""you want to take the questions from IRC,""" start="00:04:02.720" video="qanda-overlay" id="subtitle"]]
+[[!template text="""then feel free to do that as well.""" start="00:04:04.320" video="qanda-overlay" id="subtitle"]]
+[[!template text="""[Speaker 1]: I found it. Can you show us the key bindings""" start="00:04:07.240" video="qanda-overlay" id="subtitle"]]
+[[!template text="""of your minor map for editing overlays?""" start="00:04:08.940" video="qanda-overlay" id="subtitle"]]
+[[!template text="""Well, I have a minor mode key map for""" start="00:04:15.860" video="qanda-overlay" id="subtitle"]]
+[[!template text="""increasing or decreasing the level of detail.""" start="00:04:21.720" video="qanda-overlay" id="subtitle"]]
+[[!template text="""And the key bindings are like,""" start="00:04:24.640" video="qanda-overlay" id="subtitle"]]
+[[!template text="""I can't remember what it is.""" start="00:04:31.840" video="qanda-overlay" id="subtitle"]]
+[[!template text="""If you go and you look at the source on""" start="00:04:34.080" video="qanda-overlay" id="subtitle"]]
+[[!template text="""GitHub, you can see it there.""" start="00:04:35.640" video="qanda-overlay" id="subtitle"]]
+[[!template text="""I forgot what I bound them to.""" start="00:04:37.600" video="qanda-overlay" id="subtitle"]]
+[[!template text="""Something that I'm allowed to do.""" start="00:04:40.320" video="qanda-overlay" id="subtitle"]]
+[[!template text="""They have restrictions on what key bindings""" start="00:04:45.860" video="qanda-overlay" id="subtitle"]]
+[[!template text="""you can make in minor modes.""" start="00:04:47.200" video="qanda-overlay" id="subtitle"]]
+[[!template text="""And I carefully followed the directions.""" start="00:04:49.300" video="qanda-overlay" id="subtitle"]]
+[[!template text="""I don't remember what it was.""" start="00:04:50.580" video="qanda-overlay" id="subtitle"]]
+[[!template text="""It's like Control-C-P or something like that.""" start="00:04:54.220" video="qanda-overlay" id="subtitle"]]
+[[!template text="""Or yeah. Sorry. Your examples were with C++""" start="00:05:00.600" video="qanda-overlay" id="subtitle"]]
+[[!template text="""if you experiment with any other languages.""" start="00:05:02.640" video="qanda-overlay" id="subtitle"]]
+[[!template text="""I haven't. I guess this is just a perennial""" start="00:05:07.460" video="qanda-overlay" id="subtitle"]]
+[[!template text="""pain point for C++ programmers.""" start="00:05:10.440" video="qanda-overlay" id="subtitle"]]
+[[!template text="""So that's kind of why my,""" start="00:05:13.480" video="qanda-overlay" id="subtitle"]]
+[[!template text="""and I am 1, and I guess that's why my focus""" start="00:05:15.680" video="qanda-overlay" id="subtitle"]]
+[[!template text="""was there. You probably have to rewrite some""" start="00:05:17.880" video="qanda-overlay" id="subtitle"]]
+[[!template text="""of the parsers to use something else.""" start="00:05:20.520" video="qanda-overlay" id="subtitle"]]
+[[!template text="""Would it be possible to include overlays in""" start="00:05:24.060" video="qanda-overlay" id="subtitle"]]
+[[!template text="""the source file itself?""" start="00:05:25.080" video="qanda-overlay" id="subtitle"]]
+[[!template text="""I actually don't understand this question.""" start="00:05:30.860" video="qanda-overlay" id="subtitle"]]
+[[!template text="""In the source file itself,""" start="00:05:33.120" video="qanda-overlay" id="subtitle"]]
+[[!template text="""there are language modes that do this.""" start="00:05:35.160" video="qanda-overlay" id="subtitle"]]
+[[!template text="""No, I'm not certain I understand that""" start="00:05:41.580" video="qanda-overlay" id="subtitle"]]
+[[!template text="""question. Maybe you could edit it a little""" start="00:05:43.520" video="qanda-overlay" id="subtitle"]]
+[[!template text="""bit more, overlays in the source file.""" start="00:05:45.360" video="qanda-overlay" id="subtitle"]]
+[[!template text="""What are your plans for TSP in the future?""" start="00:05:48.840" video="qanda-overlay" id="subtitle"]]
+[[!template text="""It's a little fragile.""" start="00:05:54.560" video="qanda-overlay" id="subtitle"]]
+[[!template text="""So it might be nice to investigate.""" start="00:06:00.020" video="qanda-overlay" id="subtitle"]]
+[[!template text="""I think you can get the compiler to output""" start="00:06:02.600" video="qanda-overlay" id="subtitle"]]
+[[!template text="""error messages in different formats,""" start="00:06:04.120" video="qanda-overlay" id="subtitle"]]
+[[!template text="""which might be more parsable or the parsing""" start="00:06:07.320" video="qanda-overlay" id="subtitle"]]
+[[!template text="""might be more maintainable.""" start="00:06:08.360" video="qanda-overlay" id="subtitle"]]
+[[!template text="""That might be an interesting thing to""" start="00:06:10.280" video="qanda-overlay" id="subtitle"]]
+[[!template text="""investigate. And the other thing is I have""" start="00:06:15.460" video="qanda-overlay" id="subtitle"]]
+[[!template text="""just 1 way of reformatting the output where""" start="00:06:19.200" video="qanda-overlay" id="subtitle"]]
+[[!template text="""everything on the same level is vertically""" start="00:06:21.360" video="qanda-overlay" id="subtitle"]]
+[[!template text="""aligned. But I think some people might want""" start="00:06:23.920" video="qanda-overlay" id="subtitle"]]
+[[!template text="""to make more use of the horizontal space on""" start="00:06:26.920" video="qanda-overlay" id="subtitle"]]
+[[!template text="""the screen and take the sort of sibling parts""" start="00:06:30.920" video="qanda-overlay" id="subtitle"]]
+[[!template text="""of the type and line them up straight across""" start="00:06:34.860" video="qanda-overlay" id="subtitle"]]
+[[!template text="""and take up a little bit less vertical space.""" start="00:06:39.140" video="qanda-overlay" id="subtitle"]]
+[[!template text="""Enriched mode. I don't know what enriched""" start="00:06:47.560" video="qanda-overlay" id="subtitle"]]
+[[!template text="""mode is. Interesting. Oh,""" start="00:06:51.240" video="qanda-overlay" id="subtitle"]]
+[[!template text="""what's my repository link?""" start="00:06:52.720" video="qanda-overlay" id="subtitle"]]
+[[!template text="""Let me get that then. I don't know how to""" start="00:06:56.400" video="qanda-overlay" id="subtitle"]]
+[[!template text="""format this properly, but it's just troll""" start="00:07:00.620" video="qanda-overlay" id="subtitle"]]
+[[!template text="""slash tspute. Yeah, it's on GitHub.""" start="00:07:03.820" video="qanda-overlay" id="subtitle"]]
+[[!template text="""Something like that. Let's see.""" start="00:07:14.820" video="qanda-overlay" id="subtitle"]]
+[[!template text="""This looks like the Etherpad.""" start="00:07:16.120" video="qanda-overlay" id="subtitle"]]
+[[!template text="""It looks like all the Etherpad questions.""" start="00:07:19.640" video="qanda-overlay" id="subtitle"]]
+[[!template text="""We have 1 here from Charles.""" start="00:07:22.120" video="qanda-overlay" id="subtitle"]]
+[[!template text="""Can overlays work as hypertext so you can""" start="00:07:24.960" video="qanda-overlay" id="subtitle"]]
+[[!template text="""link an error message back to the source?""" start="00:07:26.680" video="qanda-overlay" id="subtitle"]]
+[[!template text="""Yeah, actually, that's done by default in""" start="00:07:30.720" video="qanda-overlay" id="subtitle"]]
+[[!template text="""compilation mode. That's 1 of the features""" start="00:07:32.680" video="qanda-overlay" id="subtitle"]]
+[[!template text="""you get, which has been around for literally""" start="00:07:36.160" video="qanda-overlay" id="subtitle"]]
+[[!template text="""decades. Oh, yeah. Is it already there?""" start="00:07:41.280" video="qanda-overlay" id="subtitle"]]
+[[!template text="""Yes, it's already there.""" start="00:07:42.240" video="qanda-overlay" id="subtitle"]]
+[[!template text="""Let's see. Do we have anything on IRC?""" start="00:07:45.960" video="qanda-overlay" id="subtitle"]]
+[[!template text="""Let me see. OK, looks like it seems like""" start="00:07:56.680" video="qanda-overlay" id="subtitle"]]
+[[!template text="""we've run out of questions.""" start="00:07:58.000" video="qanda-overlay" id="subtitle"]]
+[[!template text="""Is that true?""" start="00:07:58.860" video="qanda-overlay" id="subtitle"]]
+[[!template text="""[Speaker 0]: Yeah, it seems so. It seems so,""" start="00:08:04.440" video="qanda-overlay" id="subtitle"]]
+[[!template text="""although we still have a couple more minutes,""" start="00:08:06.820" video="qanda-overlay" id="subtitle"]]
+[[!template text="""like maybe 3, 4 minutes on the stream.""" start="00:08:09.000" video="qanda-overlay" id="subtitle"]]
+[[!template text="""So yeah. And then, of course,""" start="00:08:13.780" video="qanda-overlay" id="subtitle"]]
+[[!template text="""once the stream does move on to the next""" start="00:08:15.800" video="qanda-overlay" id="subtitle"]]
+[[!template text="""talk. Folks are welcome to join Jeff here on""" start="00:08:19.120" video="qanda-overlay" id="subtitle"]]
+[[!template text="""BigBlueButton. If Jeff still has a few more""" start="00:08:22.340" video="qanda-overlay" id="subtitle"]]
+[[!template text="""minutes to just chat here or ask questions""" start="00:08:24.640" video="qanda-overlay" id="subtitle"]]
+[[!template text="""here, that works as well.""" start="00:08:25.800" video="qanda-overlay" id="subtitle"]]
+[[!template text="""[Speaker 1]: JEFF CROSSMAN-WILSONEY-PORTMAN Yeah,""" start="00:08:26.920" video="qanda-overlay" id="subtitle"]]
+[[!template text="""if anyone's excited about the tool.""" start="00:08:29.640" video="qanda-overlay" id="subtitle"]]
+[[!template text="""Are the notes are available online,""" start="00:08:38.460" video="qanda-overlay" id="subtitle"]]
+[[!template text="""right? I uploaded an org file that was my""" start="00:08:42.100" video="qanda-overlay" id="subtitle"]]
+[[!template text="""talk, and I actually included some""" start="00:08:43.700" video="qanda-overlay" id="subtitle"]]
+[[!template text="""references. Like at the end,""" start="00:08:48.900" video="qanda-overlay" id="subtitle"]]
+[[!template text="""there's some links and stuff like that.""" start="00:08:50.860" video="qanda-overlay" id="subtitle"]]
+[[!template text="""Whenever you see like a underlined thing in""" start="00:08:54.620" video="qanda-overlay" id="subtitle"]]
+[[!template text="""my presentation, it's like I was kind of""" start="00:08:56.840" video="qanda-overlay" id="subtitle"]]
+[[!template text="""thinking people would have access to the""" start="00:08:58.520" video="qanda-overlay" id="subtitle"]]
+[[!template text="""actual presentation itself so they could go""" start="00:09:00.920" video="qanda-overlay" id="subtitle"]]
+[[!template text="""and see what it was I was linking to some PDF""" start="00:09:04.640" video="qanda-overlay" id="subtitle"]]
+[[!template text="""somewhere. How annoying is this for multiple""" start="00:09:07.540" video="qanda-overlay" id="subtitle"]]
+[[!template text="""compilers? It's annoying,""" start="00:09:09.600" video="qanda-overlay" id="subtitle"]]
+[[!template text="""Ben. I basically have separate parsers for""" start="00:09:15.620" video="qanda-overlay" id="subtitle"]]
+[[!template text="""Clang and GCC, and I'm not supporting MSVC at""" start="00:09:18.600" video="qanda-overlay" id="subtitle"]]
+[[!template text="""the moment. So yeah, that's where I do worry""" start="00:09:23.540" video="qanda-overlay" id="subtitle"]]
+[[!template text="""about its fragility, about the way I'm kind""" start="00:09:26.520" video="qanda-overlay" id="subtitle"]]
+[[!template text="""of parsing these error messages,""" start="00:09:27.720" video="qanda-overlay" id="subtitle"]]
+[[!template text="""which are idiosyncratic.""" start="00:09:29.340" video="qanda-overlay" id="subtitle"]]
+[[!template text="""Oh, yeah, great. Thank you,""" start="00:09:38.440" video="qanda-overlay" id="subtitle"]]
+[[!template text="""Amin. That's good. Should just follow that""" start="00:09:49.060" video="qanda-overlay" id="subtitle"]]
+[[!template text="""link, I guess.""" start="00:09:49.600" video="qanda-overlay" id="subtitle"]]
+[[!template text="""[Speaker 0]: Well, yeah, it's so that you have to scroll""" start="00:09:56.420" video="qanda-overlay" id="subtitle"]]
+[[!template text="""down a little bit underneath the video""" start="00:09:59.020" video="qanda-overlay" id="subtitle"]]
+[[!template text="""embedding itself. There's timestamps.""" start="00:10:00.460" video="qanda-overlay" id="subtitle"]]
+[[!template text="""And then below the timestamps,""" start="00:10:01.880" video="qanda-overlay" id="subtitle"]]
+[[!template text="""I see a bunch of links,""" start="00:10:03.240" video="qanda-overlay" id="subtitle"]]
+[[!template text="""including 1 that says download.org.""" start="00:10:06.140" video="qanda-overlay" id="subtitle"]]
+[[!template text="""[Speaker 1]: Yeah, let's see what that is.""" start="00:10:09.800" video="qanda-overlay" id="subtitle"]]
+[[!template text="""Is that the right 1? Yeah,""" start="00:10:13.080" video="qanda-overlay" id="subtitle"]]
+[[!template text="""that's it. That's the 1.""" start="00:10:14.780" video="qanda-overlay" id="subtitle"]]
+[[!template text="""Yeah, you can also see all of my hacks to Org""" start="00:10:19.280" video="qanda-overlay" id="subtitle"]]
+[[!template text="""Present are in there as well.""" start="00:10:20.740" video="qanda-overlay" id="subtitle"]]
+[[!template text="""I followed the System Crafters thing and made""" start="00:10:25.760" video="qanda-overlay" id="subtitle"]]
+[[!template text="""a bunch of my own modifications.""" start="00:10:27.160" video="qanda-overlay" id="subtitle"]]
+[[!template text="""Org Present has this problem where every""" start="00:10:33.120" video="qanda-overlay" id="subtitle"]]
+[[!template text="""heading is a slide, which I don't like.""" start="00:10:35.760" video="qanda-overlay" id="subtitle"]]
+[[!template text="""I kind of want hierarchy.""" start="00:10:37.080" video="qanda-overlay" id="subtitle"]]
+[[!template text="""You know? Oh, no. Sorry.""" start="00:10:41.040" video="qanda-overlay" id="subtitle"]]
+[[!template text="""Every level 1 heading is a slide.""" start="00:10:43.440" video="qanda-overlay" id="subtitle"]]
+[[!template text="""And I kind of want hierarchy among the""" start="00:10:46.360" video="qanda-overlay" id="subtitle"]]
+[[!template text="""slides. And I had to sort of invent it in""" start="00:10:51.440" video="qanda-overlay" id="subtitle"]]
+[[!template text="""that system myself through navigation.""" start="00:10:54.320" video="qanda-overlay" id="subtitle"]]
+[[!template text="""It looks like things have quieted down.""" start="00:11:03.800" video="qanda-overlay" id="subtitle"]]
+[[!template text="""Shall we call it?""" start="00:11:09.520" video="qanda-overlay" id="subtitle"]]
+[[!template text="""[Speaker 0]: Yeah, sure. So yeah, thanks again for the""" start="00:11:14.020" video="qanda-overlay" id="subtitle"]]
+[[!template text="""great talk, Jeff. And also to the audience""" start="00:11:17.780" video="qanda-overlay" id="subtitle"]]
+[[!template text="""for questions and discussions.""" start="00:11:18.960" video="qanda-overlay" id="subtitle"]]
+[[!template text="""People are welcome to stay here on BBB if""" start="00:11:21.720" video="qanda-overlay" id="subtitle"]]
+[[!template text="""Jeff has time to continue the discussions and""" start="00:11:24.060" video="qanda-overlay" id="subtitle"]]
+[[!template text="""ask any questions they might have.""" start="00:11:25.320" video="qanda-overlay" id="subtitle"]]
+[[!template text="""Otherwise, yeah, we can wrap it.""" start="00:11:26.820" video="qanda-overlay" id="subtitle"]]
+[[!template text="""[Speaker 1]: Sure. Thank you so much.""" start="00:11:29.200" video="qanda-overlay" id="subtitle"]]
+[[!template text="""And I love this conference.""" start="00:11:30.400" video="qanda-overlay" id="subtitle"]]
+[[!template text="""I've been a happy attendee since like 2015 or""" start="00:11:33.900" video="qanda-overlay" id="subtitle"]]
+[[!template text="""something. So yeah, it's great.""" start="00:11:36.760" video="qanda-overlay" id="subtitle"]]
+[[!template text="""Thank you for your work.""" start="00:11:37.760" video="qanda-overlay" id="subtitle"]]
+[[!template text="""[Speaker 0]: Thank you. Cheers. I mean,""" start="00:11:41.040" video="qanda-overlay" id="subtitle"]]
+[[!template text="""in large part, thanks to awesome people like""" start="00:11:43.080" video="qanda-overlay" id="subtitle"]]
+[[!template text="""you who give these amazing talks.""" start="00:11:44.280" video="qanda-overlay" id="subtitle"]]
+[[!template text="""So Thank you as well.""" start="00:11:45.420" video="qanda-overlay" id="subtitle"]]
+[[!template text="""[Speaker 1]: You are currently the only person in this""" start="00:14:30.260" video="qanda-overlay" id="subtitle"]]
+[[!template text="""conference.""" start="00:14:30.460" video="qanda-overlay" id="subtitle"]]
+[[!template text="""You""" start="00:21:15.260" video="qanda-overlay" id="subtitle"]]
+[[!template text="""1""" start="00:21:37.760" video="qanda-overlay" id="subtitle"]]
+[[!template text="""1 1 1 1 2 1 2 1 2 1 1 3 4 1 2 4 1 1 3 4 1 1 2""" start="00:22:23.260" video="qanda-overlay" id="subtitle"]]
+[[!template text="""3 3 4 1 2 1""" start="00:22:28.100" video="qanda-overlay" id="subtitle"]]
+[[!template text="""You""" start="00:24:41.445" video="qanda-overlay" id="subtitle"]]
+
+</div>Questions or comments? Please e-mail [emacsconf-org-private@gnu.org](mailto:emacsconf-org-private@gnu.org?subject=Comment%20for%20EmacsConf%202023%20overlay%3A%20Improving%20compiler%20diagnostics%20with%20overlays)
<!-- End of emacsconf-publish-after-page -->
diff --git a/2023/info/overlay-before.md b/2023/info/overlay-before.md
index 376dee32..8c8f8611 100644
--- a/2023/info/overlay-before.md
+++ b/2023/info/overlay-before.md
@@ -1,12 +1,46 @@
<!-- Automatically generated by emacsconf-publish-before-page -->
[[!toc ]]
-Format: 20-min talk followed by live web conference Q&A
-Discuss on IRC: [#emacsconf](https://chat.emacsconf.org/?join=emacsconf)
-Status: Waiting for video from speaker
+Format: 21-min talk ; Q&A: BigBlueButton conference room
+Status: Q&A to be extracted from the room recordings
+# Talk
+
+<div class="vid mainVideo"><video controls preload="none" id="mainVideo-overlay"><source src="https://media.emacsconf.org/2023/emacsconf-2023-overlay--improving-compiler-diagnostics-with-overlays--jeff-trull--main.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2023/captions/emacsconf-2023-overlay--improving-compiler-diagnostics-with-overlays--jeff-trull--main.vtt" default />"""<track kind="chapters" label="Chapters" src="/2023/captions/emacsconf-2023-overlay--improving-compiler-diagnostics-with-overlays--jeff-trull--main--chapters.vtt" /><p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video>[[!template id="chapters" vidid="mainVideo-overlay" data="""
+00:00.000 Introduction
+00:33.560 Overlays and what they can do
+02:02.500 Simple overlay example - creating an overlay
+02:35.700 Adding properties
+03:10.940 Deleting an overlay
+03:24.660 Setting fonts the right way
+03:59.540 More properties
+04:12.580 Visibility
+04:49.780 Adding text
+05:27.820 Custom properties
+05:45.380 Notes on properties
+06:36.100 Improving C++ compiler output
+08:17.680 The problem with C++ error messages
+08:30.240 Many standard class templates have default arguments
+08:47.520 Some types are aliases for longer things, too
+09:20.960 Reporting type information accurately means long lines
+10:18.240 Emacs can help - Treat C++ type names as just another kind of balanced expression
+11:49.320 Add overlays to improve readability
+12:22.400 Create a minor mode that runs during compilation
+12:59.500 Parsing types as balanced expressions
+14:16.100 Indent and fill with overlays - Use ancient "pretty printing" algorithms"
+14:52.260 Overlays can mimic line breaks and indentation
+15:14.520 Hiding details - Marking depths with overlays
+17:12.660 Hiding to a target depth
+18:04.900 Demo
+20:10.220 Conclusion
+
+"""]]<div></div>Duration: 20:57 minutes<div class="files resources"><ul><li><a href="https://pad.emacsconf.org/2023-overlay">Open Etherpad</a></li><li><a href="https://bbb.emacsverse.org/playback/presentation/2.0/playback.html?meetingId=57788b1709264f016c76ee375746aab6fdcba006-1701539189569">Play recording from BigBlueButton</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-overlay--improving-compiler-diagnostics-with-overlays--jeff-trull--expr_depth.svg">Download --expr_depth.svg</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-overlay--improving-compiler-diagnostics-with-overlays--jeff-trull--intro.vtt">Download --intro.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-overlay--improving-compiler-diagnostics-with-overlays--jeff-trull--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-overlay--improving-compiler-diagnostics-with-overlays--jeff-trull--main--chapters.vtt">Download --main--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-overlay--improving-compiler-diagnostics-with-overlays--jeff-trull--main.opus">Download --main.opus (15MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-overlay--improving-compiler-diagnostics-with-overlays--jeff-trull--main.vtt">Download --main.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-overlay--improving-compiler-diagnostics-with-overlays--jeff-trull--main.webm">Download --main.webm (63MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-overlay--improving-compiler-diagnostics-with-overlays--jeff-trull--testdata.org">Download --testdata.org</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-overlay--improving-compiler-diagnostics-with-overlays--jeff-trull.org">Download .org</a></li><li><a href="https://toobnix.org/w/5fJkawU4R9b1dJq5BcDykx">View on Toobnix</a></li><li><a href="https://www.youtube.com/watch?v=g7mwN5QtcmA">View on Youtube</a></li></ul></div></div>
+
+# Q&A
+
+<div class="vid qanda"><video controls preload="none" id="qanda-overlay"><source src="https://media.emacsconf.org/2023/emacsconf-2023-overlay--improving-compiler-diagnostics-with-overlays--jeff-trull--answers.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2023/captions/emacsconf-2023-overlay--improving-compiler-diagnostics-with-overlays--jeff-trull--answers.vtt" default />"""<p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video><div>Listen to just the audio:<br /><audio controls preload="none" id="qanda-overlay-audio" src="https://media.emacsconf.org/2023/emacsconf-2023-overlay--improving-compiler-diagnostics-with-overlays--jeff-trull--answers.opus"></audio></div><div></div>Duration: 11:48 minutes<div class="files resources"><ul><li><a href="https://pad.emacsconf.org/2023-overlay">Open Etherpad</a></li><li><a href="https://bbb.emacsverse.org/playback/presentation/2.0/playback.html?meetingId=57788b1709264f016c76ee375746aab6fdcba006-1701539189569">Play recording from BigBlueButton</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-overlay--improving-compiler-diagnostics-with-overlays--jeff-trull--answers.json">Download --answers.json</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-overlay--improving-compiler-diagnostics-with-overlays--jeff-trull--answers.opus">Download --answers.opus (12MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-overlay--improving-compiler-diagnostics-with-overlays--jeff-trull--answers.vtt">Download --answers.vtt</a> (unedited)</li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-overlay--improving-compiler-diagnostics-with-overlays--jeff-trull--answers.webm">Download --answers.webm (20MB)</a></li></ul></div></div>
# Description
<!-- End of emacsconf-publish-before-page --> \ No newline at end of file
diff --git a/2023/info/overlay-nav.md b/2023/info/overlay-nav.md
index ba04cc37..d06b5a15 100644
--- a/2023/info/overlay-nav.md
+++ b/2023/info/overlay-nav.md
@@ -3,5 +3,5 @@
Back to the [[talks]]
Previous by track: <a href="/2023/talks/llm">LLM clients in Emacs, functionality and standardization</a>
Next by track: <a href="/2023/talks/eval">Editor Integrated REPL Driven Development for all languages</a>
-Track: <span class="sched-track Development">Development</span>
+Track: <span class="sched-track Development">Development</span> - <strong><a href="https://emacsconf.org/2023/watch/dev">Watch</a></strong>
</div>
diff --git a/2023/info/parallel-after.md b/2023/info/parallel-after.md
index 9ddca34b..77006241 100644
--- a/2023/info/parallel-after.md
+++ b/2023/info/parallel-after.md
@@ -1,7 +1,597 @@
<!-- Automatically generated by emacsconf-publish-after-page -->
-Questions or comments? Please e-mail [hokomo@airmail.cc](mailto:hokomo@airmail.cc?subject=Comment%20for%20EmacsConf%202022%20parallel%3A%20Parallel%20Text%20Replacement%3A%20Does%20P%20%3D%20NP%3F)
+<div class="transcript transcript-mainVideo"><a name="parallel-mainVideo-transcript"></a><h1>Transcript</h1>
+
+
+<div class="transcript-heading">[[!template new="1" text="""Introduction""" start="00:00:00.000" video="mainVideo-parallel" id="subtitle"]]</div>[[!template text="""Hi everyone!""" start="00:00:00.000" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""Welcome to our talk on Parallel Text Replacement.""" start="00:00:01.640" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""My name is Lovro, and I'll be telling you about an""" start="00:00:04.640" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""interesting problem that my friend Valentino and I""" start="00:00:07.040" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""set out to solve one afternoon.""" start="00:00:09.360" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""We will describe the problem, take a look at some""" start="00:00:11.760" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""of the existing work and then present our solution.""" start="00:00:13.680" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""Afterwards, we will show some demos and conclude""" start="00:00:16.880" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""with a quick overview of the implementation.""" start="00:00:19.080" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""Let's get straight into it!""" start="00:00:21.520" video="mainVideo-parallel" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Problem: Goal""" start="00:00:23.440" video="mainVideo-parallel" id="subtitle"]]</div>[[!template text="""Here is a problem that most of us have dealt with""" start="00:00:23.440" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""at some point.""" start="00:00:25.800" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""Assume we have a piece of code such as the following.""" start="00:00:27.040" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""We use a code example here, but in general what we're""" start="00:00:29.880" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""about to discuss can be applied to any piece of text.""" start="00:00:32.520" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""After a bit of thinking, we decide that the names of""" start="00:00:35.600" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""the two variables, &quot;foo&quot; and &quot;bar&quot;, should actually be""" start="00:00:37.640" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""swapped.""" start="00:00:39.960" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""That is, &quot;foo&quot; should be replaced with &quot;bar&quot;, and &quot;bar&quot;""" start="00:00:40.880" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""should be replaced with &quot;foo&quot;.""" start="00:00:43.560" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""The question is: what is a good way to achieve this?""" start="00:00:45.040" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""We could perform the edits manually if the code is""" start="00:00:49.080" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""small enough, and we might even be done reasonably""" start="00:00:51.760" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""quickly.""" start="00:00:53.880" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""However, consider two things.""" start="00:00:54.720" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""Imagine the usual case where there's just too much""" start="00:00:56.720" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""code to edit by hand.""" start="00:00:58.960" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""We have no other option than to automate the task.""" start="00:01:00.760" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""More importantly though, we have a whole programmable""" start="00:01:03.680" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""text editor right at our fingertips.""" start="00:01:06.120" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""We should object to doing things that the computer""" start="00:01:08.280" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""can do for us.""" start="00:01:10.280" video="mainVideo-parallel" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Problem: Naive Multi-pass""" start="00:01:12.360" video="mainVideo-parallel" id="subtitle"]]</div>[[!template text="""So, one way to automate it is by using our old friend""" start="00:01:12.360" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""query-replace (M-%) multiple times in a sequence.""" start="00:01:15.560" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""We first do a pass where we replace &quot;foo&quot; with &quot;bar&quot;,""" start="00:01:19.040" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""then we do another pass where we replace &quot;bar&quot; with &quot;foo&quot;.""" start="00:01:22.240" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""But that's clearly not right.""" start="00:01:25.640" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""We all know that this naive multi-pass approach""" start="00:01:26.960" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""doesn't work because it results in interference""" start="00:01:29.160" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""between the two replacements.""" start="00:01:31.560" video="mainVideo-parallel" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Problem: Clever Multi-pass""" start="00:01:34.200" video="mainVideo-parallel" id="subtitle"]]</div>[[!template text="""Instead, we have to be a bit more clever.""" start="00:01:34.200" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""We should first replace &quot;foo&quot; with a temporary string,""" start="00:01:36.800" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""in this case &quot;oof&quot;, that we will call a &quot;token&quot;.""" start="00:01:39.840" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""To avoid interference, we must be careful to ensure""" start="00:01:42.120" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""that the token does not contain whatever we're about""" start="00:01:45.480" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""to replace next.""" start="00:01:48.120" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""Then we do a second pass to replace &quot;bar&quot; with &quot;foo&quot;,""" start="00:01:49.600" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""and finally a third pass to replace the token with &quot;bar&quot;.""" start="00:01:52.720" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""This gives us the result we want.""" start="00:01:56.080" video="mainVideo-parallel" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Problem: Terminology""" start="00:01:57.720" video="mainVideo-parallel" id="subtitle"]]</div>[[!template text="""Putting the implementation aside for a moment, this style""" start="00:01:57.720" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""of text replacement, where we replace multiple sources""" start="00:02:01.920" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""with their targets, without running into interference""" start="00:02:05.600" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""issues between replacement pairs, is what we call""" start="00:02:09.040" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""a &quot;parallel replacement&quot;.""" start="00:02:11.760" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""This is the essence of the problem we're trying to solve.""" start="00:02:12.840" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""The examples with swapping that we've shown so far""" start="00:02:16.360" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""are really just one of the many use cases that are""" start="00:02:18.680" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""supported by a general parallel replacement utility.""" start="00:02:21.320" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""To avoid confusion, let us clarify that the word &quot;parallel&quot;""" start="00:02:25.040" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""is not in reference to hardware parallelization, but""" start="00:02:28.760" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""rather comes from analogy with the Lisp let operator,""" start="00:02:31.760" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""where the bindings of variables are performed in parallel,""" start="00:02:34.880" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""rather than sequentially as in let*.""" start="00:02:38.160" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""Parallel in this context means that none of the bindings""" start="00:02:40.200" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""are in scope within any of the initial value forms.""" start="00:02:43.680" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""In other words, just like a let's initialization form""" start="00:02:46.880" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""cannot refer to any of the earlier bindings, a""" start="00:02:50.200" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""replacement pair's source should not be able to replace""" start="00:02:53.720" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""the previously substituted targets of any other pair.""" start="00:02:56.760" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""This is what we mean by &quot;no interference&quot;.""" start="00:03:00.200" video="mainVideo-parallel" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Problem: Scaling Multi-pass""" start="00:03:04.440" video="mainVideo-parallel" id="subtitle"]]</div>[[!template text="""However, manually invoking multiple carefully chosen""" start="00:03:04.440" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""query-replace commands gets old very quickly.""" start="00:03:08.000" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""Say we scaled up the problem and wanted to perform n""" start="00:03:11.520" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""swaps instead of just two, e.g. to swap, or rather,""" start="00:03:14.200" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""rotate, &quot;foo&quot; to &quot;bar&quot;, &quot;bar&quot; to &quot;baz&quot;, &quot;baz&quot; to &quot;quux&quot;""" start="00:03:18.320" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""and &quot;quux&quot; to &quot;foo&quot;.""" start="00:03:22.160" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""We would first have to perform n - 1 additional""" start="00:03:23.800" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""replacements to introduce the necessary tokens,""" start="00:03:26.360" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""effectively doubling the number of steps.""" start="00:03:29.240" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""Even if we tried to automate this, think about what""" start="00:03:32.240" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""tokens the code would have to generate if we had no""" start="00:03:34.800" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""prior knowledge of the replacement pairs given by the""" start="00:03:37.680" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""user.""" start="00:03:40.520" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""We would have to program defensively and use long""" start="00:03:41.560" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""randomly-generated strings that, one, hopefully do""" start="00:03:44.160" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""not interfere with any of the replacement pairs,""" start="00:03:47.560" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""and two, might slow down the search if they're overly long.""" start="00:03:50.280" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""Can we do better?""" start="00:03:53.480" video="mainVideo-parallel" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Solution: Single-pass""" start="00:03:55.920" video="mainVideo-parallel" id="subtitle"]]</div>[[!template text="""Yes we can!""" start="00:03:55.920" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""We can actually perform just a single pass.""" start="00:03:56.840" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""The trick is to alternate between the replacement""" start="00:03:59.680" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""pairs, replacing whichever source occurs the earliest,""" start="00:04:02.280" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""and making sure to continue scanning after the end""" start="00:04:06.000" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""of the substituted target in order to avoid interference.""" start="00:04:08.440" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""This interleaving of replacements is not something""" start="00:04:12.280" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""that's easy to do by hand with query-replace.""" start="00:04:14.520" video="mainVideo-parallel" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Solution: Existing""" start="00:04:18.240" video="mainVideo-parallel" id="subtitle"]]</div>[[!template text="""Since this is Emacs we're talking about, of course""" start="00:04:18.240" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""there already exist solutions that implement this idea.""" start="00:04:20.960" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""Here are few that we could find.""" start="00:04:23.560" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""The EmacsWiki has a page dedicated to this problem.""" start="00:04:25.960" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""Stack Overflow has an old post where a couple of""" start="00:04:28.800" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""users provided their solutions.""" start="00:04:31.560" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""Mastering Emacs also gives a method along with other""" start="00:04:33.960" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""interesting query-replace-regexp (C-M-%) patterns.""" start="00:04:36.920" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""More recently, Tony Zorman made a blogpost providing""" start="00:04:39.000" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""a solution with an interface based on query-replace.""" start="00:04:42.360" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""I encourage you to take a look at these solutions if""" start="00:04:45.080" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""you're interested in the details.""" start="00:04:47.640" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""But while a step in the right direction, these solutions""" start="00:04:50.040" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""are not satisfactory because they all lack one or""" start="00:04:53.040" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""more of the following.""" start="00:04:55.440" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""One, they are not completely automated and require""" start="00:04:56.920" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""the user to come up with a relatively complicated""" start="00:05:00.000" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""and verbose query-replace-regexp invocation.""" start="00:05:02.600" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""Two, they are restricted to performing only 2-element""" start="00:05:06.080" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""swaps rather than general parallel replacements.""" start="00:05:09.040" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""Three, they don't provide any sort of interactivity""" start="00:05:12.680" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""during replacement and instead perform it in one shot.""" start="00:05:15.160" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""Four, they don't attempt to integrate with the familiar""" start="00:05:18.620" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""query-replace interface, which supports skipping, undo,""" start="00:05:21.400" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""history and more advanced features like Lisp expressions""" start="00:05:25.000" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""and recursive query edits.""" start="00:05:28.440" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""Most importantly however, five, none of them were""" start="00:05:30.700" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""designed with regular expressions in mind and instead""" start="00:05:33.800" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""only ever consider literal strings.""" start="00:05:36.480" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""In fact, the only one that comes close is the""" start="00:05:39.560" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""half-automated solution that invokes query-replace-regexp""" start="00:05:43.160" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""with a specially crafted replacement.""" start="00:05:46.520" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""As an example, here's how you would use this technique""" start="00:05:48.800" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""to perform a 3-element parallel regex replacement.""" start="00:05:51.760" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""It uses the backslash-comma Lisp expression feature""" start="00:05:54.440" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""in order to choose the appropriate target to substitute.""" start="00:05:57.840" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""Aside from being very clumsy and tedious to write out,""" start="00:06:01.280" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""this approach makes it really hard to use more complex""" start="00:06:03.800" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""regular expressions that make use of capture groups""" start="00:06:06.960" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""themselves.""" start="00:06:09.360" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""This was the biggest limitation that we wanted""" start="00:06:10.800" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""to get rid of and the main motivation for our work.""" start="00:06:12.200" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""So, as an alternative to the existing zoo of 80% solutions,""" start="00:06:15.720" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""we aim to provide a 100% solution, one that handles""" start="00:06:19.920" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""regexes and consolidates all of the existing ideas""" start="00:06:24.240" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""into a single package.""" start="00:06:27.120" video="mainVideo-parallel" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Solution: query-replace-parallel""" start="00:06:29.080" video="mainVideo-parallel" id="subtitle"]]</div>[[!template text="""We call it query-replace-parallel.""" start="00:06:29.080" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""The package is free and open-source and can currently""" start="00:06:31.360" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""be found on GitHub under hokomo/query-replace-parallel.""" start="00:06:34.160" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""The name is not yet finalized and we're open to any""" start="00:06:37.400" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""suggestions.""" start="00:06:40.240" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""We hope to get it published on an Elisp""" start="00:06:41.503" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""package archive in the near future, but for now you""" start="00:06:43.280" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""can just download and load the main Elisp file manually.""" start="00:06:45.880" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""With all of that said, let's go through a few demos""" start="00:06:48.900" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""to illustrate some use cases and see how to use the package.""" start="00:06:51.400" video="mainVideo-parallel" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Demonstration: Swap""" start="00:06:55.240" video="mainVideo-parallel" id="subtitle"]]</div>[[!template text="""Our first demo is a simple swap, like the one we""" start="00:06:55.240" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""showed at the beginning of the presentation.""" start="00:06:57.560" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""This chunk of text is actually one of the tests""" start="00:06:59.240" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""from our package's code.""" start="00:07:02.160" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""Assuming we have loaded the package, we can execute""" start="00:07:03.840" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""the query-replace-parallel command, a parallel version""" start="00:07:06.520" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""of the standard query-replace.""" start="00:07:09.680" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""This command works with literal strings and will""" start="00:07:11.320" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""ask for each source and target in turn.""" start="00:07:14.040" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""Our goal is to replace &quot;foo&quot; with &quot;bar&quot;""" start="00:07:16.000" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""and &quot;bar&quot; with &quot;foo&quot;.""" start="00:07:21.360" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""After inputting our replacements, we terminate the""" start="00:07:24.680" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""prompt by pressing enter with empty input.""" start="00:07:27.040" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""At this point, everything functions the same as in""" start="00:07:29.860" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""a standard query-replace invocation.""" start="00:07:32.600" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""The echo area shows the match and the replacement""" start="00:07:35.280" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""we're about to make.""" start="00:07:37.400" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""We can perform replacements,""" start="00:07:38.703" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""undo them,""" start="00:07:43.920" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""skip them,""" start="00:07:46.503" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""execute them until the end,""" start="00:07:49.203" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""and so on.""" start="00:07:50.240" video="mainVideo-parallel" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Demonstration: LaTeX""" start="00:07:53.970" video="mainVideo-parallel" id="subtitle"]]</div>[[!template text="""The second demo shows our first regex use case.""" start="00:07:53.970" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""Imagine we have the following LaTeX code.""" start="00:07:56.280" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""We realize that we haven't been completely consistent""" start="00:07:58.720" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""in our use and naming of macros, so we decide to""" start="00:08:01.480" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""fix the problem.""" start="00:08:04.040" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""This time we execute query-replace-parallel-regexp""" start="00:08:05.536" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""because we want to work with regex instead of literal""" start="00:08:08.400" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""strings.""" start="00:08:11.000" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""We want to achieve two things.""" start="00:08:12.000" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""First, we want to wrap all usages of the variable n""" start="00:08:13.520" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""with the natvar macro.""" start="00:08:16.960" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""Using the backslash-less-than and blackslash-greater-than""" start="00:08:18.080" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""constructs allows us to only match letters n not""" start="00:08:21.040" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""appearing as part of a larger word.""" start="00:08:23.840" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""Second, we want to rename natvar to intvar because""" start="00:08:25.360" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""the variables a, b and c are integers and not natural""" start="00:08:29.560" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""numbers.""" start="00:08:32.280" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""We enter empty input to terminate the prompt and can""" start="00:08:33.300" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""now perform the replacements.""" start="00:08:35.760" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""There we go, the fixes are done and we didn't have""" start="00:08:42.280" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""to think about in which order to apply them.""" start="00:08:44.480" video="mainVideo-parallel" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Demonstration: Regex""" start="00:08:48.700" video="mainVideo-parallel" id="subtitle"]]</div>[[!template text="""We now take a look at a more complicated regex""" start="00:08:48.700" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""example to demonstrate that even advanced query-replace""" start="00:08:51.000" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""features are supported.""" start="00:08:53.680" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""Each &quot;foo&quot; and &quot;bar&quot; in this example is followed by""" start="00:08:55.100" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""a number.""" start="00:08:57.440" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""The goal is to not only swap &quot;foo&quot; and &quot;bar&quot;, but""" start="00:08:58.440" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""also increase or decrease the corresponding number.""" start="00:09:01.380" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""We first match &quot;foo&quot; and capture the number that""" start="00:09:03.720" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""follows it.""" start="00:09:06.600" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""For the target, we make use of the backslash-comma""" start="00:09:07.200" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""Lisp expression feature in order to replace the""" start="00:09:10.000" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""match with &quot;bar&quot; followed by the number's successor.""" start="00:09:12.600" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""We do the same thing for &quot;bar&quot;, except that we""" start="00:09:15.540" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""replace the number with its predecessor.""" start="00:09:17.640" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""Performing the replacements, we can see how each""" start="00:09:27.040" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""number is incremented or decremented appropriately.""" start="00:09:29.120" video="mainVideo-parallel" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Demonstration: Order""" start="00:09:36.320" video="mainVideo-parallel" id="subtitle"]]</div>[[!template text="""We haven't covered it explicitly so some of you may""" start="00:09:36.320" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""be wondering how parallel replacement deals with""" start="00:09:38.760" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""overlapping matches and whether the order of the""" start="00:09:41.360" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""replacement pairs is significant.""" start="00:09:43.840" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""This demo will clarify the exact behavior.""" start="00:09:45.480" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""The first example has the sources &quot;watch&quot; and &quot;stopwatch&quot;.""" start="00:09:48.960" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""Conceptually, the matches overlap, but the rule is""" start="00:09:57.500" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""that matches are always processed earliest first,""" start="00:10:00.600" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""regardless of their length or the ordering of the pairs.""" start="00:10:03.000" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""Therefore it is &quot;stopwatch&quot; that gets replaced,""" start="00:10:06.040" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""and not its substring &quot;watch&quot;.""" start="00:10:09.080" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""The second example uses the sources &quot;watch&quot; and &quot;watchword&quot;.""" start="00:10:16.040" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""Both of the matches now conceptually start at the same""" start="00:10:19.640" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""position.""" start="00:10:22.640" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""In situations like these the order of the pairs does""" start="00:10:23.720" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""matter, and ties are broken by prefering the pair that""" start="00:10:26.400" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""was entered first, which is behavior that is inherited""" start="00:10:29.560" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""from the Elisp regex engine.""" start="00:10:32.280" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""So, the substring &quot;watch&quot; in &quot;watchword&quot; is what gets""" start="00:10:34.460" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""replaced in this case.""" start="00:10:37.480" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""Situations where the order of the pairs is significant""" start="00:10:39.460" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""are not very common however, so the user generally""" start="00:10:41.840" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""doesn't have to worry about this edge case.""" start="00:10:44.840" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""The order only matters when two or more sources""" start="00:10:46.760" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""share the same prefix, as in this example.""" start="00:10:49.960" video="mainVideo-parallel" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Demonstration: Fun""" start="00:10:54.440" video="mainVideo-parallel" id="subtitle"]]</div>[[!template text="""The final demo tests the limits of the package and""" start="00:10:54.440" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""shows that it fully integrates with query-replace.""" start="00:10:56.960" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""It is really just for fun and can even serve as a""" start="00:10:59.760" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""small Emacs brainteaser.""" start="00:11:03.040" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""See if you can keep up!""" start="00:11:04.240" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""We open a directory and enter Writable Dired mode""" start="00:11:06.360" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""in order to rename the directories &quot;foo&quot; and &quot;bar&quot;.""" start="00:11:09.160" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""Instead of doing it quickly by hand, we decide to""" start="00:11:11.880" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""show off and use query-replace-parallel-regexp.""" start="00:11:14.760" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""We enter our pairs and make use of the""" start="00:11:17.360" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""backslash-question-mark query edit feature.""" start="00:11:20.000" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""Now whenever we perform a replacement, the query""" start="00:11:25.080" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""edit makes Emacs stop and prompt us for additional""" start="00:11:27.920" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""input to use as the target.""" start="00:11:30.840" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""We confirm the renames and now enter the &quot;bar-lib&quot;""" start="00:11:36.680" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""directory in order to perform the same kind of""" start="00:11:39.240" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""replacement on &quot;baz&quot; and &quot;quux&quot;.""" start="00:11:42.000" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""Rather than save time, we decide to be extra lazy""" start="00:11:44.500" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""and take the long route.""" start="00:11:47.920" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""We recall the first pair and initiate a recursive""" start="00:11:48.920" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""invocation of query-replace-parallel-regexp.""" start="00:11:52.320" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""We are now replacing the replacement.""" start="00:11:54.560" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""We apply our fixes and then do the same thing again""" start="00:12:01.020" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""with the second pair.""" start="00:12:04.640" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""Recall and recurse.""" start="00:12:05.970" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""We confirm the prompt and finally rename our directories.""" start="00:12:16.300" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""Wow, that really paid off.""" start="00:12:25.360" video="mainVideo-parallel" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Implementation""" start="00:12:29.120" video="mainVideo-parallel" id="subtitle"]]</div>[[!template text="""Before we finish, a few quick words about the""" start="00:12:29.120" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""implementation for the curious.""" start="00:12:31.480" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""Both query-replace-parallel and query-replace-parallel-regexp""" start="00:12:33.300" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""delegate to the complex perform-replace function""" start="00:12:36.480" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""which is the workhorse of query-replace's interactive""" start="00:12:39.240" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""mechanism.""" start="00:12:41.880" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""The way we achieve multiple interleaved replacements""" start="00:12:43.120" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""is by providing perform-replace with a big &quot;matcher regex&quot;""" start="00:12:45.520" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""and a special replacement function.""" start="00:12:49.120" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""Essentially, a complex parallel replacement like this""" start="00:12:50.480" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""is transformed into a standard replacement like this.""" start="00:12:54.400" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""This is similar to the trick shown earlier in the""" start="00:12:57.520" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""presentation.""" start="00:13:00.200" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""Each source is put in its own capture group to allow""" start="00:13:00.880" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""the replacement function to determine which one matched""" start="00:13:03.920" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""and return the appropriate target.""" start="00:13:06.440" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""However, we now take care to support arbitrary""" start="00:13:08.980" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""regular expressions as sources.""" start="00:13:11.680" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""We achieve this by converting each source regex into""" start="00:13:13.480" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""an equivalent one for which we can guarantee that its""" start="00:13:17.080" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""capture groups will not clash with our matcher regex.""" start="00:13:19.920" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""Information about this conversion is stored, and""" start="00:13:22.920" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""once the replacement function is called it has""" start="00:13:26.000" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""enough data to apply the replacement from the""" start="00:13:28.320" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""viewpoint of the original regex.""" start="00:13:30.360" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""The regex transformation is reliable because it""" start="00:13:32.720" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""uses the rx library, allowing us to treat regexes""" start="00:13:35.000" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""as s-expressions and avoid any nasty manual parsing.""" start="00:13:38.520" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""In fact, rx itself is based on one of Olin Shivers'""" start="00:13:42.640" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""100% solutions:""" start="00:13:46.640" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""SRE, or the S-expression regex notation.""" start="00:13:48.436" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""We all stand on the shoulders of many giants, so""" start="00:13:51.320" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""let's strive to design good solutions that we can""" start="00:13:54.440" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""all benefit from, many years into the future!""" start="00:13:56.600" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""Finally, because query-replace's core is not completely""" start="00:13:59.240" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""customizable, we did have to sprinkle in some advice""" start="00:14:03.000" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""to get certain things working.""" start="00:14:06.160" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""This concerns only minor cosmetic fixes and not the""" start="00:14:07.600" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""core replacement functionality, but we have nontheless""" start="00:14:11.160" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""tried to do it in the simplest and least intrusive way""" start="00:14:14.040" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""possible.""" start="00:14:16.680" video="mainVideo-parallel" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""End""" start="00:14:18.740" video="mainVideo-parallel" id="subtitle"]]</div>[[!template text="""In conclusion, go download and play with the package.""" start="00:14:18.740" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""Even if you're not performing overlapping replacements,""" start="00:14:21.680" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""you can still use query-replace-parallel for the""" start="00:14:24.560" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""peace of mind knowing that things won't go wrong if""" start="00:14:26.880" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""you perform more than one replacement at a time.""" start="00:14:29.720" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""Feel free to let us know about any interesting or""" start="00:14:32.460" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""crazy use cases you might come up with, as well as""" start="00:14:34.640" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""improvements or bugs that make it only a 99% solution.""" start="00:14:37.560" video="mainVideo-parallel" id="subtitle"]]
+[[!template text="""Thanks for listening and have a great EmacsConf!""" start="00:14:40.640" video="mainVideo-parallel" id="subtitle"]]
+
+</div><div class="transcript transcript-qanda"><a name="parallel-qanda-transcript"></a><h1>Q&A transcript (unedited)</h1>
+
+[[!template text="""[Speaker 0]: And I think we are live.""" start="00:00:08.620" video="qanda-parallel" id="subtitle"]]
+[[!template text="""Hello again, everyone.""" start="00:00:09.620" video="qanda-parallel" id="subtitle"]]
+[[!template text="""And hi, Lovro. How are you doing?""" start="00:00:10.940" video="qanda-parallel" id="subtitle"]]
+[[!template text="""[Speaker 1]: Just a second. Should I join the other room?""" start="00:00:15.339" video="qanda-parallel" id="subtitle"]]
+[[!template text="""[Speaker 0]: Oh, no, no, you can stay here.""" start="00:00:18.460" video="qanda-parallel" id="subtitle"]]
+[[!template text="""[Speaker 1]: I can stay in the backstage.""" start="00:00:20.860" video="qanda-parallel" id="subtitle"]]
+[[!template text="""[Speaker 0]: Everything is fine. I don't think you are""" start="00:00:24.140" video="qanda-parallel" id="subtitle"]]
+[[!template text="""technically in the backstage right now you're""" start="00:00:25.520" video="qanda-parallel" id="subtitle"]]
+[[!template text="""just in Big Blue Button with us.""" start="00:00:26.750" video="qanda-parallel" id="subtitle"]]
+[[!template text="""[Speaker 1]: Oh thanks. Oh because I have 2 of them open I""" start="00:00:30.040" video="qanda-parallel" id="subtitle"]]
+[[!template text="""thought there were 2 different rooms.""" start="00:00:30.920" video="qanda-parallel" id="subtitle"]]
+[[!template text="""1 is the backstage and the other,""" start="00:00:32.720" video="qanda-parallel" id="subtitle"]]
+[[!template text="""[Speaker 0]: whichever, I can hear you and so can the""" start="00:00:38.239" video="qanda-parallel" id="subtitle"]]
+[[!template text="""stream, so don't worry too much about which""" start="00:00:39.840" video="qanda-parallel" id="subtitle"]]
+[[!template text="""is the backstage and which is the front page.""" start="00:00:41.140" video="qanda-parallel" id="subtitle"]]
+[[!template text="""[Speaker 1]: I have no idea. Well, great,""" start="00:00:41.540" video="qanda-parallel" id="subtitle"]]
+[[!template text="""great. Okay, yeah. Yeah,""" start="00:00:43.660" video="qanda-parallel" id="subtitle"]]
+[[!template text="""I'm doing great, just to answer your""" start="00:00:45.280" video="qanda-parallel" id="subtitle"]]
+[[!template text="""question.""" start="00:00:45.480" video="qanda-parallel" id="subtitle"]]
+[[!template text="""[Speaker 0]: Okay, great, great, Okay,""" start="00:00:47.379" video="qanda-parallel" id="subtitle"]]
+[[!template text="""well splendid. So, I've pasted a link again""" start="00:00:49.900" video="qanda-parallel" id="subtitle"]]
+[[!template text="""on IRC if you want to ask your questions,""" start="00:00:51.520" video="qanda-parallel" id="subtitle"]]
+[[!template text="""and I'd invite you to do so,""" start="00:00:53.000" video="qanda-parallel" id="subtitle"]]
+[[!template text="""because we have about 9 minutes of laborious""" start="00:00:54.620" video="qanda-parallel" id="subtitle"]]
+[[!template text="""time to answer as many of them as possible.""" start="00:00:56.580" video="qanda-parallel" id="subtitle"]]
+[[!template text="""And I'm going to start with the first 1.""" start="00:00:58.360" video="qanda-parallel" id="subtitle"]]
+[[!template text="""This looks great and was very well-presented.""" start="00:01:01.100" video="qanda-parallel" id="subtitle"]]
+[[!template text="""Do you have plans to upstream this""" start="00:01:03.240" video="qanda-parallel" id="subtitle"]]
+[[!template text="""functionality into Emacs?""" start="00:01:04.239" video="qanda-parallel" id="subtitle"]]
+[[!template text="""[Speaker 1]: That's a good idea. That's something we""" start="00:01:08.000" video="qanda-parallel" id="subtitle"]]
+[[!template text="""thought about as well.""" start="00:01:08.860" video="qanda-parallel" id="subtitle"]]
+[[!template text="""Currently, we haven't really contacted anyone""" start="00:01:11.640" video="qanda-parallel" id="subtitle"]]
+[[!template text="""to do this. Also, the current implementation,""" start="00:01:16.160" video="qanda-parallel" id="subtitle"]]
+[[!template text="""so as I mentioned in the presentation towards""" start="00:01:19.760" video="qanda-parallel" id="subtitle"]]
+[[!template text="""the end, so we use a little bit of advice to""" start="00:01:22.120" video="qanda-parallel" id="subtitle"]]
+[[!template text="""sort of patch some functionality of query""" start="00:01:24.240" video="qanda-parallel" id="subtitle"]]
+[[!template text="""replace because not everything was easy to""" start="00:01:26.479" video="qanda-parallel" id="subtitle"]]
+[[!template text="""implement. The core functionality luckily""" start="00:01:28.680" video="qanda-parallel" id="subtitle"]]
+[[!template text="""was, But there's a couple of fixes we need to""" start="00:01:32.220" video="qanda-parallel" id="subtitle"]]
+[[!template text="""apply to the message function in order to""" start="00:01:34.200" video="qanda-parallel" id="subtitle"]]
+[[!template text="""display a nice message in the echo buffer""" start="00:01:36.380" video="qanda-parallel" id="subtitle"]]
+[[!template text="""because this doesn't happen on its own when""" start="00:01:39.140" video="qanda-parallel" id="subtitle"]]
+[[!template text="""we're using this trick with this big regex""" start="00:01:41.100" video="qanda-parallel" id="subtitle"]]
+[[!template text="""and whatnot. So I don't think that the code""" start="00:01:45.360" video="qanda-parallel" id="subtitle"]]
+[[!template text="""as it is would be upstreamable.""" start="00:01:47.080" video="qanda-parallel" id="subtitle"]]
+[[!template text="""I think probably if we wanted to upstream it,""" start="00:01:50.600" video="qanda-parallel" id="subtitle"]]
+[[!template text="""we would have to do some proper work on""" start="00:01:54.140" video="qanda-parallel" id="subtitle"]]
+[[!template text="""refactoring query place itself in order to""" start="00:01:57.180" video="qanda-parallel" id="subtitle"]]
+[[!template text="""integrate all of this functionality just""" start="00:01:58.780" video="qanda-parallel" id="subtitle"]]
+[[!template text="""directly without any patching left and right.""" start="00:02:01.880" video="qanda-parallel" id="subtitle"]]
+[[!template text="""But yeah, definitely something I've given""" start="00:02:05.680" video="qanda-parallel" id="subtitle"]]
+[[!template text="""some thought, but so far no progress on it.""" start="00:02:10.080" video="qanda-parallel" id="subtitle"]]
+[[!template text="""I haven't actually started doing anything""" start="00:02:11.640" video="qanda-parallel" id="subtitle"]]
+[[!template text="""about it.""" start="00:02:12.240" video="qanda-parallel" id="subtitle"]]
+[[!template text="""[Speaker 0]: Right, So I'm curious now,""" start="00:02:17.440" video="qanda-parallel" id="subtitle"]]
+[[!template text="""you developed the feature and then you moved""" start="00:02:19.640" video="qanda-parallel" id="subtitle"]]
+[[!template text="""on to the presentation or did you want to do""" start="00:02:21.600" video="qanda-parallel" id="subtitle"]]
+[[!template text="""a presentation for EmacsConf and then you""" start="00:02:23.080" video="qanda-parallel" id="subtitle"]]
+[[!template text="""worked on something like this?""" start="00:02:24.140" video="qanda-parallel" id="subtitle"]]
+[[!template text="""Which was it first, the chicken or the egg?""" start="00:02:26.360" video="qanda-parallel" id="subtitle"]]
+[[!template text="""[Speaker 1]: Yeah, it was the former.""" start="00:02:28.220" video="qanda-parallel" id="subtitle"]]
+[[!template text="""So this is a problem I've been aware of for,""" start="00:02:31.320" video="qanda-parallel" id="subtitle"]]
+[[!template text="""I mean, probably a couple of years.""" start="00:02:33.340" video="qanda-parallel" id="subtitle"]]
+[[!template text="""And, you know, I talked to my friend""" start="00:02:35.280" video="qanda-parallel" id="subtitle"]]
+[[!template text="""Valentino about it and we had like a little""" start="00:02:37.600" video="qanda-parallel" id="subtitle"]]
+[[!template text="""discussion, you know, how would we do this?""" start="00:02:39.240" video="qanda-parallel" id="subtitle"]]
+[[!template text="""And then I remember back when I was""" start="00:02:41.880" video="qanda-parallel" id="subtitle"]]
+[[!template text="""researching about this problem and the""" start="00:02:44.140" video="qanda-parallel" id="subtitle"]]
+[[!template text="""various Emacs Lisp solutions,""" start="00:02:45.100" video="qanda-parallel" id="subtitle"]]
+[[!template text="""all I could find were these solutions that""" start="00:02:47.780" video="qanda-parallel" id="subtitle"]]
+[[!template text="""would, you know, just shy away from""" start="00:02:49.400" video="qanda-parallel" id="subtitle"]]
+[[!template text="""implementing the RegEx case,""" start="00:02:50.640" video="qanda-parallel" id="subtitle"]]
+[[!template text="""which is a really complicated 1.""" start="00:02:52.340" video="qanda-parallel" id="subtitle"]]
+[[!template text="""And, after some discussion,""" start="00:02:54.720" video="qanda-parallel" id="subtitle"]]
+[[!template text="""my friend and I decided,""" start="00:02:56.140" video="qanda-parallel" id="subtitle"]]
+[[!template text="""okay, what the hell? Let's,""" start="00:02:58.080" video="qanda-parallel" id="subtitle"]]
+[[!template text="""let's try and implement this.""" start="00:02:59.280" video="qanda-parallel" id="subtitle"]]
+[[!template text="""How hard can it be? And yeah,""" start="00:03:01.800" video="qanda-parallel" id="subtitle"]]
+[[!template text="""basically in 1 afternoon,""" start="00:03:03.280" video="qanda-parallel" id="subtitle"]]
+[[!template text="""the idea, our little trick and the whole""" start="00:03:06.300" video="qanda-parallel" id="subtitle"]]
+[[!template text="""implementation was born.""" start="00:03:07.440" video="qanda-parallel" id="subtitle"]]
+[[!template text="""And then I think that was maybe around a year""" start="00:03:11.480" video="qanda-parallel" id="subtitle"]]
+[[!template text="""ago, maybe a bit less.""" start="00:03:12.540" video="qanda-parallel" id="subtitle"]]
+[[!template text="""And then through the months,""" start="00:03:14.480" video="qanda-parallel" id="subtitle"]]
+[[!template text="""we just thought, oh yeah,""" start="00:03:15.920" video="qanda-parallel" id="subtitle"]]
+[[!template text="""maybe we could present this,""" start="00:03:17.420" video="qanda-parallel" id="subtitle"]]
+[[!template text="""maybe it would be interesting for people to""" start="00:03:18.960" video="qanda-parallel" id="subtitle"]]
+[[!template text="""see and that's how we came up with the idea""" start="00:03:20.660" video="qanda-parallel" id="subtitle"]]
+[[!template text="""to present at EmacsConf.""" start="00:03:22.440" video="qanda-parallel" id="subtitle"]]
+[[!template text="""[Speaker 0]: Okay, great. I don't see other people asking""" start="00:03:27.900" video="qanda-parallel" id="subtitle"]]
+[[!template text="""questions. So people, it's nice if I ask""" start="00:03:30.240" video="qanda-parallel" id="subtitle"]]
+[[!template text="""questions but you know,""" start="00:03:31.100" video="qanda-parallel" id="subtitle"]]
+[[!template text="""the point is kind of for you to ask the""" start="00:03:33.160" video="qanda-parallel" id="subtitle"]]
+[[!template text="""questions. I see someone who's joined us on""" start="00:03:35.140" video="qanda-parallel" id="subtitle"]]
+[[!template text="""BBB. Peter, would you like to ask a question""" start="00:03:36.780" video="qanda-parallel" id="subtitle"]]
+[[!template text="""maybe? Otherwise I see another person writing""" start="00:03:41.720" video="qanda-parallel" id="subtitle"]]
+[[!template text="""a question on the pad,""" start="00:03:43.040" video="qanda-parallel" id="subtitle"]]
+[[!template text="""so we can either move for this 1.""" start="00:03:44.540" video="qanda-parallel" id="subtitle"]]
+[[!template text="""So I'll leave Peter to figure out if they""" start="00:03:46.640" video="qanda-parallel" id="subtitle"]]
+[[!template text="""want to ask a question.""" start="00:03:47.680" video="qanda-parallel" id="subtitle"]]
+[[!template text="""So I'm moving on to the next question.""" start="00:03:49.160" video="qanda-parallel" id="subtitle"]]
+[[!template text="""[Speaker 2]: I can jump in. That's a really well done talk""" start="00:03:57.900" video="qanda-parallel" id="subtitle"]]
+[[!template text="""and you really clearly laid out the problem""" start="00:04:01.780" video="qanda-parallel" id="subtitle"]]
+[[!template text="""and the solution there.""" start="00:04:03.000" video="qanda-parallel" id="subtitle"]]
+[[!template text="""While I was watching it,""" start="00:04:05.600" video="qanda-parallel" id="subtitle"]]
+[[!template text="""I was thinking maybe the nice way to name it""" start="00:04:10.740" video="qanda-parallel" id="subtitle"]]
+[[!template text="""is just to name it query replace and query""" start="00:04:13.140" video="qanda-parallel" id="subtitle"]]
+[[!template text="""replace regext, you know,""" start="00:04:15.700" video="qanda-parallel" id="subtitle"]]
+[[!template text="""overloading the original functions and then""" start="00:04:18.480" video="qanda-parallel" id="subtitle"]]
+[[!template text="""using a prefix number,""" start="00:04:23.000" video="qanda-parallel" id="subtitle"]]
+[[!template text="""like control number to indicate how many""" start="00:04:26.880" video="qanda-parallel" id="subtitle"]]
+[[!template text="""replacements you're going to do.""" start="00:04:29.280" video="qanda-parallel" id="subtitle"]]
+[[!template text="""But maybe that doesn't work with the""" start="00:04:31.640" video="qanda-parallel" id="subtitle"]]
+[[!template text="""recursive editing stuff,""" start="00:04:36.680" video="qanda-parallel" id="subtitle"]]
+[[!template text="""which I don't use much.""" start="00:04:37.960" video="qanda-parallel" id="subtitle"]]
+[[!template text="""So I don't have a good method.""" start="00:04:40.440" video="qanda-parallel" id="subtitle"]]
+[[!template text="""[Speaker 1]: I think it would definitely work.""" start="00:04:43.260" video="qanda-parallel" id="subtitle"]]
+[[!template text="""Well, the question is,""" start="00:04:46.260" video="qanda-parallel" id="subtitle"]]
+[[!template text="""if we just overwrite the definitions,""" start="00:04:47.880" video="qanda-parallel" id="subtitle"]]
+[[!template text="""then, oh, well, I guess we could do that.""" start="00:04:51.700" video="qanda-parallel" id="subtitle"]]
+[[!template text="""Nothing stops us. I mean,""" start="00:04:53.410" video="qanda-parallel" id="subtitle"]]
+[[!template text="""we're in Emacs. We could definitely do that.""" start="00:04:54.800" video="qanda-parallel" id="subtitle"]]
+[[!template text="""And then if you give, like,""" start="00:04:55.680" video="qanda-parallel" id="subtitle"]]
+[[!template text="""a prefix argument, maybe it just drops you""" start="00:04:57.540" video="qanda-parallel" id="subtitle"]]
+[[!template text="""back to the original query replace.""" start="00:04:59.060" video="qanda-parallel" id="subtitle"]]
+[[!template text="""Yeah, that's an idea. For now,""" start="00:05:01.000" video="qanda-parallel" id="subtitle"]]
+[[!template text="""we decided, OK, let's just keep everything""" start="00:05:02.440" video="qanda-parallel" id="subtitle"]]
+[[!template text="""explicitly separate just to avoid any""" start="00:05:05.000" video="qanda-parallel" id="subtitle"]]
+[[!template text="""confusion.""" start="00:05:05.240" video="qanda-parallel" id="subtitle"]]
+[[!template text="""[Speaker 2]: Yeah, I think that's the right thing to do""" start="00:05:09.220" video="qanda-parallel" id="subtitle"]]
+[[!template text="""for now. What I'm actually thinking is that""" start="00:05:11.820" video="qanda-parallel" id="subtitle"]]
+[[!template text="""when you do query replace,""" start="00:05:13.620" video="qanda-parallel" id="subtitle"]]
+[[!template text="""it just does the regular query replace.""" start="00:05:15.600" video="qanda-parallel" id="subtitle"]]
+[[!template text="""And if you're going to do,""" start="00:05:17.220" video="qanda-parallel" id="subtitle"]]
+[[!template text="""say, 3 parallel replacements,""" start="00:05:20.140" video="qanda-parallel" id="subtitle"]]
+[[!template text="""then you do Control-U,""" start="00:05:21.340" video="qanda-parallel" id="subtitle"]]
+[[!template text="""query replace. Sorry. Control-3,""" start="00:05:25.580" video="qanda-parallel" id="subtitle"]]
+[[!template text="""query replace. And then that way you don't""" start="00:05:28.580" video="qanda-parallel" id="subtitle"]]
+[[!template text="""have The final prompt that you give nothing""" start="00:05:33.400" video="qanda-parallel" id="subtitle"]]
+[[!template text="""to.""" start="00:05:33.760" video="qanda-parallel" id="subtitle"]]
+[[!template text="""[Speaker 1]: Exactly, that's actually not a bad idea.""" start="00:05:36.880" video="qanda-parallel" id="subtitle"]]
+[[!template text="""I think I like that. Yeah,""" start="00:05:39.720" video="qanda-parallel" id="subtitle"]]
+[[!template text="""that's not a bad idea.""" start="00:05:40.800" video="qanda-parallel" id="subtitle"]]
+[[!template text="""[Speaker 0]: It's always a quagmire whether to ask for an""" start="00:05:44.760" video="qanda-parallel" id="subtitle"]]
+[[!template text="""argument or to use the universal argument.""" start="00:05:47.080" video="qanda-parallel" id="subtitle"]]
+[[!template text="""When you're working with Emacs and especially""" start="00:05:51.060" video="qanda-parallel" id="subtitle"]]
+[[!template text="""the UX side of things in the package,""" start="00:05:52.640" video="qanda-parallel" id="subtitle"]]
+[[!template text="""it's so complicated to figure out which 1 you""" start="00:05:54.900" video="qanda-parallel" id="subtitle"]]
+[[!template text="""want to do. In this particular case,""" start="00:05:56.880" video="qanda-parallel" id="subtitle"]]
+[[!template text="""I think it's the better option to use the""" start="00:06:00.340" video="qanda-parallel" id="subtitle"]]
+[[!template text="""universal argument or any kind of argument""" start="00:06:02.800" video="qanda-parallel" id="subtitle"]]
+[[!template text="""with a control number before.""" start="00:06:04.040" video="qanda-parallel" id="subtitle"]]
+[[!template text="""All right, we have about 3 more minutes of""" start="00:06:10.240" video="qanda-parallel" id="subtitle"]]
+[[!template text="""questions. Peter, if you don't mind,""" start="00:06:12.440" video="qanda-parallel" id="subtitle"]]
+[[!template text="""I'll keep reading the questions in the chat.""" start="00:06:14.440" video="qanda-parallel" id="subtitle"]]
+[[!template text="""Did you use pair programming while developing""" start="00:06:19.440" video="qanda-parallel" id="subtitle"]]
+[[!template text="""it, it being a package,""" start="00:06:21.100" video="qanda-parallel" id="subtitle"]]
+[[!template text="""or did you work independently,""" start="00:06:22.440" video="qanda-parallel" id="subtitle"]]
+[[!template text="""alternating and reviewing with Valentino?""" start="00:06:24.840" video="qanda-parallel" id="subtitle"]]
+[[!template text="""[Speaker 1]: It was definitely a pair programming kind of""" start="00:06:28.320" video="qanda-parallel" id="subtitle"]]
+[[!template text="""thing. So if I remember correctly,""" start="00:06:29.440" video="qanda-parallel" id="subtitle"]]
+[[!template text="""I was sitting at the computer and Valentino""" start="00:06:32.760" video="qanda-parallel" id="subtitle"]]
+[[!template text="""was in front of a whiteboard and we were just""" start="00:06:36.020" video="qanda-parallel" id="subtitle"]]
+[[!template text="""dissecting this regex and a bunch of examples""" start="00:06:38.400" video="qanda-parallel" id="subtitle"]]
+[[!template text="""and trying to get these capture groups and""" start="00:06:41.680" video="qanda-parallel" id="subtitle"]]
+[[!template text="""stuff that we have to remap internally to get""" start="00:06:44.240" video="qanda-parallel" id="subtitle"]]
+[[!template text="""these offsets right and avoid off by 1 error""" start="00:06:46.560" video="qanda-parallel" id="subtitle"]]
+[[!template text="""and stuff like that. So yeah,""" start="00:06:48.160" video="qanda-parallel" id="subtitle"]]
+[[!template text="""definitely a team effort.""" start="00:06:49.280" video="qanda-parallel" id="subtitle"]]
+[[!template text="""[Speaker 0]: Okay, great. Moving on to the next question.""" start="00:06:53.660" video="qanda-parallel" id="subtitle"]]
+[[!template text="""What is your background in programming?""" start="00:06:55.240" video="qanda-parallel" id="subtitle"]]
+[[!template text="""Was it difficult to implement following the""" start="00:06:57.440" video="qanda-parallel" id="subtitle"]]
+[[!template text="""same API and architecture as what is already""" start="00:06:59.700" video="qanda-parallel" id="subtitle"]]
+[[!template text="""in Emacs?""" start="00:07:00.200" video="qanda-parallel" id="subtitle"]]
+[[!template text="""[Speaker 1]: So maybe just a quick back story.""" start="00:07:05.400" video="qanda-parallel" id="subtitle"]]
+[[!template text="""Both Valentino and I are actually PhD""" start="00:07:06.960" video="qanda-parallel" id="subtitle"]]
+[[!template text="""students in computer science,""" start="00:07:08.300" video="qanda-parallel" id="subtitle"]]
+[[!template text="""and we literally share an office.""" start="00:07:09.960" video="qanda-parallel" id="subtitle"]]
+[[!template text="""So that's how we even started talking about""" start="00:07:12.960" video="qanda-parallel" id="subtitle"]]
+[[!template text="""this whole thing. And we both use Emacs,""" start="00:07:14.480" video="qanda-parallel" id="subtitle"]]
+[[!template text="""of course. But I don't think this was too""" start="00:07:18.380" video="qanda-parallel" id="subtitle"]]
+[[!template text="""hard to implement because luckily all of the""" start="00:07:20.740" video="qanda-parallel" id="subtitle"]]
+[[!template text="""interactive functionality like this""" start="00:07:22.300" video="qanda-parallel" id="subtitle"]]
+[[!template text="""complicated undo, skipping,""" start="00:07:23.600" video="qanda-parallel" id="subtitle"]]
+[[!template text="""execute until the end and so on,""" start="00:07:25.680" video="qanda-parallel" id="subtitle"]]
+[[!template text="""all of this is really just already provided""" start="00:07:27.980" video="qanda-parallel" id="subtitle"]]
+[[!template text="""by the Emacs queer replace implementation.""" start="00:07:29.860" video="qanda-parallel" id="subtitle"]]
+[[!template text="""So sort of what we do is we just invoke it as""" start="00:07:34.160" video="qanda-parallel" id="subtitle"]]
+[[!template text="""a function and delegate to it.""" start="00:07:36.080" video="qanda-parallel" id="subtitle"]]
+[[!template text="""And we came up with this clever trick to""" start="00:07:37.800" video="qanda-parallel" id="subtitle"]]
+[[!template text="""basically delegate this multi-replacement to""" start="00:07:42.380" video="qanda-parallel" id="subtitle"]]
+[[!template text="""this 1 single function that's already there.""" start="00:07:45.160" video="qanda-parallel" id="subtitle"]]
+[[!template text="""So it wasn't too complicated.""" start="00:07:47.980" video="qanda-parallel" id="subtitle"]]
+[[!template text="""[Speaker 0]: Alright. And we have about 2 minutes of time""" start="00:07:54.780" video="qanda-parallel" id="subtitle"]]
+[[!template text="""for the last question.""" start="00:07:55.560" video="qanda-parallel" id="subtitle"]]
+[[!template text="""What did you learn about Emacs programming or""" start="00:07:58.040" video="qanda-parallel" id="subtitle"]]
+[[!template text="""programming in general while working on this""" start="00:08:00.020" video="qanda-parallel" id="subtitle"]]
+[[!template text="""project? A very wide question for me.""" start="00:08:02.320" video="qanda-parallel" id="subtitle"]]
+[[!template text="""[Speaker 1]: Maybe 1 thing I would like to add to the""" start="00:08:05.840" video="qanda-parallel" id="subtitle"]]
+[[!template text="""previous just answer is I don't want to say""" start="00:08:09.220" video="qanda-parallel" id="subtitle"]]
+[[!template text="""like you know we're PhDs,""" start="00:08:10.160" video="qanda-parallel" id="subtitle"]]
+[[!template text="""a PhD is required for this or anything,""" start="00:08:12.780" video="qanda-parallel" id="subtitle"]]
+[[!template text="""not at all. It's mostly just for a little bit""" start="00:08:15.800" video="qanda-parallel" id="subtitle"]]
+[[!template text="""of context, but I think obviously,""" start="00:08:19.220" video="qanda-parallel" id="subtitle"]]
+[[!template text="""even if you're not a PhD,""" start="00:08:20.640" video="qanda-parallel" id="subtitle"]]
+[[!template text="""I mean, you don't even require like""" start="00:08:22.360" video="qanda-parallel" id="subtitle"]]
+[[!template text="""university, you know, education or anything.""" start="00:08:24.960" video="qanda-parallel" id="subtitle"]]
+[[!template text="""It wasn't overly difficult to implement,""" start="00:08:27.540" video="qanda-parallel" id="subtitle"]]
+[[!template text="""sort of just read some code that's already""" start="00:08:30.680" video="qanda-parallel" id="subtitle"]]
+[[!template text="""there and you know follow what you see and""" start="00:08:33.539" video="qanda-parallel" id="subtitle"]]
+[[!template text="""poke Emacs a little bit and do a little bit""" start="00:08:35.860" video="qanda-parallel" id="subtitle"]]
+[[!template text="""of debugging on the internals and you can""" start="00:08:38.140" video="qanda-parallel" id="subtitle"]]
+[[!template text="""definitely get it. So definitely not a""" start="00:08:40.280" video="qanda-parallel" id="subtitle"]]
+[[!template text="""prerequisite to have a degree or anything to""" start="00:08:42.240" video="qanda-parallel" id="subtitle"]]
+[[!template text="""do any of this stuff. Okay so Coming back to""" start="00:08:45.480" video="qanda-parallel" id="subtitle"]]
+[[!template text="""[Speaker 0]: Yeah, I'm going to amend a little bit the""" start="00:08:48.420" video="qanda-parallel" id="subtitle"]]
+[[!template text="""question because we only have 1 minute.""" start="00:08:49.680" video="qanda-parallel" id="subtitle"]]
+[[!template text="""So just 1 thing in 10 seconds,""" start="00:08:51.600" video="qanda-parallel" id="subtitle"]]
+[[!template text="""[Speaker 2]: what did you""" start="00:08:52.490" video="qanda-parallel" id="subtitle"]]
+[[!template text="""[Speaker 0]: learn about this?""" start="00:08:53.040" video="qanda-parallel" id="subtitle"]]
+[[!template text="""[Speaker 1]: your last question. What did I learn about""" start="00:08:54.240" video="qanda-parallel" id="subtitle"]]
+[[!template text="""Emacs programming? That Emacs is so flexible""" start="00:08:56.420" video="qanda-parallel" id="subtitle"]]
+[[!template text="""that I can go and I can patch literally its""" start="00:08:59.160" video="qanda-parallel" id="subtitle"]]
+[[!template text="""message function. And that is how we achieve""" start="00:09:01.480" video="qanda-parallel" id="subtitle"]]
+[[!template text="""the nice message function in the echo buffer.""" start="00:09:03.680" video="qanda-parallel" id="subtitle"]]
+[[!template text="""So I can literally go and patch something as""" start="00:09:06.720" video="qanda-parallel" id="subtitle"]]
+[[!template text="""crucial as message.""" start="00:09:07.560" video="qanda-parallel" id="subtitle"]]
+[[!template text="""[Speaker 0]: It's great. That's a lovely 1.""" start="00:09:09.920" video="qanda-parallel" id="subtitle"]]
+[[!template text="""And I think, again, we're going back to the""" start="00:09:12.260" video="qanda-parallel" id="subtitle"]]
+[[!template text="""philosophy of Emacs. Everything is""" start="00:09:13.660" video="qanda-parallel" id="subtitle"]]
+[[!template text="""programmable and even changing the message""" start="00:09:15.200" video="qanda-parallel" id="subtitle"]]
+[[!template text="""function is great. All right,""" start="00:09:16.640" video="qanda-parallel" id="subtitle"]]
+[[!template text="""well, thank you so much,""" start="00:09:17.440" video="qanda-parallel" id="subtitle"]]
+[[!template text="""Lovro, and thanks to Valentino as well,""" start="00:09:19.540" video="qanda-parallel" id="subtitle"]]
+[[!template text="""who's not here, but who's contributed to this""" start="00:09:21.820" video="qanda-parallel" id="subtitle"]]
+[[!template text="""talk. Any last word?""" start="00:09:23.900" video="qanda-parallel" id="subtitle"]]
+[[!template text="""[Speaker 1]: Well, just if you're gonna build any""" start="00:09:29.540" video="qanda-parallel" id="subtitle"]]
+[[!template text="""solutions, try to make them as foolproof and""" start="00:09:31.980" video="qanda-parallel" id="subtitle"]]
+[[!template text="""as 100% as possible so we get more of these""" start="00:09:34.360" video="qanda-parallel" id="subtitle"]]
+[[!template text="""goodies that are nice and robust for""" start="00:09:36.280" video="qanda-parallel" id="subtitle"]]
+[[!template text="""everybody to use.""" start="00:09:37.000" video="qanda-parallel" id="subtitle"]]
+[[!template text="""[Speaker 0]: All right, lovely. Well,""" start="00:09:39.400" video="qanda-parallel" id="subtitle"]]
+[[!template text="""thank you so much, Lover,""" start="00:09:40.240" video="qanda-parallel" id="subtitle"]]
+[[!template text="""for your presentation and your answer.""" start="00:09:41.940" video="qanda-parallel" id="subtitle"]]
+[[!template text="""We'll be moving on to the next talk in just""" start="00:09:44.340" video="qanda-parallel" id="subtitle"]]
+[[!template text="""about 5 seconds, and I'll see you after.""" start="00:09:47.260" video="qanda-parallel" id="subtitle"]]
+[[!template text="""Bye, Lovro!""" start="00:09:47.900" video="qanda-parallel" id="subtitle"]]
+[[!template text="""[Speaker 1]: Yep, bye bye!""" start="00:09:49.760" video="qanda-parallel" id="subtitle"]]
+[[!template text="""[Speaker 0]: So I'm just waiting to make sure my VNC is a""" start="00:10:01.440" video="qanda-parallel" id="subtitle"]]
+[[!template text="""little slow. Okay, we switch to the next""" start="00:10:02.840" video="qanda-parallel" id="subtitle"]]
+[[!template text="""talk. All right, Lover,""" start="00:10:03.480" video="qanda-parallel" id="subtitle"]]
+[[!template text="""I'm gonna need to go get ready now.""" start="00:10:04.960" video="qanda-parallel" id="subtitle"]]
+[[!template text="""Yep. Bye-bye, and thanks for your talk.""" start="00:10:09.060" video="qanda-parallel" id="subtitle"]]
+[[!template text="""[Speaker 1]: Bye, thank you, see you.""" start="00:10:11.160" video="qanda-parallel" id="subtitle"]]
+[[!template text="""[Speaker 2]: You""" start="00:10:15.060" video="qanda-parallel" id="subtitle"]]
+
+</div>Questions or comments? Please e-mail [hokomo@disroot.org](mailto:hokomo@disroot.org?subject=Comment%20for%20EmacsConf%202023%20parallel%3A%20Parallel%20text%20replacement)
<!-- End of emacsconf-publish-after-page -->
diff --git a/2023/info/parallel-before.md b/2023/info/parallel-before.md
index dd1bbe86..b8b4f3f2 100644
--- a/2023/info/parallel-before.md
+++ b/2023/info/parallel-before.md
@@ -1,12 +1,36 @@
<!-- Automatically generated by emacsconf-publish-before-page -->
[[!toc ]]
-Format: 10-min talk followed by live web conference Q&A
-Discuss on IRC: [#emacsconf](nil)
-Status: Waiting for video from speaker
+Format: 15-min talk ; Q&A: BigBlueButton conference room
+Status: Q&A to be extracted from the room recordings
+# Talk
+
+<div class="vid mainVideo"><video controls preload="none" id="mainVideo-parallel"><source src="https://media.emacsconf.org/2023/emacsconf-2023-parallel--parallel-text-replacement--lovro-valentino-picotti--main.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2023/captions/emacsconf-2023-parallel--parallel-text-replacement--lovro-valentino-picotti--main.vtt" default />"""<track kind="chapters" label="Chapters" src="/2023/captions/emacsconf-2023-parallel--parallel-text-replacement--lovro-valentino-picotti--main--chapters.vtt" /><p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video>[[!template id="chapters" vidid="mainVideo-parallel" data="""
+00:00.000 Introduction
+00:23.440 Problem: Goal
+01:12.360 Problem: Naive Multi-pass
+01:34.200 Problem: Clever Multi-pass
+01:57.720 Problem: Terminology
+03:04.440 Problem: Scaling Multi-pass
+03:55.920 Solution: Single-pass
+04:18.240 Solution: Existing
+06:29.080 Solution: query-replace-parallel
+06:55.240 Demonstration: Swap
+07:53.970 Demonstration: LaTeX
+08:48.700 Demonstration: Regex
+09:36.320 Demonstration: Order
+10:54.440 Demonstration: Fun
+12:29.120 Implementation
+14:18.740 End
+
+"""]]<div></div>Duration: 14:46 minutes<div class="files resources"><ul><li><a href="https://pad.emacsconf.org/2023-parallel">Open Etherpad</a></li><li><a href="https://bbb.emacsverse.org/playback/presentation/2.0/playback.html?meetingId=986da908da3b47da66e25ee3d0c4253749004ad5-1701613668042">Play recording from BigBlueButton</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-parallel--parallel-text-replacement--lovro-valentino-picotti--intro.vtt">Download --intro.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-parallel--parallel-text-replacement--lovro-valentino-picotti--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-parallel--parallel-text-replacement--lovro-valentino-picotti--main--chapters.vtt">Download --main--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-parallel--parallel-text-replacement--lovro-valentino-picotti--main-vp8.webm">Download --main-vp8.webm (95MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-parallel--parallel-text-replacement--lovro-valentino-picotti--main.opus">Download --main.opus</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-parallel--parallel-text-replacement--lovro-valentino-picotti--main.vtt">Download --main.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-parallel--parallel-text-replacement--lovro-valentino-picotti--main.webm">Download --main.webm (29MB)</a></li><li><a href="https://toobnix.org/w/t3G5zo35epS6HvVot9MdZv">View on Toobnix</a></li><li><a href="https://www.youtube.com/watch?v=fUbBIWOJFh4">View on Youtube</a></li></ul></div></div>
+
+# Q&A
+
+<div class="vid qanda"><video controls preload="none" id="qanda-parallel"><source src="https://media.emacsconf.org/2023/emacsconf-2023-parallel--parallel-text-replacement--lovro-valentino-picotti--answers.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2023/captions/emacsconf-2023-parallel--parallel-text-replacement--lovro-valentino-picotti--answers.vtt" default />"""<p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video><div>Listen to just the audio:<br /><audio controls preload="none" id="qanda-parallel-audio" src="https://media.emacsconf.org/2023/emacsconf-2023-parallel--parallel-text-replacement--lovro-valentino-picotti--answers.opus"></audio></div><div></div>Duration: 10:16 minutes<div class="files resources"><ul><li><a href="https://pad.emacsconf.org/2023-parallel">Open Etherpad</a></li><li><a href="https://bbb.emacsverse.org/playback/presentation/2.0/playback.html?meetingId=986da908da3b47da66e25ee3d0c4253749004ad5-1701613668042">Play recording from BigBlueButton</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-parallel--parallel-text-replacement--lovro-valentino-picotti--answers.json">Download --answers.json</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-parallel--parallel-text-replacement--lovro-valentino-picotti--answers.opus">Download --answers.opus (6.8MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-parallel--parallel-text-replacement--lovro-valentino-picotti--answers.vtt">Download --answers.vtt</a> (unedited)</li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-parallel--parallel-text-replacement--lovro-valentino-picotti--answers.webm">Download --answers.webm (10MB)</a></li></ul></div></div>
# Description
<!-- End of emacsconf-publish-before-page --> \ No newline at end of file
diff --git a/2023/info/parallel-nav.md b/2023/info/parallel-nav.md
index 050fecf7..c1f1b543 100644
--- a/2023/info/parallel-nav.md
+++ b/2023/info/parallel-nav.md
@@ -2,6 +2,6 @@
<div class="talk-nav">
Back to the [[talks]]
Previous by track: <a href="/2023/talks/koutline">Using Koutline for stream of thought journaling</a>
-Next by track: <a href="/2023/talks/poltys">The browser in a buffer</a>
-Track: <span class="sched-track General">General</span>
+Next by track: <a href="/2023/talks/eat">Eat and Eat powered Eshell, fast featureful terminal inside Emacs</a>
+Track: <span class="sched-track General">General</span> - <strong><a href="https://emacsconf.org/2023/watch/gen">Watch</a></strong>
</div>
diff --git a/2023/info/poltys-after.md b/2023/info/poltys-after.md
index 4a93ced4..7adf9ca7 100644
--- a/2023/info/poltys-after.md
+++ b/2023/info/poltys-after.md
@@ -1,7 +1,7 @@
<!-- Automatically generated by emacsconf-publish-after-page -->
-Questions or comments? Please e-mail [perma-curious@posteo.de](mailto:perma-curious@posteo.de?subject=Comment%20for%20EmacsConf%202022%20poltys%3A%20The%20browser%20in%20a%20buffer)
+Questions or comments? Please e-mail [perma-curious@posteo.de](mailto:perma-curious@posteo.de?subject=Comment%20for%20EmacsConf%202023%20poltys%3A%20The%20browser%20in%20a%20buffer)
<!-- End of emacsconf-publish-after-page -->
diff --git a/2023/info/poltys-before.md b/2023/info/poltys-before.md
index 376dee32..7dbe2c8d 100644
--- a/2023/info/poltys-before.md
+++ b/2023/info/poltys-before.md
@@ -1,12 +1,12 @@
<!-- Automatically generated by emacsconf-publish-before-page -->
[[!toc ]]
-Format: 20-min talk followed by live web conference Q&A
-Discuss on IRC: [#emacsconf](https://chat.emacsconf.org/?join=emacsconf)
-Status: Waiting for video from speaker
+Format: 35-min talk ; Q&A: BigBlueButton conference room
+Status: Q&A to be extracted from the room recordings
+<div class="vid mainVideo"><video controls preload="none" id="mainVideo-poltys"><source src="https://media.emacsconf.org/2023/emacsconf-2023-poltys--the-browser-in-a-buffer--michael-bauer--main.webm" /><p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video><div></div>Duration: 34:30 minutes<div class="files resources"><ul><li><a href="https://pad.emacsconf.org/2023-poltys">Open Etherpad</a></li><li><a href="https://bbb.emacsverse.org/playback/presentation/2.0/playback.html?meetingId=823df2a9c2b725271129cfe0301fcc7e631c2e63-1701617796009">Play recording from BigBlueButton</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-poltys--the-browser-in-a-buffer--michael-bauer--intro.vtt">Download --intro.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-poltys--the-browser-in-a-buffer--michael-bauer--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-poltys--the-browser-in-a-buffer--michael-bauer--main.opus">Download --main.opus (20MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-poltys--the-browser-in-a-buffer--michael-bauer--main.webm">Download --main.webm (185MB)</a></li><li><a href="https://toobnix.org/w/1quXfJqC9bh9VxkA9UC21x">View on Toobnix</a></li><li><a href="https://www.youtube.com/watch?v=mp6gaVjmKIU">View on Youtube</a></li></ul></div></div>
# Description
<!-- End of emacsconf-publish-before-page --> \ No newline at end of file
diff --git a/2023/info/poltys-nav.md b/2023/info/poltys-nav.md
index 0f6ccde3..54de7074 100644
--- a/2023/info/poltys-nav.md
+++ b/2023/info/poltys-nav.md
@@ -1,7 +1,7 @@
<div class="talk-nav">
Back to the [[talks]]
-Previous by track: <a href="/2023/talks/parallel">Parallel Text Replacement: Does P = NP?</a>
+Previous by track: <a href="/2023/talks/eat">Eat and Eat powered Eshell, fast featureful terminal inside Emacs</a>
Next by track: <a href="/2023/talks/cubing">Speedcubing in Emacs</a>
-Track: <span class="sched-track General">General</span>
+Track: <span class="sched-track General">General</span> - <strong><a href="https://emacsconf.org/2023/watch/gen">Watch</a></strong>
</div>
diff --git a/2023/info/ref-after.md b/2023/info/ref-after.md
index 9a823b5f..2a145fdb 100644
--- a/2023/info/ref-after.md
+++ b/2023/info/ref-after.md
@@ -1,7 +1,285 @@
<!-- Automatically generated by emacsconf-publish-after-page -->
-Questions or comments? Please e-mail [christopher@librehacker.com](mailto:christopher@librehacker.com?subject=Comment%20for%20EmacsConf%202022%20ref%3A%20Org-Mode%20workflow%3A%20informal%20reference%20tracking)
+<div class="transcript transcript-mainVideo"><a name="ref-mainVideo-transcript"></a><h1>Transcript</h1>
+
+
+<div class="transcript-heading">[[!template new="1" text="""Introduction""" start="00:00:00.000" video="mainVideo-ref" id="subtitle"]]</div>[[!template text="""Hello, this is Christopher Howard,""" start="00:00:00.000" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""and welcome to my talk,""" start="00:00:04.940" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""&quot;Informal Reference Tracking.&quot;""" start="00:00:06.520" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""This is a workflow talk,""" start="00:00:08.800" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""so I need to explain a little bit about""" start="00:00:10.574" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""what my needs were.""" start="00:00:12.240" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""I am not a professional scholar or academic,""" start="00:00:14.840" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""but there are a number of subjects""" start="00:00:18.760" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""that I'm interested in,""" start="00:00:20.200" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""and I occasionally like to write""" start="00:00:21.607" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""gemlog posts about them.""" start="00:00:23.240" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""So I needed some way to keep track of references.""" start="00:00:25.600" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""References to webpage articles, references to books,""" start="00:00:28.680" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""pages in books, and notes about them.""" start="00:00:32.960" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""Something that was searchable,""" start="00:00:37.280" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""but also something that was quick and easy to use,""" start="00:00:39.480" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""and something that I could set up quickly.""" start="00:00:42.440" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""And the approach I took, it only took me""" start="00:00:45.200" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""about an hour or two to figure out""" start="00:00:47.360" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""how to put it together.""" start="00:00:49.520" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""I do want to emphasize""" start="00:00:52.160" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""that there are better ways to do this.""" start="00:00:53.840" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""I'm not recommending you use my code""" start="00:00:56.520" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""or follow my exact approach.""" start="00:00:58.960" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""In particular, what I'm doing was meant to be done""" start="00:01:02.120" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""with Org's built-in capture""" start="00:01:05.940" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""and templates functionality,""" start="00:01:09.240" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""so that's something that's more flexible,""" start="00:01:11.800" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""programmable, and there's also a lot of add-ins""" start="00:01:14.907" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""that can be tied into that.""" start="00:01:21.440" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""For example, tools that allow you to search for,""" start="00:01:23.960" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""you know, feed in a URL, and it automatically""" start="00:01:31.320" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""pulls all the reference data for you.""" start="00:01:34.480" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""And there's tools out there""" start="00:01:38.240" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""that are really meant for scientific writing,""" start="00:01:39.760" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""so if you do this professionally,""" start="00:01:43.120" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""you may need to keep track of dozens of details""" start="00:01:46.760" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""for each reference""" start="00:01:49.960" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""and then have some fancy system to generate that""" start="00:01:51.080" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""into your, or output that into your paper.""" start="00:01:55.320" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""So there are better systems,""" start="00:02:00.800" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""but this is what worked for me and what was easy.""" start="00:02:02.440" video="mainVideo-ref" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Tip about completion frameworks""" start="00:02:06.040" video="mainVideo-ref" id="subtitle"]]</div>[[!template text="""I do want to emphasize that if you haven't,""" start="00:02:06.040" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""you really want to learn how to use helm-mode""" start="00:02:11.320" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""H-E-L-M, or one of the similar systems in Emacs""" start="00:02:14.640" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""that does fuzzy search on Emacs commands.""" start="00:02:20.440" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""For example, in Helm here,""" start="00:02:26.440" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""I input one keychord, and then I just have to remember""" start="00:02:29.340" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""a few characters of some command,""" start="00:02:39.007" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""and they don't even have to be right next to each other,""" start="00:02:40.720" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""like H-O-C will bring up `helm-occur`.""" start="00:02:43.480" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""That's based on its algorithms""" start="00:02:47.640" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""of what I most likely meant""" start="00:02:51.360" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""and the ones that I've used in the past.""" start="00:02:53.000" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""So it usually brings up the command that I want,""" start="00:02:55.160" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""or the one that I want""" start="00:02:57.920" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""is one or two spots away in the entry.""" start="00:02:59.580" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""That just saves me a lot of time""" start="00:03:03.080" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""[and] a lot of memorization.""" start="00:03:05.074" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""So if you haven't learned Helm""" start="00:03:06.960" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""or a similar system for Emacs, you really want to.""" start="00:03:09.120" video="mainVideo-ref" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""References file overview""" start="00:03:14.920" video="mainVideo-ref" id="subtitle"]]</div>[[!template text="""So what is my approach?""" start="00:03:14.920" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""Well, basically, what it comes down to is really""" start="00:03:18.240" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""fundamentally nothing more than just a list""" start="00:03:24.880" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""of Org entries in a file.""" start="00:03:27.307" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""And there's one entry per reference.""" start="00:03:30.640" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""Fundamentally, that's all it is.""" start="00:03:35.580" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""But I'll go over the parts.""" start="00:03:37.207" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""You can see there's the title for the entry,""" start="00:03:39.207" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""and that's not necessarily""" start="00:03:43.080" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""the title of the book or the article,""" start="00:03:44.800" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""but that's my perspective on it,""" start="00:03:47.400" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""that's what I want to remember about it,""" start="00:03:50.840" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""and what I'll be looking for later""" start="00:03:52.720" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""when I do a search on my references.""" start="00:03:54.560" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""There's also in here the use of Org's tags""" start="00:03:56.560" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""here to the right of the title,""" start="00:04:06.660" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""very handy for searching for entries later.""" start="00:04:08.274" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""I use some Org properties attached to each entry.""" start="00:04:12.040" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""I automatically add in here an ID""" start="00:04:18.160" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""that can be useful if you want to""" start="00:04:21.740" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""link entries together later.""" start="00:04:24.074" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""I automatically add in here the date""" start="00:04:27.800" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""that the entry was created,""" start="00:04:30.400" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""which can be useful to me if things""" start="00:04:31.840" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""got sorted in a different order at some point,""" start="00:04:35.700" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""I could still look through""" start="00:04:38.360" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""the most recent entries that I had made""" start="00:04:39.940" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""if I wanted to do that for some reason.""" start="00:04:42.507" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""And sometimes I add in this publication year field""" start="00:04:45.040" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""with the idea that one day I might want to do""" start="00:04:48.640" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""a search for entries based on the publication year""" start="00:04:52.720" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""of the book or the article,""" start="00:04:55.840" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""say, only to use recent references""" start="00:04:57.360" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""or something like that.""" start="00:05:00.774" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""And then down here below the properties""" start="00:05:03.080" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""is where I paste in the URL to the webpage, or""" start="00:05:05.360" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""type in the title and author of the book""" start="00:05:10.080" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""on the pages, maybe the pages that were relevant,""" start="00:05:13.007" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""the pages of the periodical, or something like that.""" start="00:05:16.960" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""And I could put anything that I want down here,""" start="00:05:21.640" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""some other notes about what's important""" start="00:05:23.920" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""about this article to me.""" start="00:05:25.840" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""So fundamentally, that's all it is.""" start="00:05:29.940" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""Of course, I've added in a bit of convenience code""" start="00:05:32.200" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""to make this go a lot faster""" start="00:05:35.240" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""rather than typing all this out.""" start="00:05:37.080" video="mainVideo-ref" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""The Emacs Lisp code""" start="00:05:39.320" video="mainVideo-ref" id="subtitle"]]</div>[[!template text="""For that, I'll switch back to my init.el file.""" start="00:05:39.320" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""There's really just five functions.""" start="00:05:45.880" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""The first two here are ones""" start="00:05:49.480" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""that I've adapted off the Internet.""" start="00:05:52.840" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""Honestly, I can't remember""" start="00:05:54.560" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""exactly where that I got them from,""" start="00:05:56.160" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""but basically, they're just some functions""" start="00:05:58.240" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""for making a block of text writable or readable.""" start="00:06:00.240" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""Writable or not writable, I should say.""" start="00:06:04.240" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""The idea there is that""" start="00:06:09.300" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""when I'm creating a new entry,""" start="00:06:12.200" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""I don't want to accidentally delete""" start="00:06:13.480" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""or write over some earlier entries that I've made.""" start="00:06:16.307" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""So I use a little bit of Emacs functionality for that.""" start="00:06:18.960" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""And then here are the three reference functions""" start="00:06:24.880" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""that I've actually written.""" start="00:06:29.440" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""Really trivial, basic stuff here.""" start="00:06:32.440" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""The core of it is the `new-reference` function.""" start="00:06:35.040" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""Basically, what that does is""" start="00:06:41.800" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""it opens up the references file,""" start="00:06:44.840" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""jumps to the end of the reference file,""" start="00:06:47.560" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""starts a new entry, inserts the asterisk.""" start="00:06:52.040" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""It jumps back to the previous text,""" start="00:06:57.440" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""and whatever previous text there is,""" start="00:07:01.520" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""it makes that read-only.""" start="00:07:03.474" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""Again, so that I don't accidentally delete that,""" start="00:07:04.880" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""or cut, or type over it, or something""" start="00:07:08.120" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""when I'm making a new reference.""" start="00:07:10.800" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""Then it goes back to the new reference,""" start="00:07:14.580" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""automatically adds in a unique ID for that,""" start="00:07:17.680" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""and then automatically stamps it with""" start="00:07:21.340" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""the date the entry was created — today's date.""" start="00:07:25.360" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""Now, I've got two other functions here.""" start="00:07:29.000" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""One is `view-references`,""" start="00:07:32.760" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""which does nothing but open up the reference file""" start="00:07:34.540" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""and switch to that buffer""" start="00:07:37.807" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""if you're not already on it.""" start="00:07:39.400" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""And then there's one other here, `edit-references`,""" start="00:07:42.540" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""which does the exact same thing except for""" start="00:07:45.880" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""it also goes over all the text in the buffer""" start="00:07:50.160" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""and makes it writable.""" start="00:07:53.560" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""So if I really do want to edit those other references,""" start="00:07:55.040" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""I've got a function to quickly make that possible.""" start="00:07:58.120" video="mainVideo-ref" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Example reference to Elfeed article""" start="00:08:02.720" video="mainVideo-ref" id="subtitle"]]</div>[[!template text="""Let me give an example of this.""" start="00:08:02.720" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""I type in here, new reference.""" start="00:08:07.500" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""Now I've jumped to the end of my references file.""" start="00:08:13.980" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""See, it's ready to take the title.""" start="00:08:16.440" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""Well, I guess I need to have something,""" start="00:08:19.080" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""some content, to put in here.""" start="00:08:21.720" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""Let's say I was looking through Elfeed,""" start="00:08:23.660" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""and let's say I found this interesting article""" start="00:08:28.880" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""about Mars earthquakes.""" start="00:08:31.600" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""Let's say I open it up [and]""" start="00:08:38.220" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""I read through the article.""" start="00:08:40.007" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""First, I'd figure out what it is""" start="00:08:41.160" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""that I find interesting about this, what it is that""" start="00:08:43.840" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""I'm going to want to remember and look up later.""" start="00:08:47.260" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""So I come up with a quick title based on that.""" start="00:08:51.580" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""Let's go back to the references with `view-reference`.""" start="00:08:57.480" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""And, let's just call it""" start="00:09:01.900" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""&quot;Study of Mars Earthquake.&quot;""" start="00:09:05.674" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""Now I'm going to also want to put in some tags.""" start="00:09:13.880" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""On my system, that's done with""" start="00:09:18.200" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""Control C, Control Q (`C-c C-q`).""" start="00:09:21.107" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""And I can put in some tags.""" start="00:09:23.640" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""I like to go ahead and insert the colons.""" start="00:09:25.520" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""You can leave those out,""" start="00:09:29.160" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""but they're going to get added anyway,""" start="00:09:30.800" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""so I'm in the habit of using them.""" start="00:09:32.560" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""Let's say we'll call this 'Astronomy' as one tag,""" start="00:09:36.780" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""and the next tag could be 'Planets'.""" start="00:09:41.120" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""If I wanted to use a tag""" start="00:09:47.060" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""that was more than one word in the tag,""" start="00:09:48.400" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""I'd need to use underscores or something like that.""" start="00:09:50.400" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""If I wanted a tag that was 'Mars Earthquakes',""" start="00:09:53.540" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""I could do it like that, but that's kind of silly.""" start="00:10:00.500" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""Now I try not to be too clever with the tags.""" start="00:10:05.060" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""I don't spend a lot of time thinking about them.""" start="00:10:08.660" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""I just come up with some general buckets""" start="00:10:10.600" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""to throw things in.""" start="00:10:13.107" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""You can see the tags were added there,""" start="00:10:15.020" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""to the right of the title.""" start="00:10:16.880" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""Now you can see down here under PROPERTIES,""" start="00:10:19.380" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""the ID has already been added,""" start="00:10:23.400" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""the Date_Created has been added.""" start="00:10:25.320" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""Sometimes, I'll like to put in the publication year,""" start="00:10:27.040" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""and for that, I use the `org-set-property` command.""" start="00:10:30.200" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""Publication_Year, this year in this case.""" start="00:10:38.140" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""And then I just need to paste in the URL.""" start="00:10:43.440" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""I do that manually.""" start="00:10:46.680" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""I use Org's bracket format for that.""" start="00:10:48.080" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""So I start that, go back to the article,""" start="00:10:53.480" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""copy the URL, paste that in.""" start="00:10:57.640" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""If I want, I can add it in the title""" start="00:11:02.100" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""with the second pair of brackets here.""" start="00:11:04.480" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""Don't have to, but often like to.""" start="00:11:07.460" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""Close that off, and there it is.""" start="00:11:14.200" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""That was really it.""" start="00:11:18.560" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""I add a return on the end here,""" start="00:11:20.880" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""just so the next entry comes out with the right spacing.""" start="00:11:22.120" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""But really, that's it,""" start="00:11:26.620" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""and typically, when I'm not explaining it,""" start="00:11:28.307" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""that only takes 20 seconds or so, or 30 seconds.""" start="00:11:31.000" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""Pretty quick. Pretty easy.""" start="00:11:37.500" video="mainVideo-ref" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Searching the references""" start="00:11:41.540" video="mainVideo-ref" id="subtitle"]]</div>[[!template text="""What about searching later?""" start="00:11:41.540" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""Well, often the easiest thing is just do a simple,""" start="00:11:45.540" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""boring incremental search.""" start="00:11:50.474" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""I usually know roughly""" start="00:11:54.640" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""what it is that I'm looking for already.""" start="00:11:55.880" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""If I was looking for that wildflower article,""" start="00:11:58.500" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""I could just do an incremental search for wildflowers""" start="00:12:02.380" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""and jump through that. It's pretty simple.""" start="00:12:06.000" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""Not very impressive, but honestly, most of the time""" start="00:12:07.920" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""that gets me there pretty quick.""" start="00:12:13.200" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""Sometimes I find it useful to do an Occur search,""" start="00:12:16.440" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""more specifically a Helm Occur search.""" start="00:12:20.360" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""If I use the `helm-occur` command,""" start="00:12:23.240" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""then I like to use this to search by tag.""" start="00:12:31.260" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""That's where it really becomes handy.""" start="00:12:34.680" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""Let's say I want to narrow it down""" start="00:12:36.760" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""to all my astronomy references""" start="00:12:39.207" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""and then narrow it down a little bit more to planets.""" start="00:12:42.640" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""I can put spaces in between and it still works.""" start="00:12:50.040" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""You can see here in one window,""" start="00:12:54.120" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""it gives me the bottom window there.""" start="00:12:57.200" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""It's giving…, just because of the way""" start="00:13:00.240" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""the tags are formatted with the title, it gives me""" start="00:13:03.480" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""a list of all the titles that have those tags.""" start="00:13:06.440" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""And I usually find what I want pretty quick""" start="00:13:09.520" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""by just tapping through here.""" start="00:13:11.520" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""Once I find the one that I think I want,""" start="00:13:13.400" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""I press enter, and now I'm focused on just that entry.""" start="00:13:16.500" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""There is some advanced functionality, I believe,""" start="00:13:24.140" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""that I used in the past where you could search""" start="00:13:26.960" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""based on the property fields.""" start="00:13:29.960" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""So do something like search for publication —""" start="00:13:33.120" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""the most recent publications in the last 10 years.""" start="00:13:37.880" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""There's some kind of advanced syntax for that,""" start="00:13:42.440" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""which I used once or twice.""" start="00:13:46.200" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""Honestly, I use that so infrequently""" start="00:13:48.220" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""that I have to go back to the Emacs manual""" start="00:13:51.400" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""and figure it out each time, and figure out again""" start="00:13:54.840" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""how I did that the last time.""" start="00:13:57.740" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""But since I do it only once""" start="00:13:59.880" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""every three or four months, it's not a problem.""" start="00:14:02.000" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""So I'm not going to go over that today.""" start="00:14:06.680" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""That's pretty much it in a nutshell.""" start="00:14:11.520" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""Again, the code that I wrote, this specific approach""" start="00:14:16.480" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""is not really what I'm recommending.""" start="00:14:19.974" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""But here it is if you really do want to use it.""" start="00:14:24.280" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""Maybe I can make a link to the URL""" start="00:14:31.160" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""and share that in the chat room or something.""" start="00:14:36.240" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""But I consider this to be trivial code.""" start="00:14:40.060" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""So just use that if you want to use it.""" start="00:14:46.760" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""I should be signing off here now.""" start="00:14:49.800" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""I should be in the chat room, in the IRC chat room,""" start="00:14:53.440" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""or you can reach out to me by email if you'd like.""" start="00:14:58.260" video="mainVideo-ref" id="subtitle"]]
+[[!template text="""Thank you very much.""" start="00:15:01.920" video="mainVideo-ref" id="subtitle"]]
+
+</div>
+
+Captioner: bhavin192
+
+Questions or comments? Please e-mail [christopher@librehacker.com](mailto:christopher@librehacker.com?subject=Comment%20for%20EmacsConf%202023%20ref%3A%20Org-Mode%20workflow%3A%20informal%20reference%20tracking)
<!-- End of emacsconf-publish-after-page -->
diff --git a/2023/info/ref-before.md b/2023/info/ref-before.md
index f8132323..474b823a 100644
--- a/2023/info/ref-before.md
+++ b/2023/info/ref-before.md
@@ -1,12 +1,20 @@
<!-- Automatically generated by emacsconf-publish-before-page -->
[[!toc ]]
-Format: 20-min talk followed by IRC and email Q&A
-Discuss on IRC: [#emacsconf](https://chat.emacsconf.org/?join=emacsconf)
-Status: Waiting for video from speaker
+Format: 16-min talk ; Q&A: IRC
+Status: All done
+<div class="vid mainVideo"><video controls preload="none" id="mainVideo-ref"><source src="https://media.emacsconf.org/2023/emacsconf-2023-ref--orgmode-workflow-informal-reference-tracking--christopher-howard--main.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2023/captions/emacsconf-2023-ref--orgmode-workflow-informal-reference-tracking--christopher-howard--main.vtt" default />"""<track kind="chapters" label="Chapters" src="/2023/captions/emacsconf-2023-ref--orgmode-workflow-informal-reference-tracking--christopher-howard--main--chapters.vtt" /><p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video>[[!template id="chapters" vidid="mainVideo-ref" data="""
+00:00.000 Introduction
+02:06.040 Tip about completion frameworks
+03:14.920 References file overview
+05:39.320 The Emacs Lisp code
+08:02.720 Example reference to Elfeed article
+11:41.540 Searching the references
+
+"""]]<div></div>Duration: 15:04 minutes<div class="files resources"><ul><li><a href="https://pad.emacsconf.org/2023-ref">Open Etherpad</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-ref--orgmode-workflow-informal-reference-tracking--christopher-howard--intro.vtt">Download --intro.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-ref--orgmode-workflow-informal-reference-tracking--christopher-howard--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-ref--orgmode-workflow-informal-reference-tracking--christopher-howard--main--chapters.vtt">Download --main--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-ref--orgmode-workflow-informal-reference-tracking--christopher-howard--main.ogg">Download --main.ogg (7.9MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-ref--orgmode-workflow-informal-reference-tracking--christopher-howard--main.opus">Download --main.opus (7.8MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-ref--orgmode-workflow-informal-reference-tracking--christopher-howard--main.vtt">Download --main.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-ref--orgmode-workflow-informal-reference-tracking--christopher-howard--main.webm">Download --main.webm (38MB)</a></li><li><a href="https://toobnix.org/w/cYpEatASFWXLzDfKH4Fhec">View on Toobnix</a></li><li><a href="https://www.youtube.com/watch?v=qx1yeJ1Exrw">View on Youtube</a></li></ul></div></div>
# Description
<!-- End of emacsconf-publish-before-page --> \ No newline at end of file
diff --git a/2023/info/ref-nav.md b/2023/info/ref-nav.md
index 2fb3653a..7fd597c3 100644
--- a/2023/info/ref-nav.md
+++ b/2023/info/ref-nav.md
@@ -1,7 +1,7 @@
<div class="talk-nav">
Back to the [[talks]]
-Previous by track: <a href="/2023/talks/unentangling">(Un)entangling projects and repos</a>
-Next by track: <a href="/2023/talks/devel">Emacs development updates</a>
-Track: <span class="sched-track General">General</span>
+Previous by track: <a href="/2023/talks/solo">How I play TTRPGs in Emacs</a>
+Next by track: <a href="/2023/talks/unentangling">(Un)entangling projects and repos</a>
+Track: <span class="sched-track General">General</span> - <strong><a href="https://emacsconf.org/2023/watch/gen">Watch</a></strong>
</div>
diff --git a/2023/info/repl-after.md b/2023/info/repl-after.md
index 57d269f8..5acd31f5 100644
--- a/2023/info/repl-after.md
+++ b/2023/info/repl-after.md
@@ -1,7 +1,1121 @@
<!-- Automatically generated by emacsconf-publish-after-page -->
-Questions or comments? Please e-mail [eduardoochs@gmail.com](mailto:eduardoochs@gmail.com?subject=Comment%20for%20EmacsConf%202022%20repl%3A%20REPLs%20in%20strange%20places%3A%20Lua%2C%20LaTeX%2C%20LPeg%2C%20LPegRex%2C%20TikZ)
+<div class="transcript transcript-mainVideo"><a name="repl-mainVideo-transcript"></a><h1>Transcript</h1>
+
+
+<div class="transcript-heading">[[!template new="1" text="""Intro""" start="00:00:00.000" video="mainVideo-repl" id="subtitle"]]</div>[[!template text="""Hi! My name is Eduardo Ochs""" start="00:00:00.000" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""and the title of this talk is: REPLs""" start="00:00:03.080" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""in strange places - Lua, LateX, LPeg, LPegRex,""" start="00:00:05.520" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""and TikZ. I'm the author of an Emacs""" start="00:00:09.400" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""package called eev, and this is a talk""" start="00:00:12.120" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""at the EmacsConf 2023, that is happening in""" start="00:00:14.880" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""December 2023, at the internets.""" start="00:00:18.480" video="mainVideo-repl" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Diagrams""" start="00:00:22.520" video="mainVideo-repl" id="subtitle"]]</div>[[!template text="""This is one of the""" start="00:00:22.520" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""examples of diagrams that we are""" start="00:00:23.080" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""going to see - let me show how I generate""" start="00:00:24.920" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""it... one second,""" start="00:00:27.640" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""I have to use a smaller font here...""" start="00:00:30.600" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""this is a file called ParseTree2.lua...""" start="00:00:35.800" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""let me go back to this block of tests again...""" start="00:00:39.160" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""and now if I run""" start="00:00:42.920" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""this...""" start="00:00:43.880" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""we get these outputs here at the""" start="00:00:47.760" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""right, and then in this line here it""" start="00:00:50.160" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""generates a PDF, and if I type f8 here it""" start="00:00:53.960" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""shows the PDF in the lower right window.""" start="00:00:58.120" video="mainVideo-repl" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""eev""" start="00:01:03.920" video="mainVideo-repl" id="subtitle"]]</div>[[!template text="""Let me start by explaining""" start="00:01:03.920" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""briefly what is eev.""" start="00:01:06.080" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""First: it is something that""" start="00:01:09.840" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""appeared by accident in the mid-90s - I""" start="00:01:12.240" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""explained this story in my""" start="00:01:14.760" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""presentation at the EmacsConf 2019...""" start="00:01:16.800" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""it's a package... it's an Emacs""" start="00:01:20.160" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""package that is part of ELPA... it has at""" start="00:01:23.160" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""least 10 users - those are the ones""" start="00:01:26.520" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""that I know by name...""" start="00:01:29.680" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""eev means `emacs-execute-verbosely'...""" start="00:01:32.560" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""eev is something that treats eval-last-sexp""" start="00:01:38.440" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""as the central feature of Emacs...""" start="00:01:40.960" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""eev blurs the distinction between""" start="00:01:44.000" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""programmers and users, and it replaces""" start="00:01:45.600" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""the slogan &quot;users should not be forced to""" start="00:01:48.920" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""see Lisp&quot;, that is something that Richard""" start="00:01:51.680" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""Stallman told me once, by &quot;users should see""" start="00:01:53.680" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""Lisp instead of buttons&quot; and &quot;new users""" start="00:01:57.560" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""should see Lisp in the first 5 minutes&quot;...""" start="00:02:00.480" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""I'm going to show""" start="00:02:04.000" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""some examples of that soon.""" start="00:02:05.280" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""Eev uses code in comments a lot,""" start="00:02:08.960" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""and also tests in comments...""" start="00:02:11.960" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""I changed my way of presenting it""" start="00:02:15.120" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""and it became very REPL-centric""" start="00:02:17.680" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""in the last few years, in the""" start="00:02:19.680" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""sense that I start by explaining its""" start="00:02:22.320" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""main features by its support for REPLs...""" start="00:02:24.400" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""eev supposes""" start="00:02:28.680" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""that we want to keep""" start="00:02:31.080" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""executable notes of everything - I'm also""" start="00:02:32.640" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""going to show examples of this in a""" start="00:02:35.200" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""second... eev has lots of &quot;videos for""" start="00:02:37.160" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""people who hate videos&quot;, and it tries to""" start="00:02:40.480" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""do everything with very little magic and""" start="00:02:43.560" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""without black boxes - I'm going to explain""" start="00:02:46.160" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""many of these things very soon.""" start="00:02:48.840" video="mainVideo-repl" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Another figure""" start="00:02:50.320" video="mainVideo-repl" id="subtitle"]]</div>[[!template text="""This is a figure that that I'm going""" start="00:02:50.320" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""to show in details soon, that is""" start="00:02:52.800" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""about something important about Lua...""" start="00:02:57.120" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""the font is very bad now, so let me""" start="00:02:59.960" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""change the font... the figure is this one...""" start="00:03:03.960" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""and...""" start="00:03:07.560" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""what most people do when they""" start="00:03:08.240" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""visit a file with something""" start="00:03:12.520" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""interesting on it is that they just go""" start="00:03:14.480" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""there and they set a bookmark there, or""" start="00:03:16.480" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""they put the position in a register...""" start="00:03:18.680" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""but I prefer to keep""" start="00:03:21.960" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""links to everything that is interesting""" start="00:03:26.960" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""as elisp hyperlinks. So, for example, this is""" start="00:03:29.200" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""an elisp hyperlink to a file, that goes""" start="00:03:32.120" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""to this anchor here, and to this string""" start="00:03:35.080" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""after this anchor... this is a variant""" start="00:03:37.600" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""that opens that file in the window""" start="00:03:41.440" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""at the right -""" start="00:03:44.240" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""here... and this is""" start="00:03:45.480" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""a sexp that changes the font. I""" start="00:03:48.880" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""have a command with a very short name""" start="00:03:53.280" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""that does that, but I""" start="00:03:56.680" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""prefer to keep that as a one-liner.""" start="00:03:59.440" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""About the videos... we can see""" start="00:04:02.960" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""the list of first-class videos of eev""" start="00:04:06.920" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""by executing this, M-x find-1stclassvideos,""" start="00:04:10.080" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""or by running this alias here, M-x 1c...""" start="00:04:14.760" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""and then what we see is this...""" start="00:04:18.640" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""the first sexp here""" start="00:04:20.680" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""regenerates this buffer - so we can make a""" start="00:04:24.240" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""mess here and then run this and the""" start="00:04:26.960" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""original buffer is regenerated again in""" start="00:04:29.400" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""a clean way...""" start="00:04:33.520" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""each of these things here""" start="00:04:34.960" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""opens a buffer with information about""" start="00:04:36.920" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""a video... let me take a specific""" start="00:04:40.880" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""example here... this video here is about""" start="00:04:44.000" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""one of the ancestors of this talk, that""" start="00:04:49.160" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""is a library that I wrote""" start="00:04:51.040" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""for creating diagrams in LaTeX using""" start="00:04:53.480" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""a package called Pict2e using REPLs...""" start="00:04:58.480" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""anyway...""" start="00:05:03.520" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""the thing is that if we""" start="00:05:03.960" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""run a sexp like this one and we don't""" start="00:05:06.600" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""have a local copy of the video eev""" start="00:05:11.600" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""will try to download to the local copy -""" start="00:05:14.680" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""and instead of doing that by asking""" start="00:05:17.600" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""something like &quot;do you want me""" start="00:05:20.120" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""to download the local copy? Blah""" start="00:05:21.720" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""blah blah blah blah...&quot; it simply opens a""" start="00:05:24.000" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""buffer like this, I mean, if we don't""" start="00:05:28.000" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""have a local copy yet it will open a""" start="00:05:30.720" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""buffer like this one, in which these""" start="00:05:33.360" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""things here in comments are links to the""" start="00:05:36.360" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""documentation... I mean, this thing here""" start="00:05:39.200" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""explains the idea of local copies""" start="00:05:43.840" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""of files from the internet...""" start="00:05:46.160" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""there are more details here, and here...""" start="00:05:48.760" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""and this is a script that we""" start="00:05:54.760" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""can execute line by line, so instead of""" start="00:05:57.160" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""this script being hidden behind the""" start="00:06:00.520" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""button that we just press after a""" start="00:06:02.360" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""question like &quot;Do you want me to do""" start="00:06:06.120" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""something blah blah blah? Yes or no?&quot;""" start="00:06:08.400" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""the script is visible here and we can""" start="00:06:10.240" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""execute it step by step... it creates a""" start="00:06:13.640" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""terminal with a shell here in the""" start="00:06:17.600" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""right window, and when we type f8 in""" start="00:06:20.800" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""one of these lines here the lines are""" start="00:06:24.800" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""sent... (...) so this is going""" start="00:06:26.840" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""to download a copy of the video... the""" start="00:06:29.120" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""wget says that I already have a copy of""" start="00:06:31.760" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""the video and its subtitles... and so on.""" start="00:06:36.640" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""And after getting a copy of the video""" start="00:06:39.480" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""we can run this sexp here and it displays""" start="00:06:43.880" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""the video.""" start="00:06:48.160" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""I said that eev has lots of""" start="00:06:49.920" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""&quot;videos for people who hate videos&quot;, and""" start="00:06:55.400" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""the idea is that very few""" start="00:06:58.400" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""people are going to watch the videos in""" start="00:06:59.680" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""real time... and most of the people that""" start="00:07:02.040" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""I know - or: most of the people that""" start="00:07:06.560" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""are interested in eev in some""" start="00:07:08.280" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""way... they are going to watch just""" start="00:07:10.640" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""small sections of the video, and most of""" start="00:07:13.480" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""the time they're just going to read the""" start="00:07:16.320" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""subtitles of the video. So, for each""" start="00:07:17.560" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""one of the videos we have a page""" start="00:07:20.800" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""about the video... let me see if I""" start="00:07:23.480" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""have internet here... yes. This is a""" start="00:07:27.040" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""page...""" start="00:07:30.000" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""and usually these pages have a link""" start="00:07:32.880" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""to another page that""" start="00:07:39.000" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""has all the subtitles of the""" start="00:07:40.760" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""video... uh, wherever... in this one""" start="00:07:43.240" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""it's not so visible...""" start="00:07:46.640" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""but anyway, there are several""" start="00:07:48.320" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""ways of accessing the subtitles of the""" start="00:07:50.600" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""video, and one of the ways is by running""" start="00:07:52.480" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""this sexp here,""" start="00:07:56.240" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""that opens a file in Lua that is""" start="00:07:57.520" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""what I use to generate the""" start="00:08:01.560" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""subtitles.""" start="00:08:03.320" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""Anyway... by the way, these things... each""" start="00:08:04.480" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""one of these things here is a hyperlink""" start="00:08:08.520" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""to a position of the video, so if I type""" start="00:08:12.040" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""this the right way it goes to that""" start="00:08:15.240" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""position. Anyway, let me go back...""" start="00:08:18.880" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""also, the tutorials of eev... the""" start="00:08:24.120" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""&quot;intros&quot; of eev, that start with &quot;find-&quot; and""" start="00:08:27.280" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""end with &quot;-intro&quot;, they have lots of blocks""" start="00:08:31.360" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""that say &quot;[Video links:]&quot;, like this one, and""" start="00:08:34.280" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""these blocks have links to positions""" start="00:08:39.040" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""in videos, and if we don't have a local""" start="00:08:41.360" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""copy of the video yet the thing shows""" start="00:08:43.880" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""us a script that lets us download the""" start="00:08:47.920" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""local copy.""" start="00:08:49.800" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""Anyway, I said that I was going""" start="00:08:50.600" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""to explain what I mean by &quot;magic&quot; and""" start="00:08:54.400" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""&quot;black boxes&quot;.""" start="00:08:58.760" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""this is something that I've been""" start="00:08:59.640" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""trying to explain for a long time, and I""" start="00:09:03.120" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""think that I got a very good explanation""" start="00:09:05.120" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""about that in a video that I made""" start="00:09:07.320" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""about something called eev-wconfig, that""" start="00:09:09.840" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""is a tool for configuring eev on""" start="00:09:13.200" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""Windows without &quot;magic&quot; - without buttons""" start="00:09:15.000" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""that do things without explaining what""" start="00:09:19.200" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""they're doing.""" start="00:09:22.480" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""This is a part of the subtitles""" start="00:09:22.880" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""of the video, let me read that...""" start="00:09:25.800" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""eev-wconfig is an attempt to solve the""" start="00:09:28.040" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""problem of how to install these things""" start="00:09:32.320" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""on Windows both without magic and with""" start="00:09:35.040" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""very little""" start="00:09:37.280" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""magic. Remember this slogan: &quot;any""" start="00:09:37.880" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""sufficiently advanced technology is""" start="00:09:41.680" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""indistinguishable from""" start="00:09:44.360" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""magic&quot;. Here in this video I'm going to""" start="00:09:45.400" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""use the term magic as a shorthand""" start="00:09:49.680" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""for sufficiently advanced technology,""" start="00:09:52.200" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""that is something that is complex and""" start="00:09:55.240" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""non-obvious and that is""" start="00:09:57.800" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""indistinguishable from magic in the""" start="00:10:00.200" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""sense of being almost impossible to""" start="00:10:02.120" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""understand. And I'm also going to use a""" start="00:10:04.120" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""the term &quot;black box&quot; as a near-synonym for""" start="00:10:07.440" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""magic, and sometimes the term""" start="00:10:10.280" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""&quot;black box&quot; is more convenient even though""" start="00:10:13.080" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""it's a bit longer - it has more""" start="00:10:16.040" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""letters - because when I use the term""" start="00:10:17.920" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""black box it invites us to use""" start="00:10:20.160" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""expressions like &quot;opening the black box&quot;,""" start="00:10:22.600" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""and I'm going to use that""" start="00:10:25.480" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""expression a lot.""" start="00:10:26.640" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""Now let me try to explain what is...""" start="00:10:28.040" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""sorry, let me change the font...""" start="00:10:37.400" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""what is Lua. Lua is a minimalistic""" start="00:10:41.040" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""language, in the sense of""" start="00:10:45.480" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""&quot;batteries not included&quot;... it uses""" start="00:10:50.000" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""associative tables for most of its data""" start="00:10:53.680" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""structures...""" start="00:10:56.000" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""and it is so minimalistic""" start="00:10:56.800" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""that its default print function, when""" start="00:11:00.240" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""we tell... when we create an associative""" start="00:11:04.000" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""table and we ask it to print...""" start="00:11:06.680" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""when we ask &quot;print&quot; to print an""" start="00:11:09.560" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""associative table it just prints the""" start="00:11:13.320" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""address of the table. Here are some""" start="00:11:15.720" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""examples... here is a table, and when we""" start="00:11:17.880" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""ask &quot;print&quot; to print it it just says""" start="00:11:21.600" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""that it's the table at this address here.""" start="00:11:24.680" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""So, one of things that that most""" start="00:11:26.840" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""people do when they start using Lua is""" start="00:11:30.120" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""that either they download a package with""" start="00:11:32.920" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""a pretty-printing function or they write""" start="00:11:35.240" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""their own pretty-printing functions. My""" start="00:11:37.080" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""own pretty-printing function is called""" start="00:11:39.360" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""PP, with upper case letters, and it works""" start="00:11:41.520" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""like this...""" start="00:11:46.160" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""and it prints associative tables""" start="00:11:47.680" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""in a way like this. It says that for""" start="00:11:50.280" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""the key 1 the the value associated to""" start="00:11:53.840" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""it is 2, for the key 2 the value is""" start="00:11:57.480" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""3, and for the key 3 the value is 5.""" start="00:12:00.040" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""When I started using Lua one of my""" start="00:12:04.960" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""favorite languages was also a language""" start="00:12:11.080" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""that used associative tables a lot -""" start="00:12:13.840" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""it was called Icon...""" start="00:12:15.640" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""and I had to write my own""" start="00:12:16.840" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""pretty-printing functions for Icon, so""" start="00:12:21.040" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""I just had to port my pretty-printing""" start="00:12:23.840" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""functions to Lua... and my first""" start="00:12:27.320" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""version looked at something like this... it""" start="00:12:29.720" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""just had some some global functions... lots""" start="00:12:32.240" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""of them, actually...""" start="00:12:36.000" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""and after a while I rewrote it, and I""" start="00:12:39.640" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""rewrote it again, and again, and again, and""" start="00:12:42.280" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""this is one of the versions of that,""" start="00:12:44.600" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""is not even the default at this""" start="00:12:47.280" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""point...""" start="00:12:49.880" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""&quot;Tos&quot; is for &quot;to string&quot;...""" start="00:12:51.560" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""and this is a demo...""" start="00:12:54.120" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""it's very modular, so it's easy to replace""" start="00:12:58.280" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""parts of it, or to toggle flags... and this""" start="00:13:01.920" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""is an example. If I try to print the""" start="00:13:05.640" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""table of methods for a certain""" start="00:13:08.120" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""class... I will need a smaller font...""" start="00:13:10.000" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""it prints the table like this, with the""" start="00:13:14.360" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""names of the methods and then links to""" start="00:13:16.800" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""the source code of the functions...""" start="00:13:20.040" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""these links only make sense in Emacs and""" start="00:13:21.720" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""in eev...""" start="00:13:25.400" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""and when we run a link like this one...""" start="00:13:25.960" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""it shows the source code in the""" start="00:13:30.360" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""window at the right. So, for some""" start="00:13:32.040" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""functions the source code is three lines,""" start="00:13:35.080" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""for other ones it's one line... and""" start="00:13:37.880" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""whatever. Anyway, let me go""" start="00:13:40.000" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""back... Lua can be used in many different""" start="00:13:44.880" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""styles... most people hate other people's""" start="00:13:47.040" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""styles... when I started using it in the""" start="00:13:50.360" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""year 2000 I learned most of the basic""" start="00:13:53.840" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""language in a single day - it was very""" start="00:13:57.680" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""similar to things that I was already""" start="00:13:59.840" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""using... and then I rewrote the the mini-""" start="00:14:02.120" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""language that I was using to""" start="00:14:05.640" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""generate the HTML for my pages""" start="00:14:10.280" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""in Lua... actually I had to rewrite it""" start="00:14:13.560" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""many times, but the first version I""" start="00:14:16.200" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""certainly did in my first weeks or first""" start="00:14:18.080" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""months using Lua...""" start="00:14:21.520" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""In the beginning I was just using""" start="00:14:22.520" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""it for writing programs that either""" start="00:14:27.280" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""didn't take any input at all - because""" start="00:14:30.160" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""the input was already in the source file -""" start="00:14:32.760" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""or that worked as Unix programs,""" start="00:14:35.080" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""that would read files""" start="00:14:40.600" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""and process these files in some way""" start="00:14:43.200" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""and output something.""" start="00:14:45.280" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""I mentioned the &quot;basic language&quot; here...""" start="00:14:49.000" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""I only learned how to use closures,""" start="00:14:52.320" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""metatables, and coroutines many years later...""" start="00:14:54.720" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""in the beginning, when I started using Lua,""" start="00:14:58.480" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""it didn't have a package manager...""" start="00:15:02.400" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""it appeared later, it is called""" start="00:15:04.200" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""Luarocks... it has had this package""" start="00:15:06.800" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""manager for several years, most""" start="00:15:10.120" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""of the rocks for Luarocks are poorly""" start="00:15:13.280" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""documented and hacker-unfriendly,""" start="00:15:15.720" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""so you can't rely just on the""" start="00:15:18.960" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""documentation and you can't rely just on the""" start="00:15:21.200" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""source code, because, I mean... if you are""" start="00:15:23.680" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""a genius of course you can, but for""" start="00:15:26.720" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""people who are either lazy, or dumb, or""" start="00:15:29.160" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""whatever, like me, or unfocused...""" start="00:15:31.480" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""the source code is hard to""" start="00:15:34.280" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""understand and hard to tinker with.""" start="00:15:36.760" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""Some rocks are excellent. The""" start="00:15:38.960" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""best rocks are well documented""" start="00:15:43.320" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""but they are hacker-unfriendly""" start="00:15:46.600" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""in a sense that I hope that""" start="00:15:48.720" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""I'll be able to explain soon.""" start="00:15:51.000" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""The best rocks use local""" start="00:15:52.880" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""variables and metatables a lot -""" start="00:15:55.000" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""so if you are beginner""" start="00:15:58.800" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""learning Lua you're not going to""" start="00:16:02.520" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""understand what their source code do...""" start="00:16:03.800" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""they use lots of dirty tricks.""" start="00:16:06.160" video="mainVideo-repl" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Object orientation in Lua""" start="00:16:08.520" video="mainVideo-repl" id="subtitle"]]</div>[[!template text="""Let me talk a bit about object""" start="00:16:08.520" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""orientation in Lua. It can be done in""" start="00:16:12.480" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""many ways...""" start="00:16:14.960" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""the main book about Lua, called""" start="00:16:15.880" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""&quot;Programming in Lua&quot;, by one of the authors""" start="00:16:19.000" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""of the language, Roberto Ierusalimschy,""" start="00:16:21.440" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""presents several ways of doing""" start="00:16:23.960" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""object orientation in Lua... I hated all""" start="00:16:26.680" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""of these ways - and also the ways that I""" start="00:16:29.280" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""tried from the rocks.""" start="00:16:33.200" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""And then I wrote my own way""" start="00:16:34.520" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""of doing object orientation in Lua... it's""" start="00:16:38.560" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""very minimalistic, it's in this file here,""" start="00:16:40.640" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""eoo.lua... the main code is just this five""" start="00:16:43.560" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""lines here...""" start="00:16:48.680" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""and here's an example of how it works.""" start="00:16:49.640" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""Here we define the class Vector,""" start="00:16:53.440" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""with some metamethods...""" start="00:16:58.440" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""this metamethod here will tell Lua""" start="00:17:02.720" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""what to do when the""" start="00:17:05.960" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""user asks to add two vectors, this one""" start="00:17:08.320" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""here tells Lua what to do when the user""" start="00:17:12.640" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""asks Lua to convert a vector to a string,""" start="00:17:15.920" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""and... whatever, this one is""" start="00:17:18.480" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""something that I'm going to explain in a""" start="00:17:21.440" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""second. So, here we create a vector with""" start="00:17:24.040" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""these coordinates, 3 and 4... here we create""" start="00:17:27.480" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""another Vector... if we &quot;print&quot; here then Lua""" start="00:17:30.280" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""uses this function here, in the __tostring...""" start="00:17:33.320" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""if we add the two vectors it uses this""" start="00:17:36.440" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""function here, in the __add metamethod, and""" start="00:17:39.760" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""if we run the method :norm...""" start="00:17:43.480" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""it is defined here, in the table __index.""" start="00:17:45.360" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""Anyway...""" start="00:17:49.960" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""Even this thing being so small I used""" start="00:17:58.000" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""to forget how its innards worked all""" start="00:18:02.440" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""the time. Actually I always forget how""" start="00:18:04.720" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""things work and I have to remember them""" start="00:18:08.120" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""somehow... and I have to have""" start="00:18:09.760" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""tricks for remembering, and tricks for""" start="00:18:12.480" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""summarizing things, and diagrams, and so""" start="00:18:15.960" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""on. And every time that I forgot how this""" start="00:18:18.720" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""thing worked I went back to the""" start="00:18:22.200" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""source code, and then I looked at the""" start="00:18:24.800" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""diagrams... or, of course, in the""" start="00:18:26.880" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""first times I had to draw the diagrams...""" start="00:18:29.040" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""and I run the examples, and of course in""" start="00:18:31.720" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""in the beginning I thought that the code""" start="00:18:35.240" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""was clear and my examples were very""" start="00:18:36.480" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""brief, and so I had to rewrite the""" start="00:18:39.120" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""examples many times until they became,""" start="00:18:41.560" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""let's say...""" start="00:18:44.720" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""perfect.""" start="00:18:45.640" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""I was saying that Lua can be used in""" start="00:18:47.760" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""many ways, and in my way of using Lua - in""" start="00:18:52.600" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""my favorite way - everything can be""" start="00:18:56.360" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""inspected and modified from REPLs,""" start="00:18:59.440" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""like we can do in Emacs and in SmallTalk,""" start="00:19:02.160" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""or sort of. So, in my""" start="00:19:06.320" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""favorite way of using Lua there's no""" start="00:19:08.520" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""security at all, everything can be""" start="00:19:10.240" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""changed at all times.""" start="00:19:12.680" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""Of course most people hate that...""" start="00:19:14.920" video="mainVideo-repl" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""My init file""" start="00:19:19.120" video="mainVideo-repl" id="subtitle"]]</div>[[!template text="""My init file has lots of classes... by the""" start="00:19:19.120" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""way, instead of keeping many small files""" start="00:19:22.600" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""with many things I put lots of stuff""" start="00:19:26.080" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""in just one big init file.""" start="00:19:29.640" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""My init file has lots of classes,""" start="00:19:31.280" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""and lots of global functions, and""" start="00:19:34.600" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""lots of cruft - and people hate that,""" start="00:19:37.960" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""of course. This is an example...""" start="00:19:41.800" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""this is the index at the top""" start="00:19:44.560" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""of my init file,""" start="00:19:46.440" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""the classes start here, and then""" start="00:19:48.360" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""we have some functions, and""" start="00:19:53.120" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""then we have functions that load""" start="00:19:59.120" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""certain packages, and then we have... cruft.""" start="00:20:01.200" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""Whatever.""" start="00:20:03.840" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""Most people think that my style""" start="00:20:04.920" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""of using Lua is dirty, and dangerous...""" start="00:20:08.120" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""and they wouldn't touch my Lua code""" start="00:20:10.280" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""with a 10 feet pole... but most of the""" start="00:20:12.960" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""things that I'm going to present here in""" start="00:20:15.480" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""this presentation are ideas that should""" start="00:20:18.600" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""be easy to port to other environments""" start="00:20:23.200" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""and other languages, especially the""" start="00:20:28.160" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""diagrams... so the code is not so important.""" start="00:20:32.280" video="mainVideo-repl" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""LaTeX and LuaLaTeX""" start="00:20:35.280" video="mainVideo-repl" id="subtitle"]]</div>[[!template text="""Now let me talk a bit about LuaLaTeX,""" start="00:20:35.280" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""that is LaTeX with a Lua interpreter""" start="00:20:39.040" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""embedded inside, and two ways""" start="00:20:41.360" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""of generating pictures in LaTeX: TikZ,""" start="00:20:44.560" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""that is very famous, and Pict2e, that is not""" start="00:20:48.840" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""very famous and that is very low level...""" start="00:20:54.440" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""and I think that not many people use it.""" start="00:20:57.360" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""I said before that when I""" start="00:21:02.360" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""learned Lua I realized that it was""" start="00:21:04.120" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""very good for writing little""" start="00:21:06.920" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""languages. I was doing my PhD at the""" start="00:21:09.200" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""time and typesetting the diagrams for""" start="00:21:14.920" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""my PhD thesis was very boring, so""" start="00:21:19.840" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""one of the things that I did was that I""" start="00:21:24.040" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""created a little language for typesetting""" start="00:21:29.880" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""the diagrams for me. it was""" start="00:21:34.440" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""called Dednat because initially""" start="00:21:36.360" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""it only generated diagrams for""" start="00:21:38.880" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""Natural Deduction, and then it had""" start="00:21:41.040" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""several versions...""" start="00:21:43.760" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""these are the slides for my""" start="00:21:45.120" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""presentation about Dednat6... &quot;Dednat6 is""" start="00:21:46.680" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""an extensible semi-preprocessor for""" start="00:21:52.160" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""LuaLaTeX that understands diagrams in""" start="00:21:56.160" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""ASCII art&quot;... in the sense that when I have""" start="00:22:01.160" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""a .tex file that has this, and when""" start="00:22:05.360" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""Dednat6 is loaded,""" start="00:22:11.400" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""when I give the right commands""" start="00:22:13.280" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""Dednat6 interprets this block here as""" start="00:22:15.040" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""something that defines this""" start="00:22:19.560" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""diagram... oops, sorry, it interprets this""" start="00:22:22.560" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""diagram here, this diagram in""" start="00:22:28.240" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""comments here, as something that defines""" start="00:22:30.600" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""a diagram called foo... a deduction called""" start="00:22:34.880" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""foo, and it generates this code here...""" start="00:22:39.760" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""so that we can just invoke""" start="00:22:41.440" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""the definition of the""" start="00:22:44.240" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""deduction by typing \ded{foo}.""" start="00:22:45.520" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""And Dednat6 also""" start="00:22:47.720" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""supports another language for typesetting""" start="00:22:50.760" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""bidimensional diagrams with""" start="00:22:57.160" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""arrows and stuff for category Theory and""" start="00:22:59.640" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""blah blah blah... the specifications of""" start="00:23:05.400" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""these diagrams look like this...""" start="00:23:08.520" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""here is a... sorry, here is a very good""" start="00:23:12.040" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""example, this is a huge diagram...""" start="00:23:14.560" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""sorry, one second...""" start="00:23:16.720" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""so, the source code that generates""" start="00:23:18.600" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""this diagram here is just this thing at""" start="00:23:20.400" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""the left, so it's very visual... we can""" start="00:23:25.120" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""typeset the diagram in ASCII art here and""" start="00:23:32.040" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""then in this part here we tell how""" start="00:23:35.680" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""the nodes are to be joined, which""" start="00:23:38.760" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""arrows have to to have annotations, and""" start="00:23:41.280" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""so on...""" start="00:23:43.800" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""and this language is extensible in""" start="00:23:45.040" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""the sense that... uh, where's that...""" start="00:23:46.800" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""here: comments that start with &quot;%:&quot;""" start="00:23:48.680" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""are interpreted as""" start="00:23:52.560" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""definitions for tree diagrams,""" start="00:23:54.120" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""lines that start with &quot;%D&quot;""" start="00:23:56.080" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""define 2D diagrams with arrows and""" start="00:23:58.560" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""stuff, and lines that start with &quot;%L&quot;""" start="00:24:00.640" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""contain blocks of Lua code""" start="00:24:04.280" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""that we can use to extend the interpreter""" start="00:24:06.760" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""on-the-fly...""" start="00:24:09.480" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""anyway, here are some recent""" start="00:24:10.440" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""examples of diagrams that I used""" start="00:24:12.680" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""Dednat6 to typeset... this diagram""" start="00:24:15.320" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""here was generated by this""" start="00:24:19.840" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""specification here...""" start="00:24:21.920" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""and this diagram here with the""" start="00:24:22.880" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""curved arrows was generated by this""" start="00:24:27.240" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""specification here.""" start="00:24:30.720" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""So, Dednat6 was very easy to extend,""" start="00:24:32.720" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""and at some point I started to use it""" start="00:24:39.080" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""to generate diagrams using Pict2e -""" start="00:24:41.880" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""mainly for the classes that I give""" start="00:24:44.680" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""at the University... I teach mathematics and""" start="00:24:47.360" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""whatever... in a bad place. Whatever...""" start="00:24:50.080" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""Let me show an animation... here is a""" start="00:24:57.240" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""diagram that I generated with Dednat6,""" start="00:25:00.040" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""and it is a flip book animation, like... we""" start="00:25:02.480" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""type PgUp and PgDn and we go""" start="00:25:06.320" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""to the next page of the book and to the""" start="00:25:09.280" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""previous page of the book...""" start="00:25:11.120" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""and here is the source code that generates""" start="00:25:12.440" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""that. This source code is not very visual,""" start="00:25:16.280" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""so it's quite clumsy to edit that""" start="00:25:19.160" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""diagram directly in the .tex file like""" start="00:25:22.560" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""that...""" start="00:25:27.520" video="mainVideo-repl" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Manim""" start="00:25:28.080" video="mainVideo-repl" id="subtitle"]]</div>[[!template text="""These diagrams were inspired""" start="00:25:28.080" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""by something called my Manim, that...""" start="00:25:30.200" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""I forgot the name of the guy, but""" start="00:25:33.040" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""it's a guy that makes many videos about""" start="00:25:37.560" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""Mathematics, and he created this library""" start="00:25:41.480" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""called Manim for generating his""" start="00:25:44.840" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""animations, and other people adapted""" start="00:25:48.600" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""his library to make it more accessible...""" start="00:25:51.840" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""I tried to learn it, but""" start="00:25:55.920" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""each animation, even an animation""" start="00:25:59.360" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""that has very few frames... each""" start="00:26:01.200" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""animation took ages to render, so it""" start="00:26:03.680" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""wasn't fun... and animations in PDFs can""" start="00:26:07.320" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""be rendered in seconds. So these""" start="00:26:11.160" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""things were fun for me, because my laptop""" start="00:26:13.640" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""is very very slow, and my Manim was not fun.""" start="00:26:18.680" video="mainVideo-repl" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Generating diagrams from REPLs""" start="00:26:24.360" video="mainVideo-repl" id="subtitle"]]</div>[[!template text="""Anyway, writing code like this""" start="00:26:24.360" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""inside a .tex file was not very""" start="00:26:27.360" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""fun because it was hard to""" start="00:26:32.720" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""debug... so in 2022 I started to play""" start="00:26:35.520" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""with ways of generating these""" start="00:26:38.720" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""diagrams from REPLs, and I found a""" start="00:26:41.320" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""way for Pict2e and a way for TikZ...""" start="00:26:43.840" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""each one of these ways became a video...""" start="00:26:47.320" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""if you go to the list of first-class""" start="00:26:50.160" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""videos of eev you're going to see""" start="00:26:53.680" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""that there's a video about Pict2e here""" start="00:26:57.720" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""here and a video about TikZ...""" start="00:26:59.920" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""here you have some some information""" start="00:27:03.400" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""like length, an explanation, etc...""" start="00:27:05.760" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""and here are the pages for these videos.""" start="00:27:09.840" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""My page about the video about Pict2e""" start="00:27:11.720" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""looks like this, it has some diagrams...""" start="00:27:16.000" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""whatever... and this one is much""" start="00:27:20.080" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""nicer, and a lot of people""" start="00:27:23.920" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""watched that video... I mean, I think""" start="00:27:26.680" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""that 250 people watched it - for me that's""" start="00:27:30.600" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""a million of people...""" start="00:27:33.720" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""and this video is about how to""" start="00:27:35.600" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""extract diagrams from the manual... from""" start="00:27:39.160" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""the TikZ manual and how to run those""" start="00:27:44.080" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""examples in a REPL and modify""" start="00:27:46.600" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""them bit by bit... this is a a""" start="00:27:49.760" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""screenshot... but let me go back.""" start="00:27:53.160" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""At that point these things were just""" start="00:27:57.440" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""prototypes, the code was not very nice...""" start="00:28:00.960" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""and in this year I wrote... I was able""" start="00:28:03.240" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""to unify those two ways of generating PDFs,""" start="00:28:07.520" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""the one for TikZ and the one for Pict2e,""" start="00:28:12.400" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""and I unified them with many other""" start="00:28:16.040" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""things that generated diagrams.""" start="00:28:18.720" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""The basis of these things is""" start="00:28:20.880" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""something called Show2.lua... I'm not going""" start="00:28:24.280" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""to show its details now, but its""" start="00:28:29.320" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""extension that generates TikZ code""" start="00:28:35.760" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""is just this, so we can specify a""" start="00:28:39.080" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""diagram with just a block like this,""" start="00:28:43.040" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""and then uh if we""" start="00:28:45.800" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""run :show00() it returns a string""" start="00:28:49.080" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""that is just the body... the inner""" start="00:28:54.240" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""body of the .tex file, if we run this we""" start="00:28:56.200" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""see the whole .tex file, and if we run""" start="00:29:00.280" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""this we save the .tex file and we""" start="00:29:03.000" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""compile the .tex file to generate a PDF...""" start="00:29:05.120" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""and if we run this we show the PDF in""" start="00:29:08.120" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""the lower right window.""" start="00:29:10.960" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""And that's the same thing for all""" start="00:29:14.240" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""my recent programs that generate""" start="00:29:17.760" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""PDFs - they are all""" start="00:29:20.200" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""integrated... here is the one that...""" start="00:29:22.440" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""the basis for all my modules that generate""" start="00:29:26.200" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""diagrams with Pict2e...""" start="00:29:29.360" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""its demos are not very interesting,""" start="00:29:30.720" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""so let me show some demos of""" start="00:29:34.880" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""extensions that do interesting things...""" start="00:29:36.800" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""so, this is a diagram that I created""" start="00:29:39.760" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""by editing it in a REPL...""" start="00:29:45.320" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""I create several Pict objects here...""" start="00:29:47.480" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""and if I execute this it""" start="00:29:51.280" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""compiles an object, generates a PDF, and""" start="00:29:54.480" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""if I tap this... here is the PDF.""" start="00:29:59.960" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""And if I just ask Lua to""" start="00:30:04.760" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""display what is &quot;pux&quot;, here,""" start="00:30:07.600" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""it shows the source code in Pict2e""" start="00:30:10.080" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""of the diagram... and the""" start="00:30:15.720" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""nice thing is that it is indented, so""" start="00:30:18.000" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""it's easy to debug the Pict2e code.""" start="00:30:20.960" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""If anyone is interested the""" start="00:30:23.600" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""module that does the tricks for""" start="00:30:25.920" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""indentation is very easy to understand...""" start="00:30:28.640" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""it has lots of tests and test blocks,""" start="00:30:31.880" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""and I think that its data""" start="00:30:35.960" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""structures are easy to understand.""" start="00:30:38.600" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""Anyway... here is another""" start="00:30:42.080" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""example. The :show() is""" start="00:30:44.360" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""here... it generates a 3D diagram.""" start="00:30:51.360" video="mainVideo-repl" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Parsers""" start="00:30:56.440" video="mainVideo-repl" id="subtitle"]]</div>[[!template text="""Now let me talk about parsers and""" start="00:30:56.440" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""REPLs in VERY strange places... I mean,""" start="00:31:06.280" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""using REPLs to build parsers step by step""" start="00:31:09.560" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""and&quot; replacing parts by more complex""" start="00:31:13.360" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""parts. So, I said that Lua is very""" start="00:31:17.960" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""minimalistic, and everybody knows that""" start="00:31:23.040" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""implementations of regular expressions""" start="00:31:28.280" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""are big and complex..""" start="00:31:30.760" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""so, instead of coming with""" start="00:31:32.480" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""full regular expressions Lua comes with""" start="00:31:34.680" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""something called &quot;patterns&quot; and a""" start="00:31:37.440" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""library function called &quot;string.match&quot;.""" start="00:31:39.880" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""Here is""" start="00:31:43.840" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""a copy of the part of the manual that""" start="00:31:44.600" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""explains the syntax... a part of the""" start="00:31:50.320" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""syntax of of patterns... here's how""" start="00:31:53.400" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""string.match is described in the""" start="00:31:57.160" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""manual - it's just this... &quot;looks for""" start="00:31:59.280" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""the first match of pattern in the string""" start="00:32:03.200" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""as blah blah blah&quot;... and then we have to""" start="00:32:05.360" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""go to the other section of the menual""" start="00:32:08.040" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""that explains patterns.""" start="00:32:10.160" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""Lua patterns are so simple,""" start="00:32:11.480" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""so limited, that they don't even""" start="00:32:20.080" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""have the the alternation operator...""" start="00:32:23.160" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""here is how it is described in the""" start="00:32:26.520" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""elisp manual -""" start="00:32:29.760" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""backslash-pipe specifies""" start="00:32:31.600" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""an alternative, blah blah blah.""" start="00:32:36.040" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""When we want to to build more""" start="00:32:40.360" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""complex... regular expressions,""" start="00:32:42.880" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""patterns, grammars, etc... we have to use""" start="00:32:45.320" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""an external library for that... no,""" start="00:32:49.200" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""sorry, a library that is external""" start="00:32:52.680" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""but that was written by one of the""" start="00:32:56.280" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""authors of Lua itself. This library""" start="00:32:58.240" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""is called Lpeg, and its manual says...""" start="00:33:00.880" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""&quot;Lpeg is a new pattern matching library for""" start="00:33:05.880" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""Lua based on Parsing Expression Grammars""" start="00:33:09.600" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""(PEGs)&quot;. The manual is very terse, I""" start="00:33:12.040" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""found it incredibly hard to read... it""" start="00:33:18.760" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""doesn't have any diagrams - it has some""" start="00:33:21.560" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""examples, though... and the Lua Wiki""" start="00:33:25.440" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""has a big page called Lpeg Tutorial""" start="00:33:29.760" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""with lots of examples...""" start="00:33:33.880" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""but it it also doesn't have""" start="00:33:35.360" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""diagrams and I found some things""" start="00:33:38.880" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""incredibly hard to understand.""" start="00:33:41.200" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""For example, this is something that is in""" start="00:33:42.720" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""the the manual of Lpeg that I saw and I""" start="00:33:45.880" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""thought: &quot;Wow, great! This makes all sense""" start="00:33:48.880" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""and is going to be very useful!&quot;...""" start="00:33:51.640" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""it's a way to to build""" start="00:33:53.160" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""grammars that can be recursive,""" start="00:33:54.200" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""and they sort of can encode BNF""" start="00:33:57.200" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""grammars... we just have to translate the""" start="00:34:01.360" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""BNF a bit to get rid of some""" start="00:34:03.440" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""recursions and to translate them to""" start="00:34:06.480" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""something else.""" start="00:34:08.080" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""And the manual also has some things""" start="00:34:09.000" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""that I thought: &quot;Oh, no! I don't have any""" start="00:34:11.920" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""idea of what this thing does&quot;... and in fact""" start="00:34:15.160" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""I saw these things for the first""" start="00:34:18.360" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""time more than 10 years ago and they""" start="00:34:20.400" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""only started to make sense one year ago.""" start="00:34:22.360" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""One example is group captures.""" start="00:34:26.080" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""Lpeg also comes with a""" start="00:34:30.520" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""module called the Re module... let me""" start="00:34:36.360" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""pronounce as it in Portuguese - the Re""" start="00:34:38.720" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""module... its manual says: &quot;The Re""" start="00:34:41.720" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""module (provided by the file re.lua in the""" start="00:34:45.760" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""distribution) supports a somewhat conventional""" start="00:34:48.200" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""regular expression syntax for pattern usage""" start="00:34:51.160" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""within lpeg&quot;... and""" start="00:34:56.240" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""this is a quick reference... this""" start="00:34:58.680" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""thing is very brief, it has some nice""" start="00:35:03.520" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""examples but it's hard to understand anyway...""" start="00:35:06.320" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""and here are some comments about""" start="00:35:08.920" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""my attempts to learn Re.lua. This is""" start="00:35:13.200" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""a class... in this case it's a very small""" start="00:35:17.280" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""class... this file implements a :pm()""" start="00:35:20.640" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""method - I'm going to show examples of""" start="00:35:24.840" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""other :pm() methods very soon - so, this is""" start="00:35:28.680" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""a :pm() method for Re.lua that lets us""" start="00:35:32.240" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""compare the syntax of Lua patterns, Lpeg,""" start="00:35:35.800" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""and Re... let's see this example here... so,""" start="00:35:38.720" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""if we run this it loads my version of""" start="00:35:44.000" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""lpeg... no, sorry, my version of lpegrex...""" start="00:35:47.320" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""and it shows that when we apply""" start="00:35:52.800" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""the :pm() method to this Lua pattern, this""" start="00:35:57.120" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""lpeg pattern, and this Re pattern""" start="00:36:01.200" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""they all give the same results. So we can""" start="00:36:04.880" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""use this thing... this kind of thing here""" start="00:36:08.000" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""to show how to translate from Lua""" start="00:36:10.800" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""patterns, that are familiar because""" start="00:36:14.120" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""they're similar to regular expressions,""" start="00:36:16.520" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""only weaker...""" start="00:36:18.520" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""to lpeg, that is super weird""" start="00:36:20.200" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""and to Re, that is not so weird.""" start="00:36:24.800" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""Anyway, the comment says that in 2012""" start="00:36:27.760" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""I had a project that needed a""" start="00:36:35.160" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""precedence passer that could parse""" start="00:36:37.520" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""arithmetical expressions with the right""" start="00:36:40.480" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""precedences... and at that point I was""" start="00:36:43.240" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""still struggling with pure lpeg, and I""" start="00:36:46.640" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""couldn't do much with it, so I tried to""" start="00:36:49.920" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""learn Re.lua instead, and I wrote this old""" start="00:36:52.360" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""class here...""" start="00:36:55.520" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""that allowed me to use a preprocessor""" start="00:36:56.320" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""on patterns for Lua. And the thing is that""" start="00:37:01.040" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""with this preprocessor I could""" start="00:37:03.280" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""specify precedence grammars using this""" start="00:37:04.880" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""thing here, that worked, but was super""" start="00:37:07.840" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""clumsy... and I gave up after a few attempts.""" start="00:37:11.880" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""and in 2022 I heard about something""" start="00:37:16.000" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""called lpegrex,""" start="00:37:21.880" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""that was a... a kind of extension or Re,""" start="00:37:23.240" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""and it was much more powerful than re.lua,""" start="00:37:29.800" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""but after a while I realized that it""" start="00:37:32.880" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""had the same defects as re.lua...""" start="00:37:34.920" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""and let me explain that, because""" start="00:37:37.640" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""it has all to do with the things about""" start="00:37:40.840" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""black boxes and magic that I told in the""" start="00:37:44.440" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""beginning. Both... I mean, sorry, neither""" start="00:37:48.040" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""re.lua or lpegrex had some features that""" start="00:37:52.920" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""I needed... they didn't let us explore...""" start="00:37:57.200" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""sorry, they received a pattern that was""" start="00:38:00.800" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""specified as a string, and it converted""" start="00:38:03.680" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""that into an lpeg pattern, but it didn't""" start="00:38:06.840" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""let us explore the the lpeg patterns""" start="00:38:09.680" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""that it generated...""" start="00:38:12.560" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""their code was written in a way""" start="00:38:15.160" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""that was REPL-unfriendly - I""" start="00:38:18.760" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""couldn't modify parts of the code""" start="00:38:21.320" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""bit by bit in a REPL and try to change""" start="00:38:24.280" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""the code without changing the""" start="00:38:28.400" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""original file... the code was very""" start="00:38:31.720" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""hard to explore, to hack, and to extend -""" start="00:38:34.200" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""in my opinion... the documentation was not""" start="00:38:36.840" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""very clear... and I sent one or two messages""" start="00:38:39.160" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""to the the developer of lpegrex and...""" start="00:38:43.320" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""he was too busy to help me. He""" start="00:38:47.160" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""answered it very briefly, and, uh, to be""" start="00:38:50.760" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""honest I felt... rejected. I felt that I""" start="00:38:53.960" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""wasn't doing anything interesting...""" start="00:38:56.600" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""whatever, whatever...""" start="00:38:58.680" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""So, in 2022 I was trying to learn lpegrex""" start="00:39:03.400" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""because I was thinking that it would""" start="00:39:09.240" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""solve my problems - but it didn't...""" start="00:39:11.560" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""it didn't have the features that I needed,""" start="00:39:13.720" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""it was hard to extend, hard to explore,""" start="00:39:16.480" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""and hard to debug, and I""" start="00:39:20.920" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""decided to rewrite it in a more""" start="00:39:23.280" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""hacker-friendly way - in the sense that...""" start="00:39:25.040" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""was modular, and I could replace any""" start="00:39:30.640" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""part of the module from a REPL...""" start="00:39:33.760" video="mainVideo-repl" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""ELpeg1.lua""" start="00:39:35.400" video="mainVideo-repl" id="subtitle"]]</div>[[!template text="""My version of it was called ELpeg1.lua...""" start="00:39:35.400" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""and I decided that in my version I""" start="00:39:43.680" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""wouldn't have the part that""" start="00:39:47.680" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""receives a grammar specified as a string""" start="00:39:49.640" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""and converts that to lpeg... I would""" start="00:39:54.880" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""just have the backend part, that are the""" start="00:39:57.520" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""functions in lpeg that let us specify""" start="00:40:00.960" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""powerful grammars.""" start="00:40:04.000" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""Let me go back. Let me explain a""" start="00:40:05.480" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""bit about lpeg... Lua has""" start="00:40:11.760" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""coercions: the + expects to receive""" start="00:40:15.520" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""true numbers, and if one of its arguments,""" start="00:40:21.600" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""or both of them, are strings, it converts""" start="00:40:24.000" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""the string... the strings to numbers so in""" start="00:40:27.000" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""this case here, 2+&quot;3&quot;,""" start="00:40:29.840" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""it returns the number 5,""" start="00:40:33.520" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""and this is the concatenation""" start="00:40:36.160" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""operator... it expects to receive""" start="00:40:39.360" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""strings, so in this case it will""" start="00:40:42.120" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""convert the number 2 to the string &quot;2&quot;,""" start="00:40:45.000" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""and the concatenation of thes two""" start="00:40:47.360" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""things will be 23... oops, sorry, &quot;23&quot;""" start="00:40:50.280" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""as a string.""" start="00:40:54.480" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""Lpeg also has some coercions.""" start="00:40:56.280" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""I usually set these""" start="00:40:58.520" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""globals to let me write my grammars""" start="00:41:01.760" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""in a very compact way, so instead""" start="00:41:05.800" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""of lpeg.B, lpeg.C, etc I use these globals,""" start="00:41:09.720" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""like uppercase B, uppercase C, and so on...""" start="00:41:14.760" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""and with these globals I can write""" start="00:41:18.360" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""things like this: C(1)*&quot;_&quot;...""" start="00:41:21.680" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""and lpeg knows that lpeg.C...""" start="00:41:26.760" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""it sort of expands this to lpeg.C,""" start="00:41:33.200" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""but lpeg.C expects to receive""" start="00:41:38.880" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""an lpeg pattern, and 1 is not yet an""" start="00:41:42.040" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""lpeg pattern, so it is coerced into an""" start="00:41:44.840" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""lpeg pattern by calling lpeg.P,""" start="00:41:47.880" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""so this short thing here becomes""" start="00:41:51.800" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""equivalent to lpeg.C(lpeg.P(1)), and the""" start="00:41:55.680" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""multiplication, when at least one of its""" start="00:42:03.400" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""arguments is an lpeg pattern... it expects""" start="00:42:07.400" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""to receive two lpeg patterns, and in""" start="00:42:10.760" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""this case the one at the right is""" start="00:42:13.200" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""just a string, so it is coerced to an lpeg""" start="00:42:15.240" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""pattern by using lpeg.P.""" start="00:42:18.320" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""With this idea we can sort of""" start="00:42:20.080" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""understand the comparison here. I mean,""" start="00:42:25.600" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""let me run it again... this first part is""" start="00:42:28.440" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""very similar to a regular expression""" start="00:42:31.720" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""here at the left...""" start="00:42:34.680" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""and when we apply this... Lua pattern""" start="00:42:35.360" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""to this subject here the result""" start="00:42:39.760" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""is this thing here, this thing, this""" start="00:42:43.640" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""thing and this thing... I'm going to""" start="00:42:47.800" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""call each one of these results""" start="00:42:54.320" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""&quot;captures&quot;, so each of these things""" start="00:42:56.120" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""between parentheses &quot;captures&quot; a substring""" start="00:42:59.520" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""of the original string and these""" start="00:43:03.320" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""captured substrings are returned in a""" start="00:43:06.040" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""certain order. Here is how to express the""" start="00:43:08.560" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""same thing in lpeg...""" start="00:43:11.840" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""it's very cryptic but it's a""" start="00:43:12.760" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""good way to understand the some basic""" start="00:43:15.920" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""operators of lpeg, I mean we can look at""" start="00:43:20.720" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""the manual and understand and""" start="00:43:23.880" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""what C, S and R do, and also""" start="00:43:26.480" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""exponentiation... and this strange thing""" start="00:43:30.520" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""here receives this string here, runs""" start="00:43:37.960" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""a function that I have defined, that""" start="00:43:41.320" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""converts it to an object of a certain""" start="00:43:43.280" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""class, and that class""" start="00:43:46.040" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""represents Re patterns, so this thing""" start="00:43:47.760" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""is treated as a pattern for re.lua,""" start="00:43:52.400" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""and it is matched against the string,""" start="00:43:54.480" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""and it returns the same thing as the""" start="00:43:56.480" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""other one.""" start="00:43:59.440" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""Also, this thing here also has a""" start="00:44:02.560" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""comparison with lpegrex, but these""" start="00:44:05.520" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""patterns are very trivial, they""" start="00:44:08.480" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""don't do anything very strange...""" start="00:44:11.560" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""so let's go back and see what""" start="00:44:13.360" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""kinds of very strange things there are.""" start="00:44:15.760" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""Here is the page of lpegrex at github,""" start="00:44:18.240" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""here's the documentation...""" start="00:44:26.560" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""it's relatively brief,""" start="00:44:29.720" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""it explains lpegrex as being an""" start="00:44:32.440" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""extension of Re.lua, so it explains""" start="00:44:35.240" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""mainly the additional features... here is a""" start="00:44:39.720" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""quick reference that explains only the""" start="00:44:42.880" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""additional features...""" start="00:44:45.120" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""some of the these things""" start="00:44:46.360" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""I was able to understand""" start="00:44:49.640" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""by struggling a lot, and some I wasn't""" start="00:44:50.920" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""able to even by spending several evenings""" start="00:44:57.560" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""try to to build examples...""" start="00:45:02.440" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""and this is something very nice. Lpegrex""" start="00:45:04.320" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""comes with some example parsers... and""" start="00:45:12.880" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""here is a parser that parses the Lua""" start="00:45:15.880" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""grammar - I mean, this is the the grammar""" start="00:45:18.680" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""for Lua 5.4 at the end of the""" start="00:45:22.480" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""reference manual... it's just this... this""" start="00:45:25.960" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""is in a kind of BNF, and this is the BNF""" start="00:45:31.200" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""translated""" start="00:45:34.800" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""to the language of lpegrex, so this""" start="00:45:35.600" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""thing uses many constructions that are""" start="00:45:39.920" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""in re.lua and some extra constructions that""" start="00:45:43.040" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""are described here... and with these""" start="00:45:48.000" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""examples I was able to to understand""" start="00:45:50.960" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""some of the...""" start="00:45:54.240" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""of these things here that are""" start="00:45:55.160" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""described here in the quick""" start="00:45:58.080" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""reference - but not all.""" start="00:46:00.240" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""So, I wasn't able to use lpegrex""" start="00:46:04.720" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""by itself, because some things didn't""" start="00:46:11.280" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""make much sense, and I decided to""" start="00:46:14.280" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""reimplement it in my own style,""" start="00:46:16.200" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""because that would be a way to map...""" start="00:46:18.760" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""to at the very least map what I had""" start="00:46:23.680" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""understood and what I didn't, learn""" start="00:46:26.840" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""one feature at a time, do comparisons, and""" start="00:46:29.560" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""so on.""" start="00:46:33.000" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""Here I pointed to two features of lpeg...""" start="00:46:35.320" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""in one I said &quot;Oh, great! This thing can""" start="00:46:38.800" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""be used to to define grammars, even""" start="00:46:41.680" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""recursive grammars&quot;, and so on...""" start="00:46:44.320" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""and this is an &quot;Oh, no!&quot; feature - one""" start="00:46:45.960" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""thing that didn't make any sense at all...""" start="00:46:49.760" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""group captures. One thing that I did to""" start="00:46:51.760" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""understand group captures was to""" start="00:46:56.440" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""represent them as diagrams. Of course in""" start="00:46:59.040" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""the beginning I was drawing these""" start="00:47:02.320" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""diagrams by hand, but then I realized""" start="00:47:05.360" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""that I could use the bits of lpeg""" start="00:47:08.920" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""that I already knew to build a grammar""" start="00:47:11.560" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""that would parse a little language and""" start="00:47:14.760" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""generate these diagrams in LaTeX, and I was""" start="00:47:17.480" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""able to make this.""" start="00:47:21.000" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""In this diagram here""" start="00:47:21.920" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""this thing above the arrow is Lua code...""" start="00:47:25.280" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""a piece of Lua code that""" start="00:47:30.720" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""specifies an lpeg pattern... this""" start="00:47:33.760" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""thing here at the top is the string that""" start="00:47:37.120" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""is being matched, and the things below""" start="00:47:39.560" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""the underbraces are the captures that""" start="00:47:43.040" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""each thing... sorry, that each thing""" start="00:47:46.600" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""captures.""" start="00:47:50.640" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""For example, this underbrace here""" start="00:47:51.320" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""corresponds to this pattern here,""" start="00:47:58.480" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""that parses a single character but""" start="00:48:00.280" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""doesn't return any captures, this thing""" start="00:48:02.880" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""here parses a single &quot;b&quot; and doesn't""" start="00:48:05.560" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""return any captures, this thing here""" start="00:48:08.120" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""parses a single character and captures""" start="00:48:11.240" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""it, and this thing here parses the""" start="00:48:14.400" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""character &quot;d&quot; and captures it... and this""" start="00:48:16.880" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""other thing here transforms this""" start="00:48:21.320" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""pattern into another pattern...""" start="00:48:24.440" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""returns first a capture with all""" start="00:48:27.280" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""the string that was parsed by this""" start="00:48:33.120" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""pattern here, and then all the captures""" start="00:48:35.080" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""returned by this thing here before""" start="00:48:37.400" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""the &quot;:&quot;.""" start="00:48:41.080" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""So, this was a way to build""" start="00:48:42.960" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""concrete examples for things that the""" start="00:48:45.480" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""lpag manual was explaining in a very terse""" start="00:48:48.600" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""way, and it worked for me - some things""" start="00:48:52.160" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""that were very""" start="00:48:55.800" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""mysterious started to make sense, and I""" start="00:48:57.000" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""started to have intelligent questions""" start="00:48:59.840" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""to ask in the mailing list.""" start="00:49:03.200" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""And with that I was able to""" start="00:49:06.080" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""understand what are group captures,""" start="00:49:10.960" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""and group captures that receive a name...""" start="00:49:12.960" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""Well, let me explain what this does.""" start="00:49:17.880" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""This thing here captures... sorry, parses""" start="00:49:22.720" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""the empty string and returns this as a""" start="00:49:27.120" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""constant... so, this is something that""" start="00:49:29.360" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""doesn't exist in regular expressions...""" start="00:49:32.960" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""it parses nothing and""" start="00:49:35.800" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""returns this as a capture... then this""" start="00:49:38.640" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""thing here returns these two""" start="00:49:41.840" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""constants here, and parses the empty""" start="00:49:44.600" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""string, and this thing here converts""" start="00:49:47.160" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""the results of this thing here into a""" start="00:49:51.280" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""group capture, and stores it in the label""" start="00:49:54.160" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""&quot;d&quot;... and then here's another constant""" start="00:49:57.640" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""capture.""" start="00:50:03.280" video="mainVideo-repl" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Building lists""" start="00:50:03.720" video="mainVideo-repl" id="subtitle"]]</div>[[!template text="""And I realized that these things""" start="00:50:03.720" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""here were similar to how Lua""" start="00:50:05.680" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""specifies building lists...""" start="00:50:08.600" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""when we build... sorry, tables. When""" start="00:50:09.840" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""we build a table, and we say that the""" start="00:50:16.240" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""first element of the table is here, this""" start="00:50:18.760" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""element is put at the end of the table...""" start="00:50:21.880" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""when after the that would say d=42...""" start="00:50:23.560" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""we are putting the 42""" start="00:50:29.400" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""in the the slot whose key is &quot;d&quot;.""" start="00:50:31.200" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""This was happening with lpeg captures,""" start="00:50:34.560" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""but there was something very strange...""" start="00:50:39.000" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""these group captures could hold""" start="00:50:43.360" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""more than one capture - more than one""" start="00:50:46.200" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""value... so there was something between""" start="00:50:49.200" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""lists and tables. I started to use this""" start="00:50:51.760" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""notation to...""" start="00:50:58.040" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""explain in my notation what they""" start="00:51:00.480" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""were doing... many things started""" start="00:51:04.960" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""to make sense, many mysterious""" start="00:51:08.160" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""sentences in the manual started to""" start="00:51:10.240" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""make sense... but some didn't...""" start="00:51:12.880" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""but at least I was able to send""" start="00:51:14.440" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""some intelligent questions to the""" start="00:51:19.680" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""mailing lis,t and the author of Lua and""" start="00:51:22.320" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""lpeg answered some of them...""" start="00:51:25.200" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""he was not very happy about my""" start="00:51:27.360" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""questions - he... told me that those""" start="00:51:31.520" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""diagrams were a waste of time, the""" start="00:51:34.960" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""manual was perfectly clear, and so on...""" start="00:51:37.680" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""whatever - but I was able to...""" start="00:51:40.560" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""so, it was weird, but I was able to""" start="00:51:44.920" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""understand lots of things from his""" start="00:51:48.880" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""answers. This is a copy of one of""" start="00:51:51.800" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""my messages, then there's another one,""" start="00:51:56.520" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""another one, some of them had diagrams...""" start="00:51:58.240" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""then he complained about these diagrams,""" start="00:52:01.240" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""he said that these things here, that look""" start="00:52:04.360" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""like table constructors, &quot;do not exist&quot;...""" start="00:52:08.440" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""whatever... anyway, once I understood""" start="00:52:11.120" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""group captures many features""" start="00:52:17.200" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""were very easy to understand""" start="00:52:20.680" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""and I started to be able to use lpeg to""" start="00:52:23.360" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""to build some very interesting things...""" start="00:52:26.040" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""I was able to reproduce some""" start="00:52:28.160" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""of the features that I saw in lpegrex -""" start="00:52:33.040" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""remember that this... where is that?""" start="00:52:36.360" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""this is the syntax of Lua... here -""" start="00:52:41.080" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""I was able to understand""" start="00:52:46.120" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""how these things here were translated to""" start="00:52:48.960" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""lpeg code... to lpeg patterns""" start="00:52:52.480" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""by using group captures in a certain""" start="00:52:55.360" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""way... I was able to implement them""" start="00:52:58.240" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""in ELpeg1.lua...""" start="00:53:03.040" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""and after some time I was able to use""" start="00:53:04.760" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""ELpeg1.lua to build grammars that""" start="00:53:08.720" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""were able to parse""" start="00:53:12.880" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""arithmetical expressions with the""" start="00:53:14.160" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""right precedence... and here's an example""" start="00:53:18.680" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""in which I built the grammar step by step...""" start="00:53:20.960" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""and I test the current grammar, and I""" start="00:53:23.320" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""replace a bit, and then I test the new""" start="00:53:29.240" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""grammar and so on...""" start="00:53:35.080" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""and you can see that the result is""" start="00:53:36.600" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""always a tree that is drawn in a""" start="00:53:39.080" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""nice two dimensional way...""" start="00:53:43.360" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""At this point these powers here""" start="00:53:44.240" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""are returned as a list,""" start="00:53:48.920" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""as an operation &quot;pow&quot;""" start="00:53:50.560" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""with several arguments, here... and then""" start="00:53:53.120" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""I apply a kind of parsing combinator,""" start="00:53:57.560" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""here... that transforms these trees into""" start="00:54:00.520" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""other trees and with these combinators""" start="00:54:03.720" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""here I can specify that the &quot;^&quot; is""" start="00:54:08.200" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""associative in a certain direction...""" start="00:54:12.200" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""that the &quot;/&quot; is associative in""" start="00:54:14.640" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""another direction... the &quot;-&quot; uses""" start="00:54:17.520" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""the same direction as a the &quot;/&quot;,""" start="00:54:20.120" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""and so on... and they have the""" start="00:54:23.080" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""right precedences.""" start="00:54:26.080" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""So, here are the tests...""" start="00:54:29.680" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""here is my file ELpeg1.lua... it has""" start="00:54:34.560" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""several classes, each class has tests""" start="00:54:38.120" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""after it...""" start="00:54:41.720" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""I was able to implement something""" start="00:54:42.280" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""that lpegrex has, that is called""" start="00:54:46.240" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""&quot;keywords&quot;, that is very useful for parsing""" start="00:54:50.520" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""programs in programming languages...""" start="00:54:53.520" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""I was able to implement something""" start="00:54:56.480" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""similar to the debugger... to the""" start="00:54:59.440" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""lpeg debugger lpeg uses... I was""" start="00:55:02.640" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""frustrated by some limitations of""" start="00:55:08.000" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""the lpeg debugger, and I implemented""" start="00:55:11.400" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""my own that is, uh... much better!...""" start="00:55:16.840" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""Let me show something else... I was""" start="00:55:23.440" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""able to translate a good part of the""" start="00:55:24.760" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""Lua parser, here, to ELpeg1.lua... I haven't""" start="00:55:27.120" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""finished yet, but I have most of the""" start="00:55:33.040" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""the translation here...""" start="00:55:38.400" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""and after having all that I was able to""" start="00:55:39.720" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""build other grammars very quickly...""" start="00:55:47.280" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""writing new parsers finally became fun.""" start="00:55:50.320" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""And here's one example that I showed in the""" start="00:55:55.240" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""beginning.""" start="00:55:58.720" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""If I remember correctly...""" start="00:56:00.640" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""I took a figure from the Wikipedia...""" start="00:56:05.800" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""I don't have its link now...""" start="00:56:10.640" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""but I specified a grammar that parses""" start="00:56:12.440" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""exactly the example that appears""" start="00:56:17.080" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""in the Wikipedia...""" start="00:56:20.120" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""so, with my grammar, considering that""" start="00:56:20.840" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""the top level entry is &quot;Stmt&quot;, when I""" start="00:56:24.680" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""parse this string here""" start="00:56:28.720" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""the result is this tree...""" start="00:56:30.680" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""and I can do some operations on that,""" start="00:56:36.600" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""I can define how this thing is to be""" start="00:56:41.120" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""converted into LaTeX,""" start="00:56:44.040" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""I can define other operations""" start="00:56:45.640" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""that convert trees into other trees, and""" start="00:56:49.400" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""here are some tests of these operations...""" start="00:56:53.000" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""This is what I showed in the beginning...""" start="00:56:54.880" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""I'm not going to explain all the details""" start="00:57:00.360" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""of this thing now...""" start="00:57:02.760" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""this :show() converts this thing""" start="00:57:04.000" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""into LaTeX in the way specified by these""" start="00:57:09.200" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""instructions here, that says that...""" start="00:57:11.920" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""well, whatever...""" start="00:57:16.160" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""and here's the result - the LaTeXed result...""" start="00:57:25.240" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""and these diagrams here are generated by""" start="00:57:32.960" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""this file here, that defines a simple""" start="00:57:41.760" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""grammar that parses this thing here,""" start="00:57:46.720" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""and then LaTeXes it in a certain way, and""" start="00:57:48.480" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""and also tests to check if this code here...""" start="00:57:52.000" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""this Lua code that generates an lpeg grammar...""" start="00:57:56.400" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""parses this subject here and""" start="00:58:02.000" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""returns the expected result...""" start="00:58:05.800" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""So: this is the code that I""" start="00:58:08.600" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""wanted to show. I wanted to show many""" start="00:58:12.240" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""more things but I wasn't able to prepare""" start="00:58:16.720" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""them before the conference... and I hope""" start="00:58:19.920" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""that soon - for some value of &quot;soon&quot; -""" start="00:58:23.920" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""I'll be able to create REPL-based""" start="00:58:27.520" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""tutorials for lpeg, Re, and ELpeg1.lua...""" start="00:58:30.400" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""where lpeg is something very famous,""" start="00:58:33.920" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""Re is a module of lpeg...""" start="00:58:36.320" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""I could also do something like this""" start="00:58:39.200" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""for lpegrex... and ELpeg1.lua is""" start="00:58:42.400" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""the thing that I wrote, the one that""" start="00:58:47.800" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""has test in comments, and the tests""" start="00:58:51.160" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""usually generate trees, and sometimes""" start="00:58:56.800" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""they generate TeX code.""" start="00:58:59.520" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""Yeah, so that's it! I wanted to""" start="00:59:00.880" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""present much more but I wasn't able to""" start="00:59:04.960" video="mainVideo-repl" id="subtitle"]]
+[[!template text="""prepare it... so: sorry, thanks, bye! =)""" start="00:59:07.160" video="mainVideo-repl" id="subtitle"]]
+
+</div>Questions or comments? Please e-mail [eduardoochs@gmail.com](mailto:eduardoochs@gmail.com?subject=Comment%20for%20EmacsConf%202023%20repl%3A%20REPLs%20in%20strange%20places%3A%20Lua%2C%20LaTeX%2C%20LPeg%2C%20LPegRex%2C%20TikZ)
<!-- End of emacsconf-publish-after-page -->
diff --git a/2023/info/repl-before.md b/2023/info/repl-before.md
index 73680db9..9b9e2efa 100644
--- a/2023/info/repl-before.md
+++ b/2023/info/repl-before.md
@@ -1,12 +1,28 @@
<!-- Automatically generated by emacsconf-publish-before-page -->
[[!toc ]]
-Format: 40-min talk followed by IRC Q&A
-Discuss on IRC: [#emacsconf](https://chat.emacsconf.org/?join=emacsconf)
-Status: Waiting for video from speaker
+Format: 60-min talk ; Q&A: IRC
+Status: Q&A to be extracted from the room recordings
+<div class="vid mainVideo"><video controls preload="none" id="mainVideo-repl"><source src="https://media.emacsconf.org/2023/emacsconf-2023-repl--repls-in-strange-places-lua-latex-lpeg-lpegrex-tikz--eduardo-ochs--main.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2023/captions/emacsconf-2023-repl--repls-in-strange-places-lua-latex-lpeg-lpegrex-tikz--eduardo-ochs--main.vtt" default />"""<track kind="chapters" label="Chapters" src="/2023/captions/emacsconf-2023-repl--repls-in-strange-places-lua-latex-lpeg-lpegrex-tikz--eduardo-ochs--main--chapters.vtt" /><p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video>[[!template id="chapters" vidid="mainVideo-repl" data="""
+00:00.000 Intro
+00:21.560 Diagrams
+01:03.320 eev
+02:51.360 Another figure
+08:52.560 eev-wconfig, magic, and black boxes
+10:44.240 Lua
+16:10.960 Object orientation in Lua
+19:19.823 My init file
+20:31.000 LaTeX and LuaLaTeX
+25:28.280 Manim
+26:30.880 Generating diagrams from REPLs
+31:03.240 Parsers
+39:03.200 ELpeg1.lua
+50:04.160 Building lists
+
+"""]]<div></div>Duration: 59:10 minutes<div class="files resources"><ul><li><a href="https://pad.emacsconf.org/2023-repl">Open Etherpad</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-repl--repls-in-strange-places-lua-latex-lpeg-lpegrex-tikz--eduardo-ochs--intro.vtt">Download --intro.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-repl--repls-in-strange-places-lua-latex-lpeg-lpegrex-tikz--eduardo-ochs--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-repl--repls-in-strange-places-lua-latex-lpeg-lpegrex-tikz--eduardo-ochs--main--chapters.vtt">Download --main--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-repl--repls-in-strange-places-lua-latex-lpeg-lpegrex-tikz--eduardo-ochs--main.opus">Download --main.opus (29MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-repl--repls-in-strange-places-lua-latex-lpeg-lpegrex-tikz--eduardo-ochs--main.vtt">Download --main.vtt</a> (unedited)</li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-repl--repls-in-strange-places-lua-latex-lpeg-lpegrex-tikz--eduardo-ochs--main.webm">Download --main.webm (187MB)</a></li><li><a href="https://toobnix.org/w/oAjqkLNfo9B63EE1G6cJJV">View on Toobnix</a></li><li><a href="https://www.youtube.com/watch?v=lGjfzfC1CH0">View on Youtube</a></li></ul></div></div>
# Description
<!-- End of emacsconf-publish-before-page --> \ No newline at end of file
diff --git a/2023/info/repl-nav.md b/2023/info/repl-nav.md
index 1e990634..a2bde0f3 100644
--- a/2023/info/repl-nav.md
+++ b/2023/info/repl-nav.md
@@ -2,6 +2,6 @@
<div class="talk-nav">
Back to the [[talks]]
Previous by track: <a href="/2023/talks/eval">Editor Integrated REPL Driven Development for all languages</a>
-Next by track: <a href="/2023/talks/hyperdrive">hyperdrive.el: Peer-to-peer filesystem in Emacs</a>
-Track: <span class="sched-track Development">Development</span>
+Next by track: <a href="/2023/talks/doc">Literate Documentation with Emacs and Org Mode</a>
+Track: <span class="sched-track Development">Development</span> - <strong><a href="https://emacsconf.org/2023/watch/dev">Watch</a></strong>
</div>
diff --git a/2023/info/sat-close-after.md b/2023/info/sat-close-after.md
index a51ef399..caa994ab 100644
--- a/2023/info/sat-close-after.md
+++ b/2023/info/sat-close-after.md
@@ -1,7 +1,177 @@
<!-- Automatically generated by emacsconf-publish-after-page -->
-Questions or comments? Please e-mail [emacsconf-org-private@gnu.org](mailto:emacsconf-org-private@gnu.org?subject=Comment%20for%20EmacsConf%202022%20sat-close%3A%20Saturday%20closing%20remarks)
+<div class="transcript transcript-mainVideo"><a name="sat-close-mainVideo-transcript"></a><h1>Transcript (unedited)</h1>
+
+[[!template text="""[Speaker 0]: Session is being recorded.""" start="00:00:05.200" video="mainVideo-sat-close" id="subtitle"]]
+[[!template text="""Just waiting for Corwin and Leo.""" start="00:00:06.819" video="mainVideo-sat-close" id="subtitle"]]
+[[!template text="""Great. Corwin, would you like to share your""" start="00:00:16.359" video="mainVideo-sat-close" id="subtitle"]]
+[[!template text="""screen?""" start="00:00:17.960" video="mainVideo-sat-close" id="subtitle"]]
+[[!template text="""Let's see the audio through BBB so we don't""" start="00:00:37.620" video="mainVideo-sat-close" id="subtitle"]]
+[[!template text="""have to splice it in afterwards because it's""" start="00:00:39.840" video="mainVideo-sat-close" id="subtitle"]]
+[[!template text="""annoying to splice things.""" start="00:00:41.720" video="mainVideo-sat-close" id="subtitle"]]
+[[!template text="""I mean, Leo will be taking care of it,""" start="00:00:43.680" video="mainVideo-sat-close" id="subtitle"]]
+[[!template text="""not me, so. Okay, he's going to finish up.""" start="00:00:47.020" video="mainVideo-sat-close" id="subtitle"]]
+[[!template text="""[Speaker 1]: So, in the meantime, it's been a long day,""" start="00:00:52.720" video="mainVideo-sat-close" id="subtitle"]]
+[[!template text="""people. Thanks for sticking around.""" start="00:00:55.320" video="mainVideo-sat-close" id="subtitle"]]
+[[!template text="""And we're going to do a little bit of jazz""" start="00:00:57.180" video="mainVideo-sat-close" id="subtitle"]]
+[[!template text="""handing until Corwin comes back.""" start="00:00:58.739" video="mainVideo-sat-close" id="subtitle"]]
+[[!template text="""Smack. I""" start="00:01:00.060" video="mainVideo-sat-close" id="subtitle"]]
+[[!template text="""[Speaker 2]: can't imagine an Emacs con without getting to""" start="00:01:14.240" video="mainVideo-sat-close" id="subtitle"]]
+[[!template text="""enjoy Leo's famous jazz hands.""" start="00:01:16.020" video="mainVideo-sat-close" id="subtitle"]]
+[[!template text="""[Speaker 1]: I can tell you it's a lot easier...""" start="00:01:21.420" video="mainVideo-sat-close" id="subtitle"]]
+[[!template text="""Hello? I can tell you it's a lot easier to do""" start="00:01:23.160" video="mainVideo-sat-close" id="subtitle"]]
+[[!template text="""jazz hands at 9am EST than it is at 5pm EST,""" start="00:01:25.760" video="mainVideo-sat-close" id="subtitle"]]
+[[!template text="""because for me it's 11 and I've barely seen""" start="00:01:30.860" video="mainVideo-sat-close" id="subtitle"]]
+[[!template text="""this 1 today. Okay Corwin,""" start="00:01:34.160" video="mainVideo-sat-close" id="subtitle"]]
+[[!template text="""do you have a presentation right now?""" start="00:01:39.720" video="mainVideo-sat-close" id="subtitle"]]
+[[!template text="""We do not seem to be able to hear you,""" start="00:01:45.480" video="mainVideo-sat-close" id="subtitle"]]
+[[!template text="""Corwin. Okay, just bear with us,""" start="00:01:47.440" video="mainVideo-sat-close" id="subtitle"]]
+[[!template text="""folks. We're gonna figure out this 1.""" start="00:01:55.240" video="mainVideo-sat-close" id="subtitle"]]
+[[!template text="""This is the last bug of the day,""" start="00:01:57.380" video="mainVideo-sat-close" id="subtitle"]]
+[[!template text="""and then we're clear until tomorrow.""" start="00:01:58.660" video="mainVideo-sat-close" id="subtitle"]]
+[[!template text="""[Speaker 2]: I just heard you, but I don't know if it was""" start="00:02:05.820" video="mainVideo-sat-close" id="subtitle"]]
+[[!template text="""here or via mumble. Okay.""" start="00:02:07.700" video="mainVideo-sat-close" id="subtitle"]]
+[[!template text="""[Speaker 1]: Can we figure out? Whenever there's a problem""" start="00:02:14.540" video="mainVideo-sat-close" id="subtitle"]]
+[[!template text="""like this, like Sash and myself are furiously""" start="00:02:17.360" video="mainVideo-sat-close" id="subtitle"]]
+[[!template text="""typing in the background,""" start="00:02:19.460" video="mainVideo-sat-close" id="subtitle"]]
+[[!template text="""we say, oh, can we fix this slide?""" start="00:02:20.640" video="mainVideo-sat-close" id="subtitle"]]
+[[!template text="""But here, I'm stumped.""" start="00:02:22.740" video="mainVideo-sat-close" id="subtitle"]]
+[[!template text="""[Speaker 2]: I think Corbin is in the GenTrack on Mumble.""" start="00:02:33.180" video="mainVideo-sat-close" id="subtitle"]]
+[[!template text="""[Speaker 1]: Okay, so let's all switch to GenTrack and""" start="00:02:40.520" video="mainVideo-sat-close" id="subtitle"]]
+[[!template text="""we'll be able to figure out the way.""" start="00:02:43.780" video="mainVideo-sat-close" id="subtitle"]]
+[[!template text="""[Speaker 0]: Okay, well, while Corwin figures out how to""" start="00:03:18.420" video="mainVideo-sat-close" id="subtitle"]]
+[[!template text="""get started, we might as well maybe do a""" start="00:03:21.540" video="mainVideo-sat-close" id="subtitle"]]
+[[!template text="""little bit of closing remarks,""" start="00:03:23.940" video="mainVideo-sat-close" id="subtitle"]]
+[[!template text="""and then you can jump in whenever you want.""" start="00:03:25.380" video="mainVideo-sat-close" id="subtitle"]]
+[[!template text="""[Speaker 1]: Sounds good to me.""" start="00:03:29.440" video="mainVideo-sat-close" id="subtitle"]]
+[[!template text="""[Speaker 0]: Okay. Thank you, everyone,""" start="00:03:31.980" video="mainVideo-sat-close" id="subtitle"]]
+[[!template text="""for coming to Emacs Conf 2023.""" start="00:03:34.459" video="mainVideo-sat-close" id="subtitle"]]
+[[!template text="""We made it to the end of the first day!""" start="00:03:37.120" video="mainVideo-sat-close" id="subtitle"]]
+[[!template text="""Hooray! We're going to keep these closing""" start="00:03:39.140" video="mainVideo-sat-close" id="subtitle"]]
+[[!template text="""remarks short because it's a long day.""" start="00:03:40.440" video="mainVideo-sat-close" id="subtitle"]]
+[[!template text="""It's almost midnight and Leah will turn into""" start="00:03:42.880" video="mainVideo-sat-close" id="subtitle"]]
+[[!template text="""a pumpkin very soon. So before that happens,""" start="00:03:44.920" video="mainVideo-sat-close" id="subtitle"]]
+[[!template text="""we just want to say hello and thanks.""" start="00:03:48.580" video="mainVideo-sat-close" id="subtitle"]]
+[[!template text="""And pre-recorded talks are already up.""" start="00:03:50.640" video="mainVideo-sat-close" id="subtitle"]]
+[[!template text="""They're on the talk pages,""" start="00:03:55.260" video="mainVideo-sat-close" id="subtitle"]]
+[[!template text="""they're on media.emaxcontent.org.""" start="00:03:56.520" video="mainVideo-sat-close" id="subtitle"]]
+[[!template text="""We'll work on extracting the live talks,""" start="00:03:58.860" video="mainVideo-sat-close" id="subtitle"]]
+[[!template text="""but it'll take a few weeks.""" start="00:04:00.620" video="mainVideo-sat-close" id="subtitle"]]
+[[!template text="""[Speaker 3]: Maybe, you""" start="00:04:01.920" video="mainVideo-sat-close" id="subtitle"]]
+[[!template text="""[Speaker 0]: know, we'll see how it goes.""" start="00:04:02.220" video="mainVideo-sat-close" id="subtitle"]]
+[[!template text="""Please feel free to spread the word,""" start="00:04:04.540" video="mainVideo-sat-close" id="subtitle"]]
+[[!template text="""because you know some people didn't actually""" start="00:04:06.100" video="mainVideo-sat-close" id="subtitle"]]
+[[!template text="""know there was EmacsConf this weekend,""" start="00:04:07.720" video="mainVideo-sat-close" id="subtitle"]]
+[[!template text="""so let them know, because it's a lot of fun.""" start="00:04:09.380" video="mainVideo-sat-close" id="subtitle"]]
+[[!template text="""More talks tomorrow. And if you've got ideas""" start="00:04:11.400" video="mainVideo-sat-close" id="subtitle"]]
+[[!template text="""for making things better,""" start="00:04:15.020" video="mainVideo-sat-close" id="subtitle"]]
+[[!template text="""or If you'd like to tell us what's working""" start="00:04:15.900" video="mainVideo-sat-close" id="subtitle"]]
+[[!template text="""well and what you'd like,""" start="00:04:17.500" video="mainVideo-sat-close" id="subtitle"]]
+[[!template text="""please put them in the conference pad at""" start="00:04:18.940" video="mainVideo-sat-close" id="subtitle"]]
+[[!template text="""pad.emaxconf.org. Anything anyone want to""" start="00:04:21.180" video="mainVideo-sat-close" id="subtitle"]]
+[[!template text="""add?""" start="00:04:26.580" video="mainVideo-sat-close" id="subtitle"]]
+[[!template text="""[Speaker 1]: I'm all good.""" start="00:04:30.060" video="mainVideo-sat-close" id="subtitle"]]
+[[!template text="""[Speaker 2]: Let's see if Corwin can get his mic to work.""" start="00:04:32.900" video="mainVideo-sat-close" id="subtitle"]]
+[[!template text="""No, it's not.""" start="00:04:37.740" video="mainVideo-sat-close" id="subtitle"]]
+[[!template text="""[Speaker 1]: Well, I mean, did you want to say something""" start="00:04:43.520" video="mainVideo-sat-close" id="subtitle"]]
+[[!template text="""as well? Because people have heard you talk""" start="00:04:45.140" video="mainVideo-sat-close" id="subtitle"]]
+[[!template text="""all day long on the Dev track,""" start="00:04:47.220" video="mainVideo-sat-close" id="subtitle"]]
+[[!template text="""but not on the general track,""" start="00:04:49.120" video="mainVideo-sat-close" id="subtitle"]]
+[[!template text="""actually. It's the first time they hear you""" start="00:04:50.240" video="mainVideo-sat-close" id="subtitle"]]
+[[!template text="""today.""" start="00:04:51.540" video="mainVideo-sat-close" id="subtitle"]]
+[[!template text="""[Speaker 2]: Right. Oh, well, way to put me on the spot,""" start="00:04:52.540" video="mainVideo-sat-close" id="subtitle"]]
+[[!template text="""but more seriously, thanks.""" start="00:04:56.540" video="mainVideo-sat-close" id="subtitle"]]
+[[!template text="""So yeah, it's a lot of fun.""" start="00:04:58.040" video="mainVideo-sat-close" id="subtitle"]]
+[[!template text="""You know, it's, we sort of keep coming back""" start="00:05:00.340" video="mainVideo-sat-close" id="subtitle"]]
+[[!template text="""every year and doing this conference.""" start="00:05:03.760" video="mainVideo-sat-close" id="subtitle"]]
+[[!template text="""It's always been fun. And we keep doing it""" start="00:05:06.300" video="mainVideo-sat-close" id="subtitle"]]
+[[!template text="""thanks to, you know, all the people who""" start="00:05:08.720" video="mainVideo-sat-close" id="subtitle"]]
+[[!template text="""submit all these amazing talks with these""" start="00:05:11.320" video="mainVideo-sat-close" id="subtitle"]]
+[[!template text="""amazing sessions. And of course the audience""" start="00:05:14.600" video="mainVideo-sat-close" id="subtitle"]]
+[[!template text="""as well. I don't have a lot to say I guess""" start="00:05:16.560" video="mainVideo-sat-close" id="subtitle"]]
+[[!template text="""for today because I think we're hoping to""" start="00:05:19.940" video="mainVideo-sat-close" id="subtitle"]]
+[[!template text="""keep it kind of short and sweet.""" start="00:05:21.500" video="mainVideo-sat-close" id="subtitle"]]
+[[!template text="""So yeah, I think that's about it for me.""" start="00:05:24.400" video="mainVideo-sat-close" id="subtitle"]]
+[[!template text="""I guess we'll maybe wait another minute or so""" start="00:05:25.920" video="mainVideo-sat-close" id="subtitle"]]
+[[!template text="""to see if Cormen can make it.""" start="00:05:28.380" video="mainVideo-sat-close" id="subtitle"]]
+[[!template text="""But yeah, that's all for me.""" start="00:05:30.580" video="mainVideo-sat-close" id="subtitle"]]
+[[!template text="""[Speaker 1]: All right, great. Speaking of putting people""" start="00:05:34.820" video="mainVideo-sat-close" id="subtitle"]]
+[[!template text="""on the spot, you might see a face in the room""" start="00:05:37.920" video="mainVideo-sat-close" id="subtitle"]]
+[[!template text="""that you might have seen last year,""" start="00:05:41.600" video="mainVideo-sat-close" id="subtitle"]]
+[[!template text="""but we've got Flobby Koda in the room as""" start="00:05:43.840" video="mainVideo-sat-close" id="subtitle"]]
+[[!template text="""well, who you might not have heard of him but""" start="00:05:45.700" video="mainVideo-sat-close" id="subtitle"]]
+[[!template text="""he's been doing a lot of the check-ins today""" start="00:05:49.400" video="mainVideo-sat-close" id="subtitle"]]
+[[!template text="""for most of the speakers and he's been doing""" start="00:05:51.140" video="mainVideo-sat-close" id="subtitle"]]
+[[!template text="""a wonderful job at it.""" start="00:05:53.360" video="mainVideo-sat-close" id="subtitle"]]
+[[!template text="""Florian, do you want to say a word if only to""" start="00:05:54.520" video="mainVideo-sat-close" id="subtitle"]]
+[[!template text="""say you're being put on the spot?""" start="00:05:56.560" video="mainVideo-sat-close" id="subtitle"]]
+[[!template text="""[Speaker 4]: I have nothing prepared really but I just""" start="00:06:00.620" video="mainVideo-sat-close" id="subtitle"]]
+[[!template text="""want to thank everybody who could,""" start="00:06:02.840" video="mainVideo-sat-close" id="subtitle"]]
+[[!template text="""with who I could talk in between.""" start="00:06:05.380" video="mainVideo-sat-close" id="subtitle"]]
+[[!template text="""So I had like wonderful 20 to 30 minute talks""" start="00:06:07.360" video="mainVideo-sat-close" id="subtitle"]]
+[[!template text="""with every speaker before they get into the""" start="00:06:10.580" video="mainVideo-sat-close" id="subtitle"]]
+[[!template text="""live Q&A or the live presentation.""" start="00:06:12.900" video="mainVideo-sat-close" id="subtitle"]]
+[[!template text="""Thanks a lot for everybody,""" start="00:06:15.780" video="mainVideo-sat-close" id="subtitle"]]
+[[!template text="""I learned quite a lot and also thank you for""" start="00:06:16.920" video="mainVideo-sat-close" id="subtitle"]]
+[[!template text="""all of you guys and everyone for having such""" start="00:06:19.640" video="mainVideo-sat-close" id="subtitle"]]
+[[!template text="""a beautiful experience here.""" start="00:06:22.360" video="mainVideo-sat-close" id="subtitle"]]
+[[!template text="""[Speaker 1]: Well, thank you. We're glad to have you.""" start="00:06:25.960" video="mainVideo-sat-close" id="subtitle"]]
+[[!template text="""Okay, Sasha, Unless you've got anything else""" start="00:06:29.180" video="mainVideo-sat-close" id="subtitle"]]
+[[!template text="""to add, and Corwin, have you fixed your""" start="00:06:31.120" video="mainVideo-sat-close" id="subtitle"]]
+[[!template text="""microphone? Yes, we can hear you Corwin.""" start="00:06:33.880" video="mainVideo-sat-close" id="subtitle"]]
+[[!template text="""Okay, well let's start again.""" start="00:06:38.400" video="mainVideo-sat-close" id="subtitle"]]
+[[!template text="""Let's forget everything you've heard for the""" start="00:06:39.160" video="mainVideo-sat-close" id="subtitle"]]
+[[!template text="""last 20 minutes. We'll start again.""" start="00:06:40.440" video="mainVideo-sat-close" id="subtitle"]]
+[[!template text="""I'm just kidding.""" start="00:06:41.640" video="mainVideo-sat-close" id="subtitle"]]
+[[!template text="""[Speaker 3]: You tell me. No, I mean,""" start="00:06:35.280" video="mainVideo-sat-close" id="subtitle"]]
+[[!template text="""I don't know what I could possibly add to all""" start="00:06:45.560" video="mainVideo-sat-close" id="subtitle"]]
+[[!template text="""that. I think we absolutely should get some""" start="00:06:47.760" video="mainVideo-sat-close" id="subtitle"]]
+[[!template text="""rest, save it for tomorrow.""" start="00:06:50.200" video="mainVideo-sat-close" id="subtitle"]]
+[[!template text="""I was just looking through these notes in the""" start="00:06:52.540" video="mainVideo-sat-close" id="subtitle"]]
+[[!template text="""couple of minutes that I had between my own""" start="00:06:55.240" video="mainVideo-sat-close" id="subtitle"]]
+[[!template text="""talk. Thank you for your help with that.""" start="00:06:57.480" video="mainVideo-sat-close" id="subtitle"]]
+[[!template text="""But also, especially you,""" start="00:07:00.720" video="mainVideo-sat-close" id="subtitle"]]
+[[!template text="""Sasha, and Leo, and everybody in the IRC over""" start="00:07:02.420" video="mainVideo-sat-close" id="subtitle"]]
+[[!template text="""the months here, just encouraging me to keep""" start="00:07:08.040" video="mainVideo-sat-close" id="subtitle"]]
+[[!template text="""going when it was just seemed futile.""" start="00:07:10.440" video="mainVideo-sat-close" id="subtitle"]]
+[[!template text="""Even though it just really turned into a""" start="00:07:13.580" video="mainVideo-sat-close" id="subtitle"]]
+[[!template text="""brain dump, I appreciate getting the chance""" start="00:07:15.780" video="mainVideo-sat-close" id="subtitle"]]
+[[!template text="""of feeling like that process is more""" start="00:07:18.120" video="mainVideo-sat-close" id="subtitle"]]
+[[!template text="""documented now than it was before I did it.""" start="00:07:20.320" video="mainVideo-sat-close" id="subtitle"]]
+[[!template text="""Hey, that's not nothing,""" start="00:07:22.540" video="mainVideo-sat-close" id="subtitle"]]
+[[!template text="""right? And that's why we all do this.""" start="00:07:23.440" video="mainVideo-sat-close" id="subtitle"]]
+[[!template text="""And I don't know, Floey really said it""" start="00:07:25.440" video="mainVideo-sat-close" id="subtitle"]]
+[[!template text="""perfect. Like, I appreciate the chance to get""" start="00:07:28.360" video="mainVideo-sat-close" id="subtitle"]]
+[[!template text="""to work on this with you.""" start="00:07:30.520" video="mainVideo-sat-close" id="subtitle"]]
+[[!template text="""I learned so much.""" start="00:07:31.560" video="mainVideo-sat-close" id="subtitle"]]
+[[!template text="""[Speaker 1]: Amazing. Well, you know what?""" start="00:07:36.400" video="mainVideo-sat-close" id="subtitle"]]
+[[!template text="""Without further ado, I believe it's time for""" start="00:07:39.020" video="mainVideo-sat-close" id="subtitle"]]
+[[!template text="""us to say goodbye for day 1.""" start="00:07:41.380" video="mainVideo-sat-close" id="subtitle"]]
+[[!template text="""We will obviously be seeing you tomorrow at 9""" start="00:07:42.840" video="mainVideo-sat-close" id="subtitle"]]
+[[!template text="""a.m. I think the schedule is actually stating""" start="00:07:45.340" video="mainVideo-sat-close" id="subtitle"]]
+[[!template text="""we're starting at 8.59am.""" start="00:07:48.740" video="mainVideo-sat-close" id="subtitle"]]
+[[!template text="""Is it correct?""" start="00:07:50.500" video="mainVideo-sat-close" id="subtitle"]]
+[[!template text="""[Speaker 0]: Yes, I think the chrono tab will kick in.""" start="00:07:51.220" video="mainVideo-sat-close" id="subtitle"]]
+[[!template text="""The video is like 6 minutes long.""" start="00:07:54.020" video="mainVideo-sat-close" id="subtitle"]]
+[[!template text="""Actually, maybe I should,""" start="00:07:57.620" video="mainVideo-sat-close" id="subtitle"]]
+[[!template text="""I'll give it an extra minute for safety,""" start="00:07:58.660" video="mainVideo-sat-close" id="subtitle"]]
+[[!template text="""I think. Yeah, yeah. I'll tweak the timing.""" start="00:08:00.660" video="mainVideo-sat-close" id="subtitle"]]
+[[!template text="""[Speaker 1]: I think that'd be wise for people we do not""" start="00:08:04.340" video="mainVideo-sat-close" id="subtitle"]]
+[[!template text="""know basically 8.59 is when I brush my teeth""" start="00:08:06.420" video="mainVideo-sat-close" id="subtitle"]]
+[[!template text="""before going live so we might be in a very""" start="00:08:08.460" video="mainVideo-sat-close" id="subtitle"]]
+[[!template text="""awkward spot for me to introduce the talk if""" start="00:08:10.680" video="mainVideo-sat-close" id="subtitle"]]
+[[!template text="""it happens. Well anyway folks thank you very""" start="00:08:12.740" video="mainVideo-sat-close" id="subtitle"]]
+[[!template text="""much for watching and we'll see you tomorrow.""" start="00:08:15.420" video="mainVideo-sat-close" id="subtitle"]]
+[[!template text="""Bye-bye! All right, I have closed the bbb oh""" start="00:08:19.360" video="mainVideo-sat-close" id="subtitle"]]
+[[!template text="""it's restarting apparently oh it's we're back""" start="00:08:31.320" video="mainVideo-sat-close" id="subtitle"]]
+[[!template text="""on the q and a between stephan and let's""" start="00:08:34.780" video="mainVideo-sat-close" id="subtitle"]]
+[[!template text="""close this hey we are off""" start="00:08:37.480" video="mainVideo-sat-close" id="subtitle"]]
+[[!template text="""[Speaker 3]: we are clear I am pausing the recording I""" start="00:08:44.700" video="mainVideo-sat-close" id="subtitle"]]
+[[!template text="""don't have permission to do that in this""" start="00:08:52.540" video="mainVideo-sat-close" id="subtitle"]]
+[[!template text="""room.""" start="00:08:54.280" video="mainVideo-sat-close" id="subtitle"]]
+
+</div>Questions or comments? Please e-mail [emacsconf-org-private@gnu.org](mailto:emacsconf-org-private@gnu.org?subject=Comment%20for%20EmacsConf%202023%20sat-close%3A%20Saturday%20closing%20remarks)
<!-- End of emacsconf-publish-after-page -->
diff --git a/2023/info/sat-close-before.md b/2023/info/sat-close-before.md
index 02431083..3b574968 100644
--- a/2023/info/sat-close-before.md
+++ b/2023/info/sat-close-before.md
@@ -1,12 +1,18 @@
<!-- Automatically generated by emacsconf-publish-before-page -->
[[!toc ]]
-Format: 10-min talk
-Discuss on IRC: [#emacsconf](https://chat.emacsconf.org/?join=emacsconf)
-Status: Ready to stream
+Format: 9-min talk ; Q&A: ask questions via Etherpad/IRC; we'll e-mail the speaker and post answers on this wiki page after the conference
+Status: Q&A to be extracted from the room recordings
+# Talk
+
+<div class="vid mainVideo"><video controls preload="none" id="mainVideo-sat-close"><source src="https://media.emacsconf.org/2023/emacsconf-2023-sat-close--saturday-closing-remarks--main.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2023/captions/emacsconf-2023-sat-close--saturday-closing-remarks--main.vtt" default />"""<p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video><div></div>Duration: 09:00 minutes<div class="files resources"><ul><li><a href="https://pad.emacsconf.org/2023-sat-close">Open Etherpad</a></li><li><a href="https://bbb.emacsverse.org/playback/presentation/2.0/playback.html?meetingId=bb384a46db00ac8a0175df0a0668c94a9992b663-1701554802497">Play recording from BigBlueButton</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-sat-close--saturday-closing-remarks--intro.vtt">Download --intro.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-sat-close--saturday-closing-remarks--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-sat-close--saturday-closing-remarks--main.json">Download --main.json</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-sat-close--saturday-closing-remarks--main.opus">Download --main.opus (4.7MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-sat-close--saturday-closing-remarks--main.vtt">Download --main.vtt</a> (unedited)</li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-sat-close--saturday-closing-remarks--main.webm">Download --main.webm (32MB)</a></li><li><a href="https://www.youtube.com/playlist?list=PLomc4HLgvuCUdrW3JkugtKv8xPelUoOyP">View on Toobnix</a></li><li><a href="https://www.youtube.com/watch?v=6OOUfBF6t7k">View on Youtube</a></li></ul></div></div>
+
+# Q&A
+
+<div class="vid qanda"><div></div><div class="files resources"><ul><li><a href="https://pad.emacsconf.org/2023-sat-close">Open Etherpad</a></li><li><a href="https://bbb.emacsverse.org/playback/presentation/2.0/playback.html?meetingId=bb384a46db00ac8a0175df0a0668c94a9992b663-1701554802497">Play recording from BigBlueButton</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-sat-close--saturday-closing-remarks--intro.vtt">Download --intro.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-sat-close--saturday-closing-remarks--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-sat-close--saturday-closing-remarks--main.json">Download --main.json</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-sat-close--saturday-closing-remarks--main.opus">Download --main.opus (4.7MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-sat-close--saturday-closing-remarks--main.vtt">Download --main.vtt</a> (unedited)</li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-sat-close--saturday-closing-remarks--main.webm">Download --main.webm (32MB)</a></li></ul></div></div>
# Description
<!-- End of emacsconf-publish-before-page --> \ No newline at end of file
diff --git a/2023/info/sat-close-nav.md b/2023/info/sat-close-nav.md
index 219f76fc..e175a40c 100644
--- a/2023/info/sat-close-nav.md
+++ b/2023/info/sat-close-nav.md
@@ -3,5 +3,5 @@
Back to the [[talks]]
Previous by track: <a href="/2023/talks/sat-open">Saturday opening remarks</a>
Next by track: <a href="/2023/talks/sun-open">Sunday opening remarks</a>
-Track: <span class="sched-track General">General</span>
+Track: <span class="sched-track General">General</span> - <strong><a href="https://emacsconf.org/2023/watch/gen">Watch</a></strong>
</div>
diff --git a/2023/info/sat-open-after.md b/2023/info/sat-open-after.md
index 611bf9ac..417922c4 100644
--- a/2023/info/sat-open-after.md
+++ b/2023/info/sat-open-after.md
@@ -1,7 +1,131 @@
<!-- Automatically generated by emacsconf-publish-after-page -->
-Questions or comments? Please e-mail [emacsconf-org-private@gnu.org](mailto:emacsconf-org-private@gnu.org?subject=Comment%20for%20EmacsConf%202022%20sat-open%3A%20Saturday%20opening%20remarks)
+<div class="transcript transcript-mainVideo"><a name="sat-open-mainVideo-transcript"></a><h1>Transcript</h1>
+
+[[!template text="""Welcome to EmacsConf 2023, where we get to find out""" start="00:00:00.000" video="mainVideo-sat-open" id="subtitle"]]
+[[!template text="""just how much we can do with a text editor.""" start="00:00:04.559" video="mainVideo-sat-open" id="subtitle"]]
+[[!template text="""Just like last year, we have two tracks.""" start="00:00:07.698" video="mainVideo-sat-open" id="subtitle"]]
+[[!template text="""There's a General track and a Development track,""" start="00:00:10.317" video="mainVideo-sat-open" id="subtitle"]]
+[[!template text="""but really, you'll probably find""" start="00:00:12.656" video="mainVideo-sat-open" id="subtitle"]]
+[[!template text="""interesting things on both tracks""" start="00:00:14.235" video="mainVideo-sat-open" id="subtitle"]]
+[[!template text="""no matter what your level of experience is,""" start="00:00:15.954" video="mainVideo-sat-open" id="subtitle"]]
+[[!template text="""so don't feel limited to one or the other.""" start="00:00:18.493" video="mainVideo-sat-open" id="subtitle"]]
+[[!template text="""For Saturday, it's mostly Org Mode talks on the General track.""" start="00:00:21.152" video="mainVideo-sat-open" id="subtitle"]]
+[[!template text="""The doc talk on the development track""" start="00:00:24.711" video="mainVideo-sat-open" id="subtitle"]]
+[[!template text="""is about literate documentation with Emacs and Org Mode,""" start="00:00:26.870" video="mainVideo-sat-open" id="subtitle"]]
+[[!template text="""and it's a general-audience talk""" start="00:00:30.129" video="mainVideo-sat-open" id="subtitle"]]
+[[!template text="""even though it's in the Development track.""" start="00:00:31.688" video="mainVideo-sat-open" id="subtitle"]]
+[[!template text="""I just ran out of space in the schedule.""" start="00:00:33.607" video="mainVideo-sat-open" id="subtitle"]]
+[[!template text="""The best parts of EmacsConf are the conversations.""" start="00:00:35.266" video="mainVideo-sat-open" id="subtitle"]]
+[[!template text="""The wiki has a page on how to watch and participate,""" start="00:00:38.505" video="mainVideo-sat-open" id="subtitle"]]
+[[!template text="""and I'll give you a quick overview as well.""" start="00:00:41.264" video="mainVideo-sat-open" id="subtitle"]]
+[[!template text="""You can watch both streams at live.emacsconf.org""" start="00:00:44.043" video="mainVideo-sat-open" id="subtitle"]]
+[[!template text="""using free and open source software.""" start="00:00:47.522" video="mainVideo-sat-open" id="subtitle"]]
+[[!template text="""Using a streaming media player like mpv""" start="00:00:50.401" video="mainVideo-sat-open" id="subtitle"]]
+[[!template text="""seems to be the best way to watch in terms of performance""" start="00:00:52.820" video="mainVideo-sat-open" id="subtitle"]]
+[[!template text="""but there are also web-based players""" start="00:00:56.219" video="mainVideo-sat-open" id="subtitle"]]
+[[!template text="""just in case that's all you've got.""" start="00:00:57.818" video="mainVideo-sat-open" id="subtitle"]]
+[[!template text="""The schedule shows the General track on top""" start="00:01:00.297" video="mainVideo-sat-open" id="subtitle"]]
+[[!template text="""and the Development track on the bottom,""" start="00:01:02.296" video="mainVideo-sat-open" id="subtitle"]]
+[[!template text="""so you can see what else is going on.""" start="00:01:03.975" video="mainVideo-sat-open" id="subtitle"]]
+[[!template text="""As you're watching the talks,""" start="00:01:06.594" video="mainVideo-sat-open" id="subtitle"]]
+[[!template text="""you can refer to the schedule in another window.""" start="00:01:07.793" video="mainVideo-sat-open" id="subtitle"]]
+[[!template text="""Hover over the boxes to see the times and titles,""" start="00:01:10.692" video="mainVideo-sat-open" id="subtitle"]]
+[[!template text="""and click on the boxes in the schedule""" start="00:01:13.711" video="mainVideo-sat-open" id="subtitle"]]
+[[!template text="""to jump to the talk's page for more details.""" start="00:01:15.610" video="mainVideo-sat-open" id="subtitle"]]
+[[!template text="""You can also get the schedule as an iCalendar file""" start="00:01:18.389" video="mainVideo-sat-open" id="subtitle"]]
+[[!template text="""or as an Org file in different time zones.""" start="00:01:20.928" video="mainVideo-sat-open" id="subtitle"]]
+[[!template text="""Many talks will be followed by""" start="00:01:23.187" video="mainVideo-sat-open" id="subtitle"]]
+[[!template text="""live Q&A web conferences with the speaker,""" start="00:01:24.686" video="mainVideo-sat-open" id="subtitle"]]
+[[!template text="""which will be done in BigBlueButton or BBB.""" start="00:01:27.345" video="mainVideo-sat-open" id="subtitle"]]
+[[!template text="""These are indicated with a solid border on the schedule""" start="00:01:30.424" video="mainVideo-sat-open" id="subtitle"]]
+[[!template text="""and by Q&A: BBB on the schedule page.""" start="00:01:33.423" video="mainVideo-sat-open" id="subtitle"]]
+[[!template text="""You can join the web conference room""" start="00:01:36.582" video="mainVideo-sat-open" id="subtitle"]]
+[[!template text="""by clicking on the BBB link""" start="00:01:38.281" video="mainVideo-sat-open" id="subtitle"]]
+[[!template text="""on the schedule page or the talk's webpage.""" start="00:01:39.900" video="mainVideo-sat-open" id="subtitle"]]
+[[!template text="""Then you can ask your questions yourself when the Q&A starts.""" start="00:01:42.839" video="mainVideo-sat-open" id="subtitle"]]
+[[!template text="""To improve performance, please keep your webcam off""" start="00:01:45.758" video="mainVideo-sat-open" id="subtitle"]]
+[[!template text="""and stay muted until it's your turn to talk.""" start="00:01:48.217" video="mainVideo-sat-open" id="subtitle"]]
+[[!template text="""This year we're experimenting with automatically switching""" start="00:01:50.956" video="mainVideo-sat-open" id="subtitle"]]
+[[!template text="""between talks and Q&A sessions,""" start="00:01:53.575" video="mainVideo-sat-open" id="subtitle"]]
+[[!template text="""so the transitions on the stream might be a little sudden,""" start="00:01:55.934" video="mainVideo-sat-open" id="subtitle"]]
+[[!template text="""but people in the BigBlueButton room""" start="00:01:59.133" video="mainVideo-sat-open" id="subtitle"]]
+[[!template text="""can continue the conversation""" start="00:02:00.892" video="mainVideo-sat-open" id="subtitle"]]
+[[!template text="""even after the talk moves off-stream.""" start="00:02:02.571" video="mainVideo-sat-open" id="subtitle"]]
+[[!template text="""Other talks will have Q&A via Etherpad or IRC,""" start="00:02:05.410" video="mainVideo-sat-open" id="subtitle"]]
+[[!template text="""depending on what the speakers prefer.""" start="00:02:08.769" video="mainVideo-sat-open" id="subtitle"]]
+[[!template text="""This is indicated in the schedule with a dashed border""" start="00:02:11.088" video="mainVideo-sat-open" id="subtitle"]]
+[[!template text="""and on the schedule page as well.""" start="00:02:14.107" video="mainVideo-sat-open" id="subtitle"]]
+[[!template text="""Please ask your questions in the recommended places""" start="00:02:16.826" video="mainVideo-sat-open" id="subtitle"]]
+[[!template text="""so that the speakers can easily see them.""" start="00:02:19.265" video="mainVideo-sat-open" id="subtitle"]]
+[[!template text="""Some talks will have the Q&A after the event,""" start="00:02:21.784" video="mainVideo-sat-open" id="subtitle"]]
+[[!template text="""so you can add your questions to their Etherpad.""" start="00:02:24.503" video="mainVideo-sat-open" id="subtitle"]]
+[[!template text="""We'll e-mail the speakers afterwards""" start="00:02:27.362" video="mainVideo-sat-open" id="subtitle"]]
+[[!template text="""and update the talk pages when they answer.""" start="00:02:29.461" video="mainVideo-sat-open" id="subtitle"]]
+[[!template text="""The schedule pages and track pages have quick shortcuts""" start="00:02:32.360" video="mainVideo-sat-open" id="subtitle"]]
+[[!template text="""so that you can find out more about talks, open the Etherpads,""" start="00:02:35.499" video="mainVideo-sat-open" id="subtitle"]]
+[[!template text="""and join the Q&A sessions. The watch page has more tips""" start="00:02:38.978" video="mainVideo-sat-open" id="subtitle"]]
+[[!template text="""on how to make the most of Q&A.""" start="00:02:42.537" video="mainVideo-sat-open" id="subtitle"]]
+[[!template text="""If you can, please add notes and ask questions""" start="00:02:45.236" video="mainVideo-sat-open" id="subtitle"]]
+[[!template text="""in the Etherpad for the talk. That makes it easier""" start="00:02:48.015" video="mainVideo-sat-open" id="subtitle"]]
+[[!template text="""for everyone to share their notes,""" start="00:02:51.174" video="mainVideo-sat-open" id="subtitle"]]
+[[!template text="""and speakers and hosts can read the questions from there.""" start="00:02:52.833" video="mainVideo-sat-open" id="subtitle"]]
+[[!template text="""We'll copy the notes to the talk pages afterwards.""" start="00:02:55.772" video="mainVideo-sat-open" id="subtitle"]]
+[[!template text="""We have one pad for each talk,""" start="00:02:59.791" video="mainVideo-sat-open" id="subtitle"]]
+[[!template text="""so you can follow the links to get to the next one""" start="00:03:01.850" video="mainVideo-sat-open" id="subtitle"]]
+[[!template text="""or go back to the schedule and get the link from there.""" start="00:03:03.969" video="mainVideo-sat-open" id="subtitle"]]
+[[!template text="""If you have general feedback about""" start="00:03:07.128" video="mainVideo-sat-open" id="subtitle"]]
+[[!template text="""the conference itself, please put it in""" start="00:03:08.767" video="mainVideo-sat-open" id="subtitle"]]
+[[!template text="""pad.emacsconf.org/2023 , which is linked on each pad.""" start="00:03:10.926" video="mainVideo-sat-open" id="subtitle"]]
+[[!template text="""You can also use this as a general community message board""" start="00:03:16.385" video="mainVideo-sat-open" id="subtitle"]]
+[[!template text="""for things like Help Wanted.""" start="00:03:19.044" video="mainVideo-sat-open" id="subtitle"]]
+[[!template text="""Internet Relay Chat or IRC can be another great way""" start="00:03:22.183" video="mainVideo-sat-open" id="subtitle"]]
+[[!template text="""to be part of lots of conversations.""" start="00:03:25.320" video="mainVideo-sat-open" id="subtitle"]]
+[[!template text="""You can use chat.emacsconf.org to join the IRC channels""" start="00:03:27.961" video="mainVideo-sat-open" id="subtitle"]]
+[[!template text="""through your web browser. The tabs on the left can help you""" start="00:03:31.680" video="mainVideo-sat-open" id="subtitle"]]
+[[!template text="""switch between the different channels.""" start="00:03:34.519" video="mainVideo-sat-open" id="subtitle"]]
+[[!template text="""There's #emacsconf-gen for the General track""" start="00:03:37.078" video="mainVideo-sat-open" id="subtitle"]]
+[[!template text="""and #emacsconf-dev for the Development track.""" start="00:03:40.340" video="mainVideo-sat-open" id="subtitle"]]
+[[!template text="""If you need to reach us, you can join #emacsconf-org""" start="00:03:43.696" video="mainVideo-sat-open" id="subtitle"]]
+[[!template text="""or e-mail emacsconf-org-private@gnu.org.""" start="00:03:47.415" video="mainVideo-sat-open" id="subtitle"]]
+[[!template text="""You can use #emacsconf for hallway conversations.""" start="00:03:52.394" video="mainVideo-sat-open" id="subtitle"]]
+[[!template text="""Of course, you can join any of these channels""" start="00:03:55.673" video="mainVideo-sat-open" id="subtitle"]]
+[[!template text="""with your favourite IRC client.""" start="00:03:57.792" video="mainVideo-sat-open" id="subtitle"]]
+[[!template text="""We're on the libera.chat network.""" start="00:04:00.071" video="mainVideo-sat-open" id="subtitle"]]
+[[!template text="""Once again, we're going to be streaming with open captions""" start="00:04:03.910" video="mainVideo-sat-open" id="subtitle"]]
+[[!template text="""for most of the talks this year, thanks to our speakers and""" start="00:04:06.549" video="mainVideo-sat-open" id="subtitle"]]
+[[!template text="""captioning volunteers. The captioned talks are indicated""" start="00:04:09.628" video="mainVideo-sat-open" id="subtitle"]]
+[[!template text="""on the schedule, and with any luck, we'll be posting""" start="00:04:12.987" video="mainVideo-sat-open" id="subtitle"]]
+[[!template text="""transcripts on talk pages shortly after the talks start.""" start="00:04:15.706" video="mainVideo-sat-open" id="subtitle"]]
+[[!template text="""If you need additional accommodations,""" start="00:04:19.205" video="mainVideo-sat-open" id="subtitle"]]
+[[!template text="""please let us know in #emacsconf-org""" start="00:04:21.024" video="mainVideo-sat-open" id="subtitle"]]
+[[!template text="""and we'll see if we can make things happen.""" start="00:04:23.784" video="mainVideo-sat-open" id="subtitle"]]
+[[!template text="""If something goes down, we'll update status.emacsconf.org.""" start="00:04:25.683" video="mainVideo-sat-open" id="subtitle"]]
+[[!template text="""If it doesn't look like we've noticed yet,""" start="00:04:29.922" video="mainVideo-sat-open" id="subtitle"]]
+[[!template text="""please let us know in the #emacsconf-org IRC channel,""" start="00:04:31.781" video="mainVideo-sat-open" id="subtitle"]]
+[[!template text="""where we will be quietly panicking.""" start="00:04:35.220" video="mainVideo-sat-open" id="subtitle"]]
+[[!template text="""In all of these conversations, please keep in mind""" start="00:04:37.379" video="mainVideo-sat-open" id="subtitle"]]
+[[!template text="""our guidelines for conduct. You can find them on the wiki,""" start="00:04:40.078" video="mainVideo-sat-open" id="subtitle"]]
+[[!template text="""They basically boil down to: please be nice.""" start="00:04:43.077" video="mainVideo-sat-open" id="subtitle"]]
+[[!template text="""If all goes well, the prerecorded talks and transcripts""" start="00:04:46.557" video="mainVideo-sat-open" id="subtitle"]]
+[[!template text="""should be available from the talk pages""" start="00:04:48.996" video="mainVideo-sat-open" id="subtitle"]]
+[[!template text="""shortly after they start playing,""" start="00:04:50.995" video="mainVideo-sat-open" id="subtitle"]]
+[[!template text="""and we'll post the recordings of live talks""" start="00:04:52.734" video="mainVideo-sat-open" id="subtitle"]]
+[[!template text="""and Q&A sessions within the next month or so.""" start="00:04:54.633" video="mainVideo-sat-open" id="subtitle"]]
+[[!template text="""If you'd like to get an update, you can subscribe to""" start="00:04:57.752" video="mainVideo-sat-open" id="subtitle"]]
+[[!template text="""the emacsconf-discuss mailing list.""" start="00:05:00.271" video="mainVideo-sat-open" id="subtitle"]]
+[[!template text="""All right, let's get going.""" start="00:05:03.570" video="mainVideo-sat-open" id="subtitle"]]
+[[!template text="""Leo Vivier is hosting the general track,""" start="00:05:05.129" video="mainVideo-sat-open" id="subtitle"]]
+[[!template text="""and Amin Bandali hosting the development track.""" start="00:05:07.529" video="mainVideo-sat-open" id="subtitle"]]
+[[!template text="""The other volunteers and I will run around mostly backstage,""" start="00:05:10.648" video="mainVideo-sat-open" id="subtitle"]]
+[[!template text="""and you'll probably meet us in the closing remarks.""" start="00:05:13.367" video="mainVideo-sat-open" id="subtitle"]]
+[[!template text="""That's also where we get to thank""" start="00:05:15.446" video="mainVideo-sat-open" id="subtitle"]]
+[[!template text="""all the people and organizations""" start="00:05:17.085" video="mainVideo-sat-open" id="subtitle"]]
+[[!template text="""who make EmacsConf even possible.""" start="00:05:18.724" video="mainVideo-sat-open" id="subtitle"]]
+[[!template text="""Thanks for coming to EmacsConf 2023.""" start="00:05:21.763" video="mainVideo-sat-open" id="subtitle"]]
+
+</div>Questions or comments? Please e-mail [emacsconf-org-private@gnu.org](mailto:emacsconf-org-private@gnu.org?subject=Comment%20for%20EmacsConf%202023%20sat-open%3A%20Saturday%20opening%20remarks)
<!-- End of emacsconf-publish-after-page -->
diff --git a/2023/info/sat-open-before.md b/2023/info/sat-open-before.md
index 7d912bd3..df86ddb8 100644
--- a/2023/info/sat-open-before.md
+++ b/2023/info/sat-open-before.md
@@ -1,12 +1,12 @@
<!-- Automatically generated by emacsconf-publish-before-page -->
[[!toc ]]
-Format: 10-min talk
-Discuss on IRC: [#emacsconf](https://chat.emacsconf.org/?join=emacsconf)
-Status: Waiting for video from speaker
+Format: 6-min talk ; Q&A: Etherpad
+Status: All done
+<div class="vid mainVideo"><video controls preload="none" id="mainVideo-sat-open"><source src="https://media.emacsconf.org/2023/emacsconf-2023-sat-open--saturday-opening-remarks--main.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2023/captions/emacsconf-2023-sat-open--saturday-opening-remarks--main.vtt" default />"""<p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video><div></div>Duration: 05:25 minutes<div class="files resources"><ul><li><a href="https://pad.emacsconf.org/2023-sat-open">Open Etherpad</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-sat-open--saturday-opening-remarks--intro.vtt">Download --intro.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-sat-open--saturday-opening-remarks--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-sat-open--saturday-opening-remarks--main.opus">Download --main.opus (2.5MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-sat-open--saturday-opening-remarks--main.vtt">Download --main.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-sat-open--saturday-opening-remarks--main.webm">Download --main.webm (18MB)</a></li><li><a href="https://toobnix.org/w/wEZX2JkDFpFqNFXnYeQTyb">View on Toobnix</a></li><li><a href="https://youtu.be/piEHmLVtG6A">View on Youtube</a></li></ul></div></div>
# Description
<!-- End of emacsconf-publish-before-page --> \ No newline at end of file
diff --git a/2023/info/sat-open-nav.md b/2023/info/sat-open-nav.md
index db5cf1cd..9d1a5ef9 100644
--- a/2023/info/sat-open-nav.md
+++ b/2023/info/sat-open-nav.md
@@ -1,7 +1,7 @@
<div class="talk-nav">
Back to the [[talks]]
-Previous by track: <a href="/2023/talks/emacsen">The Emacsen family, the design of an Emacs and the importance of Lisp</a>
+Previous by track: <a href="/2023/talks/emacsconf">EmacsConf.org: How we use Org Mode and TRAMP to organize and run a multi-track conference</a>
Next by track: <a href="/2023/talks/sat-close">Saturday closing remarks</a>
-Track: <span class="sched-track General">General</span>
+Track: <span class="sched-track General">General</span> - <strong><a href="https://emacsconf.org/2023/watch/gen">Watch</a></strong>
</div>
diff --git a/2023/info/scheme-after.md b/2023/info/scheme-after.md
index f1d3edb1..a466d69a 100644
--- a/2023/info/scheme-after.md
+++ b/2023/info/scheme-after.md
@@ -1,7 +1,370 @@
<!-- Automatically generated by emacsconf-publish-after-page -->
-Questions or comments? Please e-mail [emacsconf-org-private@gnu.org](mailto:emacsconf-org-private@gnu.org?subject=Comment%20for%20EmacsConf%202022%20scheme%3A%20Bringing%20joy%20to%20Scheme%20programming)
+<div class="transcript transcript-mainVideo"><a name="scheme-mainVideo-transcript"></a><h1>Transcript</h1>
+
+
+<div class="transcript-heading">[[!template new="1" text="""Introduction""" start="00:00:02.120" video="mainVideo-scheme" id="subtitle"]]</div>[[!template text="""Hello and welcome everyone on EmacsConf 2023.""" start="00:00:02.120" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""I'm Andrew Tropin.""" start="00:00:07.400" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""I work on operating systems and programming languages.""" start="00:00:08.720" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""Today, we discuss Lisps, Schemes, REPLs,""" start="00:00:11.920" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""interactive development,""" start="00:00:16.640" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""and how to make your own cozy development environment.""" start="00:00:18.140" video="mainVideo-scheme" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Interactive development""" start="00:00:23.280" video="mainVideo-scheme" id="subtitle"]]</div>[[!template text="""Let's start from interactive development.""" start="00:00:23.280" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""Lisps are famous for a nice""" start="00:00:26.320" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""Interactive Development Experience.""" start="00:00:29.520" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""They have REPLs.""" start="00:00:32.480" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""Emacs Lisp has its own Lisp machine,""" start="00:00:34.000" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""and a lot of cool IDE with different functionality""" start="00:00:40.120" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""is already here and providing""" start="00:00:44.720" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""a nice and pleasant experience.""" start="00:00:47.880" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""The question is, is it enough?""" start="00:00:51.620" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""In most cases, yes, but for some languages,""" start="00:00:56.840" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""we have some white spaces, some missing pieces.""" start="00:00:59.921" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""And for example, in Scheme world,""" start="00:01:04.840" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""we already have a few tools.""" start="00:01:08.300" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""We have REPL, we have integration for REPL in Emacs,""" start="00:01:10.880" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""but is it enough?""" start="00:01:14.600" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""Let's see.""" start="00:01:16.680" video="mainVideo-scheme" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""REPL: Read Eval Print Loop""" start="00:01:18.180" video="mainVideo-scheme" id="subtitle"]]</div>[[!template text="""We know that Emacs is very good for Lisps and REPL.""" start="00:01:18.180" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""Lisp and Emacs should be a perfect setup.""" start="00:01:22.840" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""But let's see how REPL basically works.""" start="00:01:26.040" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""It's an event loop which does three things.""" start="00:01:30.080" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""It reads an expression, it evaluates the expression,""" start="00:01:34.800" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""and it prints the result.""" start="00:01:37.280" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""We can take a simple expression, input it into REPL,""" start="00:01:40.740" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""and evaluate it and see the result.""" start="00:01:47.280" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""Very nice, very convenient.""" start="00:01:48.960" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""You can experiment and see immediately what is happening.""" start="00:01:50.820" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""You can even run a long-running process""" start="00:01:55.340" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""which does something.""" start="00:01:57.760" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""You can interrupt it and everything will be okay.""" start="00:01:58.920" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""But the problem appears""" start="00:02:07.200" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""when you start to develop a bigger project.""" start="00:02:08.640" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""And in most cases, you don't do""" start="00:02:11.660" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""your whole development in REPL.""" start="00:02:14.240" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""You do only a small part of it.""" start="00:02:16.400" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""In most cases, you just write""" start="00:02:18.461" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""the source code in text files,""" start="00:02:20.680" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""and after that, you run those snippets of code""" start="00:02:22.920" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""from those text files, or run the whole project.""" start="00:02:26.400" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""It's not very convenient to copy and paste""" start="00:02:30.721" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""every time the snippets of code to the REPL,""" start="00:02:33.720" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""see the result, modify the snippet of code,""" start="00:02:36.040" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""copy it again, and so on.""" start="00:02:38.880" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""So people invented some integration""" start="00:02:41.200" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""between REPL and your text editor.""" start="00:02:44.040" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""So you can evaluate expressions inside your text editor""" start="00:02:46.080" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""and see the result here.""" start="00:02:51.600" video="mainVideo-scheme" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Long-lasting loops""" start="00:02:53.720" video="mainVideo-scheme" id="subtitle"]]</div>[[!template text="""Works good so far, but what happens""" start="00:02:53.720" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""if we run a long-lasting loop,""" start="00:02:56.680" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""which does a lot of operations.""" start="00:03:02.300" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""As you can see here with a simple example,""" start="00:03:05.000" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""the output of the function,""" start="00:03:07.840" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""stdout of the function is presented here,""" start="00:03:13.600" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""and the resulting value is here.""" start="00:03:16.760" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""If you run a long-running process,""" start="00:03:18.800" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""you don't see anything happening.""" start="00:03:22.360" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""And you see there's a watch instead of my cursor.""" start="00:03:24.640" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""Maybe you don't see it, but nothing actually happens,""" start="00:03:29.260" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""at least from the point of view of the user.""" start="00:03:33.720" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""But if we interrupt the evaluation,""" start="00:03:36.380" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""we will see that some process in the background""" start="00:03:38.400" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""was launched, but we didn't see anything.""" start="00:03:41.440" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""Because the REPL is a single-threaded blocking process,""" start="00:03:44.240" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""which reads stdin and prints stdout,""" start="00:03:51.040" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""make the integration""" start="00:03:54.320" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""between the REPL and your text editor""" start="00:03:55.680" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""is not an easy task.""" start="00:03:58.541" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""And even if you do it,""" start="00:04:02.920" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""you have a lot of downsides, usually.""" start="00:04:04.321" video="mainVideo-scheme" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Not interruptible""" start="00:04:07.600" video="mainVideo-scheme" id="subtitle"]]</div>[[!template text="""First of all, the process is not interruptible.""" start="00:04:07.600" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""If you have a remote process which listens on the socket""" start="00:04:13.680" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""to which you connect from your development environment,""" start="00:04:18.480" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""and you run some infinite loop, for example,""" start="00:04:21.940" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""you can't interrupt it.""" start="00:04:25.480" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""Because interruption is done via signals,""" start="00:04:28.300" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""and signals to remote processes are not usually""" start="00:04:31.240" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""the thing in such integrations.""" start="00:04:35.040" video="mainVideo-scheme" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Output is not interactive""" start="00:04:38.760" video="mainVideo-scheme" id="subtitle"]]</div>[[!template text="""Output is also not interactive.""" start="00:04:38.760" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""Usually, for example, here you can see""" start="00:04:41.160" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""when I evaluate the expression,""" start="00:04:45.320" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""the output is captured on the evaluation side,""" start="00:04:47.800" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""and after that, after the whole evaluation""" start="00:04:51.120" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""of the whole expression finished,""" start="00:04:53.720" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""I get the result, all the stdout at once.""" start="00:04:56.180" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""And if I run the process which evaluates for 5 seconds,""" start="00:05:06.760" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""I will see the first signs of the life""" start="00:05:09.920" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""only after 5 seconds of evaluation.""" start="00:05:13.781" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""Okay, what else?""" start="00:05:17.040" video="mainVideo-scheme" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""No protocol""" start="00:05:23.160" video="mainVideo-scheme" id="subtitle"]]</div>[[!template text="""When you do such integrations, you have no protocol,""" start="00:05:23.160" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""you have just stdin and stdout.""" start="00:05:26.120" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""You print to stdin from your text editor.""" start="00:05:29.760" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""You read from stdout of the process.""" start="00:05:32.920" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""It's hard to tell if evaluation is finished,""" start="00:05:36.680" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""if it requires stdin, and how to extend the REPL""" start="00:05:40.340" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""to make it more featureful, and so on.""" start="00:05:47.320" video="mainVideo-scheme" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Not scalable""" start="00:05:51.480" video="mainVideo-scheme" id="subtitle"]]</div>[[!template text="""And also, such integrations are usually not very scalable.""" start="00:05:51.480" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""For example, if you want to have a completion,""" start="00:05:57.360" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""you type something, you have the completion. Cool.""" start="00:06:14.700" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""But if you run the process and at the same time""" start="00:06:17.461" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""try to have a completion, you don't have it,""" start="00:06:22.040" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""because the evaluation is in progress,""" start="00:06:24.621" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""and you can't calculate the completion candidates""" start="00:06:29.800" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""at the same time. To make it more obvious,""" start="00:06:33.280" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""I will start a completion here.""" start="00:06:35.520" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""You see the completion pop-ups.""" start="00:06:41.020" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""I start the evaluation process,""" start="00:06:43.280" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""and when I try to complete something,""" start="00:06:46.160" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""the evaluation freezes and there is no completion.""" start="00:06:49.860" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""Not very convenient.""" start="00:06:53.120" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""Usually, you have some long-running processes""" start="00:06:55.480" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""and you want them to continue while you have""" start="00:06:58.120" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""your go to definition, completion, and other things.""" start="00:07:01.400" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""Overall, those issues make it quite inconvenient""" start="00:07:08.580" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""to integrate REPL in text editors or development environments,""" start="00:07:13.660" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""so you need something else""" start="00:07:18.420" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""to make the work comfortable.""" start="00:07:21.380" video="mainVideo-scheme" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""nREPL""" start="00:07:25.860" video="mainVideo-scheme" id="subtitle"]]</div>[[!template text="""There is already a solution called nREPL.""" start="00:07:25.860" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""It's a synchronous protocol which allows""" start="00:07:28.980" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""to send operations to the server""" start="00:07:31.120" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""and receive responses in a synchronous manner.""" start="00:07:34.020" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""And here is a simple example of a few operations.""" start="00:07:37.760" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""First one is cloning the existing session,""" start="00:07:42.160" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""and as a response you will get a new session.""" start="00:07:45.080" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""Also you send the evaluation request with code""" start="00:07:49.241" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""that you want to evaluate, and you get two responses.""" start="00:07:52.100" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""First one says that output is captured""" start="00:07:55.640" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""and it's equal to &quot;hi\n&quot;,""" start="00:08:00.601" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""and after that, you receive an &quot;Evaluation completed&quot;,""" start="00:08:02.840" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""the value of this expression.""" start="00:08:06.561" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""This protocol was developed""" start="00:08:12.440" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""for CIDER development environment.""" start="00:08:14.080" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""It's a Clojure development environment for Emacs.""" start="00:08:15.880" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""It's very cool, featureful, reliable,""" start="00:08:18.760" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""and I would say production-ready.""" start="00:08:22.860" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""A lot of professional Clojure developers use it.""" start="00:08:26.900" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""The nREPL protocol is very simple.""" start="00:08:31.500" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""It has a few operations out of the box,""" start="00:08:33.240" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""and you can extend it with any arbitrary operation you want.""" start="00:08:38.220" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""I work a lot on Guix codebase and other Scheme projects,""" start="00:08:46.480" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""so the experience I had previously with nREPL""" start="00:08:53.820" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""was not satisfying. I decided""" start="00:08:57.300" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""to just implement nREPL protocol.""" start="00:08:59.400" video="mainVideo-scheme" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Arei, Ares, and how to try""" start="00:09:01.740" video="mainVideo-scheme" id="subtitle"]]</div>[[!template text="""First of all, I implemented nREPL server in Guile.""" start="00:09:01.740" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""I called it `guile-ares-rs`, and used it""" start="00:09:05.720" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""with a generic nREPL client for Emacs.""" start="00:09:11.340" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""It worked.""" start="00:09:13.960" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""It had some rough edges, but overall it was okay.""" start="00:09:14.720" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""And after that, to add more features""" start="00:09:18.640" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""to make the implementation more complete,""" start="00:09:21.640" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""I wrote my own nREPL client for Emacs and called it `arei`.""" start="00:09:25.080" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""And I got almost complete Guile IDE in two months.""" start="00:09:33.220" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""So `ares-rs` is nREPL server implementation.""" start="00:09:40.180" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""`arei` is Emacs client, which uses the same nREPL protocol.""" start="00:09:45.320" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""It utilizes `sesman` package for managing sessions,""" start="00:09:49.680" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""the association of buffers with nREPL connection.""" start="00:09:54.440" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""It has some roots.""" start="00:10:00.080" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""The implementation has some roots""" start="00:10:04.380" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""in Geiser, CIDER, Monroe, and Rail.""" start="00:10:06.640" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""I took small snippets for some parts of functionality.""" start="00:10:09.980" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""I used the CAPF and xref infrastructure""" start="00:10:15.280" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""for completion at point and cross-reference capabilities.""" start="00:10:19.480" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""And by the time of conference, I hope""" start="00:10:23.080" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""that README will be complete enough""" start="00:10:27.680" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""so you will be able to try it yourself.""" start="00:10:30.200" video="mainVideo-scheme" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Demo""" start="00:10:34.180" video="mainVideo-scheme" id="subtitle"]]</div>[[!template text="""Let's see what is possible with it already.""" start="00:10:34.180" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""Let's connect to nREPL server.""" start="00:10:42.680" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""After that, you can evaluate the expression.""" start="00:10:51.900" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""And you see the stdout and the result.""" start="00:10:56.281" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""Very nice, very convenient.""" start="00:11:02.320" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""You have different expression, you evaluate it,""" start="00:11:04.720" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""you get the value of the evaluation.""" start="00:11:08.660" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""You can run an infinite loop""" start="00:11:10.360" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""which prints to stderr and stdout""" start="00:11:12.280" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""and you see all necessary stuff.""" start="00:11:15.640" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""Very cool.""" start="00:11:18.600" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""But also, you can interrupt the evaluation,""" start="00:11:19.300" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""which is very convenient if you accidentally""" start="00:11:21.960" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""run an infinite loop.""" start="00:11:25.160" video="mainVideo-scheme" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Continuations""" start="00:11:27.640" video="mainVideo-scheme" id="subtitle"]]</div>[[!template text="""Also, do you remember here we have a few more examples""" start="00:11:27.640" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""that we didn't try yet?""" start="00:11:32.940" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""For example, on usual REPL implementation,""" start="00:11:34.080" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""if I evaluate this expression, I get return value.""" start="00:11:39.160" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""I make a continuation and save it to this variable""" start="00:11:47.600" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""and I try to call this evaluation""" start="00:11:50.760" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""and I get an exception,""" start="00:11:52.860" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""because the environment in which this continuation""" start="00:11:55.340" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""was created was different and it has redefined""" start="00:11:58.400" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""stdout and stderr to capture it.""" start="00:12:03.480" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""But when I run it one more time,""" start="00:12:06.160" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""when I resume the continuation,""" start="00:12:08.980" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""the environment changed and it doesn't work.""" start="00:12:12.200" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""What happens in `arei`?""" start="00:12:15.800" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""I define continuation, I save the continuation""" start="00:12:17.420" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""for the simple expression""" start="00:12:21.760" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""and I resume the continuation with a new argument,""" start="00:12:23.480" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""and you can see at the top of the screen""" start="00:12:27.280" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""that it works perfectly fine.""" start="00:12:30.140" video="mainVideo-scheme" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Reading from stdin""" start="00:12:32.460" video="mainVideo-scheme" id="subtitle"]]</div>[[!template text="""Also, with a usual REPL implementation,""" start="00:12:32.460" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""let's see what happens when we have a process""" start="00:12:35.560" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""which reads from stdin.""" start="00:12:40.320" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""I evaluate the expression and nothing visible happens.""" start="00:12:41.920" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""I can try to type `C-g`, `C-c`,""" start="00:12:48.100" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""and after some time it will say user interrupt.""" start="00:12:53.000" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""What actually I expect in such a case""" start="00:12:56.560" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""to have a minibuffer which prompts me for the input.""" start="00:13:00.440" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""When I evaluate the same expression in the `arei`,""" start="00:13:04.680" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""you see the prompt at the minibuffer""" start="00:13:10.020" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""and here I can tell, &quot;Hello I'm a message from minibuffer&quot;.""" start="00:13:12.200" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""Cool. You will see that this message is printed to stdout,""" start="00:13:21.900" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""and unspecified was returned""" start="00:13:26.100" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""as a result of this expression.""" start="00:13:28.680" video="mainVideo-scheme" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Fancy example with continuations""" start="00:13:33.420" video="mainVideo-scheme" id="subtitle"]]</div>[[!template text="""Let's make some fancy example with continuations.""" start="00:13:33.420" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""Continuations is a very cool mechanism""" start="00:13:37.320" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""which is not the topic of today's talk,""" start="00:13:45.080" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""but you can find a lot of interesting information""" start="00:13:48.000" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""in Scheme documentation or in related books,""" start="00:13:51.000" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""and I advise you to do it because it's really nice thing""" start="00:13:54.440" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""that is actually applicable""" start="00:13:58.340" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""in many different programming languages.""" start="00:14:00.120" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""Here you can see the infinite loop""" start="00:14:03.520" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""which just prints values increasing one by one.""" start="00:14:05.200" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""And here we save a continuation on each iteration.""" start="00:14:09.160" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""I can call the continuation""" start="00:14:13.300" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""and it will resume from the previous saved step.""" start="00:14:18.060" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""And you can see, it resumed from the same step""" start="00:14:21.940" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""we interrupted earlier, but we provided a new value for it.
+another value for it.""" start="00:14:27.680" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""We can provide another value""" start="00:14:31.641" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""and it resumed from the same spot it was saved earlier.""" start="00:14:33.921" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""But I also can provide a `read-i` value""" start="00:14:39.200" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""and if I provide `read-i` value,""" start="00:14:42.580" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""the infinite loop will read the input from stdin""" start="00:14:45.200" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""and will continue the evaluation""" start="00:14:50.780" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""with a different `i` provided in this input.""" start="00:14:53.320" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""So let's try to type some arbitrary value""" start="00:14:56.680" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""and you see that the loop continued with this value.""" start="00:15:03.040" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""Very nice.""" start="00:15:07.520" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""And every time we could easily interrupt it.""" start="00:15:08.040" video="mainVideo-scheme" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Guix API""" start="00:15:13.160" video="mainVideo-scheme" id="subtitle"]]</div>[[!template text="""Okay, what most annoying thing that I had previously""" start="00:15:13.160" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""with the usual REPL implementation""" start="00:15:17.320" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""that I have a quite nice Guix API""" start="00:15:19.340" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""where I can build packages, systems and other stuff.""" start="00:15:22.760" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""But if I evaluate this expression, I will get an error.""" start="00:15:27.580" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""Okay. I will get an error""" start="00:15:35.360" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""because I don't have an appropriate environment.""" start="00:15:38.040" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""But what I can do, I can connect to the remote REPL""" start="00:15:44.480" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""by creating a server with `guix repl --listen` command""" start="00:15:51.580" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""and connecting to it with `geiser-connect` command.""" start="00:15:55.060" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""And now I can evaluate this expression.""" start="00:15:58.620" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""Right?""" start="00:16:01.820" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""Wow.""" start="00:16:03.360" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""Okay.""" start="00:16:10.480" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""It actually doesn't matter for my example.""" start="00:16:14.340" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""I will explain how it doesn't work easily.""" start="00:16:19.040" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""This is a long-running process which prints something""" start="00:16:22.880" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""and it can take up to a few minutes.""" start="00:16:26.520" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""And for the whole few minutes I don't see any results,""" start="00:16:29.580" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""the same as with this infinite loop which prints to stdout""" start="00:16:33.360" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""but I don't see anything interactively.""" start="00:16:38.720" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""With `arei`, I can run""" start="00:16:42.200" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""the evaluation of the same expression,""" start="00:16:45.620" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""and you will see instantly""" start="00:16:51.440" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""that stdout is presented here in slightly yellowish color.""" start="00:16:54.120" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""I can interrupt the evaluation""" start="00:17:00.201" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""if I don't want to wait until it's finished,""" start="00:17:02.921" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""and just after that, I can evaluate another value.""" start="00:17:06.040" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""So that's cool.""" start="00:17:15.780" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""And let's see one more thing.""" start="00:17:23.360" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""We have an infinite loop and we have some completion here.""" start="00:17:25.960" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""And completion still works,""" start="00:17:30.340" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""very nice,""" start="00:17:32.580" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""while the infinite loop is running.""" start="00:17:33.660" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""Okay.""" start="00:17:40.260" video="mainVideo-scheme" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Support""" start="00:17:42.060" video="mainVideo-scheme" id="subtitle"]]</div>[[!template text="""Actually it took me around two months""" start="00:17:42.060" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""of full-time work funded by my own savings,""" start="00:17:44.920" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""and you can support and help to the project""" start="00:17:48.040" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""using OpenCollective or by contributing on SourceHut.""" start="00:17:51.600" video="mainVideo-scheme" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Future steps - Multiple simultaneous evaluations in different contexts""" start="00:17:57.020" video="mainVideo-scheme" id="subtitle"]]</div>[[!template text="""The future steps for the project""" start="00:17:57.020" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""include an experimental workflow where you have""" start="00:17:58.700" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""multiple simultaneous evaluation in different contexts.""" start="00:18:03.675" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""For example, you have Fibers, you have Goblins,""" start="00:18:07.540" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""you have some HTTP server or some other thing,""" start="00:18:11.960" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""and you want to run all of them independently""" start="00:18:16.920" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""in slightly isolated sessions,""" start="00:18:22.120" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""and you want to have the ability""" start="00:18:25.320" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""to still interact with them.""" start="00:18:29.800" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""For example, if they require standard input""" start="00:18:30.960" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""or something else, you want to be able to provide it.""" start="00:18:33.980" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""You want to see the stderr and stdout""" start="00:18:39.240" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""of those long-running processes and so on.""" start="00:18:42.520" video="mainVideo-scheme" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Tree-sitter integration""" start="00:18:46.220" video="mainVideo-scheme" id="subtitle"]]</div>[[!template text="""The second thing is tree-sitter integration""" start="00:18:46.220" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""for better syntax highlighting, code navigation,""" start="00:18:50.240" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""and other features.""" start="00:18:53.400" video="mainVideo-scheme" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Full-fledged debugger""" start="00:18:56.880" video="mainVideo-scheme" id="subtitle"]]</div>[[!template text="""And after that, probably we will do a full-fledged debugger""" start="00:18:56.880" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""so you can jump expressions one by one""" start="00:19:01.400" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""and see the results and see some intermediate values""" start="00:19:06.240" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""during the evaluation.""" start="00:19:10.780" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""And it's very possible""" start="00:19:13.080" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""because nREPL is a very extensible protocol""" start="00:19:14.480" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""and you can implement""" start="00:19:17.080" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""whatever you want on top of it.""" start="00:19:18.200" video="mainVideo-scheme" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""FAQ - Does it support other Scheme implementations?""" start="00:19:22.760" video="mainVideo-scheme" id="subtitle"]]</div>[[!template text="""I will answer two probably very frequent questions.""" start="00:19:22.760" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""Does it support other Scheme implementations?""" start="00:19:27.080" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""At the moment, it doesn't,""" start="00:19:30.500" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""but the Scheme implementation is not restricted.""" start="00:19:32.280" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""You have a server which is implemented in your language""" start="00:19:36.520" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""and you have a client--in our case, `arei`--""" start="00:19:40.640" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""which communicates with this protocol.""" start="00:19:43.975" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""So if you implement nREPL server in a different language,""" start="00:19:48.320" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""it should work with already implemented `arei` client.""" start="00:19:52.360" video="mainVideo-scheme" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Is it possible to use it with other text editors?""" start="00:19:58.380" video="mainVideo-scheme" id="subtitle"]]</div>[[!template text="""And is it possible to use the same functionality""" start="00:19:58.380" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""in other text editors, for example in VS Code,""" start="00:20:04.080" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""Vim, whatever?""" start="00:20:07.000" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""Yes, it's possible and the case is similar here.""" start="00:20:08.680" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""You have already implemented nREPL server""" start="00:20:13.800" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""and you can write your own nREPL client""" start="00:20:16.600" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""in a different text editor and it will work.""" start="00:20:19.360" video="mainVideo-scheme" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Conclusion""" start="00:20:22.121" video="mainVideo-scheme" id="subtitle"]]</div>[[!template text="""I would like to thank the authors and maintainers""" start="00:20:22.121" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""and contributors of Guile, Geiser, CIDER, Clojure,""" start="00:20:26.760" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""and Emacs, and all other people""" start="00:20:30.440" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""who are somehow related to the work on those projects""" start="00:20:33.360" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""involved in this talk.""" start="00:20:38.780" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""And I hope the Scheme programming will be enjoyable.""" start="00:20:42.080" video="mainVideo-scheme" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Contacts""" start="00:20:45.880" video="mainVideo-scheme" id="subtitle"]]</div>[[!template text="""If you want to contact me,""" start="00:20:45.880" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""join #tropin IRC channel at libera.chat,""" start="00:20:47.240" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""or drop me a message via email or feediverse""" start="00:20:49.800" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""using `andrew@trop.in` handle.""" start="00:20:53.040" video="mainVideo-scheme" id="subtitle"]]
+[[!template text="""I will see you in a bit in Q&A session.""" start="00:20:55.880" video="mainVideo-scheme" id="subtitle"]]
+
+</div>
+
+Captioner: sachac
+
+Questions or comments? Please e-mail [emacsconf-org-private@gnu.org](mailto:emacsconf-org-private@gnu.org?subject=Comment%20for%20EmacsConf%202023%20scheme%3A%20Bringing%20joy%20to%20Scheme%20programming)
<!-- End of emacsconf-publish-after-page -->
diff --git a/2023/info/scheme-before.md b/2023/info/scheme-before.md
index 376dee32..5aed745d 100644
--- a/2023/info/scheme-before.md
+++ b/2023/info/scheme-before.md
@@ -1,12 +1,36 @@
<!-- Automatically generated by emacsconf-publish-before-page -->
[[!toc ]]
-Format: 20-min talk followed by live web conference Q&A
-Discuss on IRC: [#emacsconf](https://chat.emacsconf.org/?join=emacsconf)
-Status: Waiting for video from speaker
+Format: 22-min talk ; Q&A: BigBlueButton conference room
+Status: Q&A to be extracted from the room recordings
+<div class="vid mainVideo"><video controls preload="none" id="mainVideo-scheme"><source src="https://media.emacsconf.org/2023/emacsconf-2023-scheme--bringing-joy-to-scheme-programming--andrew-tropin--main.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2023/captions/emacsconf-2023-scheme--bringing-joy-to-scheme-programming--andrew-tropin--main.vtt" default />"""<track kind="chapters" label="Chapters" src="/2023/captions/emacsconf-2023-scheme--bringing-joy-to-scheme-programming--andrew-tropin--main--chapters.vtt" /><p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video>[[!template id="chapters" vidid="mainVideo-scheme" data="""
+00:02.120 Introduction
+00:23.280 Interactive development
+01:18.180 REPL: Read Eval Print Loop
+02:53.720 Long-lasting loops
+04:07.600 Not interruptible
+05:23.160 No protocol
+05:51.480 Not scalable
+07:25.860 nREPL
+09:01.740 Arei, Ares, and how to try
+10:34.180 Demo
+11:27.640 Continuations
+12:32.460 Reading from stdin
+13:33.420 Fancy example with continuations
+15:13.160 Guix API
+17:42.060 Support
+17:57.020 Future steps - Multiple simultaneous evaluations in different contexts
+18:46.220 Tree-sitter integration
+18:56.880 Full-fledged debugger
+19:22.760 FAQ - Does it support other Scheme implementations?
+19:58.380 Is it possible to use it with other text editors?
+20:22.121 Conclusion
+20:45.880 Contacts
+
+"""]]<div></div>Duration: 21:01 minutes<div class="files resources"><ul><li><a href="https://pad.emacsconf.org/2023-scheme">Open Etherpad</a></li><li><a href="https://bbb.emacsverse.org/playback/presentation/2.0/playback.html?meetingId=b4a8670e0b530ee32705d58e7f7bcb5ebb49f86a-1701613648364">Play recording from BigBlueButton</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-scheme--bringing-joy-to-scheme-programming--andrew-tropin--intro.vtt">Download --intro.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-scheme--bringing-joy-to-scheme-programming--andrew-tropin--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-scheme--bringing-joy-to-scheme-programming--andrew-tropin--main--chapters.vtt">Download --main--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-scheme--bringing-joy-to-scheme-programming--andrew-tropin--main.opus">Download --main.opus (14MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-scheme--bringing-joy-to-scheme-programming--andrew-tropin--main.vtt">Download --main.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-scheme--bringing-joy-to-scheme-programming--andrew-tropin--main.webm">Download --main.webm (54MB)</a></li><li><a href="https://toobnix.org/w/4moUfTEo2G8we5JuLGArWx">View on Toobnix</a></li><li><a href="https://www.youtube.com/watch?v=F-H3YQywr-4">View on Youtube</a></li></ul></div></div>
# Description
<!-- End of emacsconf-publish-before-page --> \ No newline at end of file
diff --git a/2023/info/scheme-nav.md b/2023/info/scheme-nav.md
index 55be4b28..58a922aa 100644
--- a/2023/info/scheme-nav.md
+++ b/2023/info/scheme-nav.md
@@ -1,7 +1,7 @@
<div class="talk-nav">
Back to the [[talks]]
-Previous by track: <a href="/2023/talks/extending">GNU Emacs for electronics, note-taking, and as lightweight IDE</a>
-Next by track: <a href="/2023/talks/test">What I learned by writing test cases for GNU Hyperbole</a>
-Track: <span class="sched-track Development">Development</span>
+Previous by track: <a href="/2023/talks/windows">Windows into Freedom</a>
+Next by track: <a href="/2023/talks/world">GNU Emacs: A World of Possibilities</a>
+Track: <span class="sched-track Development">Development</span> - <strong><a href="https://emacsconf.org/2023/watch/dev">Watch</a></strong>
</div>
diff --git a/2023/info/sharing-after.md b/2023/info/sharing-after.md
index 2ee1c76d..c338e069 100644
--- a/2023/info/sharing-after.md
+++ b/2023/info/sharing-after.md
@@ -1,7 +1,1029 @@
<!-- Automatically generated by emacsconf-publish-after-page -->
-Questions or comments? Please e-mail [jakebox0@protonmail.com](mailto:jakebox0@protonmail.com?subject=Comment%20for%20EmacsConf%202022%20sharing%3A%20Sharing%20Emacs%20is%20Caring%20Emacs%3A%20Emacs%20education%20and%20why%20I%20embraced%20video)
+<div class="transcript transcript-mainVideo"><a name="sharing-mainVideo-transcript"></a><h1>Transcript</h1>
+
+
+<div class="transcript-heading">[[!template new="1" text="""Introduction""" start="00:00:00.000" video="mainVideo-sharing" id="subtitle"]]</div>[[!template text="""Hello everyone, I'm Jacob Boxerman.""" start="00:00:00.000" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""I'm a sophomore at Columbia University""" start="00:00:02.440" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""studying computer science.""" start="00:00:04.320" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""I'm so excited to be here today""" start="00:00:06.140" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""right at the end of EmacsConf 2023.""" start="00:00:08.520" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""So glad to be able to share with everyone today.""" start="00:00:11.260" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""EmacsConf is really the epitome for me""" start="00:00:13.720" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""of sharing and of learning about Emacs.""" start="00:00:16.747" video="mainVideo-sharing" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Today's talk""" start="00:00:20.100" video="mainVideo-sharing" id="subtitle"]]</div>[[!template text="""And in my closing keynote""" start="00:00:20.100" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""titled &quot;Sharing Emacs is Caring Emacs,&quot;""" start="00:00:21.540" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""I want to drive that home,""" start="00:00:24.420" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""and I want to make every day""" start="00:00:25.820" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""a day for learning and for sharing in our community.""" start="00:00:27.260" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""I'd like to share my own journey""" start="00:00:31.420" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""of sharing the joy of Emacs""" start="00:00:33.260" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""and convince you that sharing the ways we share""" start="00:00:34.980" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""and how we participate in our Emacs community,""" start="00:00:38.460" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""those are the most important things""" start="00:00:41.180" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""to both grow our community""" start="00:00:42.420" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""and to increase our own personal joy in Emacs.""" start="00:00:44.340" video="mainVideo-sharing" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""My history with Emacs""" start="00:00:48.900" video="mainVideo-sharing" id="subtitle"]]</div>[[!template text="""My journey of sharing begins with my journey of learning.""" start="00:00:48.900" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""So I'll start by spending a bit of time on that.""" start="00:00:52.460" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""I use Emacs every day for personal organization""" start="00:00:55.300" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""and to-dos -- you know, schoolwork, projects,""" start="00:00:57.780" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""exams, readings. I use Org Mode for that,""" start="00:01:00.180" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""write essays, make presentations like this one.""" start="00:01:03.300" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""I also write in various programming languages""" start="00:01:05.980" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""including Java, C, Python,""" start="00:01:08.420" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""locally and also remotely for projects, classes,""" start="00:01:10.220" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""other responsibilities.""" start="00:01:13.140" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""I really started with Emacs during the pandemic.""" start="00:01:14.700" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""I had tried Emacs before, but at the time""" start="00:01:17.580" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""all I knew it for was `M-x tetris`.""" start="00:01:20.060" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""But then its power and its configurability even then""" start="00:01:22.380" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""especially spoke to me.""" start="00:01:25.460" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""So from those little humble beginnings,""" start="00:01:27.060" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""trying different preconfigured distros,""" start="00:01:28.900" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""I slowly made my way to building""" start="00:01:31.460" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""my own 2000+ line configuration,""" start="00:01:33.060" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""which actually surprisingly has about 70 stars,""" start="00:01:36.340" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""a few watchers, a few forks on GitHub.""" start="00:01:39.220" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""Pretty straightforward.""" start="00:01:40.540" video="mainVideo-sharing" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Self-exploration vs learning from others""" start="00:01:42.380" video="mainVideo-sharing" id="subtitle"]]</div>[[!template text="""But what exactly was that learning process like?""" start="00:01:42.380" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""Now, Emacs was such a beast to me at first.""" start="00:01:46.420" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""I was familiar with Python,""" start="00:01:49.460" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""with C, Java, languages like that.""" start="00:01:51.060" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""I was no stranger to the shell configuration,""" start="00:01:52.580" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""anything like that.""" start="00:01:55.340" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""But the absolute infinity of possibility with Emacs""" start="00:01:56.580" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""was a bit overwhelming.""" start="00:02:01.180" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""I find a sentiment in the community""" start="00:02:02.740" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""that exploring on one's own""" start="00:02:04.740" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""was greater than exploring and learning from others.""" start="00:02:06.940" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""And now I see why people say that and it's true in a sense,""" start="00:02:11.020" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""but it might not be fully understood.""" start="00:02:14.460" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""At a certain point, we need to all create our own paths.""" start="00:02:17.220" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""And I think that's just one of the ways Emacs is built.""" start="00:02:21.180" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""The minute possibilities of configurability are so vast,""" start="00:02:24.160" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""it's like a fingerprint or a snowflake --""" start="00:02:27.740" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""there are so many options to create""" start="00:02:29.900" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""a totally unique Emacs experience.""" start="00:02:32.180" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""Of course that can't be found from somebody else --""" start="00:02:35.420" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""It has to come from you.""" start="00:02:37.780" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""Still, building a strong foundation""" start="00:02:38.700" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""is much, much better when we have others.""" start="00:02:42.340" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""Expanding on that foundation is, too, actually.""" start="00:02:45.540" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""My own process started""" start="00:02:48.580" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""with a lot of Googling, blog posts, YouTube, and Reddit.""" start="00:02:50.300" video="mainVideo-sharing" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Learning process""" start="00:02:53.220" video="mainVideo-sharing" id="subtitle"]]</div>[[!template text="""I actually found Emacs on YouTube.""" start="00:02:53.220" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""Seeing how other people used it""" start="00:02:55.420" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""was what really convinced me to try it for myself.""" start="00:02:58.140" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""At a certain point when my confidence grew,""" start="00:03:01.420" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""my trial and error became less error and more success.""" start="00:03:03.740" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""I was also able to take what I saw other people do,""" start="00:03:07.060" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""learn from it, and expand, making it my own.""" start="00:03:09.980" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""And through that time, I learned Emacs.""" start="00:03:13.860" video="mainVideo-sharing" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Emacs learning (not just learning Emacs)""" start="00:03:17.020" video="mainVideo-sharing" id="subtitle"]]</div>[[!template text="""But I also participated in Emacs learning.""" start="00:03:17.020" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""What's the difference?""" start="00:03:21.020" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""We often discuss the former,""" start="00:03:22.580" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""grappling with key binds, commands.""" start="00:03:24.220" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""But Emacs learning goes beyond these technicalities.""" start="00:03:27.580" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""It's a mindset. It thrives on collaboration.""" start="00:03:31.620" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""It's not a solo endeavor;""" start="00:03:35.860" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""it flourishes best when we do it together.""" start="00:03:37.580" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""This involves collaborating together,""" start="00:03:41.140" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""creating a collaborative mindset,""" start="00:03:44.100" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""sharing effective strategies,""" start="00:03:46.180" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""lifting each other""" start="00:03:47.980" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""through our collective pool of knowledge.""" start="00:03:49.076" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""Together, we contribute to the growth of each member""" start="00:03:51.640" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""within our vibrant community.""" start="00:03:55.300" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""Emacs learning is much, much harder to do alone.""" start="00:03:56.980" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""And I wanted to help with that.""" start="00:04:00.260" video="mainVideo-sharing" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""My YouTube journey""" start="00:04:03.300" video="mainVideo-sharing" id="subtitle"]]</div>[[!template text="""So this brings me to the second part of my talk,""" start="00:04:03.300" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""my Emacs journey, how I got started""" start="00:04:05.740" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""and where I am today with my YouTube channel,""" start="00:04:08.660" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""my Straightforward Emacs series with nearly 200,000 views.""" start="00:04:11.460" video="mainVideo-sharing" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Why not just read the manual?""" start="00:04:14.820" video="mainVideo-sharing" id="subtitle"]]</div>[[!template text="""The Emacs Manual is often pushed""" start="00:04:14.820" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""as the best way to learn Emacs.""" start="00:04:18.220" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""It's an all-encompassing tome.""" start="00:04:20.380" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""And as amazing as I think it is,""" start="00:04:21.860" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""I don't think it's reasonable""" start="00:04:23.980" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""to push the Emacs manual so hard,""" start="00:04:25.180" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""which is something I felt at first.""" start="00:04:27.580" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""It can be really daunting. It's dense.""" start="00:04:29.060" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""There's a lot there.""" start="00:04:31.600" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""It's just a bit too much for a beginner,""" start="00:04:32.780" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""or even someone with a little bit of experience.""" start="00:04:34.540" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""These qualities, I feel,""" start="00:04:37.420" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""apply to many of the Emacs resources we can find out there.""" start="00:04:40.260" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""The best word for them is heavy.""" start="00:04:43.180" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""They look, they feel, they come across as heavy""" start="00:04:45.180" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""regardless of what they may actually be.""" start="00:04:48.100" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""It's not even that people are too lazy,""" start="00:04:50.740" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""or not capable enough (because that's never true).""" start="00:04:53.380" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""It's just a mental block that takes some getting over,""" start="00:04:56.520" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""and that's okay -- so we need other things, too.""" start="00:05:00.540" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""For me, that was video.""" start="00:05:03.160" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""I wanted someone to tell and show me""" start="00:05:04.860" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""what I wanted to know,""" start="00:05:07.540" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""as well as things I didn't even know were possible.""" start="00:05:08.940" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""I realized this once I'd progressed a little further""" start="00:05:11.740" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""in my Emacs journey. I wanted to do my part.""" start="00:05:15.420" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""I care about Emacs. I started to really care about Emacs.""" start="00:05:18.020" video="mainVideo-sharing" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Why video for Emacs""" start="00:05:20.980" video="mainVideo-sharing" id="subtitle"]]</div>[[!template text="""So I wanted to share about Emacs.""" start="00:05:20.980" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""So at that point, I refocused my work with Emacs""" start="00:05:24.320" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""beyond just myself. I wanted to help others""" start="00:05:27.340" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""feel the excitement that I did.""" start="00:05:30.740" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""So where did I turn, and why?""" start="00:05:32.720" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""It's so trite, but they say that""" start="00:05:35.300" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""a picture is worth a thousand words.""" start="00:05:37.780" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""So how much is a video worth?""" start="00:05:40.160" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""Everyone learns differently, and that's okay.""" start="00:05:41.860" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""But it's absolutely certain to me""" start="00:05:44.220" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""that you need to see something to believe it.""" start="00:05:46.140" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""So for that, I turned to video.""" start="00:05:48.320" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""And it turns out that seeing is believing.""" start="00:05:50.500" video="mainVideo-sharing" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Straightforward Emacs""" start="00:05:54.420" video="mainVideo-sharing" id="subtitle"]]</div>[[!template text="""I made a short video showing off Emacs Org Mode.""" start="00:05:54.420" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""I didn't even have a voiceover.""" start="00:05:56.900" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""That video, less than five minutes long,""" start="00:05:58.960" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""but still incorporating some of my core principles,""" start="00:06:01.700" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""now has over 55,000 views and counting.""" start="00:06:04.340" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""So, something must have been right.""" start="00:06:06.900" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""And the positive reception to that video""" start="00:06:09.460" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""made me want to continue.""" start="00:06:11.220" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""I decided to continue with the videos""" start="00:06:12.980" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""in a series I titled &quot;Straightforward Emacs.&quot;""" start="00:06:14.940" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""And I'm asked: who is the target audience""" start="00:06:18.780" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""for Straightforward Emacs? It's me.""" start="00:06:20.940" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""They're the videos I wish I had existed""" start="00:06:23.900" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""when I was figuring out""" start="00:06:27.600" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""Emacs' numerous and wonderful features.""" start="00:06:28.660" video="mainVideo-sharing" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Challenges and benefits of video""" start="00:06:32.700" video="mainVideo-sharing" id="subtitle"]]</div>[[!template text="""Video does, I admit, come with its own set of challenges.""" start="00:06:32.700" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""Complaints that video is less accessible, it's valid.""" start="00:06:36.620" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""They're more time consuming, it's valid too.""" start="00:06:40.400" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""It's harder to skim a video than a blog post,""" start="00:06:42.460" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""and referring back can be a little annoying.""" start="00:06:45.060" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""To try and solve this,""" start="00:06:47.500" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""I make video notes available as best I can though.""" start="00:06:48.420" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""It's not perfect. Despite these valid claims,""" start="00:06:50.740" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""I believe video offers a sense of personality""" start="00:06:54.400" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""that written content just can't.""" start="00:06:57.380" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""And that makes it well worth it.""" start="00:06:59.220" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""My first two videos in the series""" start="00:07:00.780" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""received a combined 35,000 views.""" start="00:07:03.260" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""I still get kind comments today""" start="00:07:06.260" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""from viewers thanking me, asking questions.""" start="00:07:08.020" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""So I must have done something right,""" start="00:07:10.460" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""to outweigh those cons of video,""" start="00:07:12.780" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""to outweigh those common complaints.""" start="00:07:14.500" video="mainVideo-sharing" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Crafting tutorials that work""" start="00:07:16.300" video="mainVideo-sharing" id="subtitle"]]</div>[[!template text="""What was it? I covered topics that had been done before.""" start="00:07:16.300" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""But I wanted to present them in my way.""" start="00:07:21.660" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""In the way that I knew people would appreciate,""" start="00:07:24.020" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""because it's what I would have appreciated""" start="00:07:26.660" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""when I started my Emacs journey.""" start="00:07:28.300" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""In writing, I navigated towards clarity.""" start="00:07:30.920" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""Crystal clear, step-by-step instructions.""" start="00:07:34.480" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""Fully scripted, recorded in multiple parts and""" start="00:07:38.180" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""spliced together. That allowed me""" start="00:07:40.700" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""to achieve my second goal: no wasted time, or word,""" start="00:07:43.180" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""or thought. I meticulously cut my videos""" start="00:07:48.600" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""to create smooth dialogue.""" start="00:07:51.820" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""I cut out large blocks of typing if not explained.""" start="00:07:54.080" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""Though this does vary video to video.""" start="00:07:57.500" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""Less scripted, more personal video receives less editing.""" start="00:07:59.260" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""Like this talk itself, it's not edited at all.""" start="00:08:03.260" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""And though prerecorded, I wanted to present""" start="00:08:05.660" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""my unfiltered, raw self.""" start="00:08:08.260" video="mainVideo-sharing" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""High-quality and accessible content""" start="00:08:11.720" video="mainVideo-sharing" id="subtitle"]]</div>[[!template text="""Another goal of mine is high quality and accessible content.""" start="00:08:11.720" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""I speak carefully and I tune my volume,""" start="00:08:15.940" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""making it easier to listen to,""" start="00:08:18.580" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""and improving YouTube's auto-captioning.""" start="00:08:20.680" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""Something I didn't consider at first,""" start="00:08:23.400" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""but was mentioned to me in a comment, was color scheme.""" start="00:08:24.900" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""Now I try to select a scheme""" start="00:08:28.400" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""with good contrast and a readable font.""" start="00:08:29.860" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""Content-wise, I design my tutorials""" start="00:08:33.280" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""to ensure they cater to various skill levels,""" start="00:08:35.740" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""as well as learning preferences.""" start="00:08:38.220" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""My videos assume basic Emacs knowledge""" start="00:08:40.100" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""but not too much more.""" start="00:08:43.000" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""Importantly, they're configuration agnostic.""" start="00:08:44.520" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""However you feel about Emacs' 'distributions',""" start="00:08:47.200" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""Doom, Spacemacs, etc, they're out there,""" start="00:08:50.320" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""and beginners often don't distinguish.""" start="00:08:53.120" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""I admit it can be a bit frustrating to see a Reddit post""" start="00:08:57.920" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""asking a question about unexpected behavior,""" start="00:09:02.040" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""without mention of the fact that they have""" start="00:09:04.600" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""literally thousands of lines of non-standard configuration""" start="00:09:06.180" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""in the form of an Emacs distribution.""" start="00:09:09.660" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""So I do my best to mention different possible keybindings""" start="00:09:12.220" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""a viewer might be using.""" start="00:09:14.900" video="mainVideo-sharing" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Most crucial aspect of my videos""" start="00:09:17.920" video="mainVideo-sharing" id="subtitle"]]</div>[[!template text="""There was one thing, though, that turned out to be""" start="00:09:17.920" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""the most crucial part of my videos and series.""" start="00:09:19.940" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""And it's one of the reasons itself for this talk.""" start="00:09:23.300" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""You may have already picked up on it.""" start="00:09:25.460" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""It's the personal aspect. Sharing myself.""" start="00:09:27.880" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""Incorporating relatable examples,""" start="00:09:31.120" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""scenarios that resonate with my audience.""" start="00:09:33.660" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""Seeing personal use cases, examples,""" start="00:09:36.580" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""and demonstrations of real life Emacs use""" start="00:09:39.140" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""is really what began to build a community.""" start="00:09:41.460" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""Because that's the stuff that can jump out of the video""" start="00:09:44.060" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""and into the comments.""" start="00:09:47.220" video="mainVideo-sharing" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""A broadening community""" start="00:09:50.220" video="mainVideo-sharing" id="subtitle"]]</div>[[!template text="""The idea for this talk started""" start="00:09:50.220" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""as a story of my YouTube journey.""" start="00:09:53.200" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""I wanted to share how I began sharing Emacs""" start="00:09:55.240" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""and why I like it. And I think I've done that.""" start="00:09:57.540" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""Thanks to the EmacsConf organizers, though,""" start="00:10:00.960" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""I started to see a larger vision.""" start="00:10:03.720" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""Each video I made took a lot of effort,""" start="00:10:06.200" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""from research and planning to script writing,""" start="00:10:08.260" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""filming and editing. But those comments made it worth it --""" start="00:10:11.140" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""people saying that straightforward Emacs""" start="00:10:14.400" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""was just what they were looking for,""" start="00:10:16.840" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""and that they appreciated my sharing.""" start="00:10:17.620" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""That's what made me want to continue.""" start="00:10:20.720" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""And what made me want to continue even more""" start="00:10:22.420" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""was the community I was building.""" start="00:10:25.700" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""I'd start to see repeat viewers""" start="00:10:28.500" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""who'd come back for my latest upload.""" start="00:10:30.100" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""It's hard for me to find time to produce videos.""" start="00:10:32.640" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""But whether it was two weeks or four months later""" start="00:10:34.860" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""when I finally got around to uploading,""" start="00:10:38.420" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""those same commenters would be there for me.""" start="00:10:40.260" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""And I found real joy in actively engaging with my audience.""" start="00:10:43.280" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""It was amazing to see how my videos --""" start="00:10:47.460" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""me sharing useful Emacs tips,""" start="00:10:49.500" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""sharing the way I do things -- sparked broader discussions.""" start="00:10:51.260" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""On any chat form out there, there's no doubt""" start="00:10:55.120" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""you'll find some sort of cross discourse.""" start="00:10:56.980" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""I'd see viewers replying to other commenters,""" start="00:10:59.720" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""and my videos were no exception. Seeing how""" start="00:11:02.200" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""my videos sparked conversation,""" start="00:11:04.420" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""debate and further interest was incredible.""" start="00:11:06.100" video="mainVideo-sharing" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Sharing Emacs""" start="00:11:10.780" video="mainVideo-sharing" id="subtitle"]]</div>[[!template text="""We've had two amazing days of sharing Emacs,""" start="00:11:10.780" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""putting ourselves out there, and sharing in a community.""" start="00:11:14.000" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""I want to emphasize how amazing""" start="00:11:17.380" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""a strong community with the right values is,""" start="00:11:19.060" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""and to inspire each and every one of us""" start="00:11:22.340" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""to do our part to strengthen that community.""" start="00:11:24.660" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""The point of my talk isn't to tell you""" start="00:11:27.700" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""to pick up your microphone and produce a YouTube video,""" start="00:11:30.260" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""though that wouldn't hurt.""" start="00:11:33.120" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""We're not all interested in that, and that's okay.""" start="00:11:34.560" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""First, I want everybody to pat themselves on the back""" start="00:11:37.780" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""for the mere fact that we are here together.""" start="00:11:41.060" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""Then let's turn to the potential within our community.""" start="00:11:44.140" video="mainVideo-sharing" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Platforms""" start="00:11:48.020" video="mainVideo-sharing" id="subtitle"]]</div>[[!template text="""First, though, I'll briefly note""" start="00:11:48.020" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""that everyone has their opinions about platforms,""" start="00:11:50.140" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""and I'm not here to make judgments,""" start="00:11:52.340" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""but freedom, equity, and accessibility are important,""" start="00:11:53.460" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""but reach is, too.""" start="00:11:56.060" video="mainVideo-sharing" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Achieving unity""" start="00:11:57.922" video="mainVideo-sharing" id="subtitle"]]</div>[[!template text="""Regardless of the platform,""" start="00:11:57.922" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""one thing remains certain:""" start="00:12:00.540" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""our strength lies in unity.""" start="00:12:02.700" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""Like any online community, this calls for unique ways""" start="00:12:05.400" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""to come together and share. How can we achieve this unity?""" start="00:12:08.740" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""The key is finding avenues""" start="00:12:13.780" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""where our collective knowledge and our support can flourish,""" start="00:12:15.100" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""while each person can find a place for themselves,""" start="00:12:18.800" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""creating a more connected and empowered Emacs community.""" start="00:12:21.780" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""From uplifting others with positive contributions""" start="00:12:25.680" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""to engaging on platforms like Reddit,""" start="00:12:29.100" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""both idealistic and concrete approaches are really valuable.""" start="00:12:31.220" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""We can continue lively debate""" start="00:12:35.200" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""on community forums and discussion boards,""" start="00:12:36.860" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""encouraging a positive and inclusive atmosphere""" start="00:12:38.900" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""for asking questions and seeking help.""" start="00:12:41.620" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""We can leverage social media platforms to share quick tips,""" start="00:12:44.660" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""tricks, or interesting discoveries related to Emacs.""" start="00:12:48.260" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""Those who enjoy writing""" start="00:12:51.480" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""can contribute to blogs and newsletters,""" start="00:12:52.580" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""sharing personal expertise and experiences""" start="00:12:54.860" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""with a larger audience.""" start="00:12:57.500" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""Let's also not underestimate the value of online video,""" start="00:12:59.240" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""as I've said, and learning platforms too.""" start="00:13:02.960" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""Creating and sharing tutorials""" start="00:13:05.660" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""on platforms like YouTube or educational websites""" start="00:13:07.540" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""addresses specific aspects of Emacs and benefits learners,""" start="00:13:10.260" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""while contributing a personal touch.""" start="00:13:14.020" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""Participating in or organizing Emacs-related courses""" start="00:13:17.420" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""also fosters a structured learning""" start="00:13:20.580" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""environment where there's so much room""" start="00:13:22.540" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""for mentorship and support,""" start="00:13:24.260" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""which is valuable for everyone involved.""" start="00:13:26.080" video="mainVideo-sharing" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Every contribution is valuable""" start="00:13:30.000" video="mainVideo-sharing" id="subtitle"]]</div>[[!template text="""We can also call on our open source [* free software] values""" start="00:13:30.000" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""and focus on collaborative projects,""" start="00:13:32.580" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""from coding projects where we can contribute and learn""" start="00:13:34.940" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""to building shared documentation and guides""" start="00:13:38.240" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""that compile collective knowledge on specific topics --""" start="00:13:41.020" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""the Emacs Wiki is a great place""" start="00:13:44.340" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""to start and continue that work as well.""" start="00:13:46.460" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""Especially for those who might be less willing""" start="00:13:49.600" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""to put themselves out there,""" start="00:13:51.660" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""it's essential to recognize that every contribution,""" start="00:13:53.100" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""regardless of its scale, adds value to our community.""" start="00:13:56.200" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""Documentation contributions, however small,""" start="00:13:59.520" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""can go a long way. So do translations,""" start="00:14:02.120" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""for those who are able to increase accessibility,""" start="00:14:04.460" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""as well as testing and bug reporting.""" start="00:14:07.380" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""Reporting issues to package maintainers""" start="00:14:09.540" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""in their desired format -- speaking as one myself,""" start="00:14:11.380" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""I appreciate when users give helpful feedback.""" start="00:14:14.020" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""There are options for everybody, big and small.""" start="00:14:16.820" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""Remember, the strength of our community""" start="00:14:20.480" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""lies in its ability to share, collaborate,""" start="00:14:22.540" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""and learn together. Whether through collaborative projects,""" start="00:14:25.340" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""sharing insights on forums, or leveraging social media,""" start="00:14:29.380" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""by embracing these ideas, we can build""" start="00:14:32.900" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""a more connected and empowered Emacs community.""" start="00:14:34.660" video="mainVideo-sharing" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Conclusion""" start="00:14:40.300" video="mainVideo-sharing" id="subtitle"]]</div>[[!template text="""Now Emacs is so very personal.""" start="00:14:40.300" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""Those of us who have our own""" start="00:14:43.760" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""carefully manicured configurations understand --""" start="00:14:44.940" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""Emacs molds to our liking and our person.""" start="00:14:47.680" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""Our configurations and use-cases""" start="00:14:50.860" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""are a reflection of our individuality.""" start="00:14:53.220" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""Nonetheless, the richness of our community""" start="00:14:56.380" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""lies in collaboration, sharing, and learning together.""" start="00:14:59.320" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""There's a lot of talk in the community""" start="00:15:04.620" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""about how to ensure Emacs' longevity.""" start="00:15:06.100" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""I agree it's important.""" start="00:15:09.560" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""We care because of passion, excitement,""" start="00:15:11.140" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""and utility. We want to share""" start="00:15:13.820" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""and we want to have others love what we love.""" start="00:15:16.100" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""We also want a stronger community""" start="00:15:19.260" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""that fosters new innovation.""" start="00:15:21.100" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""I used to buy into complaints I'd read online""" start="00:15:23.900" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""that Emacs' defaults are too unapproachable.""" start="00:15:26.540" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""The default color scheme and the font is unappealing.""" start="00:15:29.500" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""Fix that and people will flock.""" start="00:15:33.420" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""Sounds fair, I'd think.""" start="00:15:35.700" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""Turns out, it's not what we need.""" start="00:15:37.740" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""Emacs is bigger than that.""" start="00:15:40.640" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""What we need is like what we've done here this weekend.""" start="00:15:42.680" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""Like EmacsConf. It's the absolute epitome""" start="00:15:45.780" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""of sharing about and caring about Emacs.""" start="00:15:49.660" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""We are here both working to grow our community,""" start="00:15:53.900" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""and to strengthen what we already have.""" start="00:15:56.860" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""We're here because we find joy in Emacs,""" start="00:16:00.140" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""and that joy is amplified by sharing it""" start="00:16:02.580" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""with and among others.""" start="00:16:05.860" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""So let's continue this journey together,""" start="00:16:07.680" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""navigating Emacs with a spirit of collaboration,""" start="00:16:10.220" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""because in unity, we find not just strength""" start="00:16:13.460" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""but the enduring legacy of a tool that we hold very dear.""" start="00:16:17.260" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""Thank you to everybody here""" start="00:16:22.060" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""for being part of this shared adventure.""" start="00:16:23.340" video="mainVideo-sharing" id="subtitle"]]
+[[!template text="""Let's go forth and share, together.""" start="00:16:26.500" video="mainVideo-sharing" id="subtitle"]]
+
+</div>
+
+Captioner: sachac
+
+<div class="transcript transcript-qanda"><a name="sharing-qanda-transcript"></a><h1>Q&A transcript (unedited)</h1>
+
+[[!template text="""[Speaker 1]: Yeah, we're live. So whoever's in the""" start="00:00:05.940" video="qanda-sharing" id="subtitle"]]
+[[!template text="""background might be able to see you live in""" start="00:00:08.240" video="qanda-sharing" id="subtitle"]]
+[[!template text="""about 10 seconds as soon as the stream""" start="00:00:09.900" video="qanda-sharing" id="subtitle"]]
+[[!template text="""catches up. Hi Jacob, how are you doing?""" start="00:00:11.380" video="qanda-sharing" id="subtitle"]]
+[[!template text="""[Speaker 0]: Got that? We're live. I'm doing well.""" start="00:00:12.360" video="qanda-sharing" id="subtitle"]]
+[[!template text="""How are you doing today?""" start="00:00:13.080" video="qanda-sharing" id="subtitle"]]
+[[!template text="""[Speaker 1]: I am doing well and this is the very last""" start="00:00:16.200" video="qanda-sharing" id="subtitle"]]
+[[!template text="""talk of the day so I'm very excited not""" start="00:00:17.960" video="qanda-sharing" id="subtitle"]]
+[[!template text="""because it finishes but because I am tired""" start="00:00:20.020" video="qanda-sharing" id="subtitle"]]
+[[!template text="""[Speaker 0]: Yeah very understandable.""" start="00:00:22.080" video="qanda-sharing" id="subtitle"]]
+[[!template text="""Well thanks for all of your hard work.""" start="00:00:23.860" video="qanda-sharing" id="subtitle"]]
+[[!template text="""We all really appreciate it and all the other""" start="00:00:26.180" video="qanda-sharing" id="subtitle"]]
+[[!template text="""organizers.""" start="00:00:26.320" video="qanda-sharing" id="subtitle"]]
+[[!template text="""[Speaker 1]: and need some sleep. Well on behalf of all""" start="00:00:28.980" video="qanda-sharing" id="subtitle"]]
+[[!template text="""the organizers thank you but you know it all""" start="00:00:30.980" video="qanda-sharing" id="subtitle"]]
+[[!template text="""it makes it all worthwhile when we see the""" start="00:00:33.840" video="qanda-sharing" id="subtitle"]]
+[[!template text="""valuable contribution that every single 1 of""" start="00:00:36.280" video="qanda-sharing" id="subtitle"]]
+[[!template text="""our speakers are making,""" start="00:00:37.160" video="qanda-sharing" id="subtitle"]]
+[[!template text="""not only for recording their talks,""" start="00:00:39.559" video="qanda-sharing" id="subtitle"]]
+[[!template text="""which is a tough demand on people to say,""" start="00:00:42.180" video="qanda-sharing" id="subtitle"]]
+[[!template text="""oh, if you want to go to EmacsConf,""" start="00:00:43.420" video="qanda-sharing" id="subtitle"]]
+[[!template text="""you might want to record your talk.""" start="00:00:45.480" video="qanda-sharing" id="subtitle"]]
+[[!template text="""But then almost all of you do it and you""" start="00:00:48.960" video="qanda-sharing" id="subtitle"]]
+[[!template text="""spend a lot of time with us answering""" start="00:00:50.440" video="qanda-sharing" id="subtitle"]]
+[[!template text="""questions. So we couldn't do it.""" start="00:00:51.580" video="qanda-sharing" id="subtitle"]]
+[[!template text="""You know, we wouldn't be spending as much""" start="00:00:53.680" video="qanda-sharing" id="subtitle"]]
+[[!template text="""energy, half as much energy,""" start="00:00:54.960" video="qanda-sharing" id="subtitle"]]
+[[!template text="""if we didn't believe that it was worth it.""" start="00:00:58.320" video="qanda-sharing" id="subtitle"]]
+[[!template text="""So now it's me thanking you on behalf of all""" start="00:01:01.120" video="qanda-sharing" id="subtitle"]]
+[[!template text="""the speakers.""" start="00:01:01.480" video="qanda-sharing" id="subtitle"]]
+[[!template text="""[Speaker 0]: Well thank you that's part of what I wanted""" start="00:01:03.900" video="qanda-sharing" id="subtitle"]]
+[[!template text="""to get across in my talk was that coming""" start="00:01:06.040" video="qanda-sharing" id="subtitle"]]
+[[!template text="""together and sharing ourselves and you know""" start="00:01:08.800" video="qanda-sharing" id="subtitle"]]
+[[!template text="""not just putting little little essays out""" start="00:01:11.140" video="qanda-sharing" id="subtitle"]]
+[[!template text="""there and single videos but coming together""" start="00:01:13.020" video="qanda-sharing" id="subtitle"]]
+[[!template text="""as a community you know sharing ourselves our""" start="00:01:15.720" video="qanda-sharing" id="subtitle"]]
+[[!template text="""faces our voices you know it really brings us""" start="00:01:18.640" video="qanda-sharing" id="subtitle"]]
+[[!template text="""together and makes everyone stronger.""" start="00:01:19.840" video="qanda-sharing" id="subtitle"]]
+[[!template text="""[Speaker 1]: Exactly, and I think it's been a recurring""" start="00:01:22.940" video="qanda-sharing" id="subtitle"]]
+[[!template text="""theme. Most of the talks we have at""" start="00:01:27.280" video="qanda-sharing" id="subtitle"]]
+[[!template text="""EmacsConf, they're usually about sharing,""" start="00:01:28.840" video="qanda-sharing" id="subtitle"]]
+[[!template text="""obviously, sharing the knowledge that they've""" start="00:01:30.580" video="qanda-sharing" id="subtitle"]]
+[[!template text="""acquired, either writing a package or""" start="00:01:32.960" video="qanda-sharing" id="subtitle"]]
+[[!template text="""learning how to use Emacs as a professor in""" start="00:01:35.860" video="qanda-sharing" id="subtitle"]]
+[[!template text="""academia or stuff like this.""" start="00:01:37.200" video="qanda-sharing" id="subtitle"]]
+[[!template text="""But what I particularly like this year about""" start="00:01:39.380" video="qanda-sharing" id="subtitle"]]
+[[!template text="""the different talks we've had is that they've""" start="00:01:41.720" video="qanda-sharing" id="subtitle"]]
+[[!template text="""really made the sharing even more obvious.""" start="00:01:44.479" video="qanda-sharing" id="subtitle"]]
+[[!template text="""We've had the mentoring this afternoon and we""" start="00:01:46.720" video="qanda-sharing" id="subtitle"]]
+[[!template text="""have your talk about using videos as a""" start="00:01:49.640" video="qanda-sharing" id="subtitle"]]
+[[!template text="""different medium to get into something.""" start="00:01:51.100" video="qanda-sharing" id="subtitle"]]
+[[!template text="""And I really think in terms of accessibility""" start="00:01:54.020" video="qanda-sharing" id="subtitle"]]
+[[!template text="""to Emacs, all of you who talked about this""" start="00:01:58.780" video="qanda-sharing" id="subtitle"]]
+[[!template text="""topic are doing a wonderful job.""" start="00:01:59.960" video="qanda-sharing" id="subtitle"]]
+[[!template text="""So, thank you again for all of this.""" start="00:02:01.400" video="qanda-sharing" id="subtitle"]]
+[[!template text="""[Speaker 0]: Thank you. Yeah, do we have any questions to""" start="00:02:04.080" video="qanda-sharing" id="subtitle"]]
+[[!template text="""be answering?""" start="00:02:04.360" video="qanda-sharing" id="subtitle"]]
+[[!template text="""[Speaker 1]: Yeah, so only 1 for now and I'll invite""" start="00:02:08.199" video="qanda-sharing" id="subtitle"]]
+[[!template text="""people as usual to please add their question""" start="00:02:10.860" video="qanda-sharing" id="subtitle"]]
+[[!template text="""to the pad or to join us on BBB.""" start="00:02:12.720" video="qanda-sharing" id="subtitle"]]
+[[!template text="""Now the chat is open if you want to join us""" start="00:02:15.920" video="qanda-sharing" id="subtitle"]]
+[[!template text="""on BBB and ask your questions directly.""" start="00:02:17.480" video="qanda-sharing" id="subtitle"]]
+[[!template text="""And in the meantime, I will read the first""" start="00:02:20.520" video="qanda-sharing" id="subtitle"]]
+[[!template text="""question. So, Kroting,""" start="00:02:22.700" video="qanda-sharing" id="subtitle"]]
+[[!template text="""are you using OxReveal to make your slides?""" start="00:02:25.040" video="qanda-sharing" id="subtitle"]]
+[[!template text="""If not, what are you using?""" start="00:02:26.520" video="qanda-sharing" id="subtitle"]]
+[[!template text="""They look very elegant,""" start="00:02:27.740" video="qanda-sharing" id="subtitle"]]
+[[!template text="""and I concur.""" start="00:02:28.820" video="qanda-sharing" id="subtitle"]]
+[[!template text="""[Speaker 0]: That's true. I am using OxReveal.""" start="00:02:32.920" video="qanda-sharing" id="subtitle"]]
+[[!template text="""I have a whole entire video on it.""" start="00:02:35.320" video="qanda-sharing" id="subtitle"]]
+[[!template text="""So if you're interested,""" start="00:02:36.020" video="qanda-sharing" id="subtitle"]]
+[[!template text="""feel free to take a look.""" start="00:02:37.840" video="qanda-sharing" id="subtitle"]]
+[[!template text="""It's very simple to get started with.""" start="00:02:39.960" video="qanda-sharing" id="subtitle"]]
+[[!template text="""There are a lot of different packages to use""" start="00:02:42.560" video="qanda-sharing" id="subtitle"]]
+[[!template text="""Reveal.js and Emacs. OxReveal or OrgReveal""" start="00:02:45.640" video="qanda-sharing" id="subtitle"]]
+[[!template text="""seems to be pretty easy to use.""" start="00:02:47.320" video="qanda-sharing" id="subtitle"]]
+[[!template text="""So try that 1 out. Yeah,""" start="00:02:48.840" video="qanda-sharing" id="subtitle"]]
+[[!template text="""it's really nice.""" start="00:02:49.440" video="qanda-sharing" id="subtitle"]]
+[[!template text="""[Speaker 1]: Awesome. I'm going to give a little bit of""" start="00:02:54.020" video="qanda-sharing" id="subtitle"]]
+[[!template text="""time for the other people to finish writing""" start="00:02:55.840" video="qanda-sharing" id="subtitle"]]
+[[!template text="""their answer. In the meantime,""" start="00:02:56.980" video="qanda-sharing" id="subtitle"]]
+[[!template text="""I'll ask you 1 of my own.""" start="00:02:58.260" video="qanda-sharing" id="subtitle"]]
+[[!template text="""So you said you were in college,""" start="00:02:59.620" video="qanda-sharing" id="subtitle"]]
+[[!template text="""right? In com sci. Sorry,""" start="00:03:01.500" video="qanda-sharing" id="subtitle"]]
+[[!template text="""[Speaker 0]: Yeah.""" start="00:03:02.980" video="qanda-sharing" id="subtitle"]]
+[[!template text="""[Speaker 1]: computer science. I think it's great to find""" start="00:03:07.240" video="qanda-sharing" id="subtitle"]]
+[[!template text="""people in computer science who have,""" start="00:03:08.860" video="qanda-sharing" id="subtitle"]]
+[[!template text="""from the get-go, as soon as their bachelor,""" start="00:03:11.780" video="qanda-sharing" id="subtitle"]]
+[[!template text="""an appetite for sharing and vulgarizing a lot""" start="00:03:16.220" video="qanda-sharing" id="subtitle"]]
+[[!template text="""of knowledge. Because it feels like if you""" start="00:03:17.780" video="qanda-sharing" id="subtitle"]]
+[[!template text="""get started like this,""" start="00:03:18.540" video="qanda-sharing" id="subtitle"]]
+[[!template text="""you're gonna have a well over time as you""" start="00:03:20.580" video="qanda-sharing" id="subtitle"]]
+[[!template text="""progress with the learning.""" start="00:03:21.500" video="qanda-sharing" id="subtitle"]]
+[[!template text="""So I'm very excited to see what you do in the""" start="00:03:23.720" video="qanda-sharing" id="subtitle"]]
+[[!template text="""coming years because of this.""" start="00:03:24.720" video="qanda-sharing" id="subtitle"]]
+[[!template text="""[Speaker 0]: Thank you, thank you, yeah.""" start="00:03:26.420" video="qanda-sharing" id="subtitle"]]
+[[!template text="""And Emacs has been like very central to my""" start="00:03:29.700" video="qanda-sharing" id="subtitle"]]
+[[!template text="""education as well. It's a great way to sort""" start="00:03:32.100" video="qanda-sharing" id="subtitle"]]
+[[!template text="""of organize myself and also it's a good way""" start="00:03:34.460" video="qanda-sharing" id="subtitle"]]
+[[!template text="""to share with other people with Org Mode.""" start="00:03:36.040" video="qanda-sharing" id="subtitle"]]
+[[!template text="""I can export my code, I can export notes.""" start="00:03:38.000" video="qanda-sharing" id="subtitle"]]
+[[!template text="""It makes it so simple.""" start="00:03:39.340" video="qanda-sharing" id="subtitle"]]
+[[!template text="""My peers are also impressed by my PDF""" start="00:03:42.240" video="qanda-sharing" id="subtitle"]]
+[[!template text="""documents and whatever I can produce with""" start="00:03:44.260" video="qanda-sharing" id="subtitle"]]
+[[!template text="""[Speaker 1]: Oh yeah. If only they knew how much time it""" start="00:03:48.040" video="qanda-sharing" id="subtitle"]]
+[[!template text="""takes us to get LaTeX to behave properly.""" start="00:03:49.840" video="qanda-sharing" id="subtitle"]]
+[[!template text="""[Speaker 0]: Emacs. Right, right. I see some more""" start="00:03:52.680" video="qanda-sharing" id="subtitle"]]
+[[!template text="""questions coming in I can answer.""" start="00:03:53.980" video="qanda-sharing" id="subtitle"]]
+[[!template text="""[Speaker 1]: Sure, I'll read it for you so that it's a""" start="00:03:56.940" video="qanda-sharing" id="subtitle"]]
+[[!template text="""little more interactive.""" start="00:03:57.440" video="qanda-sharing" id="subtitle"]]
+[[!template text="""So, second question. Videos can be very""" start="00:03:59.920" video="qanda-sharing" id="subtitle"]]
+[[!template text="""inspirational to learn about something by""" start="00:04:01.820" video="qanda-sharing" id="subtitle"]]
+[[!template text="""watching it used. I often find it,""" start="00:04:04.860" video="qanda-sharing" id="subtitle"]]
+[[!template text="""I often find that I need to do some research""" start="00:04:07.080" video="qanda-sharing" id="subtitle"]]
+[[!template text="""after watching a video to learn more.""" start="00:04:09.120" video="qanda-sharing" id="subtitle"]]
+[[!template text="""Do you give people links to relevant""" start="00:04:10.640" video="qanda-sharing" id="subtitle"]]
+[[!template text="""resources or etc?""" start="00:04:11.820" video="qanda-sharing" id="subtitle"]]
+[[!template text="""[Speaker 0]: Yeah, that's something I could definitely do""" start="00:04:15.060" video="qanda-sharing" id="subtitle"]]
+[[!template text="""more of. When I make a video I try to combine""" start="00:04:17.800" video="qanda-sharing" id="subtitle"]]
+[[!template text="""all the relevant resources and make 1 sort of""" start="00:04:20.459" video="qanda-sharing" id="subtitle"]]
+[[!template text="""cohesive video. I like to think of my video""" start="00:04:23.600" video="qanda-sharing" id="subtitle"]]
+[[!template text="""as a jumping off point to the Emacs manuals""" start="00:04:26.580" video="qanda-sharing" id="subtitle"]]
+[[!template text="""because the manuals are so so full but you""" start="00:04:30.040" video="qanda-sharing" id="subtitle"]]
+[[!template text="""need to have a sort of a cursory""" start="00:04:31.360" video="qanda-sharing" id="subtitle"]]
+[[!template text="""understanding to get started with them.""" start="00:04:33.800" video="qanda-sharing" id="subtitle"]]
+[[!template text="""And then yeah, if there are other sort of""" start="00:04:35.440" video="qanda-sharing" id="subtitle"]]
+[[!template text="""GitHub links or something like that,""" start="00:04:36.880" video="qanda-sharing" id="subtitle"]]
+[[!template text="""I like to put those in the description.""" start="00:04:38.220" video="qanda-sharing" id="subtitle"]]
+[[!template text="""[Speaker 1]: Good question. Right. And I think it's arcing""" start="00:04:42.720" video="qanda-sharing" id="subtitle"]]
+[[!template text="""back also. I keep using the word arcing back.""" start="00:04:44.820" video="qanda-sharing" id="subtitle"]]
+[[!template text="""I'm sorry. It's my... Every EmacsConf I have""" start="00:04:47.420" video="qanda-sharing" id="subtitle"]]
+[[!template text="""1 word or 1 phrase that I keep saying over""" start="00:04:49.440" video="qanda-sharing" id="subtitle"]]
+[[!template text="""and over again and this 1 is not leaving but""" start="00:04:51.220" video="qanda-sharing" id="subtitle"]]
+[[!template text="""don't worry we only have about 1 more hour""" start="00:04:53.000" video="qanda-sharing" id="subtitle"]]
+[[!template text="""and then you're done with me arcing out,""" start="00:04:54.640" video="qanda-sharing" id="subtitle"]]
+[[!template text="""arcing back to stuff. I think this is""" start="00:04:59.060" video="qanda-sharing" id="subtitle"]]
+[[!template text="""reminding me of both the mentoring talk we've""" start="00:05:03.740" video="qanda-sharing" id="subtitle"]]
+[[!template text="""had today about onboarding people basically""" start="00:05:06.760" video="qanda-sharing" id="subtitle"]]
+[[!template text="""so that they can have a well of a time on""" start="00:05:08.480" video="qanda-sharing" id="subtitle"]]
+[[!template text="""their own on Emacs and I'd agree with you,""" start="00:05:11.040" video="qanda-sharing" id="subtitle"]]
+[[!template text="""you know, as much as we like to rave about""" start="00:05:13.180" video="qanda-sharing" id="subtitle"]]
+[[!template text="""Emacs as a self-documenting editor,""" start="00:05:15.140" video="qanda-sharing" id="subtitle"]]
+[[!template text="""about how complete the documentation is,""" start="00:05:17.700" video="qanda-sharing" id="subtitle"]]
+[[!template text="""As you've mentioned in your talk,""" start="00:05:18.940" video="qanda-sharing" id="subtitle"]]
+[[!template text="""it's not accessible directly to the people.""" start="00:05:21.220" video="qanda-sharing" id="subtitle"]]
+[[!template text="""We can yell as much as we want to people on""" start="00:05:23.620" video="qanda-sharing" id="subtitle"]]
+[[!template text="""IRC, you just need to RTFM or you just need""" start="00:05:26.600" video="qanda-sharing" id="subtitle"]]
+[[!template text="""to do Ctrl-H-V for the variable or Ctrl-H-F.""" start="00:05:29.280" video="qanda-sharing" id="subtitle"]]
+[[!template text="""What is a variable? I am not for computer""" start="00:05:32.040" video="qanda-sharing" id="subtitle"]]
+[[!template text="""science. What does it mean?""" start="00:05:33.240" video="qanda-sharing" id="subtitle"]]
+[[!template text="""It is really blocking a lot of people right""" start="00:05:36.580" video="qanda-sharing" id="subtitle"]]
+[[!template text="""from the get-go. And I think the element of""" start="00:05:40.800" video="qanda-sharing" id="subtitle"]]
+[[!template text="""interactivity, as you've mentioned in your""" start="00:05:42.340" video="qanda-sharing" id="subtitle"]]
+[[!template text="""talk, that is introduced by video just makes""" start="00:05:45.360" video="qanda-sharing" id="subtitle"]]
+[[!template text="""the hand-holding that much easier.""" start="00:05:47.520" video="qanda-sharing" id="subtitle"]]
+[[!template text="""And it's great to do it like this.""" start="00:05:50.940" video="qanda-sharing" id="subtitle"]]
+[[!template text="""All right, I think we've got another""" start="00:05:53.400" video="qanda-sharing" id="subtitle"]]
+[[!template text="""questions. What are your fellow codes of""" start="00:05:56.120" video="qanda-sharing" id="subtitle"]]
+[[!template text="""students using for their editors?""" start="00:05:57.500" video="qanda-sharing" id="subtitle"]]
+[[!template text="""What kinds of feedback do you get from them""" start="00:06:00.200" video="qanda-sharing" id="subtitle"]]
+[[!template text="""when they learn about you using Emacs?""" start="00:06:01.960" video="qanda-sharing" id="subtitle"]]
+[[!template text="""[Speaker 0]: That's a great question.""" start="00:06:05.080" video="qanda-sharing" id="subtitle"]]
+[[!template text="""I think professors want to make things,""" start="00:06:10.360" video="qanda-sharing" id="subtitle"]]
+[[!template text="""the entry as simple as possible.""" start="00:06:12.240" video="qanda-sharing" id="subtitle"]]
+[[!template text="""So for the first computer science course and""" start="00:06:15.540" video="qanda-sharing" id="subtitle"]]
+[[!template text="""the second, at least at Columbia,""" start="00:06:16.640" video="qanda-sharing" id="subtitle"]]
+[[!template text="""They use Codeo, which is 1 of those online""" start="00:06:20.380" video="qanda-sharing" id="subtitle"]]
+[[!template text="""whole IDEs. Now in the third course,""" start="00:06:25.740" video="qanda-sharing" id="subtitle"]]
+[[!template text="""which is sort of more the weed out as they""" start="00:06:27.520" video="qanda-sharing" id="subtitle"]]
+[[!template text="""call it, the professor gives you a choice and""" start="00:06:29.820" video="qanda-sharing" id="subtitle"]]
+[[!template text="""he says you can use Emacs or you can use Vim.""" start="00:06:33.320" video="qanda-sharing" id="subtitle"]]
+[[!template text="""And everyone uses Vim.""" start="00:06:36.340" video="qanda-sharing" id="subtitle"]]
+[[!template text="""Not a single person I know is using Emacs,""" start="00:06:38.720" video="qanda-sharing" id="subtitle"]]
+[[!template text="""simply because the professor's using Vim and""" start="00:06:43.380" video="qanda-sharing" id="subtitle"]]
+[[!template text="""that's what he shows on screen and that's""" start="00:06:45.080" video="qanda-sharing" id="subtitle"]]
+[[!template text="""just what everyone else falls into.""" start="00:06:46.640" video="qanda-sharing" id="subtitle"]]
+[[!template text="""And it's also, like, they're totally in the""" start="00:06:50.220" video="qanda-sharing" id="subtitle"]]
+[[!template text="""terminal, and that can be a big barrier of""" start="00:06:52.120" video="qanda-sharing" id="subtitle"]]
+[[!template text="""entry. So I think they see Emacs as like""" start="00:06:54.640" video="qanda-sharing" id="subtitle"]]
+[[!template text="""something like Vim, but it's not sort of the""" start="00:06:59.760" video="qanda-sharing" id="subtitle"]]
+[[!template text="""same idea. It's not what everyone uses""" start="00:07:01.560" video="qanda-sharing" id="subtitle"]]
+[[!template text="""because it's not what's being shown up on""" start="00:07:03.840" video="qanda-sharing" id="subtitle"]]
+[[!template text="""screen. So if you're not following,""" start="00:07:05.220" video="qanda-sharing" id="subtitle"]]
+[[!template text="""like if you're a new learner,""" start="00:07:06.460" video="qanda-sharing" id="subtitle"]]
+[[!template text="""if you're not following with Vim,""" start="00:07:08.300" video="qanda-sharing" id="subtitle"]]
+[[!template text="""you might have a little bit of a harder time""" start="00:07:10.320" video="qanda-sharing" id="subtitle"]]
+[[!template text="""in these classes because everyone else is""" start="00:07:12.740" video="qanda-sharing" id="subtitle"]]
+[[!template text="""also using Vim.""" start="00:07:14.060" video="qanda-sharing" id="subtitle"]]
+[[!template text="""[Speaker 1]: Right. And I'm kind of reminded again,""" start="00:07:19.640" video="qanda-sharing" id="subtitle"]]
+[[!template text="""it feels like this is the last talk,""" start="00:07:21.260" video="qanda-sharing" id="subtitle"]]
+[[!template text="""so I'm reminiscing of all the different talks""" start="00:07:24.020" video="qanda-sharing" id="subtitle"]]
+[[!template text="""we've had on the general chat,""" start="00:07:25.680" video="qanda-sharing" id="subtitle"]]
+[[!template text="""at least. And you know,""" start="00:07:28.340" video="qanda-sharing" id="subtitle"]]
+[[!template text="""it feels like we had, you know,""" start="00:07:30.800" video="qanda-sharing" id="subtitle"]]
+[[!template text="""this 1 talk, I can't remember the first name""" start="00:07:34.160" video="qanda-sharing" id="subtitle"]]
+[[!template text="""at the presentation, but it was about forcing""" start="00:07:36.340" video="qanda-sharing" id="subtitle"]]
+[[!template text="""people to use Emacs and not giving them the""" start="00:07:38.760" video="qanda-sharing" id="subtitle"]]
+[[!template text="""choice to do this. And I found it to be such""" start="00:07:41.860" video="qanda-sharing" id="subtitle"]]
+[[!template text="""a powerful move to do because usually people,""" start="00:07:45.060" video="qanda-sharing" id="subtitle"]]
+[[!template text="""maybe some classes are actually forcing Vim""" start="00:07:47.440" video="qanda-sharing" id="subtitle"]]
+[[!template text="""because it's a little more palatable I guess.""" start="00:07:49.540" video="qanda-sharing" id="subtitle"]]
+[[!template text="""Do you have something to say on this?""" start="00:07:51.020" video="qanda-sharing" id="subtitle"]]
+[[!template text="""[Speaker 0]: Yeah let me actually, I've remembered 1""" start="00:07:53.760" video="qanda-sharing" id="subtitle"]]
+[[!template text="""thing, I know there's another course,""" start="00:07:55.380" video="qanda-sharing" id="subtitle"]]
+[[!template text="""a fourth course you'd say in assembly and the""" start="00:07:58.880" video="qanda-sharing" id="subtitle"]]
+[[!template text="""professor suggests Emacs.""" start="00:08:00.960" video="qanda-sharing" id="subtitle"]]
+[[!template text="""However I know that's just 1 professor so I""" start="00:08:04.240" video="qanda-sharing" id="subtitle"]]
+[[!template text="""think broadly Vim is more of the standard and""" start="00:08:06.740" video="qanda-sharing" id="subtitle"]]
+[[!template text="""yeah what were you, can you repeat what you""" start="00:08:08.360" video="qanda-sharing" id="subtitle"]]
+[[!template text="""said about Vim being more sort of friendly?""" start="00:08:09.880" video="qanda-sharing" id="subtitle"]]
+[[!template text="""[Speaker 1]: Yeah, because it's not,""" start="00:08:12.880" video="qanda-sharing" id="subtitle"]]
+[[!template text="""okay, I'm quoting the opinions of other,""" start="00:08:14.960" video="qanda-sharing" id="subtitle"]]
+[[!template text="""you know, I would hate to insult Emacs and""" start="00:08:17.040" video="qanda-sharing" id="subtitle"]]
+[[!template text="""give myself a bad rep at Emacs comfortable""" start="00:08:19.400" video="qanda-sharing" id="subtitle"]]
+[[!template text="""things. But it feels like because modal""" start="00:08:23.200" video="qanda-sharing" id="subtitle"]]
+[[!template text="""editing is usually something that people hear""" start="00:08:26.280" video="qanda-sharing" id="subtitle"]]
+[[!template text="""from when it starts looking into how to be""" start="00:08:28.260" video="qanda-sharing" id="subtitle"]]
+[[!template text="""more efficient when they read text.""" start="00:08:30.460" video="qanda-sharing" id="subtitle"]]
+[[!template text="""It feels like the first door,""" start="00:08:32.220" video="qanda-sharing" id="subtitle"]]
+[[!template text="""the closest door to this is Vim.""" start="00:08:35.140" video="qanda-sharing" id="subtitle"]]
+[[!template text="""And so a lot of professors,""" start="00:08:36.380" video="qanda-sharing" id="subtitle"]]
+[[!template text="""because there's very little on-boarding,""" start="00:08:39.720" video="qanda-sharing" id="subtitle"]]
+[[!template text="""I mean, I'm going to say the word on-boarding""" start="00:08:41.600" video="qanda-sharing" id="subtitle"]]
+[[!template text="""and then I'm going to modulate,""" start="00:08:42.720" video="qanda-sharing" id="subtitle"]]
+[[!template text="""but there's very little on-boarding to get""" start="00:08:44.600" video="qanda-sharing" id="subtitle"]]
+[[!template text="""into modal editing. You just have your H's""" start="00:08:47.040" video="qanda-sharing" id="subtitle"]]
+[[!template text="""and your J's and your K's and your L's and""" start="00:08:50.080" video="qanda-sharing" id="subtitle"]]
+[[!template text="""everything works. You know,""" start="00:08:51.020" video="qanda-sharing" id="subtitle"]]
+[[!template text="""it does something, yes,""" start="00:08:52.360" video="qanda-sharing" id="subtitle"]]
+[[!template text="""the arrows are in weird places,""" start="00:08:53.640" video="qanda-sharing" id="subtitle"]]
+[[!template text="""but it does something that is vaguely""" start="00:08:55.080" video="qanda-sharing" id="subtitle"]]
+[[!template text="""logical. Whereas with Ctrl-Meta,""" start="00:08:58.260" video="qanda-sharing" id="subtitle"]]
+[[!template text="""Hyper, Super, J and then Ctrl-C and Meta 4""" start="00:09:03.380" video="qanda-sharing" id="subtitle"]]
+[[!template text="""for good measure, you know,""" start="00:09:04.560" video="qanda-sharing" id="subtitle"]]
+[[!template text="""It already feels a little more opaque in""" start="00:09:08.000" video="qanda-sharing" id="subtitle"]]
+[[!template text="""terms of how people are going to use this.""" start="00:09:09.960" video="qanda-sharing" id="subtitle"]]
+[[!template text="""So, I think it's also 1 good thing about the""" start="00:09:13.780" video="qanda-sharing" id="subtitle"]]
+[[!template text="""videos is that people can see you're not""" start="00:09:15.860" video="qanda-sharing" id="subtitle"]]
+[[!template text="""contorting your hands in very difficult""" start="00:09:17.900" video="qanda-sharing" id="subtitle"]]
+[[!template text="""shapes to use Emacs as the bad rep usually""" start="00:09:20.920" video="qanda-sharing" id="subtitle"]]
+[[!template text="""is. But yeah, to come back to what I was""" start="00:09:24.440" video="qanda-sharing" id="subtitle"]]
+[[!template text="""saying about Vim, I just feel like they've""" start="00:09:26.600" video="qanda-sharing" id="subtitle"]]
+[[!template text="""won the battle in terms of looking very""" start="00:09:30.460" video="qanda-sharing" id="subtitle"]]
+[[!template text="""accessible. And for us with Emacs,""" start="00:09:33.840" video="qanda-sharing" id="subtitle"]]
+[[!template text="""from the top of our ivory tower,""" start="00:09:37.080" video="qanda-sharing" id="subtitle"]]
+[[!template text="""we see the ease of getting into Vim,""" start="00:09:39.940" video="qanda-sharing" id="subtitle"]]
+[[!template text="""but we always think, but Vim script is shit,""" start="00:09:43.320" video="qanda-sharing" id="subtitle"]]
+[[!template text="""we've got Elisp for us,""" start="00:09:44.700" video="qanda-sharing" id="subtitle"]]
+[[!template text="""We can do so many things on our end.""" start="00:09:46.320" video="qanda-sharing" id="subtitle"]]
+[[!template text="""So yeah, does that evoke anything to you with""" start="00:09:51.180" video="qanda-sharing" id="subtitle"]]
+[[!template text="""regards to Vim versus Emacs in terms of""" start="00:09:52.960" video="qanda-sharing" id="subtitle"]]
+[[!template text="""apprehension?""" start="00:09:53.160" video="qanda-sharing" id="subtitle"]]
+[[!template text="""[Speaker 0]: Yeah, I think that Emacs might be more""" start="00:09:56.820" video="qanda-sharing" id="subtitle"]]
+[[!template text="""straightforward if you just plop someone down""" start="00:09:59.320" video="qanda-sharing" id="subtitle"]]
+[[!template text="""in front of their computer because you press""" start="00:10:01.360" video="qanda-sharing" id="subtitle"]]
+[[!template text="""H, you're going to see an H on the screen,""" start="00:10:03.800" video="qanda-sharing" id="subtitle"]]
+[[!template text="""right? And Vim is a whole new modal mindset.""" start="00:10:06.780" video="qanda-sharing" id="subtitle"]]
+[[!template text="""So for a student who wants to like gain""" start="00:10:09.960" video="qanda-sharing" id="subtitle"]]
+[[!template text="""efficiency, then yes, I think that Vim is""" start="00:10:13.540" video="qanda-sharing" id="subtitle"]]
+[[!template text="""definitely like, it feels like a more""" start="00:10:15.160" video="qanda-sharing" id="subtitle"]]
+[[!template text="""friendly introduction.""" start="00:10:16.280" video="qanda-sharing" id="subtitle"]]
+[[!template text="""But I think that Emacs doesn't get enough""" start="00:10:18.340" video="qanda-sharing" id="subtitle"]]
+[[!template text="""credit around here. And I'd like to see it""" start="00:10:20.580" video="qanda-sharing" id="subtitle"]]
+[[!template text="""more often, because a lot of students,""" start="00:10:23.000" video="qanda-sharing" id="subtitle"]]
+[[!template text="""they're not looking to fix the efficiencies""" start="00:10:25.640" video="qanda-sharing" id="subtitle"]]
+[[!template text="""in their text editing.""" start="00:10:28.080" video="qanda-sharing" id="subtitle"]]
+[[!template text="""They're looking to fix the efficiencies in""" start="00:10:31.620" video="qanda-sharing" id="subtitle"]]
+[[!template text="""how they do homework or how they do their""" start="00:10:33.620" video="qanda-sharing" id="subtitle"]]
+[[!template text="""programming assignments,""" start="00:10:34.640" video="qanda-sharing" id="subtitle"]]
+[[!template text="""and they would save time if they,""" start="00:10:37.280" video="qanda-sharing" id="subtitle"]]
+[[!template text="""or at least the mentality for a student,""" start="00:10:39.320" video="qanda-sharing" id="subtitle"]]
+[[!template text="""is that if you can just get it done more""" start="00:10:42.500" video="qanda-sharing" id="subtitle"]]
+[[!template text="""quickly, like it's more,""" start="00:10:43.980" video="qanda-sharing" id="subtitle"]]
+[[!template text="""you know, you do what you're used to,""" start="00:10:45.540" video="qanda-sharing" id="subtitle"]]
+[[!template text="""and Vim is just a barrier towards you know""" start="00:10:49.120" video="qanda-sharing" id="subtitle"]]
+[[!template text="""getting your work done like how do I copy and""" start="00:10:51.040" video="qanda-sharing" id="subtitle"]]
+[[!template text="""paste something it's a whole new set of""" start="00:10:52.800" video="qanda-sharing" id="subtitle"]]
+[[!template text="""challenges to learn so I think both have""" start="00:10:55.080" video="qanda-sharing" id="subtitle"]]
+[[!template text="""their deficiencies and abilities.""" start="00:10:56.920" video="qanda-sharing" id="subtitle"]]
+[[!template text="""[Speaker 1]: Yeah it's funny because I'm just 1 last thing""" start="00:11:00.760" video="qanda-sharing" id="subtitle"]]
+[[!template text="""on this it feels like modal editing because""" start="00:11:03.440" video="qanda-sharing" id="subtitle"]]
+[[!template text="""it is already weird from the get-go,""" start="00:11:05.360" video="qanda-sharing" id="subtitle"]]
+[[!template text="""perhaps it might do a better job of making""" start="00:11:08.260" video="qanda-sharing" id="subtitle"]]
+[[!template text="""people uneasy. You know how we say that""" start="00:11:10.640" video="qanda-sharing" id="subtitle"]]
+[[!template text="""constraints breeds creativity.""" start="00:11:11.600" video="qanda-sharing" id="subtitle"]]
+[[!template text="""Well, Vim constrains you from the get-go.""" start="00:11:14.820" video="qanda-sharing" id="subtitle"]]
+[[!template text="""If you do not press I,""" start="00:11:16.160" video="qanda-sharing" id="subtitle"]]
+[[!template text="""nothing is going to show up in the buffer""" start="00:11:18.120" video="qanda-sharing" id="subtitle"]]
+[[!template text="""that you're currently editing.""" start="00:11:19.040" video="qanda-sharing" id="subtitle"]]
+[[!template text="""Whereas Emacs give you this full sense of""" start="00:11:21.840" video="qanda-sharing" id="subtitle"]]
+[[!template text="""security by when you press J,""" start="00:11:24.000" video="qanda-sharing" id="subtitle"]]
+[[!template text="""[Speaker 0]: Yeah, true.""" start="00:11:27.860" video="qanda-sharing" id="subtitle"]]
+[[!template text="""[Speaker 1]: it actually inputs J. All right,""" start="00:11:29.480" video="qanda-sharing" id="subtitle"]]
+[[!template text="""moving on to another question.""" start="00:11:30.540" video="qanda-sharing" id="subtitle"]]
+[[!template text="""And by the way, we've got some time.""" start="00:11:32.040" video="qanda-sharing" id="subtitle"]]
+[[!template text="""We have technically about 6 more minutes,""" start="00:11:34.740" video="qanda-sharing" id="subtitle"]]
+[[!template text="""but I see Sasha on the other track is already""" start="00:11:38.640" video="qanda-sharing" id="subtitle"]]
+[[!template text="""answering questions that I'm in about""" start="00:11:40.400" video="qanda-sharing" id="subtitle"]]
+[[!template text="""EmacsConf. So we can go a little longer,""" start="00:11:42.840" video="qanda-sharing" id="subtitle"]]
+[[!template text="""as long as I let the organizers know.""" start="00:11:44.760" video="qanda-sharing" id="subtitle"]]
+[[!template text="""So we've got about, let's say,""" start="00:11:46.000" video="qanda-sharing" id="subtitle"]]
+[[!template text="""6 minutes for now. And we'll see if more""" start="00:11:48.120" video="qanda-sharing" id="subtitle"]]
+[[!template text="""questions crop up. All right,""" start="00:11:50.020" video="qanda-sharing" id="subtitle"]]
+[[!template text="""moving on to the next question.""" start="00:11:51.040" video="qanda-sharing" id="subtitle"]]
+[[!template text="""Did you start those university classes using""" start="00:11:53.400" video="qanda-sharing" id="subtitle"]]
+[[!template text="""Emacs, I suppose, in your first year?""" start="00:11:55.180" video="qanda-sharing" id="subtitle"]]
+[[!template text="""[Speaker 0]: Yes, yeah, I did. I started with Emacs 2""" start="00:12:01.640" video="qanda-sharing" id="subtitle"]]
+[[!template text="""years before entering college,""" start="00:12:02.780" video="qanda-sharing" id="subtitle"]]
+[[!template text="""so my junior year of high school.""" start="00:12:04.280" video="qanda-sharing" id="subtitle"]]
+[[!template text="""And I've basically over time built up a""" start="00:12:09.220" video="qanda-sharing" id="subtitle"]]
+[[!template text="""workflow of how I will take my notes,""" start="00:12:11.180" video="qanda-sharing" id="subtitle"]]
+[[!template text="""how I will organize my classes.""" start="00:12:12.900" video="qanda-sharing" id="subtitle"]]
+[[!template text="""And now that I'm taking programming classes""" start="00:12:16.280" video="qanda-sharing" id="subtitle"]]
+[[!template text="""where Emacs might be more acceptable.""" start="00:12:18.280" video="qanda-sharing" id="subtitle"]]
+[[!template text="""It's even enhanced my workflow.""" start="00:12:21.500" video="qanda-sharing" id="subtitle"]]
+[[!template text="""Taking notes in Ouro for program assists,""" start="00:12:24.760" video="qanda-sharing" id="subtitle"]]
+[[!template text="""everyone talks about it,""" start="00:12:27.540" video="qanda-sharing" id="subtitle"]]
+[[!template text="""but from the source, It doesn't get better""" start="00:12:30.640" video="qanda-sharing" id="subtitle"]]
+[[!template text="""than that, being able to write with""" start="00:12:32.860" video="qanda-sharing" id="subtitle"]]
+[[!template text="""highlighting, with syntax highlighting,""" start="00:12:34.280" video="qanda-sharing" id="subtitle"]]
+[[!template text="""with easy exports, running inline code""" start="00:12:38.360" video="qanda-sharing" id="subtitle"]]
+[[!template text="""blocks. And a lot of these programming""" start="00:12:40.960" video="qanda-sharing" id="subtitle"]]
+[[!template text="""classes, they make you code on a server.""" start="00:12:42.960" video="qanda-sharing" id="subtitle"]]
+[[!template text="""And they just say, oh,""" start="00:12:45.080" video="qanda-sharing" id="subtitle"]]
+[[!template text="""SSH, and you can use Vim.""" start="00:12:46.500" video="qanda-sharing" id="subtitle"]]
+[[!template text="""I can use Tramp, and I can use Emacs,""" start="00:12:48.560" video="qanda-sharing" id="subtitle"]]
+[[!template text="""and I'm perfectly at home.""" start="00:12:50.440" video="qanda-sharing" id="subtitle"]]
+[[!template text="""It's just such a seamless transition.""" start="00:12:52.760" video="qanda-sharing" id="subtitle"]]
+[[!template text="""It's a really amazing way to do school.""" start="00:12:55.380" video="qanda-sharing" id="subtitle"]]
+[[!template text="""Professors, you know, all they want is a PDF""" start="00:12:58.260" video="qanda-sharing" id="subtitle"]]
+[[!template text="""at the end of the day.""" start="00:12:59.220" video="qanda-sharing" id="subtitle"]]
+[[!template text="""They just want the paper on their desk.""" start="00:13:00.520" video="qanda-sharing" id="subtitle"]]
+[[!template text="""They're not so picky about how you get it""" start="00:13:03.420" video="qanda-sharing" id="subtitle"]]
+[[!template text="""there. They just want it in their hands.""" start="00:13:04.840" video="qanda-sharing" id="subtitle"]]
+[[!template text="""So, so Emacs is, it's very usable.""" start="00:13:07.120" video="qanda-sharing" id="subtitle"]]
+[[!template text="""It's very doable.""" start="00:13:08.040" video="qanda-sharing" id="subtitle"]]
+[[!template text="""[Speaker 1]: Right. I've got a little anecdote on this""" start="00:13:11.280" video="qanda-sharing" id="subtitle"]]
+[[!template text="""because you're speaking about the topic of""" start="00:13:13.740" video="qanda-sharing" id="subtitle"]]
+[[!template text="""Emacs at university from the perspective of""" start="00:13:16.120" video="qanda-sharing" id="subtitle"]]
+[[!template text="""someone who is in computer science.""" start="00:13:17.600" video="qanda-sharing" id="subtitle"]]
+[[!template text="""But for me, in the humanities,""" start="00:13:19.840" video="qanda-sharing" id="subtitle"]]
+[[!template text="""I just remember those professors who just""" start="00:13:22.900" video="qanda-sharing" id="subtitle"]]
+[[!template text="""required you not to use your laptop.""" start="00:13:24.940" video="qanda-sharing" id="subtitle"]]
+[[!template text="""And I started with Emacs roughly at the same""" start="00:13:28.580" video="qanda-sharing" id="subtitle"]]
+[[!template text="""age as you did. And I was just using it for""" start="00:13:32.460" video="qanda-sharing" id="subtitle"]]
+[[!template text="""absolutely everything,""" start="00:13:33.160" video="qanda-sharing" id="subtitle"]]
+[[!template text="""for my organization, for producing papers.""" start="00:13:35.240" video="qanda-sharing" id="subtitle"]]
+[[!template text="""And to be told that I could not use Emacs for""" start="00:13:37.860" video="qanda-sharing" id="subtitle"]]
+[[!template text="""a class for my note-taking,""" start="00:13:38.680" video="qanda-sharing" id="subtitle"]]
+[[!template text="""I felt utterly naked in the face of what I""" start="00:13:43.660" video="qanda-sharing" id="subtitle"]]
+[[!template text="""needed to do. And yeah,""" start="00:13:46.500" video="qanda-sharing" id="subtitle"]]
+[[!template text="""it's great to see those different""" start="00:13:47.800" video="qanda-sharing" id="subtitle"]]
+[[!template text="""experiences. And it just,""" start="00:13:49.120" video="qanda-sharing" id="subtitle"]]
+[[!template text="""you're always going to be weird.""" start="00:13:50.440" video="qanda-sharing" id="subtitle"]]
+[[!template text="""Like I was the weird guy using Emacs in the""" start="00:13:53.000" video="qanda-sharing" id="subtitle"]]
+[[!template text="""humanities, but I would have been weird using""" start="00:13:54.720" video="qanda-sharing" id="subtitle"]]
+[[!template text="""Vim or any kind of computers with fancy""" start="00:13:58.440" video="qanda-sharing" id="subtitle"]]
+[[!template text="""editing.""" start="00:13:59.060" video="qanda-sharing" id="subtitle"]]
+[[!template text="""[Speaker 0]: Oh yeah, yeah. And I'm in humanities classes""" start="00:14:02.200" video="qanda-sharing" id="subtitle"]]
+[[!template text="""as well, I'm not in a strictly engineering,""" start="00:14:03.840" video="qanda-sharing" id="subtitle"]]
+[[!template text="""so people will see me writing an essay about,""" start="00:14:06.720" video="qanda-sharing" id="subtitle"]]
+[[!template text="""you know, a philosophy essay,""" start="00:14:07.780" video="qanda-sharing" id="subtitle"]]
+[[!template text="""I was working on an essay about Plato and""" start="00:14:09.820" video="qanda-sharing" id="subtitle"]]
+[[!template text="""Aristotle, and they say,""" start="00:14:11.180" video="qanda-sharing" id="subtitle"]]
+[[!template text="""what are you coding, why are you coding your""" start="00:14:13.840" video="qanda-sharing" id="subtitle"]]
+[[!template text="""essay? And I say, well it's just the font""" start="00:14:16.620" video="qanda-sharing" id="subtitle"]]
+[[!template text="""looks a little bit different.""" start="00:14:17.560" video="qanda-sharing" id="subtitle"]]
+[[!template text="""Everything else is the same words,""" start="00:14:19.300" video="qanda-sharing" id="subtitle"]]
+[[!template text="""just the font looks a little different.""" start="00:14:20.800" video="qanda-sharing" id="subtitle"]]
+[[!template text="""This is how I like to do it.""" start="00:14:22.160" video="qanda-sharing" id="subtitle"]]
+[[!template text="""[Speaker 1]: Oh, those pesky monospace fonts are making us""" start="00:14:25.600" video="qanda-sharing" id="subtitle"]]
+[[!template text="""pass as hackers. But for everyone who is""" start="00:14:27.880" video="qanda-sharing" id="subtitle"]]
+[[!template text="""behind us, looking at our monitors.""" start="00:14:29.060" video="qanda-sharing" id="subtitle"]]
+[[!template text="""[Speaker 0]: Exactly.""" start="00:14:30.040" video="qanda-sharing" id="subtitle"]]
+[[!template text="""[Speaker 1]: All right. A little bit of a remark,""" start="00:14:33.900" video="qanda-sharing" id="subtitle"]]
+[[!template text="""I guess, towards me and what I said about""" start="00:14:35.760" video="qanda-sharing" id="subtitle"]]
+[[!template text="""Vim. So, quoting, before NeoVim,""" start="00:14:37.480" video="qanda-sharing" id="subtitle"]]
+[[!template text="""you had to do as much or more configuration""" start="00:14:39.140" video="qanda-sharing" id="subtitle"]]
+[[!template text="""to get basic editing done than in Emacs.""" start="00:14:41.280" video="qanda-sharing" id="subtitle"]]
+[[!template text="""It's also slower with modal editing compared""" start="00:14:43.520" video="qanda-sharing" id="subtitle"]]
+[[!template text="""to Emacs key bindings because you have to""" start="00:14:45.440" video="qanda-sharing" id="subtitle"]]
+[[!template text="""press escape and 2 keys to get things done.""" start="00:14:47.360" video="qanda-sharing" id="subtitle"]]
+[[!template text="""While in Emacs, you only have to press Ctrl""" start="00:14:49.120" video="qanda-sharing" id="subtitle"]]
+[[!template text="""or Meta something to move or search or""" start="00:14:52.120" video="qanda-sharing" id="subtitle"]]
+[[!template text="""whatever, and then write.""" start="00:14:53.400" video="qanda-sharing" id="subtitle"]]
+[[!template text="""And I tend to agree, I'm not familiar with""" start="00:14:55.960" video="qanda-sharing" id="subtitle"]]
+[[!template text="""the ages before NeoVim,""" start="00:14:59.260" video="qanda-sharing" id="subtitle"]]
+[[!template text="""But I think we are mostly talking in terms of""" start="00:15:03.120" video="qanda-sharing" id="subtitle"]]
+[[!template text="""reputation and communication,""" start="00:15:04.900" video="qanda-sharing" id="subtitle"]]
+[[!template text="""like how is Vim considered nowadays or for""" start="00:15:08.360" video="qanda-sharing" id="subtitle"]]
+[[!template text="""the last 10 years in the mindset of people""" start="00:15:10.760" video="qanda-sharing" id="subtitle"]]
+[[!template text="""choosing or about to choose an editor.""" start="00:15:13.740" video="qanda-sharing" id="subtitle"]]
+[[!template text="""And, You know, I keep spitting the fact about""" start="00:15:17.620" video="qanda-sharing" id="subtitle"]]
+[[!template text="""VimScript being bad, but I'm going to be""" start="00:15:19.340" video="qanda-sharing" id="subtitle"]]
+[[!template text="""honest, I've never actually written any""" start="00:15:20.800" video="qanda-sharing" id="subtitle"]]
+[[!template text="""VimScript. I'm just parroting whatever the""" start="00:15:24.180" video="qanda-sharing" id="subtitle"]]
+[[!template text="""giants with shoulders I'm standing have been""" start="00:15:26.760" video="qanda-sharing" id="subtitle"]]
+[[!template text="""saying to me. And it's not very intelligent,""" start="00:15:28.260" video="qanda-sharing" id="subtitle"]]
+[[!template text="""I know, but We also have a very limited pool""" start="00:15:31.080" video="qanda-sharing" id="subtitle"]]
+[[!template text="""of time, and I also think that this is a""" start="00:15:34.340" video="qanda-sharing" id="subtitle"]]
+[[!template text="""point that your talk addresses in a way.""" start="00:15:36.460" video="qanda-sharing" id="subtitle"]]
+[[!template text="""Yes, we could be starting the massive quest""" start="00:15:40.240" video="qanda-sharing" id="subtitle"]]
+[[!template text="""of reading the Emacs manual or the ELISP""" start="00:15:42.740" video="qanda-sharing" id="subtitle"]]
+[[!template text="""introductory guide or the ELISP complete""" start="00:15:45.100" video="qanda-sharing" id="subtitle"]]
+[[!template text="""guide. A lot of people are trying,""" start="00:15:47.620" video="qanda-sharing" id="subtitle"]]
+[[!template text="""very highly motivated,""" start="00:15:48.940" video="qanda-sharing" id="subtitle"]]
+[[!template text="""I'm going to get started on Emacs and I'm""" start="00:15:51.140" video="qanda-sharing" id="subtitle"]]
+[[!template text="""going to do things right.""" start="00:15:51.940" video="qanda-sharing" id="subtitle"]]
+[[!template text="""But the fact of the matter is,""" start="00:15:53.760" video="qanda-sharing" id="subtitle"]]
+[[!template text="""it's not necessarily a good use of your time""" start="00:15:56.580" video="qanda-sharing" id="subtitle"]]
+[[!template text="""to get started like this,""" start="00:15:57.740" video="qanda-sharing" id="subtitle"]]
+[[!template text="""because there are so many things you're not""" start="00:16:00.680" video="qanda-sharing" id="subtitle"]]
+[[!template text="""going to understand, it kind of goes back,""" start="00:16:03.320" video="qanda-sharing" id="subtitle"]]
+[[!template text="""didn't say iBug this time,""" start="00:16:04.640" video="qanda-sharing" id="subtitle"]]
+[[!template text="""I stopped myself, it kind of goes back to""" start="00:16:07.700" video="qanda-sharing" id="subtitle"]]
+[[!template text="""this I plus 1 Vigoski proximals on""" start="00:16:11.040" video="qanda-sharing" id="subtitle"]]
+[[!template text="""development stuff that I was talking about""" start="00:16:12.740" video="qanda-sharing" id="subtitle"]]
+[[!template text="""before. The manual is I plus 999.""" start="00:16:16.020" video="qanda-sharing" id="subtitle"]]
+[[!template text="""Your video might be I plus 3 or I plus 2 and""" start="00:16:20.940" video="qanda-sharing" id="subtitle"]]
+[[!template text="""the hand-holding really does wonders for""" start="00:16:23.240" video="qanda-sharing" id="subtitle"]]
+[[!template text="""people to eventually get closer to reading""" start="00:16:26.120" video="qanda-sharing" id="subtitle"]]
+[[!template text="""the manuals and stuff like this.""" start="00:16:27.540" video="qanda-sharing" id="subtitle"]]
+[[!template text="""[Speaker 0]: Yeah it's a great way just something about""" start="00:16:31.000" video="qanda-sharing" id="subtitle"]]
+[[!template text="""giving someone those practical""" start="00:16:33.160" video="qanda-sharing" id="subtitle"]]
+[[!template text="""demonstrations, that's something I really""" start="00:16:35.000" video="qanda-sharing" id="subtitle"]]
+[[!template text="""appreciate. A lot of these really nice""" start="00:16:36.860" video="qanda-sharing" id="subtitle"]]
+[[!template text="""presentations we've had today and yesterday""" start="00:16:38.520" video="qanda-sharing" id="subtitle"]]
+[[!template text="""show real life use cases and we get to see""" start="00:16:41.920" video="qanda-sharing" id="subtitle"]]
+[[!template text="""people typing and they're working how they""" start="00:16:44.240" video="qanda-sharing" id="subtitle"]]
+[[!template text="""would normally work. And that's a great way""" start="00:16:46.680" video="qanda-sharing" id="subtitle"]]
+[[!template text="""to begin to understand how you can apply a""" start="00:16:49.040" video="qanda-sharing" id="subtitle"]]
+[[!template text="""tool to yourself because at the end of the""" start="00:16:50.680" video="qanda-sharing" id="subtitle"]]
+[[!template text="""day Emacs is a tool for us.""" start="00:16:52.040" video="qanda-sharing" id="subtitle"]]
+[[!template text="""You know we might take joy in it,""" start="00:16:53.760" video="qanda-sharing" id="subtitle"]]
+[[!template text="""it helps us be more productive,""" start="00:16:54.960" video="qanda-sharing" id="subtitle"]]
+[[!template text="""it's fun but we're using it for a certain end""" start="00:16:58.040" video="qanda-sharing" id="subtitle"]]
+[[!template text="""and you know if we how we can understand to""" start="00:17:00.880" video="qanda-sharing" id="subtitle"]]
+[[!template text="""get to those ends and what those ends might""" start="00:17:03.080" video="qanda-sharing" id="subtitle"]]
+[[!template text="""even be. It's just great to see other people""" start="00:17:05.740" video="qanda-sharing" id="subtitle"]]
+[[!template text="""bring that forth for you.""" start="00:17:07.440" video="qanda-sharing" id="subtitle"]]
+[[!template text="""[Speaker 1]: Okay, great. Well, I don't see any more""" start="00:17:12.380" video="qanda-sharing" id="subtitle"]]
+[[!template text="""questions in the chat currently,""" start="00:17:13.980" video="qanda-sharing" id="subtitle"]]
+[[!template text="""and I don't see anyone who's joined us on the""" start="00:17:17.020" video="qanda-sharing" id="subtitle"]]
+[[!template text="""blue button. We are near the time that I said""" start="00:17:19.599" video="qanda-sharing" id="subtitle"]]
+[[!template text="""we've got about 40 seconds to go until we""" start="00:17:22.420" video="qanda-sharing" id="subtitle"]]
+[[!template text="""were due to end. Jacob,""" start="00:17:24.060" video="qanda-sharing" id="subtitle"]]
+[[!template text="""I kind of want to give you the microphone for""" start="00:17:26.099" video="qanda-sharing" id="subtitle"]]
+[[!template text="""the end. Do you have anything to say?""" start="00:17:27.339" video="qanda-sharing" id="subtitle"]]
+[[!template text="""Like you've talked about your YouTube""" start="00:17:28.359" video="qanda-sharing" id="subtitle"]]
+[[!template text="""channel, we've already ensured that the links""" start="00:17:30.480" video="qanda-sharing" id="subtitle"]]
+[[!template text="""will be everywhere on the talk page,""" start="00:17:31.960" video="qanda-sharing" id="subtitle"]]
+[[!template text="""in the pad, on IRC. But is there anything""" start="00:17:34.280" video="qanda-sharing" id="subtitle"]]
+[[!template text="""else you'd like to add?""" start="00:17:35.540" video="qanda-sharing" id="subtitle"]]
+[[!template text="""Because you're the last speaker of EmacsCon,""" start="00:17:37.120" video="qanda-sharing" id="subtitle"]]
+[[!template text="""and you've got the tough responsibility of""" start="00:17:39.640" video="qanda-sharing" id="subtitle"]]
+[[!template text="""finishing it.""" start="00:17:42.040" video="qanda-sharing" id="subtitle"]]
+[[!template text="""[Speaker 0]: Oh, well, that's not tough at all when we've""" start="00:17:45.440" video="qanda-sharing" id="subtitle"]]
+[[!template text="""had 2 days. I mean, so many people,""" start="00:17:47.640" video="qanda-sharing" id="subtitle"]]
+[[!template text="""so many presenters coming together and like I""" start="00:17:51.300" video="qanda-sharing" id="subtitle"]]
+[[!template text="""said right at the beginning to Leo,""" start="00:17:52.640" video="qanda-sharing" id="subtitle"]]
+[[!template text="""putting your face out there,""" start="00:17:54.920" video="qanda-sharing" id="subtitle"]]
+[[!template text="""putting your voice out there,""" start="00:17:56.180" video="qanda-sharing" id="subtitle"]]
+[[!template text="""putting yourself out there,""" start="00:17:57.620" video="qanda-sharing" id="subtitle"]]
+[[!template text="""it's such a great way to come together""" start="00:18:00.060" video="qanda-sharing" id="subtitle"]]
+[[!template text="""because Emacs is not the standard.""" start="00:18:02.080" video="qanda-sharing" id="subtitle"]]
+[[!template text="""You know, I've tried to teach my friends""" start="00:18:04.540" video="qanda-sharing" id="subtitle"]]
+[[!template text="""Emacs, I've tried to show it to them.""" start="00:18:06.040" video="qanda-sharing" id="subtitle"]]
+[[!template text="""You know, some people you get it or you""" start="00:18:08.360" video="qanda-sharing" id="subtitle"]]
+[[!template text="""don't. And the people who get it,""" start="00:18:10.320" video="qanda-sharing" id="subtitle"]]
+[[!template text="""we're not all in the same place.""" start="00:18:11.740" video="qanda-sharing" id="subtitle"]]
+[[!template text="""And it's great.""" start="00:18:13.440" video="qanda-sharing" id="subtitle"]]
+[[!template text="""[Speaker 1]: I'm interrupting you for a second because I""" start="00:18:15.720" video="qanda-sharing" id="subtitle"]]
+[[!template text="""think we were supposed to kill the the cron""" start="00:18:17.960" video="qanda-sharing" id="subtitle"]]
+[[!template text="""which starts the next meeting and it hasn't.""" start="00:18:20.220" video="qanda-sharing" id="subtitle"]]
+[[!template text="""Let me try to fix it. I'll talk to production""" start="00:18:22.640" video="qanda-sharing" id="subtitle"]]
+[[!template text="""[Speaker 0]: Do I wait or keep going?""" start="00:18:25.360" video="qanda-sharing" id="subtitle"]]
+[[!template text="""[Speaker 1]: in a second. Just wait a bit.""" start="00:18:27.360" video="qanda-sharing" id="subtitle"]]
+[[!template text="""I'm very sorry. I've given you the mic and""" start="00:18:29.260" video="qanda-sharing" id="subtitle"]]
+[[!template text="""then it just... Okay let me just check your""" start="00:18:35.280" video="qanda-sharing" id="subtitle"]]
+[[!template text="""production.""" start="00:18:35.440" video="qanda-sharing" id="subtitle"]]
+[[!template text="""What? All right, Jason.""" start="00:18:59.660" video="qanda-sharing" id="subtitle"]]
+[[!template text="""All right, Jacob, I'm going to put us""" start="00:19:00.880" video="qanda-sharing" id="subtitle"]]
+[[!template text="""manually back on track.""" start="00:19:02.080" video="qanda-sharing" id="subtitle"]]
+[[!template text="""So give me just a second.""" start="00:19:03.080" video="qanda-sharing" id="subtitle"]]
+[[!template text="""[Speaker 0]: Right.""" start="00:19:04.220" video="qanda-sharing" id="subtitle"]]
+[[!template text="""[Speaker 1]: I'm going to manually type the URL,""" start="00:19:09.240" video="qanda-sharing" id="subtitle"]]
+[[!template text="""because it's a janky setup that we've got""" start="00:19:12.440" video="qanda-sharing" id="subtitle"]]
+[[!template text="""right now, when whenever it's not working.""" start="00:19:13.980" video="qanda-sharing" id="subtitle"]]
+[[!template text="""All right. So tps slash slash bbb emacs first""" start="00:19:20.400" video="qanda-sharing" id="subtitle"]]
+[[!template text="""dot org html. No, that's not the 1.""" start="00:19:23.000" video="qanda-sharing" id="subtitle"]]
+[[!template text="""Let me try to type it.""" start="00:19:27.180" video="qanda-sharing" id="subtitle"]]
+[[!template text="""Probably. Bbbemaxfirst.""" start="00:19:27.900" video="qanda-sharing" id="subtitle"]]
+[[!template text="""L5H, R5D, BH0 Okay, we're getting back Okay,""" start="00:19:42.700" video="qanda-sharing" id="subtitle"]]
+[[!template text="""sorry folks about this We are,""" start="00:19:44.380" video="qanda-sharing" id="subtitle"]]
+[[!template text="""Jacob, We're back online.""" start="00:19:45.360" video="qanda-sharing" id="subtitle"]]
+[[!template text="""I'm really sorry about this.""" start="00:19:46.800" video="qanda-sharing" id="subtitle"]]
+[[!template text="""It's just that Sasha's script kicked in.""" start="00:19:49.040" video="qanda-sharing" id="subtitle"]]
+[[!template text="""I did tell you we were supposed to finish at""" start="00:19:51.140" video="qanda-sharing" id="subtitle"]]
+[[!template text="""30. And because Sasha is busy presenting in""" start="00:19:53.940" video="qanda-sharing" id="subtitle"]]
+[[!template text="""the other room, sadly,""" start="00:19:54.940" video="qanda-sharing" id="subtitle"]]
+[[!template text="""we got yanked again. So Jacob,""" start="00:19:57.100" video="qanda-sharing" id="subtitle"]]
+[[!template text="""I'm very sorry for the interruption.""" start="00:19:58.280" video="qanda-sharing" id="subtitle"]]
+[[!template text="""And you were retelling people about something""" start="00:20:01.220" video="qanda-sharing" id="subtitle"]]
+[[!template text="""you told me during the check-ins.""" start="00:20:02.320" video="qanda-sharing" id="subtitle"]]
+[[!template text="""Do you mind restarting this?""" start="00:20:04.440" video="qanda-sharing" id="subtitle"]]
+[[!template text="""[Speaker 0]: Yeah, sure. Well, you said I have the no""" start="00:20:09.440" video="qanda-sharing" id="subtitle"]]
+[[!template text="""small task of making the last words from""" start="00:20:12.180" video="qanda-sharing" id="subtitle"]]
+[[!template text="""presenters and not the organizers at""" start="00:20:14.440" video="qanda-sharing" id="subtitle"]]
+[[!template text="""EmacsConf. And I said,""" start="00:20:16.260" video="qanda-sharing" id="subtitle"]]
+[[!template text="""well, that's not hard at all.""" start="00:20:17.880" video="qanda-sharing" id="subtitle"]]
+[[!template text="""How many speakers have we had?""" start="00:20:20.540" video="qanda-sharing" id="subtitle"]]
+[[!template text="""30? And it's so incredible these past,""" start="00:20:24.480" video="qanda-sharing" id="subtitle"]]
+[[!template text="""you know, today and yesterday to have all""" start="00:20:26.880" video="qanda-sharing" id="subtitle"]]
+[[!template text="""been able to come together and not just share""" start="00:20:29.700" video="qanda-sharing" id="subtitle"]]
+[[!template text="""our ideas and our code and how we do things,""" start="00:20:33.920" video="qanda-sharing" id="subtitle"]]
+[[!template text="""but to share our faces and our voices and our""" start="00:20:38.000" video="qanda-sharing" id="subtitle"]]
+[[!template text="""lives, you know a little bit of our lives.""" start="00:20:39.780" video="qanda-sharing" id="subtitle"]]
+[[!template text="""You know to have the passion to even spend""" start="00:20:42.100" video="qanda-sharing" id="subtitle"]]
+[[!template text="""the time to on your weekend to watch this""" start="00:20:44.900" video="qanda-sharing" id="subtitle"]]
+[[!template text="""means that you have some sort of care about""" start="00:20:47.440" video="qanda-sharing" id="subtitle"]]
+[[!template text="""Emacs and it adds to your life.""" start="00:20:49.160" video="qanda-sharing" id="subtitle"]]
+[[!template text="""And you know those Emacs people aren't""" start="00:20:51.820" video="qanda-sharing" id="subtitle"]]
+[[!template text="""everywhere. I've tried to bring my friends""" start="00:20:53.620" video="qanda-sharing" id="subtitle"]]
+[[!template text="""onto Emacs and it seems like you know you're""" start="00:20:56.040" video="qanda-sharing" id="subtitle"]]
+[[!template text="""an Emacs person or you're not really an Emacs""" start="00:20:58.900" video="qanda-sharing" id="subtitle"]]
+[[!template text="""person. And those Emacs people can be really""" start="00:21:02.360" video="qanda-sharing" id="subtitle"]]
+[[!template text="""spread out. So it's great that we're able to""" start="00:21:04.840" video="qanda-sharing" id="subtitle"]]
+[[!template text="""come together and share a little bit of""" start="00:21:07.900" video="qanda-sharing" id="subtitle"]]
+[[!template text="""ourselves, a little bit of how we do things.""" start="00:21:09.760" video="qanda-sharing" id="subtitle"]]
+[[!template text="""And like I said in my talk,""" start="00:21:12.440" video="qanda-sharing" id="subtitle"]]
+[[!template text="""just increase our own joy in Emacs by coming""" start="00:21:15.660" video="qanda-sharing" id="subtitle"]]
+[[!template text="""together and being able to share our joy in""" start="00:21:19.360" video="qanda-sharing" id="subtitle"]]
+[[!template text="""Emacs. And of course, thank you to all the""" start="00:21:21.760" video="qanda-sharing" id="subtitle"]]
+[[!template text="""organizers and everyone who's contributed in""" start="00:21:25.000" video="qanda-sharing" id="subtitle"]]
+[[!template text="""any way. It means a lot to even the smallest""" start="00:21:27.980" video="qanda-sharing" id="subtitle"]]
+[[!template text="""member, the biggest member of our community.""" start="00:21:29.700" video="qanda-sharing" id="subtitle"]]
+[[!template text="""We're all really glad to be able to come""" start="00:21:33.480" video="qanda-sharing" id="subtitle"]]
+[[!template text="""together like this and share and meet each""" start="00:21:36.300" video="qanda-sharing" id="subtitle"]]
+[[!template text="""other and give nice talks.""" start="00:21:37.820" video="qanda-sharing" id="subtitle"]]
+[[!template text="""[Speaker 1]: Well, thank you so much,""" start="00:21:40.200" video="qanda-sharing" id="subtitle"]]
+[[!template text="""Jacob. And perhaps to reassure people,""" start="00:21:42.340" video="qanda-sharing" id="subtitle"]]
+[[!template text="""because yes, right now it feels like we are""" start="00:21:44.900" video="qanda-sharing" id="subtitle"]]
+[[!template text="""legions, all of us here in the same room""" start="00:21:47.040" video="qanda-sharing" id="subtitle"]]
+[[!template text="""watching the same thing.""" start="00:21:47.960" video="qanda-sharing" id="subtitle"]]
+[[!template text="""We are the Emacs' and that's a very good""" start="00:21:50.740" video="qanda-sharing" id="subtitle"]]
+[[!template text="""feeling to have. But you know,""" start="00:21:52.540" video="qanda-sharing" id="subtitle"]]
+[[!template text="""first, there's 1 thing that is certain,""" start="00:21:54.640" video="qanda-sharing" id="subtitle"]]
+[[!template text="""almost 99% certain, it's the fact that next""" start="00:21:58.380" video="qanda-sharing" id="subtitle"]]
+[[!template text="""year there'll probably be another EmacsConf""" start="00:22:00.300" video="qanda-sharing" id="subtitle"]]
+[[!template text="""and there will be more Emacs versions,""" start="00:22:02.920" video="qanda-sharing" id="subtitle"]]
+[[!template text="""there will be more augmented versions,""" start="00:22:04.540" video="qanda-sharing" id="subtitle"]]
+[[!template text="""there will be more people doing cool stuff on""" start="00:22:07.300" video="qanda-sharing" id="subtitle"]]
+[[!template text="""Melpa, on ELPA, etc. So it is still a vibrant""" start="00:22:11.640" video="qanda-sharing" id="subtitle"]]
+[[!template text="""community. But in case you're craving this""" start="00:22:14.200" video="qanda-sharing" id="subtitle"]]
+[[!template text="""little extra in-person stuff,""" start="00:22:17.260" video="qanda-sharing" id="subtitle"]]
+[[!template text="""Sash and myself, we are maintaining a list of""" start="00:22:20.280" video="qanda-sharing" id="subtitle"]]
+[[!template text="""all the Emacs user group.""" start="00:22:21.560" video="qanda-sharing" id="subtitle"]]
+[[!template text="""This is on the Emacs wiki.""" start="00:22:22.680" video="qanda-sharing" id="subtitle"]]
+[[!template text="""This is what I'm sharing on my screen""" start="00:22:24.140" video="qanda-sharing" id="subtitle"]]
+[[!template text="""currently. And we try to organize them by""" start="00:22:27.500" video="qanda-sharing" id="subtitle"]]
+[[!template text="""regional region, sorry,""" start="00:22:30.100" video="qanda-sharing" id="subtitle"]]
+[[!template text="""parts of the world like North America,""" start="00:22:31.560" video="qanda-sharing" id="subtitle"]]
+[[!template text="""South America, Europe,""" start="00:22:32.640" video="qanda-sharing" id="subtitle"]]
+[[!template text="""Africa, Asia. And we have a list of upcoming""" start="00:22:36.300" video="qanda-sharing" id="subtitle"]]
+[[!template text="""events and a lot of them are still online.""" start="00:22:39.000" video="qanda-sharing" id="subtitle"]]
+[[!template text="""Ever since we had the entire pandemic stuff,""" start="00:22:41.420" video="qanda-sharing" id="subtitle"]]
+[[!template text="""a lot of the workshops moved online and,""" start="00:22:46.940" video="qanda-sharing" id="subtitle"]]
+[[!template text="""sorry, I had someone whispering in my ear.""" start="00:22:49.960" video="qanda-sharing" id="subtitle"]]
+[[!template text="""A lot of them moved online and they are still""" start="00:22:53.100" video="qanda-sharing" id="subtitle"]]
+[[!template text="""online now because they've realized it's a""" start="00:22:54.960" video="qanda-sharing" id="subtitle"]]
+[[!template text="""very great way to get more people in the same""" start="00:22:57.100" video="qanda-sharing" id="subtitle"]]
+[[!template text="""place. And whilst it's great to have""" start="00:22:59.640" video="qanda-sharing" id="subtitle"]]
+[[!template text="""in-person meetings, We do this with Emacs""" start="00:23:01.560" video="qanda-sharing" id="subtitle"]]
+[[!template text="""Paris. Emacs Paris actually is happening is""" start="00:23:05.140" video="qanda-sharing" id="subtitle"]]
+[[!template text="""it? I think, oh I'm going to need to tell""" start="00:23:07.640" video="qanda-sharing" id="subtitle"]]
+[[!template text="""Sasha that apparently yes we do not have the""" start="00:23:10.200" video="qanda-sharing" id="subtitle"]]
+[[!template text="""next event for Emacs Paris which is next""" start="00:23:12.380" video="qanda-sharing" id="subtitle"]]
+[[!template text="""Tuesday and it is in person but for everyone""" start="00:23:14.700" video="qanda-sharing" id="subtitle"]]
+[[!template text="""and including you Jacob if you find a""" start="00:23:18.580" video="qanda-sharing" id="subtitle"]]
+[[!template text="""workshop in North America that is working for""" start="00:23:20.460" video="qanda-sharing" id="subtitle"]]
+[[!template text="""you, I'm thinking about Emacs SF,""" start="00:23:22.540" video="qanda-sharing" id="subtitle"]]
+[[!template text="""which I've attended multiple times,""" start="00:23:24.660" video="qanda-sharing" id="subtitle"]]
+[[!template text="""and Emacs Austin as well,""" start="00:23:27.980" video="qanda-sharing" id="subtitle"]]
+[[!template text="""that I've been to once,""" start="00:23:29.060" video="qanda-sharing" id="subtitle"]]
+[[!template text="""I think, It would be a lovely experience and""" start="00:23:31.640" video="qanda-sharing" id="subtitle"]]
+[[!template text="""a way to, most of them are every month,""" start="00:23:34.160" video="qanda-sharing" id="subtitle"]]
+[[!template text="""it would be a good way for you to stay in""" start="00:23:36.040" video="qanda-sharing" id="subtitle"]]
+[[!template text="""touch and to continue this sense of""" start="00:23:39.240" video="qanda-sharing" id="subtitle"]]
+[[!template text="""in-person-ness about Emacs.""" start="00:23:40.580" video="qanda-sharing" id="subtitle"]]
+[[!template text="""[Speaker 0]: Wonderful. All right, thank you so much.""" start="00:23:46.560" video="qanda-sharing" id="subtitle"]]
+[[!template text="""Should I drop off of our call now and let you""" start="00:23:48.900" video="qanda-sharing" id="subtitle"]]
+[[!template text="""close things up?""" start="00:23:50.000" video="qanda-sharing" id="subtitle"]]
+[[!template text="""[Speaker 1]: Yeah, we're probably gonna close thing up.""" start="00:23:52.600" video="qanda-sharing" id="subtitle"]]
+[[!template text="""Let me just check on Sasha.""" start="00:23:53.600" video="qanda-sharing" id="subtitle"]]
+[[!template text="""Sasha is obviously answering many many""" start="00:23:55.380" video="qanda-sharing" id="subtitle"]]
+[[!template text="""questions about how we are organizing""" start="00:23:57.180" video="qanda-sharing" id="subtitle"]]
+[[!template text="""EmacsConf. So Jacob, I'm gonna let you go.""" start="00:23:59.540" video="qanda-sharing" id="subtitle"]]
+[[!template text="""Thank you so much for your presentation and""" start="00:24:01.440" video="qanda-sharing" id="subtitle"]]
+[[!template text="""your answers. And maybe we'll see you next""" start="00:24:03.720" video="qanda-sharing" id="subtitle"]]
+[[!template text="""year. Or maybe a workshop.""" start="00:24:05.020" video="qanda-sharing" id="subtitle"]]
+[[!template text="""[Speaker 0]: Who knows? I'm so lucky I got you as my Q&A.""" start="00:24:06.820" video="qanda-sharing" id="subtitle"]]
+[[!template text="""When I saw you at my first Emacs Conf 2 years""" start="00:24:10.440" video="qanda-sharing" id="subtitle"]]
+[[!template text="""ago, I thought, maybe this guy will do mine.""" start="00:24:12.740" video="qanda-sharing" id="subtitle"]]
+[[!template text="""[Speaker 1]: Very nice. Thank you. I'm glad I was able to""" start="00:24:18.840" video="qanda-sharing" id="subtitle"]]
+[[!template text="""generate such a feeling.""" start="00:24:19.920" video="qanda-sharing" id="subtitle"]]
+[[!template text="""All right, I'll get going now.""" start="00:24:21.600" video="qanda-sharing" id="subtitle"]]
+[[!template text="""Jacob, have a wonderful evening.""" start="00:24:23.260" video="qanda-sharing" id="subtitle"]]
+[[!template text="""[Speaker 0]: And here you are. You too,""" start="00:24:23.940" video="qanda-sharing" id="subtitle"]]
+[[!template text="""see you later.""" start="00:24:24.400" video="qanda-sharing" id="subtitle"]]
+[[!template text="""[Speaker 1]: Bye-bye. And folks, what are we going to do""" start="00:24:28.140" video="qanda-sharing" id="subtitle"]]
+[[!template text="""right now? I'm going to set everything up so""" start="00:24:30.300" video="qanda-sharing" id="subtitle"]]
+[[!template text="""that we can get Sasha finished on the talk.""" start="00:24:32.520" video="qanda-sharing" id="subtitle"]]
+[[!template text="""If you're watching, squinting with both""" start="00:24:34.840" video="qanda-sharing" id="subtitle"]]
+[[!template text="""streams, you can go to Sasha's room,""" start="00:24:37.720" video="qanda-sharing" id="subtitle"]]
+[[!template text="""I mean, the development track,""" start="00:24:39.520" video="qanda-sharing" id="subtitle"]]
+[[!template text="""to maybe catch some of the answers by Sasha.""" start="00:24:42.180" video="qanda-sharing" id="subtitle"]]
+[[!template text="""Otherwise, we'll be back in roughly 5 to 10""" start="00:24:45.040" video="qanda-sharing" id="subtitle"]]
+[[!template text="""minutes to do the closing remarks on this""" start="00:24:46.960" video="qanda-sharing" id="subtitle"]]
+[[!template text="""channel. In the meantime,""" start="00:24:47.720" video="qanda-sharing" id="subtitle"]]
+[[!template text="""I'll put on some music.""" start="00:24:48.840" video="qanda-sharing" id="subtitle"]]
+[[!template text="""So bear with us and I'll see you shortly.""" start="00:24:51.300" video="qanda-sharing" id="subtitle"]]
+[[!template text="""And closing here. This BBB recording.""" start="00:25:15.660" video="qanda-sharing" id="subtitle"]]
+[[!template text="""Yay!""" start="00:25:16.360" video="qanda-sharing" id="subtitle"]]
+
+</div>Questions or comments? Please e-mail [jakebox0@protonmail.com](mailto:jakebox0@protonmail.com?subject=Comment%20for%20EmacsConf%202023%20sharing%3A%20Sharing%20Emacs%20is%20Caring%20Emacs%3A%20Emacs%20education%20and%20why%20I%20embraced%20video)
<!-- End of emacsconf-publish-after-page -->
diff --git a/2023/info/sharing-before.md b/2023/info/sharing-before.md
index 376dee32..52b1a3f1 100644
--- a/2023/info/sharing-before.md
+++ b/2023/info/sharing-before.md
@@ -1,12 +1,28 @@
<!-- Automatically generated by emacsconf-publish-before-page -->
[[!toc ]]
-Format: 20-min talk followed by live web conference Q&A
-Discuss on IRC: [#emacsconf](https://chat.emacsconf.org/?join=emacsconf)
-Status: Waiting for video from speaker
+Format: 17-min talk ; Q&A: BigBlueButton conference room
+Status: Q&A to be extracted from the room recordings
+# Talk
+
+<div class="vid mainVideo"><video controls preload="none" id="mainVideo-sharing"><source src="https://media.emacsconf.org/2023/emacsconf-2023-sharing--sharing-emacs-is-caring-emacs-emacs-education-and-why-i-embraced-video--jacob-boxerman--main.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2023/captions/emacsconf-2023-sharing--sharing-emacs-is-caring-emacs-emacs-education-and-why-i-embraced-video--jacob-boxerman--main.vtt" default />"""<track kind="chapters" label="Chapters" src="/2023/captions/emacsconf-2023-sharing--sharing-emacs-is-caring-emacs-emacs-education-and-why-i-embraced-video--jacob-boxerman--main--chapters.vtt" /><p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video>[[!template id="chapters" vidid="mainVideo-sharing" data="""
+00:00.000 Introduction
+00:49.000 My journey of learning
+04:03.400 Straightforward Emacs
+05:32.120 Videos
+07:16.400 Clarity
+08:10.360 High-quality and accessible content
+09:15.920 The personal aspect
+11:48.120 Unity
+
+"""]]<div></div>Duration: 16:34 minutes<div class="files resources"><ul><li><a href="https://pad.emacsconf.org/2023-sharing">Open Etherpad</a></li><li><a href="https://bbb.emacsverse.org/playback/presentation/2.0/playback.html?meetingId=fe7f19d2e265788af1e6dd62bba52ef0ee6e0d42-1701636136078">Play recording from BigBlueButton</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-sharing--sharing-emacs-is-caring-emacs-emacs-education-and-why-i-embraced-video--jacob-boxerman--intro.vtt">Download --intro.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-sharing--sharing-emacs-is-caring-emacs-emacs-education-and-why-i-embraced-video--jacob-boxerman--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-sharing--sharing-emacs-is-caring-emacs-emacs-education-and-why-i-embraced-video--jacob-boxerman--main--chapters.vtt">Download --main--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-sharing--sharing-emacs-is-caring-emacs-emacs-education-and-why-i-embraced-video--jacob-boxerman--main.opus">Download --main.opus (8.8MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-sharing--sharing-emacs-is-caring-emacs-emacs-education-and-why-i-embraced-video--jacob-boxerman--main.vtt">Download --main.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-sharing--sharing-emacs-is-caring-emacs-emacs-education-and-why-i-embraced-video--jacob-boxerman--main.webm">Download --main.webm (47MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-sharing--sharing-emacs-is-caring-emacs-emacs-education-and-why-i-embraced-video--jacob-boxerman--previous.mkv">Download --previous.mkv (377MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-sharing--sharing-emacs-is-caring-emacs-emacs-education-and-why-i-embraced-video--jacob-boxerman--script.txt">Download --script.txt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-sharing--sharing-emacs-is-caring-emacs-emacs-education-and-why-i-embraced-video--jacob-boxerman.org">Download .org</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-sharing--sharing-emacs-is-caring-emacs-emacs-education-and-why-i-embraced-video--jacob-boxerman.txt">Download .txt</a></li><li><a href="https://toobnix.org/w/3b5XfkceUaRjJuN5Pumgee">View on Toobnix</a></li><li><a href="https://youtu.be/L897BU3BT6g">View on Youtube</a></li></ul></div></div>
+
+# Q&A
+
+<div class="vid qanda"><video controls preload="none" id="qanda-sharing"><source src="https://media.emacsconf.org/2023/emacsconf-2023-sharing--sharing-emacs-is-caring-emacs-emacs-education-and-why-i-embraced-video--jacob-boxerman--answers.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2023/captions/emacsconf-2023-sharing--sharing-emacs-is-caring-emacs-emacs-education-and-why-i-embraced-video--jacob-boxerman--answers.vtt" default />"""<p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video><div>Listen to just the audio:<br /><audio controls preload="none" id="qanda-sharing-audio" src="https://media.emacsconf.org/2023/emacsconf-2023-sharing--sharing-emacs-is-caring-emacs-emacs-education-and-why-i-embraced-video--jacob-boxerman--answers.opus"></audio></div><div></div>Duration: 25:19 minutes<div class="files resources"><ul><li><a href="https://pad.emacsconf.org/2023-sharing">Open Etherpad</a></li><li><a href="https://bbb.emacsverse.org/playback/presentation/2.0/playback.html?meetingId=fe7f19d2e265788af1e6dd62bba52ef0ee6e0d42-1701636136078">Play recording from BigBlueButton</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-sharing--sharing-emacs-is-caring-emacs-emacs-education-and-why-i-embraced-video--jacob-boxerman--answers.json">Download --answers.json (1.3MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-sharing--sharing-emacs-is-caring-emacs-emacs-education-and-why-i-embraced-video--jacob-boxerman--answers.opus">Download --answers.opus (16MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-sharing--sharing-emacs-is-caring-emacs-emacs-education-and-why-i-embraced-video--jacob-boxerman--answers.vtt">Download --answers.vtt</a> (unedited)</li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-sharing--sharing-emacs-is-caring-emacs-emacs-education-and-why-i-embraced-video--jacob-boxerman--answers.webm">Download --answers.webm (44MB)</a></li></ul></div></div>
# Description
<!-- End of emacsconf-publish-before-page --> \ No newline at end of file
diff --git a/2023/info/sharing-nav.md b/2023/info/sharing-nav.md
index 9210a56c..8443c8c4 100644
--- a/2023/info/sharing-nav.md
+++ b/2023/info/sharing-nav.md
@@ -1,7 +1,7 @@
<div class="talk-nav">
Back to the [[talks]]
-Previous by track: <a href="/2023/talks/web">Emacs saves the Web</a>
+Previous by track: <a href="/2023/talks/web">Emacs saves the Web (maybe)</a>
Next by track: <a href="/2023/talks/matplotllm">MatplotLLM, iterative natural language data visualization in org-babel</a>
-Track: <span class="sched-track General">General</span>
+Track: <span class="sched-track General">General</span> - <strong><a href="https://emacsconf.org/2023/watch/gen">Watch</a></strong>
</div>
diff --git a/2023/info/solo-after.md b/2023/info/solo-after.md
index 6410f045..e585e9a2 100644
--- a/2023/info/solo-after.md
+++ b/2023/info/solo-after.md
@@ -1,7 +1,733 @@
<!-- Automatically generated by emacsconf-publish-after-page -->
-Questions or comments? Please e-mail [howard@howardabrams.com](mailto:howard@howardabrams.com?subject=Comment%20for%20EmacsConf%202022%20solo%3A%20How%20I%20play%20TTRPGs%20in%20Emacs)
+<div class="transcript transcript-mainVideo"><a name="solo-mainVideo-transcript"></a><h1>Transcript</h1>
+
+
+<div class="transcript-heading">[[!template new="1" text="""Introduction""" start="00:00:00.000" video="mainVideo-solo" id="subtitle"]]</div>[[!template text="""Hi there, I'm Howard Abrams. You may remember me""" start="00:00:00.000" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""from past conference talks""" start="00:00:05.560" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""as &quot;Literate DevOps and the Temple of Doom&quot;""" start="00:00:07.720" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""and &quot;Using Eshell for Fun and Profit&quot;.""" start="00:00:10.520" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""I'm here to talk to you about my latest Emacs project:""" start="00:00:13.400" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""playing games, solo role-playing games.""" start="00:00:16.600" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""I started playing RPGs when I got my first copy""" start="00:00:19.480" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""of Dungeons & Dragons when I was 12.""" start="00:00:23.160" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""Yes, my original copy burned""" start="00:00:25.600" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""in the Great Satanic Panic of the 1980s,""" start="00:00:28.280" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""but that's another story.""" start="00:00:30.560" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""I started playing other RPGs like GURPS.""" start="00:00:32.360" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""These are some of my notes.""" start="00:00:37.920" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""Back then, I was typing them in Emacs,""" start="00:00:40.000" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""but I formatted them with LaTeX.""" start="00:00:42.560" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""Later, when I was introducing my kids""" start="00:00:46.080" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""to role-playing games,""" start="00:00:49.080" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""I actually typed them up still in Emacs,""" start="00:00:50.840" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""but now formatted them for a tablet.""" start="00:00:53.581" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""I wrote a little JavaScript code""" start="00:00:57.600" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""that allowed me to click on it, and it would roll dice,""" start="00:00:59.320" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""generate random events, keep track of turn order,""" start="00:01:03.120" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""you know, everything,""" start="00:01:06.680" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""so I didn't have to slow down the action of the game.""" start="00:01:07.480" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""Well, when my kids got older,""" start="00:01:10.120" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""I still managed to sneak in a game of D&D""" start="00:01:13.000" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""once a week at lunch.""" start="00:01:15.600" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""This pastime came to a screeching halt with the pandemic.""" start="00:01:17.320" video="mainVideo-solo" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Solo RPGs""" start="00:01:20.680" video="mainVideo-solo" id="subtitle"]]</div>[[!template text="""I turned to playing role-playing games by myself""" start="00:01:20.680" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""to get my fix. Playing these silly elf games in solo mode""" start="00:01:23.640" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""has been part of the game for many years,""" start="00:01:28.000" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""but with so many of us stuck at home,""" start="00:01:29.880" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""solo role-playing games really expanded,""" start="00:01:32.560" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""creative people releasing some amazing ideas.""" start="00:01:35.120" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""What's a solo RPG like? Well, it's somewhere in the middle""" start="00:01:40.280" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""of writing your own story, where anything's possible,""" start="00:01:44.400" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""but you've got to do all the imaginative work;""" start="00:01:47.520" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""or reading a choose-your-own-adventure book,""" start="00:01:50.160" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""where the text is given to you,""" start="00:01:53.000" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""and you have free, a few predetermined paths;""" start="00:01:55.240" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""and tactical battle games,""" start="00:01:59.080" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""where dice determines everything.""" start="00:02:01.040" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""It kind of fits in the sweet spot between those.""" start="00:02:03.160" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""While I started removing the Game Master""" start="00:02:05.800" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""using the Mythic GM Emulator,""" start="00:02:08.880" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""Ironsworn really captivated me.""" start="00:02:12.120" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""I began with dice, pencils, notebooks, you know,""" start="00:02:15.320" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""just like when I was a kid. But taking notes on paper?""" start="00:02:19.200" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""Yeah, you know me. That's not my jam. Org mode is.""" start="00:02:23.360" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""And, you know, notes have to be in Org,""" start="00:02:28.000" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""well, why not write a little dice roller in Lisp?""" start="00:02:31.160" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""Well, when Shawn Tomkin released his Ironsworn""" start="00:02:35.160" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""under the Creative Commons, well,""" start="00:02:38.800" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""I could just download the entire text.""" start="00:02:41.880" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""I figured I could just render the entire game in Emacs.""" start="00:02:43.920" video="mainVideo-solo" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Demo""" start="00:02:47.440" video="mainVideo-solo" id="subtitle"]]</div>[[!template text="""All right, enough talk. Let's get some Emacs action here,""" start="00:02:47.440" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""while I show you a bit of my game.""" start="00:02:51.240" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""When playing a solo RPG,""" start="00:02:55.200" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""I jot down the story notes in an Org file.""" start="00:02:57.520" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""I mean, did you expect anything less from me?""" start="00:02:59.760" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""I alternate between lengthy prose and short notes.""" start="00:03:02.760" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""As I'm both the writer and the audience,""" start="00:03:07.760" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""the goal is just enjoyment.""" start="00:03:10.520" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""So, this document is both a record log of my game sessions,""" start="00:03:12.000" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""as well as my character's character sheet.""" start="00:03:17.000" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""In most RPGs, a player's focus is a character sheet""" start="00:03:20.960" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""that lists all the attributes, the stats, equipment,""" start="00:03:24.520" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""powers, you know, that sort of thing.""" start="00:03:27.000" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""For my game, I wanted the focus to be the prose,""" start="00:03:28.760" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""or at least the notes.""" start="00:03:32.960" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""So, I put down all the stats as Org mode properties.""" start="00:03:34.560" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""Now, I can collapse a property drawer""" start="00:03:38.200" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""and have functions""" start="00:03:40.800" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""that just grab values from these properties.""" start="00:03:42.120" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""All right, let's play. While not important to my talk,""" start="00:03:45.760" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""I'm in the middle of a game. My character, Tegan,""" start="00:03:50.080" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""promised to help a village by tracking down""" start="00:03:52.680" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""the son of a village chief. A less-than-stellar roll""" start="00:03:54.960" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""meant I didn't catch him before he entered""" start="00:03:59.240" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""the mysterious underground structure""" start="00:04:01.200" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""of a relic of an ancient people.""" start="00:04:03.880" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""I just finished playing out the journey,""" start="00:04:06.400" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""and he's about to enter into the Catacombs of Svala's Blood.""" start="00:04:08.400" video="mainVideo-solo" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Randomization""" start="00:04:11.760" video="mainVideo-solo" id="subtitle"]]</div>[[!template text="""Why that name? Well, that was actually what came up""" start="00:04:11.760" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""from an extensive random number generator that I wrote.""" start="00:04:15.200" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""As I wrote more and more functions""" start="00:04:19.640" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""to help me play this game,""" start="00:04:21.960" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""and since I don't play all the time,""" start="00:04:23.280" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""I created hydra. I can roll dice,""" start="00:04:25.920" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""I can roll dice challenges against the character stats,""" start="00:04:30.360" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""I can adjust stats. Lots of random generators""" start="00:04:34.080" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""come from this oracle section.""" start="00:04:38.200" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""For instance, are footprints going through the door?""" start="00:04:39.480" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""I press `c`, and I'm prompted with how likely.""" start="00:04:43.160" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""Since the villagers gave Tegan vague directions,""" start="00:04:46.480" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""and he didn't see any signs the contrary,""" start="00:04:51.080" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""I chose &quot;likely&quot;. And, well, it originally said yes,""" start="00:04:53.240" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""and that's why I jotted this information down.""" start="00:04:58.480" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""Now, this is different than my character's ability""" start="00:05:01.600" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""to notice the prints. This is about generating the story,""" start="00:05:03.480" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""something that the game master would do""" start="00:05:07.640" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""in a typical role-playing game.""" start="00:05:10.280" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""Now, if I wanted to name something,""" start="00:05:12.480" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""or even the current weather,""" start="00:05:14.720" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""I have random tables with the `C` keystroke.""" start="00:05:16.040" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""Hmm, weather. Oh, it's summer, so hey,""" start="00:05:20.400" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""it's nice and clear. All right, let's play.""" start="00:05:27.280" video="mainVideo-solo" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Moves""" start="00:05:31.960" video="mainVideo-solo" id="subtitle"]]</div>[[!template text="""The action in Ironsworn,""" start="00:05:31.960" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""like other Powered by the Apocalypse games,""" start="00:05:34.240" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""is driven by moves. So, I hit the `m` key,""" start="00:05:37.040" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""and all the moves show up.""" start="00:05:44.360" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""Now, I don't think I need to espouse""" start="00:05:46.880" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""the virtues of completing-read enhancements like Ivy.""" start="00:05:49.480" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""Here, I'm using orderless with vertico""" start="00:05:52.680" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""to help me find my choices.""" start="00:05:55.560" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""Since I've discovered a site, let's play that move.""" start="00:05:57.720" video="mainVideo-solo" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Reference""" start="00:06:03.640" video="mainVideo-solo" id="subtitle"]]</div>[[!template text="""I seldom remember the details for the moves,""" start="00:06:03.640" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""so I figured, why not put the text of the book""" start="00:06:06.480" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""in an Org file and show it in a side window?""" start="00:06:09.160" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""The prompt at the bottom, asking for a name,""" start="00:06:11.800" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""is driven by the content in the displayed Org file.""" start="00:06:15.440" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""This allows me to enhance my game without""" start="00:06:18.200" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""changing the original code. So, let's call this story arc,""" start="00:06:21.120" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""Exploring the Catacombs of Svala's Blood.""" start="00:06:25.160" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""Ooh, sounds epic.""" start="00:06:31.840" video="mainVideo-solo" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Story arcs""" start="00:06:34.680" video="mainVideo-solo" id="subtitle"]]</div>[[!template text="""Ironsworn tracks the beats of a narrative,""" start="00:06:34.680" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""so major plot points take up more room in the fiction""" start="00:06:37.240" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""than minor plot points.""" start="00:06:40.800" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""Similar games like Blades in the Dark""" start="00:06:42.760" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""use numbers to track these, so you can say something like,""" start="00:06:45.040" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""we're three quarters of the way through this story arc.""" start="00:06:48.200" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""Ironsworn just uses labels,""" start="00:06:51.080" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""and while I want this particular story arc""" start="00:06:53.120" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""to be significant, I really just want to get in,""" start="00:06:55.840" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""find this person, and get out.""" start="00:06:59.520" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""So, I'm going to call this &quot;short&quot;.""" start="00:07:00.960" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""Next, it's asking about an Org mode header placement.""" start="00:07:04.040" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""While I originally wanted my Org files""" start="00:07:09.280" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""to be completely flexible,""" start="00:07:12.200" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""one thing I noticed in playing""" start="00:07:13.800" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""is that a pattern always emerged.""" start="00:07:15.920" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""The story became a tree. You see, story arcs""" start="00:07:18.000" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""were just a series of montages or scenes,""" start="00:07:22.640" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""and each of those were made of a series of events""" start="00:07:25.560" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""and challenges to overcome.""" start="00:07:27.920" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""So, each Org mode header has a track,""" start="00:07:29.120" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""which often becomes the number of subheadings.""" start="00:07:32.800" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""At any point, I can see how much track is being made.""" start="00:07:35.720" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""So, for instance, this one seems to be""" start="00:07:40.640" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""about a third of the way through.""" start="00:07:47.240" video="mainVideo-solo" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Using different stats""" start="00:07:48.680" video="mainVideo-solo" id="subtitle"]]</div>[[!template text="""So, let's dive into this ancient place.""" start="00:07:48.680" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""Since I've been walking through a misty forest,""" start="00:07:52.600" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""I can imagine vines hiding an immense door""" start="00:07:55.720" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""and a humid, earthy smell as I peer inside.""" start="00:07:59.320" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""But I don't have to write that stuff down,""" start="00:08:01.960" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""or if I want to practice my writing, I can.""" start="00:08:04.320" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""I can imagine the place is dark,""" start="00:08:06.920" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""so Tegan lights a torch""" start="00:08:09.360" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""before peering into this obscure world.""" start="00:08:10.840" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""As this move mentions,""" start="00:08:13.040" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""the next move to make is called Delve the Depths.""" start="00:08:15.800" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""As soon as I select this move,""" start="00:08:20.280" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""it shows up on the side window, and explains that,""" start="00:08:26.160" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""depending on how you're moving through""" start="00:08:31.320" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""this ancient catacombs,""" start="00:08:34.400" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""is what kind of stat I roll against,""" start="00:08:36.240" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""and those stats show up at the bottom.""" start="00:08:38.760" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""You know, if I'm sneaking around, you roll against &quot;shadow&quot;.""" start="00:08:41.040" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""If you're trying to go as fast as you can, it's &quot;edge&quot;.""" start="00:08:45.480" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""But I kind of imagine that he's thinking through,""" start="00:08:47.720" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""being very careful about it.""" start="00:08:51.680" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""So, I'm going to select &quot;wits&quot;.""" start="00:08:53.680" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""And I don't have any modifiers.""" start="00:08:55.760" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""Just about every one of my stats prompts me""" start="00:08:57.720" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""if I want to add or subtract any values.""" start="00:08:59.560" video="mainVideo-solo" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Dice rolls""" start="00:09:02.960" video="mainVideo-solo" id="subtitle"]]</div>[[!template text="""A miss. I should explain how the dice roll in this game.""" start="00:09:02.960" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""The downside to Ironsworn is that""" start="00:09:09.880" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""the dice mechanics are more cumbersome than other games.""" start="00:09:13.400" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""You roll a 6-sided die, add to it your relevant stat,""" start="00:09:16.840" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""plus any modifiers. Next, you roll two 10-sided die""" start="00:09:20.200" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""and see how it compares.""" start="00:09:24.600" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""Of course, I programmed this in Lisp,""" start="00:09:25.800" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""but when I displayed it, I wanted to see all the dice.""" start="00:09:28.680" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""And I also just wanted to see the end results.""" start="00:09:31.600" video="mainVideo-solo" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Dangers""" start="00:09:34.800" video="mainVideo-solo" id="subtitle"]]</div>[[!template text="""So I colored it. I rolled a miss,""" start="00:09:34.800" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""which means I need to reveal a danger.""" start="00:09:37.480" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""Sure, I could imagine all sorts of dangers,""" start="00:09:39.800" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""but this is a game.""" start="00:09:43.520" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""I've already made a random generator for dangers.""" start="00:09:44.360" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""In fact, I've made a random generator""" start="00:09:48.360" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""for dangers in an ancient underkeep.""" start="00:09:51.720" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""Discovery undermines or complicates the quest.""" start="00:09:55.480" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""Hmm, a complication for finding the chief's son?""" start="00:10:00.880" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""What about a labyrinth full of hallways and levels""" start="00:10:09.720" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""with lots of choices and almost no way of finding them?""" start="00:10:13.320" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""Yeah, that sounds like it fits pretty well.""" start="00:10:16.600" video="mainVideo-solo" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""A strong success""" start="00:10:19.680" video="mainVideo-solo" id="subtitle"]]</div>[[!template text="""Time for another move. This time, we're going to""" start="00:10:19.680" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""gather information,""" start="00:10:26.960" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""see if we can figure out which way to go.""" start="00:10:28.800" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""A strong hit. Excellent.""" start="00:10:32.280" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""I imagine Tegan noticing footprints in the dust""" start="00:10:34.720" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""and knowing where to go.""" start="00:10:38.400" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""The game suggests that when you get a strong success,""" start="00:10:40.440" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""you can increase your momentum.""" start="00:10:44.320" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""These game mechanics""" start="00:10:45.800" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""come into play later, but this function here""" start="00:10:48.880" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""allows me to adjust that stat +2.""" start="00:10:51.755" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""I don't even have to scroll to the top of the buffer""" start="00:10:57.881" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""and edit that value in my properties.""" start="00:11:01.461" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""At any point, I can take a look at those stats""" start="00:11:04.821" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""and see how they measure up.""" start="00:11:08.160" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""Again, I don't have to scroll up""" start="00:11:10.440" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""and take a look at my properties""" start="00:11:13.160" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""at the top of the Org mode file.""" start="00:11:14.880" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""That's how I play the game.""" start="00:11:16.560" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""It's just a recursive loop of playing a move,""" start="00:11:19.240" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""rolling some dice to see how it works,""" start="00:11:24.640" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""trying to answer the question""" start="00:11:27.320" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""based on your own imagination or random tables,""" start="00:11:30.160" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""which the game calls oracles,""" start="00:11:33.680" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""and play creatively until you decide to take a break""" start="00:11:35.600" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""and pick it up another time.""" start="00:11:41.200" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""I think you get the gist of how I play""" start="00:11:42.400" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""this dice and pencil game in Org Mode.""" start="00:11:47.000" video="mainVideo-solo" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Other solo RPGs""" start="00:11:49.680" video="mainVideo-solo" id="subtitle"]]</div>[[!template text="""However, I found more solo RPGs to play.""" start="00:11:49.680" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""And of course, I want to render them in Emacs too.""" start="00:11:54.040" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""This code for Ironsworn was a bit too specific,""" start="00:11:57.320" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""so I decided to create a role-playing game toolkit.""" start="00:12:00.800" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""This project is still in the early stages,""" start="00:12:04.760" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""but I've created some functions""" start="00:12:09.600" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""for mimicking rolling dice, including a mini-DSL for""" start="00:12:12.200" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""making dice mechanics""" start="00:12:16.720" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""typical of many role-playing game systems.""" start="00:12:19.800" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""I've also ported over the random table system.""" start="00:12:22.840" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""A text file can just list entries to be displayed at random.""" start="00:12:26.520" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""I love that I can put dice expression""" start="00:12:30.480" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""and word choices in the entries.""" start="00:12:33.960" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""One type of random table allows you""" start="00:12:35.800" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""to essentially copy and paste a table""" start="00:12:39.440" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""from a published game into a text file.""" start="00:12:41.560" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""A frequency table is what I'm calling""" start="00:12:43.800" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""a list of random entries where some entries show up""" start="00:12:47.880" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""more often than others. I'm working on generalizing""" start="00:12:50.880" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""the character sheet attributes as Org properties,""" start="00:12:55.960" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""so if you're interested, check out the project at Codeberg.""" start="00:12:59.960" video="mainVideo-solo" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Conclusion""" start="00:13:04.720" video="mainVideo-solo" id="subtitle"]]</div>[[!template text="""The point of my presentation is not to show off Ironsworn,""" start="00:13:04.720" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""how I programmed it, or even this new toolkit.""" start="00:13:10.360" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""You see, most engineers,""" start="00:13:14.080" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""when they get an idea for a game like mine,""" start="00:13:17.560" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""would make a web app. Nothing wrong with it.""" start="00:13:20.480" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""More people can play it,""" start="00:13:24.080" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""but web apps suffer from text entry.""" start="00:13:25.960" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""And don't tell me you prefer the keyboard interface""" start="00:13:28.200" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""to Google Docs. Oh, and the JavaScript framework du jour?""" start="00:13:30.960" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""Oh, I mean, that's a huge barrier of entry""" start="00:13:35.960" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""when all you want to do""" start="00:13:40.400" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""is have a bit of fun prototyping a game.""" start="00:13:42.040" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""What I'd like to impress upon you""" start="00:13:44.360" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""is that hacking Emacs to make personal games is a trip.""" start="00:13:48.480" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""Learning Lisp is, it's easy.""" start="00:13:54.000" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""And more, Emacs Lisp has some, well sure,""" start="00:13:57.360" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""it has some cruft. But really, some of those features""" start="00:14:00.920" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""that I would hate at a distributed system at work,""" start="00:14:04.520" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""like global variables, makes hacking easier""" start="00:14:07.600" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""when you just want to have some fun in your own system.""" start="00:14:10.920" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""So, grab your laptop, sink into your comfy chair,""" start="00:14:14.720" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""pour yourself a glass of scotch,""" start="00:14:19.600" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""and craft yourself an enjoyable evening.""" start="00:14:21.600" video="mainVideo-solo" id="subtitle"]]
+[[!template text="""Happy hacking, my friends.""" start="00:14:24.720" video="mainVideo-solo" id="subtitle"]]
+
+</div>
+
+Captioner: sachac
+
+<div class="transcript transcript-qanda"><a name="solo-qanda-transcript"></a><h1>Q&A transcript (unedited)</h1>
+
+[[!template text="""[Speaker 0]: Right. Okay, so hi everyone.""" start="00:00:02.899" video="qanda-solo" id="subtitle"]]
+[[!template text="""We are now live. Hi Howard,""" start="00:00:04.540" video="qanda-solo" id="subtitle"]]
+[[!template text="""how are you doing? Great.""" start="00:00:06.339" video="qanda-solo" id="subtitle"]]
+[[!template text="""Lovely to hear. As usual,""" start="00:00:09.960" video="qanda-solo" id="subtitle"]]
+[[!template text="""it's always a pleasure to see your""" start="00:00:11.980" video="qanda-solo" id="subtitle"]]
+[[!template text="""presentation and the amount of time and""" start="00:00:14.440" video="qanda-solo" id="subtitle"]]
+[[!template text="""energy you put into it.""" start="00:00:15.360" video="qanda-solo" id="subtitle"]]
+[[!template text="""Slightly sorry about the shoppiness of the""" start="00:00:17.680" video="qanda-solo" id="subtitle"]]
+[[!template text="""broadcast. Do not worry,""" start="00:00:18.680" video="qanda-solo" id="subtitle"]]
+[[!template text="""the talk will be in its full 30 fps quality""" start="00:00:22.700" video="qanda-solo" id="subtitle"]]
+[[!template text="""on the website after the conference.""" start="00:00:24.779" video="qanda-solo" id="subtitle"]]
+[[!template text="""Actually, right now. It's available right""" start="00:00:26.759" video="qanda-solo" id="subtitle"]]
+[[!template text="""now. As usual, feel free to ask your""" start="00:00:30.099" video="qanda-solo" id="subtitle"]]
+[[!template text="""questions in the in the pad.""" start="00:00:31.560" video="qanda-solo" id="subtitle"]]
+[[!template text="""We've linked it both on the talk page and on""" start="00:00:34.200" video="qanda-solo" id="subtitle"]]
+[[!template text="""IRC. I think I am on the right 1,""" start="00:00:38.400" video="qanda-solo" id="subtitle"]]
+[[!template text="""right? This is a solo.""" start="00:00:40.080" video="qanda-solo" id="subtitle"]]
+[[!template text="""Guys, questions, where are they?""" start="00:00:42.660" video="qanda-solo" id="subtitle"]]
+[[!template text="""Oh, we do have questions,""" start="00:00:45.060" video="qanda-solo" id="subtitle"]]
+[[!template text="""it's just that they're not in the right part.""" start="00:00:46.920" video="qanda-solo" id="subtitle"]]
+[[!template text="""Okay, so I'm going to start,""" start="00:00:47.960" video="qanda-solo" id="subtitle"]]
+[[!template text="""I'm going to read the questions to Howard and""" start="00:00:49.739" video="qanda-solo" id="subtitle"]]
+[[!template text="""Howard will be answering them.""" start="00:00:50.860" video="qanda-solo" id="subtitle"]]
+[[!template text="""And if you are interested in asking questions""" start="00:00:52.960" video="qanda-solo" id="subtitle"]]
+[[!template text="""directly to Howard, I see a lot of people""" start="00:00:54.620" video="qanda-solo" id="subtitle"]]
+[[!template text="""have joined us on BBB,""" start="00:00:55.640" video="qanda-solo" id="subtitle"]]
+[[!template text="""so we'll first go through the questions on""" start="00:00:58.540" video="qanda-solo" id="subtitle"]]
+[[!template text="""the pad and then we'll move on to the people""" start="00:01:00.800" video="qanda-solo" id="subtitle"]]
+[[!template text="""on BBB. So Howard, starting with the first""" start="00:01:03.340" video="qanda-solo" id="subtitle"]]
+[[!template text="""question, does table data allow for""" start="00:01:06.300" video="qanda-solo" id="subtitle"]]
+[[!template text="""recursion, e.g. The result that returns they""" start="00:01:08.640" video="qanda-solo" id="subtitle"]]
+[[!template text="""are random monster haunting the cavern""" start="00:01:10.600" video="qanda-solo" id="subtitle"]]
+[[!template text="""entrance and we roll on random monster and""" start="00:01:14.060" video="qanda-solo" id="subtitle"]]
+[[!template text="""inject them, inject into the result?""" start="00:01:16.420" video="qanda-solo" id="subtitle"]]
+[[!template text="""Sorry a little bit of a complicated question.""" start="00:01:17.920" video="qanda-solo" id="subtitle"]]
+[[!template text="""Do you want me to read it again,""" start="00:01:21.900" video="qanda-solo" id="subtitle"]]
+[[!template text="""perhaps? Yeah, I think so.""" start="00:01:23.620" video="qanda-solo" id="subtitle"]]
+[[!template text="""I didn't quite catch that.""" start="00:01:25.240" video="qanda-solo" id="subtitle"]]
+[[!template text="""Okay, so does the table data allow for""" start="00:01:28.860" video="qanda-solo" id="subtitle"]]
+[[!template text="""recursion? So I think...""" start="00:01:30.180" video="qanda-solo" id="subtitle"]]
+[[!template text="""[Speaker 1]: Oh, yeah, yeah, yeah, yeah.""" start="00:01:31.560" video="qanda-solo" id="subtitle"]]
+[[!template text="""No, it does. I put a little,""" start="00:01:33.960" video="qanda-solo" id="subtitle"]]
+[[!template text="""you know, there's some code that could,""" start="00:01:35.440" video="qanda-solo" id="subtitle"]]
+[[!template text="""so you could, yeah, you get a random value""" start="00:01:38.660" video="qanda-solo" id="subtitle"]]
+[[!template text="""that gets inserted and that random value""" start="00:01:41.040" video="qanda-solo" id="subtitle"]]
+[[!template text="""could refer to another table and it can keep""" start="00:01:43.280" video="qanda-solo" id="subtitle"]]
+[[!template text="""on going. I have not pushed that that hard""" start="00:01:46.000" video="qanda-solo" id="subtitle"]]
+[[!template text="""because obviously it's,""" start="00:01:48.320" video="qanda-solo" id="subtitle"]]
+[[!template text="""it might be a little on the heavyweight side.""" start="00:01:50.880" video="qanda-solo" id="subtitle"]]
+[[!template text="""I can't imagine it to go too deep,""" start="00:01:52.540" video="qanda-solo" id="subtitle"]]
+[[!template text="""though.""" start="00:01:52.760" video="qanda-solo" id="subtitle"]]
+[[!template text="""[Speaker 0]: I'm pretty sure Emacs would be complaining if""" start="00:01:56.820" video="qanda-solo" id="subtitle"]]
+[[!template text="""you go a little too deep.""" start="00:01:57.940" video="qanda-solo" id="subtitle"]]
+[[!template text="""We have something as Mike's list recursion,""" start="00:01:59.979" video="qanda-solo" id="subtitle"]]
+[[!template text="""and stuff like this. So don't worry.""" start="00:02:01.420" video="qanda-solo" id="subtitle"]]
+[[!template text="""Go willy nilly with your recursions.""" start="00:02:03.440" video="qanda-solo" id="subtitle"]]
+[[!template text="""We've got comments about the fact that it's a""" start="00:02:07.120" video="qanda-solo" id="subtitle"]]
+[[!template text="""really cool project and I feel like everyone""" start="00:02:09.180" video="qanda-solo" id="subtitle"]]
+[[!template text="""watching would be agreeing.""" start="00:02:10.680" video="qanda-solo" id="subtitle"]]
+[[!template text="""You've got a question about where you can get""" start="00:02:14.100" video="qanda-solo" id="subtitle"]]
+[[!template text="""this. Do you have a github repository with""" start="00:02:16.620" video="qanda-solo" id="subtitle"]]
+[[!template text="""all of this?""" start="00:02:17.080" video="qanda-solo" id="subtitle"]]
+[[!template text="""[Speaker 1]: Yeah, and at the well at the end of the""" start="00:02:20.440" video="qanda-solo" id="subtitle"]]
+[[!template text="""presentation I kind of display that and I""" start="00:02:22.840" video="qanda-solo" id="subtitle"]]
+[[!template text="""think I put it at the top of the the pad""" start="00:02:25.920" video="qanda-solo" id="subtitle"]]
+[[!template text="""[Speaker 2]: Yeah, there's a""" start="00:02:35.220" video="qanda-solo" id="subtitle"]]
+[[!template text="""[Speaker 0]: Yes. I don't go Gone please.""" start="00:02:36.760" video="qanda-solo" id="subtitle"]]
+[[!template text="""[Speaker 1]: Nothing there. There's a lot of stuff that""" start="00:02:38.680" video="qanda-solo" id="subtitle"]]
+[[!template text="""needs to be reformatted.""" start="00:02:40.080" video="qanda-solo" id="subtitle"]]
+[[!template text="""This is all Aflacode, so obviously it's a""" start="00:02:46.820" video="qanda-solo" id="subtitle"]]
+[[!template text="""personal hack. So people should just steal""" start="00:02:49.180" video="qanda-solo" id="subtitle"]]
+[[!template text="""the code as opposed to looking at a real""" start="00:02:51.880" video="qanda-solo" id="subtitle"]]
+[[!template text="""project to use.""" start="00:02:52.760" video="qanda-solo" id="subtitle"]]
+[[!template text="""[Speaker 0]: Right, lovely. So this game plus CRDT should""" start="00:03:00.420" video="qanda-solo" id="subtitle"]]
+[[!template text="""be great for non-solid plays.""" start="00:03:01.960" video="qanda-solo" id="subtitle"]]
+[[!template text="""Are you familiar with CRDT?""" start="00:03:03.640" video="qanda-solo" id="subtitle"]]
+[[!template text="""[Speaker 1]: Well, so I used to use Flubits once upon a""" start="00:03:08.160" video="qanda-solo" id="subtitle"]]
+[[!template text="""time and after seeing the previous talk on""" start="00:03:11.880" video="qanda-solo" id="subtitle"]]
+[[!template text="""CRDT it's like, oh, I like that,""" start="00:03:14.060" video="qanda-solo" id="subtitle"]]
+[[!template text="""and yes, I think that would be a fun idea.""" start="00:03:16.000" video="qanda-solo" id="subtitle"]]
+[[!template text="""[Speaker 0]: I think I remember, so I did something much""" start="00:03:19.860" video="qanda-solo" id="subtitle"]]
+[[!template text="""more humble than you did.""" start="00:03:21.040" video="qanda-solo" id="subtitle"]]
+[[!template text="""I did a little bit, a little package in Org""" start="00:03:24.660" video="qanda-solo" id="subtitle"]]
+[[!template text="""Mode for rolling dice and you had like a""" start="00:03:27.940" video="qanda-solo" id="subtitle"]]
+[[!template text="""little formula like you could write 60 20 and""" start="00:03:31.560" video="qanda-solo" id="subtitle"]]
+[[!template text="""it would throw 6 dice with 20 faces,""" start="00:03:34.740" video="qanda-solo" id="subtitle"]]
+[[!template text="""60 sorry, 6 die, Frenchmen here in the room,""" start="00:03:39.060" video="qanda-solo" id="subtitle"]]
+[[!template text="""20 faces and it would average them out or""" start="00:03:43.660" video="qanda-solo" id="subtitle"]]
+[[!template text="""provide you any kind of stats needed.""" start="00:03:45.140" video="qanda-solo" id="subtitle"]]
+[[!template text="""And this type of stuff works really well over""" start="00:03:48.800" video="qanda-solo" id="subtitle"]]
+[[!template text="""CRDT because it's 1 edit inside of a file.""" start="00:03:52.540" video="qanda-solo" id="subtitle"]]
+[[!template text="""If you start making edits in different parts""" start="00:03:55.900" video="qanda-solo" id="subtitle"]]
+[[!template text="""of your file, it starts becoming a little""" start="00:03:58.780" video="qanda-solo" id="subtitle"]]
+[[!template text="""more complicated because CRDT struggles when""" start="00:04:02.060" video="qanda-solo" id="subtitle"]]
+[[!template text="""you're making many discrete changes inside of""" start="00:04:04.480" video="qanda-solo" id="subtitle"]]
+[[!template text="""the same file. Does that make sense?""" start="00:04:05.640" video="qanda-solo" id="subtitle"]]
+[[!template text="""[Speaker 1]: It does, it does. Interesting.""" start="00:04:07.640" video="qanda-solo" id="subtitle"]]
+[[!template text="""Okay, yeah, no, I have not played with it""" start="00:04:10.120" video="qanda-solo" id="subtitle"]]
+[[!template text="""yet.""" start="00:04:10.280" video="qanda-solo" id="subtitle"]]
+[[!template text="""[Speaker 0]: Well, feel free to play with it and if you've""" start="00:04:14.280" video="qanda-solo" id="subtitle"]]
+[[!template text="""got any kind of... If it works,""" start="00:04:16.320" video="qanda-solo" id="subtitle"]]
+[[!template text="""it works and it's amazing,""" start="00:04:17.720" video="qanda-solo" id="subtitle"]]
+[[!template text="""but if it doesn't, feel free to send us""" start="00:04:20.200" video="qanda-solo" id="subtitle"]]
+[[!template text="""messages because Shantan,""" start="00:04:21.180" video="qanda-solo" id="subtitle"]]
+[[!template text="""who's the maintainer of CRDT,""" start="00:04:23.240" video="qanda-solo" id="subtitle"]]
+[[!template text="""we've been looking into options to make it a""" start="00:04:25.840" video="qanda-solo" id="subtitle"]]
+[[!template text="""little more resilient and work elsewhere for""" start="00:04:28.380" video="qanda-solo" id="subtitle"]]
+[[!template text="""securely. Excellent. All right,""" start="00:04:31.360" video="qanda-solo" id="subtitle"]]
+[[!template text="""Great. I'm going back to the previous""" start="00:04:34.600" video="qanda-solo" id="subtitle"]]
+[[!template text="""question. So does the current version also""" start="00:04:37.160" video="qanda-solo" id="subtitle"]]
+[[!template text="""have some utilities for doing multiplayer,""" start="00:04:39.020" video="qanda-solo" id="subtitle"]]
+[[!template text="""like either physically or digitally,""" start="00:04:41.140" video="qanda-solo" id="subtitle"]]
+[[!template text="""like we've done with CRUT?""" start="00:04:42.520" video="qanda-solo" id="subtitle"]]
+[[!template text="""The question is because you mentioned you""" start="00:04:45.060" video="qanda-solo" id="subtitle"]]
+[[!template text="""previously did multiplayer session as well?""" start="00:04:47.360" video="qanda-solo" id="subtitle"]]
+[[!template text="""[Speaker 1]: Yeah, I mean, I was using the table,""" start="00:04:51.180" video="qanda-solo" id="subtitle"]]
+[[!template text="""the random table at a random entry kind of""" start="00:04:55.940" video="qanda-solo" id="subtitle"]]
+[[!template text="""thing. I was using that at my table.""" start="00:04:58.460" video="qanda-solo" id="subtitle"]]
+[[!template text="""So, I'm an eternal DM.""" start="00:05:00.780" video="qanda-solo" id="subtitle"]]
+[[!template text="""So I would always use that.""" start="00:05:02.920" video="qanda-solo" id="subtitle"]]
+[[!template text="""Like somebody says, what's the name of that""" start="00:05:05.020" video="qanda-solo" id="subtitle"]]
+[[!template text="""shopkeep? And I could just hit a key,""" start="00:05:07.160" video="qanda-solo" id="subtitle"]]
+[[!template text="""and it'd come up with the name,""" start="00:05:08.440" video="qanda-solo" id="subtitle"]]
+[[!template text="""and I'd just read it off.""" start="00:05:10.120" video="qanda-solo" id="subtitle"]]
+[[!template text="""But it was still me generating it.""" start="00:05:14.440" video="qanda-solo" id="subtitle"]]
+[[!template text="""So it wasn't something that people would see""" start="00:05:17.120" video="qanda-solo" id="subtitle"]]
+[[!template text="""necessarily, but I would keep notes in it and""" start="00:05:19.540" video="qanda-solo" id="subtitle"]]
+[[!template text="""then publish those notes.""" start="00:05:20.520" video="qanda-solo" id="subtitle"]]
+[[!template text="""But yes, I don't know.""" start="00:05:24.240" video="qanda-solo" id="subtitle"]]
+[[!template text="""This sounds all kind of,""" start="00:05:25.440" video="qanda-solo" id="subtitle"]]
+[[!template text="""this sounds all intriguing.""" start="00:05:27.260" video="qanda-solo" id="subtitle"]]
+[[!template text="""I think this would be fun.""" start="00:05:28.840" video="qanda-solo" id="subtitle"]]
+[[!template text="""I think I need to get a group of like-minded""" start="00:05:32.220" video="qanda-solo" id="subtitle"]]
+[[!template text="""Emacs people who want to play online.""" start="00:05:35.880" video="qanda-solo" id="subtitle"]]
+[[!template text="""[Speaker 0]: I'm sure you've got plenty of people not only""" start="00:05:39.860" video="qanda-solo" id="subtitle"]]
+[[!template text="""watching but also here in BBB.""" start="00:05:41.580" video="qanda-solo" id="subtitle"]]
+[[!template text="""So we only have about 14 minutes until we go""" start="00:05:44.660" video="qanda-solo" id="subtitle"]]
+[[!template text="""to the next talk and it might be a little""" start="00:05:46.120" video="qanda-solo" id="subtitle"]]
+[[!template text="""short for a campaign, but we might just...""" start="00:05:48.200" video="qanda-solo" id="subtitle"]]
+[[!template text="""Moving on to the next question,""" start="00:05:53.220" video="qanda-solo" id="subtitle"]]
+[[!template text="""how does 1 become super awesome like Howard""" start="00:05:56.480" video="qanda-solo" id="subtitle"]]
+[[!template text="""Abrams? And I very much agree.""" start="00:05:58.200" video="qanda-solo" id="subtitle"]]
+[[!template text="""[Speaker 1]: Sure, yes. That's kind,""" start="00:05:58.700" video="qanda-solo" id="subtitle"]]
+[[!template text="""[Speaker 0]: That's not a secret, You're not giving your""" start="00:06:04.460" video="qanda-solo" id="subtitle"]]
+[[!template text="""[Speaker 1]: too kind, too kind. There's no trade secrets.""" start="00:06:09.360" video="qanda-solo" id="subtitle"]]
+[[!template text="""Just follow your passions.""" start="00:06:10.580" video="qanda-solo" id="subtitle"]]
+[[!template text="""[Speaker 0]: trade secrets. I can only conquer.""" start="00:06:14.540" video="qanda-solo" id="subtitle"]]
+[[!template text="""All right, moving on to the next question.""" start="00:06:16.160" video="qanda-solo" id="subtitle"]]
+[[!template text="""Please talk a little about how you produced""" start="00:06:18.740" video="qanda-solo" id="subtitle"]]
+[[!template text="""such a slick presentation video.""" start="00:06:20.460" video="qanda-solo" id="subtitle"]]
+[[!template text="""Everything looked completely professional,""" start="00:06:22.800" video="qanda-solo" id="subtitle"]]
+[[!template text="""and I'd agree. So tell us more.""" start="00:06:25.120" video="qanda-solo" id="subtitle"]]
+[[!template text="""[Speaker 1]: OK, so as you've seen my previous""" start="00:06:29.260" video="qanda-solo" id="subtitle"]]
+[[!template text="""presentations, It's all just Emacs screen.""" start="00:06:32.680" video="qanda-solo" id="subtitle"]]
+[[!template text="""I just felt like, oh, what I really want to""" start="00:06:35.920" video="qanda-solo" id="subtitle"]]
+[[!template text="""talk about is how much fun I'm having and the""" start="00:06:39.360" video="qanda-solo" id="subtitle"]]
+[[!template text="""little introduction. So my son actually is a""" start="00:06:43.680" video="qanda-solo" id="subtitle"]]
+[[!template text="""YouTuber. So I asked him,""" start="00:06:44.980" video="qanda-solo" id="subtitle"]]
+[[!template text="""and it's like, oh, I'll take care of your""" start="00:06:47.200" video="qanda-solo" id="subtitle"]]
+[[!template text="""dad. And so he's the 1 that kind of prompted""" start="00:06:49.940" video="qanda-solo" id="subtitle"]]
+[[!template text="""me. So I had a director.""" start="00:06:51.280" video="qanda-solo" id="subtitle"]]
+[[!template text="""Don't know if that translates,""" start="00:06:53.720" video="qanda-solo" id="subtitle"]]
+[[!template text="""[Speaker 0]: I mean, that translates amazingly.""" start="00:06:58.940" video="qanda-solo" id="subtitle"]]
+[[!template text="""[Speaker 1]: though, but. Very good.""" start="00:07:02.560" video="qanda-solo" id="subtitle"]]
+[[!template text="""You know, very over the top.""" start="00:07:06.900" video="qanda-solo" id="subtitle"]]
+[[!template text="""I've never done something like this before.""" start="00:07:09.440" video="qanda-solo" id="subtitle"]]
+[[!template text="""[Speaker 0]: I mean, the results at the end is No,""" start="00:07:10.460" video="qanda-solo" id="subtitle"]]
+[[!template text="""but it fits you so well.""" start="00:07:11.680" video="qanda-solo" id="subtitle"]]
+[[!template text="""I think this over the top-ness combined with""" start="00:07:14.820" video="qanda-solo" id="subtitle"]]
+[[!template text="""the editing, it just...""" start="00:07:15.800" video="qanda-solo" id="subtitle"]]
+[[!template text="""[Speaker 1]: I might have to keep doing it because it was""" start="00:07:18.900" video="qanda-solo" id="subtitle"]]
+[[!template text="""fun. It was fun to do.""" start="00:07:20.600" video="qanda-solo" id="subtitle"]]
+[[!template text="""[Speaker 0]: You've set a standard that you'll need to""" start="00:07:23.160" video="qanda-solo" id="subtitle"]]
+[[!template text="""meet for following Emax.""" start="00:07:24.520" video="qanda-solo" id="subtitle"]]
+[[!template text="""[Speaker 1]: I'll have to keep paying them then.""" start="00:07:28.360" video="qanda-solo" id="subtitle"]]
+[[!template text="""[Speaker 0]: Oh no! Alright, Yes! Alright,""" start="00:07:30.820" video="qanda-solo" id="subtitle"]]
+[[!template text="""moving on to the next question.""" start="00:07:32.360" video="qanda-solo" id="subtitle"]]
+[[!template text="""Does table data, no sorry that's the 1 we did""" start="00:07:35.380" video="qanda-solo" id="subtitle"]]
+[[!template text="""on recursion and we're not going to struggle""" start="00:07:37.360" video="qanda-solo" id="subtitle"]]
+[[!template text="""through the reading of it again.""" start="00:07:38.900" video="qanda-solo" id="subtitle"]]
+[[!template text="""Alright so with your toolkits,""" start="00:07:41.280" video="qanda-solo" id="subtitle"]]
+[[!template text="""a list of good books would be nice to be""" start="00:07:43.940" video="qanda-solo" id="subtitle"]]
+[[!template text="""included, example D&D,""" start="00:07:45.300" video="qanda-solo" id="subtitle"]]
+[[!template text="""space, steampunk, cyberpunk settings.""" start="00:07:48.400" video="qanda-solo" id="subtitle"]]
+[[!template text="""Do you have such a plan?""" start="00:07:49.800" video="qanda-solo" id="subtitle"]]
+[[!template text="""[Speaker 1]: 00I mean, I could definitely publish a""" start="00:07:56.120" video="qanda-solo" id="subtitle"]]
+[[!template text="""bibliography of things I'm using and reading,""" start="00:07:59.640" video="qanda-solo" id="subtitle"]]
+[[!template text="""But I don't know if I'd be writing anything.""" start="00:08:03.640" video="qanda-solo" id="subtitle"]]
+[[!template text="""[Speaker 0]: Oh come on, don't tell yourself short.""" start="00:08:07.420" video="qanda-solo" id="subtitle"]]
+[[!template text="""You've already proven you were amazing in""" start="00:08:09.000" video="qanda-solo" id="subtitle"]]
+[[!template text="""very different, very varied topics.""" start="00:08:10.640" video="qanda-solo" id="subtitle"]]
+[[!template text="""I'm sure you should give it 1 more try.""" start="00:08:12.840" video="qanda-solo" id="subtitle"]]
+[[!template text="""[Speaker 1]: I don't know. I've got a sabbatical coming""" start="00:08:15.460" video="qanda-solo" id="subtitle"]]
+[[!template text="""up. I'm toying with writing something,""" start="00:08:17.580" video="qanda-solo" id="subtitle"]]
+[[!template text="""but I don't know if it'd ever leave the Emacs""" start="00:08:19.860" video="qanda-solo" id="subtitle"]]
+[[!template text="""buffer.""" start="00:08:20.440" video="qanda-solo" id="subtitle"]]
+[[!template text="""[Speaker 0]: All right, I like this.""" start="00:08:23.680" video="qanda-solo" id="subtitle"]]
+[[!template text="""Next question. Hi Howard and thanks for an""" start="00:08:28.140" video="qanda-solo" id="subtitle"]]
+[[!template text="""outstanding presentation.""" start="00:08:28.860" video="qanda-solo" id="subtitle"]]
+[[!template text="""What did you use to create the graphics in""" start="00:08:31.640" video="qanda-solo" id="subtitle"]]
+[[!template text="""your presentation? Didn't we cover this 1""" start="00:08:34.280" video="qanda-solo" id="subtitle"]]
+[[!template text="""already? I can't remember.""" start="00:08:35.059" video="qanda-solo" id="subtitle"]]
+[[!template text="""No, that was""" start="00:08:35.740" video="qanda-solo" id="subtitle"]]
+[[!template text="""[Speaker 1]: a good 1. So the graphics actually were just""" start="00:08:41.980" video="qanda-solo" id="subtitle"]]
+[[!template text="""kind of hacked together.""" start="00:08:43.179" video="qanda-solo" id="subtitle"]]
+[[!template text="""But then I just gave them to my son.""" start="00:08:45.020" video="qanda-solo" id="subtitle"]]
+[[!template text="""And it's like, can you put the graphic right""" start="00:08:47.200" video="qanda-solo" id="subtitle"]]
+[[!template text="""here and he goes no problem there it is like""" start="00:08:50.140" video="qanda-solo" id="subtitle"]]
+[[!template text="""[Speaker 0]: okay great so 1 more 1 more reason to keep""" start="00:08:56.280" video="qanda-solo" id="subtitle"]]
+[[!template text="""paying your son""" start="00:08:57.060" video="qanda-solo" id="subtitle"]]
+[[!template text="""[Speaker 1]: perfect yeah yeah exactly so if you can get""" start="00:08:59.820" video="qanda-solo" id="subtitle"]]
+[[!template text="""get yourself a YouTuber who knows how to use""" start="00:09:02.760" video="qanda-solo" id="subtitle"]]
+[[!template text="""all the tools. I think he was using DaVinci,""" start="00:09:05.800" video="qanda-solo" id="subtitle"]]
+[[!template text="""but he's got quite a few going.""" start="00:09:08.860" video="qanda-solo" id="subtitle"]]
+[[!template text="""[Speaker 0]: Right. Alright, moving on to the next""" start="00:09:12.700" video="qanda-solo" id="subtitle"]]
+[[!template text="""question. Any plans to borrow tables from""" start="00:09:15.040" video="qanda-solo" id="subtitle"]]
+[[!template text="""Dungeon World or Iron Sword Starforge and""" start="00:09:17.980" video="qanda-solo" id="subtitle"]]
+[[!template text="""publish in a TK repository?""" start="00:09:20.460" video="qanda-solo" id="subtitle"]]
+[[!template text="""Not sure what TK is.""" start="00:09:22.360" video="qanda-solo" id="subtitle"]]
+[[!template text="""[Speaker 1]: Yeah, yeah, okay. So yeah,""" start="00:09:25.380" video="qanda-solo" id="subtitle"]]
+[[!template text="""so that would be fun and I'd love that.""" start="00:09:30.320" video="qanda-solo" id="subtitle"]]
+[[!template text="""And I was just reading a way to render PDFs""" start="00:09:33.840" video="qanda-solo" id="subtitle"]]
+[[!template text="""that you might own into Markdown format.""" start="00:09:38.080" video="qanda-solo" id="subtitle"]]
+[[!template text="""And if it's in Markdown,""" start="00:09:39.140" video="qanda-solo" id="subtitle"]]
+[[!template text="""it'd be easy to pull into Org Mode.""" start="00:09:41.440" video="qanda-solo" id="subtitle"]]
+[[!template text="""So all of the Iron Sworn,""" start="00:09:43.680" video="qanda-solo" id="subtitle"]]
+[[!template text="""that role-playing game,""" start="00:09:45.280" video="qanda-solo" id="subtitle"]]
+[[!template text="""Since it's all under the Creative License,""" start="00:09:48.780" video="qanda-solo" id="subtitle"]]
+[[!template text="""I think even the Star Forge is.""" start="00:09:51.380" video="qanda-solo" id="subtitle"]]
+[[!template text="""So I think I could grab the Star Forge 1.""" start="00:09:53.940" video="qanda-solo" id="subtitle"]]
+[[!template text="""I don't know about Dungeon World and their""" start="00:09:56.820" video="qanda-solo" id="subtitle"]]
+[[!template text="""tables. But yeah, a lot of people are""" start="00:09:59.220" video="qanda-solo" id="subtitle"]]
+[[!template text="""starting to publish those kind of tables.""" start="00:10:01.060" video="qanda-solo" id="subtitle"]]
+[[!template text="""So yeah, that'd be fun.""" start="00:10:03.760" video="qanda-solo" id="subtitle"]]
+[[!template text="""I'd like to render all those in text files""" start="00:10:07.160" video="qanda-solo" id="subtitle"]]
+[[!template text="""that I could pull up like that.""" start="00:10:08.560" video="qanda-solo" id="subtitle"]]
+[[!template text="""[Speaker 0]: Lovely. I think that's all for the questions""" start="00:10:13.180" video="qanda-solo" id="subtitle"]]
+[[!template text="""we had in the pad. We still have 9 minutes.""" start="00:10:15.820" video="qanda-solo" id="subtitle"]]
+[[!template text="""I see plenty of people have joined us,""" start="00:10:18.280" video="qanda-solo" id="subtitle"]]
+[[!template text="""including 1 person with a microphone on BBB.""" start="00:10:21.060" video="qanda-solo" id="subtitle"]]
+[[!template text="""PlasmaStrike, do you have a question?""" start="00:10:23.160" video="qanda-solo" id="subtitle"]]
+[[!template text="""And would you like to unmute yourself and ask""" start="00:10:24.920" video="qanda-solo" id="subtitle"]]
+[[!template text="""it? I'm also going to check the chat.""" start="00:10:28.440" video="qanda-solo" id="subtitle"]]
+[[!template text="""[Speaker 1]: Oh, yeah. StarsWithoutNumber is another great""" start="00:10:31.640" video="qanda-solo" id="subtitle"]]
+[[!template text="""1 that's got some great tables in it.""" start="00:10:33.640" video="qanda-solo" id="subtitle"]]
+[[!template text="""Sorry, I'm just looking at the questions that""" start="00:10:37.720" video="qanda-solo" id="subtitle"]]
+[[!template text="""are popping up here, too.""" start="00:10:38.940" video="qanda-solo" id="subtitle"]]
+[[!template text="""[Speaker 0]: Sure. So I don't see anyone unmuting""" start="00:10:42.740" video="qanda-solo" id="subtitle"]]
+[[!template text="""themselves. I see people typing away""" start="00:10:44.540" video="qanda-solo" id="subtitle"]]
+[[!template text="""questions. By the way,""" start="00:10:45.220" video="qanda-solo" id="subtitle"]]
+[[!template text="""if you're going to type questions,""" start="00:10:46.120" video="qanda-solo" id="subtitle"]]
+[[!template text="""perhaps do not put them on BBB,""" start="00:10:48.240" video="qanda-solo" id="subtitle"]]
+[[!template text="""put them in the pad. It's a little easier for""" start="00:10:50.460" video="qanda-solo" id="subtitle"]]
+[[!template text="""us to archive them afterwards.""" start="00:10:52.380" video="qanda-solo" id="subtitle"]]
+[[!template text="""I'm going to give a little bit of time.""" start="00:10:56.160" video="qanda-solo" id="subtitle"]]
+[[!template text="""I feel bad about going on break when I have""" start="00:10:58.360" video="qanda-solo" id="subtitle"]]
+[[!template text="""you available and ready to answer more""" start="00:11:00.940" video="qanda-solo" id="subtitle"]]
+[[!template text="""questions. Oh, you're too kind.""" start="00:11:02.680" video="qanda-solo" id="subtitle"]]
+[[!template text="""[Speaker 2]: How have you, as this changed,""" start="00:11:07.360" video="qanda-solo" id="subtitle"]]
+[[!template text="""how's your visualization of the books,""" start="00:11:09.520" video="qanda-solo" id="subtitle"]]
+[[!template text="""or of your games at all?""" start="00:11:11.260" video="qanda-solo" id="subtitle"]]
+[[!template text="""[Speaker 1]: Sorry, can you ask that 1 more time?""" start="00:11:15.180" video="qanda-solo" id="subtitle"]]
+[[!template text="""I didn't catch the first part.""" start="00:11:16.700" video="qanda-solo" id="subtitle"]]
+[[!template text="""[Speaker 2]: How has this impacted,""" start="00:11:20.140" video="qanda-solo" id="subtitle"]]
+[[!template text="""like, your imagination on the scenes and""" start="00:11:23.080" video="qanda-solo" id="subtitle"]]
+[[!template text="""stuff like that because it's partly open and""" start="00:11:28.240" video="qanda-solo" id="subtitle"]]
+[[!template text="""closed because you had that chart where you""" start="00:11:30.720" video="qanda-solo" id="subtitle"]]
+[[!template text="""had that where you put it in the center of""" start="00:11:32.880" video="qanda-solo" id="subtitle"]]
+[[!template text="""constrained by algorithms to enhance your""" start="00:11:37.240" video="qanda-solo" id="subtitle"]]
+[[!template text="""creativity, you write it but it's not all""" start="00:11:39.780" video="qanda-solo" id="subtitle"]]
+[[!template text="""freeform to where you have writer's block as""" start="00:11:42.700" video="qanda-solo" id="subtitle"]]
+[[!template text="""much.""" start="00:11:42.900" video="qanda-solo" id="subtitle"]]
+[[!template text="""[Speaker 1]: You hit the, You hit it on the head.""" start="00:11:46.800" video="qanda-solo" id="subtitle"]]
+[[!template text="""That's exactly it. That's why I've been doing""" start="00:11:49.640" video="qanda-solo" id="subtitle"]]
+[[!template text="""this. Creativity is a hard thing to foster.""" start="00:11:53.940" video="qanda-solo" id="subtitle"]]
+[[!template text="""And having little prompts that you have to""" start="00:11:57.520" video="qanda-solo" id="subtitle"]]
+[[!template text="""kind of work together,""" start="00:11:58.340" video="qanda-solo" id="subtitle"]]
+[[!template text="""like twisty language, what does that mean?""" start="00:12:03.660" video="qanda-solo" id="subtitle"]]
+[[!template text="""Oh, you have to kind of work with that.""" start="00:12:06.560" video="qanda-solo" id="subtitle"]]
+[[!template text="""So yeah, that's 1 of the reasons why I got""" start="00:12:08.800" video="qanda-solo" id="subtitle"]]
+[[!template text="""into doing the solo version of it,""" start="00:12:11.800" video="qanda-solo" id="subtitle"]]
+[[!template text="""just because you kind of,""" start="00:12:14.120" video="qanda-solo" id="subtitle"]]
+[[!template text="""it does really foster the creativity.""" start="00:12:15.980" video="qanda-solo" id="subtitle"]]
+[[!template text="""Did that answer the question?""" start="00:12:23.540" video="qanda-solo" id="subtitle"]]
+[[!template text="""[Speaker 2]: Yeah well has it kind of has it improved over""" start="00:12:28.520" video="qanda-solo" id="subtitle"]]
+[[!template text="""time though of using it like""" start="00:12:30.060" video="qanda-solo" id="subtitle"]]
+[[!template text="""[Speaker 1]: oh yeah oh yeah I would definitely say so""" start="00:12:33.200" video="qanda-solo" id="subtitle"]]
+[[!template text="""While I'm still not ready to publish my files""" start="00:12:36.420" video="qanda-solo" id="subtitle"]]
+[[!template text="""at all, but the first ones were much worse.""" start="00:12:40.240" video="qanda-solo" id="subtitle"]]
+[[!template text="""[Speaker 2]: That was an example like after you play for""" start="00:12:46.160" video="qanda-solo" id="subtitle"]]
+[[!template text="""like 2 months or something like that,""" start="00:12:47.800" video="qanda-solo" id="subtitle"]]
+[[!template text="""like, could you close your eyes and see the""" start="00:12:50.320" video="qanda-solo" id="subtitle"]]
+[[!template text="""rooms a lot better versus...""" start="00:12:51.420" video="qanda-solo" id="subtitle"]]
+[[!template text="""[Speaker 1]: Yeah, I think so. I think so.""" start="00:12:54.720" video="qanda-solo" id="subtitle"]]
+[[!template text="""And, you know, there's 1 solo game called A""" start="00:13:02.150" video="qanda-solo" id="subtitle"]]
+[[!template text="""Thousand-Year-Old Vampire.""" start="00:13:03.340" video="qanda-solo" id="subtitle"]]
+[[!template text="""I don't know if you've seen that 1 or not,""" start="00:13:05.740" video="qanda-solo" id="subtitle"]]
+[[!template text="""but it's quite creative.""" start="00:13:08.440" video="qanda-solo" id="subtitle"]]
+[[!template text="""It's very interesting.""" start="00:13:09.720" video="qanda-solo" id="subtitle"]]
+[[!template text="""It's got a great setup to use.""" start="00:13:13.180" video="qanda-solo" id="subtitle"]]
+[[!template text="""And When I was looking through it,""" start="00:13:17.200" video="qanda-solo" id="subtitle"]]
+[[!template text="""it's like, I'm thinking of a typical vampire""" start="00:13:19.320" video="qanda-solo" id="subtitle"]]
+[[!template text="""and this sort of thing.""" start="00:13:20.720" video="qanda-solo" id="subtitle"]]
+[[!template text="""But then there's this YouTuber named Seth""" start="00:13:25.760" video="qanda-solo" id="subtitle"]]
+[[!template text="""Skalkarski, if I can pronounce his name""" start="00:13:27.880" video="qanda-solo" id="subtitle"]]
+[[!template text="""right. He was describing it.""" start="00:13:30.020" video="qanda-solo" id="subtitle"]]
+[[!template text="""And he came up with a completely different""" start="00:13:32.040" video="qanda-solo" id="subtitle"]]
+[[!template text="""vampire scene. And it's like,""" start="00:13:34.540" video="qanda-solo" id="subtitle"]]
+[[!template text="""oh, I could see how people can kind of start""" start="00:13:37.560" video="qanda-solo" id="subtitle"]]
+[[!template text="""working on these things and really see things""" start="00:13:40.600" video="qanda-solo" id="subtitle"]]
+[[!template text="""differently. And the creativity and all that""" start="00:13:43.080" video="qanda-solo" id="subtitle"]]
+[[!template text="""sort of stuff just really blossoms.""" start="00:13:44.340" video="qanda-solo" id="subtitle"]]
+[[!template text="""[Speaker 2]: And then I guess as an extension of that,""" start="00:13:48.040" video="qanda-solo" id="subtitle"]]
+[[!template text="""how has the stories changed after using this""" start="00:13:53.680" video="qanda-solo" id="subtitle"]]
+[[!template text="""toolkit or the solo games for 2 months?""" start="00:13:58.140" video="qanda-solo" id="subtitle"]]
+[[!template text="""Like the scenes, like how you,""" start="00:14:00.200" video="qanda-solo" id="subtitle"]]
+[[!template text="""like the stories that you'd start generating?""" start="00:14:02.440" video="qanda-solo" id="subtitle"]]
+[[!template text="""[Speaker 1]: Yeah, yeah, yeah. Yeah,""" start="00:14:05.980" video="qanda-solo" id="subtitle"]]
+[[!template text="""I mean, a lot depends on just how much you're""" start="00:14:09.000" video="qanda-solo" id="subtitle"]]
+[[!template text="""willing to put into it.""" start="00:14:10.140" video="qanda-solo" id="subtitle"]]
+[[!template text="""But yeah, I've definitely had a lot of fun.""" start="00:14:13.980" video="qanda-solo" id="subtitle"]]
+[[!template text="""And it's just been a lot more enjoyable and""" start="00:14:16.360" video="qanda-solo" id="subtitle"]]
+[[!template text="""just more interesting.""" start="00:14:17.680" video="qanda-solo" id="subtitle"]]
+[[!template text="""[Speaker 2]: Well I mean like has the types and quality of""" start="00:14:21.960" video="qanda-solo" id="subtitle"]]
+[[!template text="""the stories changed a lot?""" start="00:14:23.940" video="qanda-solo" id="subtitle"]]
+[[!template text="""Or more than that?""" start="00:14:25.240" video="qanda-solo" id="subtitle"]]
+[[!template text="""[Speaker 1]: I think so, you know, but obviously the proof""" start="00:14:30.280" video="qanda-solo" id="subtitle"]]
+[[!template text="""is if somebody else is doing the evaluation""" start="00:14:34.000" video="qanda-solo" id="subtitle"]]
+[[!template text="""and I'm not letting that out But I think so,""" start="00:14:39.060" video="qanda-solo" id="subtitle"]]
+[[!template text="""but I think so so but I think your mileage""" start="00:14:42.040" video="qanda-solo" id="subtitle"]]
+[[!template text="""may vary. So yeah, try it out""" start="00:14:44.340" video="qanda-solo" id="subtitle"]]
+[[!template text="""[Speaker 2]: Have you seen the game Dwarf Fortress?""" start="00:14:47.360" video="qanda-solo" id="subtitle"]]
+[[!template text="""Because it's supposed to be a video game""" start="00:14:50.880" video="qanda-solo" id="subtitle"]]
+[[!template text="""that's in a similar spirit to that,""" start="00:14:53.040" video="qanda-solo" id="subtitle"]]
+[[!template text="""where it helps you generate stories.""" start="00:14:55.080" video="qanda-solo" id="subtitle"]]
+[[!template text="""Dwarf Fortress, RimWorld,""" start="00:14:56.820" video="qanda-solo" id="subtitle"]]
+[[!template text="""Kenshi is another 1.""" start="00:15:00.420" video="qanda-solo" id="subtitle"]]
+[[!template text="""[Speaker 1]: Yeah, no, I've looked at the Dwarf Fortress,""" start="00:15:03.400" video="qanda-solo" id="subtitle"]]
+[[!template text="""but I haven't played it.""" start="00:15:04.640" video="qanda-solo" id="subtitle"]]
+[[!template text="""But that 1 seems a little bit more""" start="00:15:08.160" video="qanda-solo" id="subtitle"]]
+[[!template text="""structured, but still could be a lot of fun""" start="00:15:10.640" video="qanda-solo" id="subtitle"]]
+[[!template text="""too. And then others, it's like,""" start="00:15:13.700" video="qanda-solo" id="subtitle"]]
+[[!template text="""how far do you want to take it?""" start="00:15:15.240" video="qanda-solo" id="subtitle"]]
+[[!template text="""Like I just picked up this 1 called Broken""" start="00:15:18.280" video="qanda-solo" id="subtitle"]]
+[[!template text="""Cask. There it is, where you generate a""" start="00:15:21.820" video="qanda-solo" id="subtitle"]]
+[[!template text="""little bar tavern, and then you start rolling""" start="00:15:25.240" video="qanda-solo" id="subtitle"]]
+[[!template text="""events. Now, it gives a lot more stuff coming""" start="00:15:29.180" video="qanda-solo" id="subtitle"]]
+[[!template text="""out of it. It's like, oh,""" start="00:15:30.780" video="qanda-solo" id="subtitle"]]
+[[!template text="""this person's showing up and this is what's""" start="00:15:32.700" video="qanda-solo" id="subtitle"]]
+[[!template text="""happening, but you can elaborate on it as""" start="00:15:34.700" video="qanda-solo" id="subtitle"]]
+[[!template text="""much as you want. And that's what I'm""" start="00:15:36.660" video="qanda-solo" id="subtitle"]]
+[[!template text="""thinking I might do. Hi,""" start="00:15:39.600" video="qanda-solo" id="subtitle"]]
+[[!template text="""Mike, you got a question?""" start="00:15:40.600" video="qanda-solo" id="subtitle"]]
+[[!template text="""[Speaker 3]: Hi, Howard. Yeah, I do have a question.""" start="00:15:47.680" video="qanda-solo" id="subtitle"]]
+[[!template text="""I'm a big fan of your work on literate DevOps""" start="00:15:50.940" video="qanda-solo" id="subtitle"]]
+[[!template text="""and your essay and video on that topic.""" start="00:15:53.120" video="qanda-solo" id="subtitle"]]
+[[!template text="""I'm just wondering if you still use that""" start="00:15:56.040" video="qanda-solo" id="subtitle"]]
+[[!template text="""workflow at work and have you changed how""" start="00:15:59.640" video="qanda-solo" id="subtitle"]]
+[[!template text="""that process works or has it evolved over""" start="00:16:02.160" video="qanda-solo" id="subtitle"]]
+[[!template text="""time since that video and essay were written?""" start="00:16:04.720" video="qanda-solo" id="subtitle"]]
+[[!template text="""[Speaker 1]: That's a good question.""" start="00:16:06.840" video="qanda-solo" id="subtitle"]]
+[[!template text="""Yes, I still do it. It varies depending on""" start="00:16:12.440" video="qanda-solo" id="subtitle"]]
+[[!template text="""the project and whatnot.""" start="00:16:13.500" video="qanda-solo" id="subtitle"]]
+[[!template text="""But I still am using it.""" start="00:16:16.400" video="qanda-solo" id="subtitle"]]
+[[!template text="""Yeah, yeah. In fact, I'm doing it with a lot""" start="00:16:20.280" video="qanda-solo" id="subtitle"]]
+[[!template text="""of other things. Like all my configuration""" start="00:16:22.760" video="qanda-solo" id="subtitle"]]
+[[!template text="""files are all in a literate style for Emacs.""" start="00:16:27.660" video="qanda-solo" id="subtitle"]]
+[[!template text="""And even all the code that's in Ironsworn,""" start="00:16:31.160" video="qanda-solo" id="subtitle"]]
+[[!template text="""the repo, if you go to the repo,""" start="00:16:35.060" video="qanda-solo" id="subtitle"]]
+[[!template text="""it's the readme file. And yeah,""" start="00:16:37.440" video="qanda-solo" id="subtitle"]]
+[[!template text="""that's just being rendered out to the Emacs""" start="00:16:39.720" video="qanda-solo" id="subtitle"]]
+[[!template text="""file. So it is still all literate.""" start="00:16:41.660" video="qanda-solo" id="subtitle"]]
+[[!template text="""[Speaker 3]: Very cool.""" start="00:16:43.440" video="qanda-solo" id="subtitle"]]
+[[!template text="""[Speaker 1]: Yeah, because I don't know.""" start="00:16:46.500" video="qanda-solo" id="subtitle"]]
+[[!template text="""Some things are just a little too complicated""" start="00:16:48.120" video="qanda-solo" id="subtitle"]]
+[[!template text="""to just type up.""" start="00:16:49.320" video="qanda-solo" id="subtitle"]]
+[[!template text="""[Speaker 0]: All right, sorry to be the bearer of bad""" start="00:16:56.040" video="qanda-solo" id="subtitle"]]
+[[!template text="""news, but we have only about 3 more minutes""" start="00:16:58.220" video="qanda-solo" id="subtitle"]]
+[[!template text="""of lifetime. By the way,""" start="00:16:59.840" video="qanda-solo" id="subtitle"]]
+[[!template text="""feel free to stay and discuss any of the""" start="00:17:02.920" video="qanda-solo" id="subtitle"]]
+[[!template text="""topic of today's session after we go off air""" start="00:17:07.540" video="qanda-solo" id="subtitle"]]
+[[!template text="""and we'll be able to keep all of the nice""" start="00:17:10.579" video="qanda-solo" id="subtitle"]]
+[[!template text="""discussion and put them on the talks page""" start="00:17:12.260" video="qanda-solo" id="subtitle"]]
+[[!template text="""afterwards. Great. Howard,""" start="00:17:16.560" video="qanda-solo" id="subtitle"]]
+[[!template text="""I would like to ask you if you have any last""" start="00:17:20.020" video="qanda-solo" id="subtitle"]]
+[[!template text="""words regarding the presentation or the""" start="00:17:21.760" video="qanda-solo" id="subtitle"]]
+[[!template text="""questions you've had. Well,""" start="00:17:23.040" video="qanda-solo" id="subtitle"]]
+[[!template text="""the last question we had,""" start="00:17:24.520" video="qanda-solo" id="subtitle"]]
+[[!template text="""actually, we had Mike come and ask it live.""" start="00:17:27.500" video="qanda-solo" id="subtitle"]]
+[[!template text="""But do you have any parting words before we""" start="00:17:29.440" video="qanda-solo" id="subtitle"]]
+[[!template text="""leave you? Okay.""" start="00:17:31.720" video="qanda-solo" id="subtitle"]]
+[[!template text="""[Speaker 1]: I think the last thing is go and hack""" start="00:17:37.560" video="qanda-solo" id="subtitle"]]
+[[!template text="""something. I mean, this Lisp stuff is a lot""" start="00:17:41.420" video="qanda-solo" id="subtitle"]]
+[[!template text="""of fun. And I hope that came across.""" start="00:17:43.860" video="qanda-solo" id="subtitle"]]
+[[!template text="""It's like, the project I made is just a""" start="00:17:47.240" video="qanda-solo" id="subtitle"]]
+[[!template text="""personal thing and it was fun for me to make,""" start="00:17:50.220" video="qanda-solo" id="subtitle"]]
+[[!template text="""but everybody's probably got some fun thing""" start="00:17:53.100" video="qanda-solo" id="subtitle"]]
+[[!template text="""they could make as well.""" start="00:17:54.320" video="qanda-solo" id="subtitle"]]
+[[!template text="""And just, I don't know,""" start="00:17:56.200" video="qanda-solo" id="subtitle"]]
+[[!template text="""hack it yourself because all the,""" start="00:17:58.460" video="qanda-solo" id="subtitle"]]
+[[!template text="""you know, think about adding multi-threading""" start="00:18:01.920" video="qanda-solo" id="subtitle"]]
+[[!template text="""to Emacs. Maybe we don't want that,""" start="00:18:04.480" video="qanda-solo" id="subtitle"]]
+[[!template text="""because that'll just complicate things.""" start="00:18:06.000" video="qanda-solo" id="subtitle"]]
+[[!template text="""This is your own personal hacking sandbox,""" start="00:18:08.200" video="qanda-solo" id="subtitle"]]
+[[!template text="""so go have fun.""" start="00:18:09.520" video="qanda-solo" id="subtitle"]]
+[[!template text="""[Speaker 0]: Great. I was just going to say we were""" start="00:18:14.220" video="qanda-solo" id="subtitle"]]
+[[!template text="""talking about Dwarf Fortress.""" start="00:18:15.060" video="qanda-solo" id="subtitle"]]
+[[!template text="""In Dwarf Fortress, it's a very CPU intensive""" start="00:18:18.680" video="qanda-solo" id="subtitle"]]
+[[!template text="""game because it needs to compute every single""" start="00:18:21.020" video="qanda-solo" id="subtitle"]]
+[[!template text="""thing in the world and there's such a thing""" start="00:18:23.480" video="qanda-solo" id="subtitle"]]
+[[!template text="""as the CPU death of the world where basically""" start="00:18:27.700" video="qanda-solo" id="subtitle"]]
+[[!template text="""you've got too many cats that are just""" start="00:18:29.340" video="qanda-solo" id="subtitle"]]
+[[!template text="""breeding constantly with 1 another and it""" start="00:18:31.320" video="qanda-solo" id="subtitle"]]
+[[!template text="""creates so many entities that it just""" start="00:18:33.760" video="qanda-solo" id="subtitle"]]
+[[!template text="""crashes, and the time it takes for the day to""" start="00:18:36.760" video="qanda-solo" id="subtitle"]]
+[[!template text="""finish it, it just never finish.""" start="00:18:38.440" video="qanda-solo" id="subtitle"]]
+[[!template text="""So I was going to say maybe multi-threading""" start="00:18:40.680" video="qanda-solo" id="subtitle"]]
+[[!template text="""might be useful in this case for Emacs.""" start="00:18:43.180" video="qanda-solo" id="subtitle"]]
+[[!template text="""So, wanting to foray into the future.""" start="00:18:46.100" video="qanda-solo" id="subtitle"]]
+[[!template text="""[Speaker 1]: All right. Thank you.""" start="00:18:48.800" video="qanda-solo" id="subtitle"]]
+[[!template text="""[Speaker 0]: And thank you so much,""" start="00:18:50.900" video="qanda-solo" id="subtitle"]]
+[[!template text="""Howard, and thank you Plasma Strike for your""" start="00:18:52.360" video="qanda-solo" id="subtitle"]]
+[[!template text="""question, as well as Mike,""" start="00:18:53.320" video="qanda-solo" id="subtitle"]]
+[[!template text="""who joined us. We're going to go live with""" start="00:18:55.760" video="qanda-solo" id="subtitle"]]
+[[!template text="""the next talk in about 1 minute,""" start="00:18:57.440" video="qanda-solo" id="subtitle"]]
+[[!template text="""and until then, well, I'm not going to put""" start="00:19:00.400" video="qanda-solo" id="subtitle"]]
+[[!template text="""music, You can wait 50 seconds without music,""" start="00:19:02.040" video="qanda-solo" id="subtitle"]]
+[[!template text="""you Zoomers. We'll be back in a bit.""" start="00:19:03.960" video="qanda-solo" id="subtitle"]]
+[[!template text="""[Speaker 2]: Bye-bye.""" start="00:19:05.280" video="qanda-solo" id="subtitle"]]
+[[!template text="""[Speaker 0]: Bye, Howard. All right,""" start="00:19:09.620" video="qanda-solo" id="subtitle"]]
+[[!template text="""we are off. Thank you so much,""" start="00:19:11.120" video="qanda-solo" id="subtitle"]]
+[[!template text="""Howard. I need to dash.""" start="00:19:11.980" video="qanda-solo" id="subtitle"]]
+[[!template text="""And oh, I think he's already gone.""" start="00:19:13.940" video="qanda-solo" id="subtitle"]]
+[[!template text="""So Bye everyone, I'll see you later.""" start="00:19:16.360" video="qanda-solo" id="subtitle"]]
+
+</div>Questions or comments? Please e-mail [howard@howardabrams.com](mailto:howard@howardabrams.com?subject=Comment%20for%20EmacsConf%202023%20solo%3A%20How%20I%20play%20TTRPGs%20in%20Emacs)
<!-- End of emacsconf-publish-after-page -->
diff --git a/2023/info/solo-before.md b/2023/info/solo-before.md
index ee689264..749868c7 100644
--- a/2023/info/solo-before.md
+++ b/2023/info/solo-before.md
@@ -1,12 +1,33 @@
<!-- Automatically generated by emacsconf-publish-before-page -->
[[!toc ]]
-Format: 20-min talk followed by live with questions from Mastodon Q&A
-Discuss on IRC: [#emacsconf](https://chat.emacsconf.org/?join=emacsconf)
-Status: Waiting for video from speaker
+Format: 15-min talk ; Q&A: BigBlueButton conference room
+Status: Q&A to be extracted from the room recordings
+# Talk
+
+<div class="vid mainVideo"><video controls preload="none" id="mainVideo-solo"><source src="https://media.emacsconf.org/2023/emacsconf-2023-solo--how-i-play-ttrpgs-in-emacs--howard-abrams--main.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2023/captions/emacsconf-2023-solo--how-i-play-ttrpgs-in-emacs--howard-abrams--main.vtt" default />"""<track kind="chapters" label="Chapters" src="/2023/captions/emacsconf-2023-solo--how-i-play-ttrpgs-in-emacs--howard-abrams--main--chapters.vtt" /><p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video>[[!template id="chapters" vidid="mainVideo-solo" data="""
+00:00.000 Introduction
+01:20.680 Solo RPGs
+02:47.440 Demo
+04:11.760 Randomization
+05:31.960 Moves
+06:03.640 Reference
+06:34.680 Story arcs
+07:48.680 Using different stats
+09:02.960 Dice rolls
+09:34.800 Dangers
+10:19.680 A strong success
+11:49.680 Other solo RPGs
+13:04.720 Conclusion
+
+"""]]<div></div>Duration: 14:36 minutes<div class="files resources"><ul><li><a href="https://pad.emacsconf.org/2023-solo">Open Etherpad</a></li><li><a href="https://bbb.emacsverse.org/playback/presentation/2.0/playback.html?meetingId=3a97d7b5f5392e3ec9100ba7d39768cdd0855e50-1701541252606">Play recording from BigBlueButton</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-solo--how-i-play-ttrpgs-in-emacs--howard-abrams--intro.vtt">Download --intro.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-solo--how-i-play-ttrpgs-in-emacs--howard-abrams--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-solo--how-i-play-ttrpgs-in-emacs--howard-abrams--main--chapters.vtt">Download --main--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-solo--how-i-play-ttrpgs-in-emacs--howard-abrams--main.opus">Download --main.opus (6.6MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-solo--how-i-play-ttrpgs-in-emacs--howard-abrams--main.vtt">Download --main.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-solo--how-i-play-ttrpgs-in-emacs--howard-abrams--main.webm">Download --main.webm (52MB)</a></li><li><a href="https://toobnix.org/w/oNkcCHdWCKXRv6KnUTAeEC">View on Toobnix</a></li><li><a href="https://www.youtube.com/watch?v=KUMkj9HWiEY">View on Youtube</a></li></ul></div></div>
+
+# Q&A
+
+<div class="vid qanda"><video controls preload="none" id="qanda-solo"><source src="https://media.emacsconf.org/2023/emacsconf-2023-solo--how-i-play-ttrpgs-in-emacs--howard-abrams--answers.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2023/captions/emacsconf-2023-solo--how-i-play-ttrpgs-in-emacs--howard-abrams--answers.vtt" default />"""<p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video><div>Listen to just the audio:<br /><audio controls preload="none" id="qanda-solo-audio" src="https://media.emacsconf.org/2023/emacsconf-2023-solo--how-i-play-ttrpgs-in-emacs--howard-abrams--answers.opus"></audio></div><div></div>Duration: 19:20 minutes<div class="files resources"><ul><li><a href="https://pad.emacsconf.org/2023-solo">Open Etherpad</a></li><li><a href="https://bbb.emacsverse.org/playback/presentation/2.0/playback.html?meetingId=3a97d7b5f5392e3ec9100ba7d39768cdd0855e50-1701541252606">Play recording from BigBlueButton</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-solo--how-i-play-ttrpgs-in-emacs--howard-abrams--answers.json">Download --answers.json</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-solo--how-i-play-ttrpgs-in-emacs--howard-abrams--answers.opus">Download --answers.opus (11MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-solo--how-i-play-ttrpgs-in-emacs--howard-abrams--answers.vtt">Download --answers.vtt</a> (unedited)</li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-solo--how-i-play-ttrpgs-in-emacs--howard-abrams--answers.webm">Download --answers.webm (43MB)</a></li></ul></div></div>
# Description
<!-- End of emacsconf-publish-before-page --> \ No newline at end of file
diff --git a/2023/info/solo-nav.md b/2023/info/solo-nav.md
index 64212868..4ffc815d 100644
--- a/2023/info/solo-nav.md
+++ b/2023/info/solo-nav.md
@@ -2,6 +2,6 @@
<div class="talk-nav">
Back to the [[talks]]
Previous by track: <a href="/2023/talks/collab">Collaborative data processing and documenting using org-babel</a>
-Next by track: <a href="/2023/talks/unentangling">(Un)entangling projects and repos</a>
-Track: <span class="sched-track General">General</span>
+Next by track: <a href="/2023/talks/ref">Org-Mode workflow: informal reference tracking</a>
+Track: <span class="sched-track General">General</span> - <strong><a href="https://emacsconf.org/2023/watch/gen">Watch</a></strong>
</div>
diff --git a/2023/info/steno-after.md b/2023/info/steno-after.md
index 62e67e56..53e7022c 100644
--- a/2023/info/steno-after.md
+++ b/2023/info/steno-after.md
@@ -1,7 +1,358 @@
<!-- Automatically generated by emacsconf-publish-after-page -->
-Questions or comments? Please e-mail [z111.513.321@gmail.com](mailto:z111.513.321@gmail.com?subject=Comment%20for%20EmacsConf%202022%20steno%3A%20Programming%20at%20200%20wpm)
+<div class="transcript transcript-mainVideo"><a name="steno-mainVideo-transcript"></a><h1>Transcript</h1>
+
+[[!template text="""Stenotypy is a system of typing""" start="00:00:00.660" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""where you press multiple keys at the same time,""" start="00:00:03.840" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""letting you send more than one letter at a time.""" start="00:00:07.340" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""This is a video from the 1920s.""" start="00:00:13.360" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""The man is holding a stenotype, a device used for stenotypy.""" start="00:00:16.940" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""This particular one is called Grandjean.""" start="00:00:23.060" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""It's made for the French language.""" start="00:00:26.360" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""In this demonstration,""" start="00:00:30.068" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""the man is going to be dictating a passage,""" start="00:00:31.740" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""first, slowly and then quickly.""" start="00:00:34.900" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""The lady on the left doesn't have trouble keeping up.""" start="00:00:38.760" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""She's using stenotypy.""" start="00:00:42.420" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""The lady on the right is a good typist,""" start="00:00:44.860" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""but she can't keep up when the dictation gets faster.""" start="00:00:48.320" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""I'm nowhere near as fast as this lady.""" start="00:01:13.300" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""She's extremely skilled.""" start="00:01:16.020" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""I'm not even a tenth of what she is.""" start="00:01:18.780" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""I don't use Grandjean, I use Melani,""" start="00:01:24.540" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""which is a system for Castilian and Italian.""" start="00:01:28.400" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""If I want to make the word solo, I press S, O, L,""" start="00:01:33.320" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""which is made by two keys, and O.""" start="00:01:39.540" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""Here's what that looks like.""" start="00:01:43.320" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""The hyphen between S and O means that""" start="00:01:45.600" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""the S is on the left side,""" start="00:01:50.800" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""and the rest of the letters are on the right side.""" start="00:01:52.520" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""If I want to write the word sólo,""" start="00:01:57.040" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""which is just like the previous word,""" start="00:02:00.000" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""but with the first O accented,""" start="00:02:02.440" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""I would press the asterisk key.""" start="00:02:05.480" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""In Melani, the asterisk is used""" start="00:02:08.260" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""to put an accent on a letter.""" start="00:02:11.960" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""If you speak English,""" start="00:02:20.300" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""then you would likely use the Ireland system.""" start="00:02:22.040" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""S-E-T makes the word set.""" start="00:02:25.040" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""In Ireland, you can make a long vowel sound""" start="00:02:28.780" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""by pressing the two thumb keys""" start="00:02:32.380" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""on the other side of the vowel you want to make long.""" start="00:02:34.260" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""S-long-E-T makes the word seat.""" start="00:02:41.700" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""This is me programming.""" start="00:02:50.200" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""After a few lines, I'll explain what's going on.""" start="00:02:52.660" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""In GNU Emacs, you can create abbreviations""" start="00:03:19.580" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""that expand to strings.""" start="00:03:23.380" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""For example, you can create an abbrev, like btwx,""" start="00:03:25.540" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""that will expand to &quot;by the way&quot;""" start="00:03:31.360" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""when you succeed btwx with a space or some punctuation.""" start="00:03:33.980" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""Here that's what I'm doing.""" start="00:03:40.360" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""I type d and then emacs, which expands to this.""" start="00:03:42.440" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""But this is a different kind of expansion""" start="00:03:48.140" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""from a simple string like by the way.""" start="00:03:50.660" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""This one has structure.""" start="00:03:54.340" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""It has interesting points that I can jump to.""" start="00:03:56.640" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""It's called a skeleton.""" start="00:04:00.680" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""This is the skeleton.""" start="00:04:03.740" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""The part that I want you to focus on is the @ symbols.""" start="00:04:05.940" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""Those are the interesting points that I jump to.""" start="00:04:10.560" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""So, at one interesting point,""" start="00:04:15.740" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""I can write the name of the function,""" start="00:04:18.260" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""at another interesting point, the arguments""" start="00:04:20.700" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""if the function will need them, the doc string,""" start="00:04:24.360" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""and finally the body.""" start="00:04:28.620" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""When I get to the body, I use stenotypy""" start="00:04:31.800" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""to write the words of the functions I'm looking for.""" start="00:04:34.940" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""Then I call a completion framework""" start="00:04:39.060" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""to choose from a list of candidates.""" start="00:04:41.640" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""This completion framework doesn't care""" start="00:04:45.060" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""what order the words are in or how many words I use.""" start="00:04:47.860" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""This completion framework is called Corfu,""" start="00:04:52.520" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""which stands for COmpletion in Region FUnction.""" start="00:04:56.220" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""And I'm using a package called Orderless""" start="00:05:00.460" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""to make it stronger.""" start="00:05:03.280" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""Here, I use another skeleton, the same one as before.""" start="00:05:51.460" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""This time, it has an argument.""" start="00:05:57.200" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""Then, when I get to the body, I write another skeleton,""" start="00:06:00.880" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""one that has an interesting point between the quotes""" start="00:06:07.240" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""and creates a new line""" start="00:06:12.360" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""right underneath it.""" start="00:06:14.920" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""I typed i and then emacs,""" start="00:06:17.500" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""and I got the interactive skeleton.""" start="00:06:20.320" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""Now, I use another skeleton,""" start="00:07:16.120" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""but these ones differ""" start="00:07:18.900" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""because it prompts me for a string,""" start="00:07:20.480" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""and I can make the skeleton as long as I want.""" start="00:07:23.040" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""If I keep entering text in the prompt,""" start="00:07:27.300" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""then Emacs will keep making the skeleton bigger.""" start="00:07:29.800" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""When I enter an empty string, it knows to stop asking,""" start="00:07:33.840" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""and it sends me to the point""" start="00:07:38.000" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""I've designated to go to when a skeleton is created.""" start="00:07:40.000" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""That's what the underscore means.""" start="00:07:44.620" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""I type c and then Emacs, and I get the condition skeleton.""" start="00:07:48.260" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""And then I use Corfu and Orderless to program.""" start="00:07:54.120" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""On two functions, I use a dabbrev.""" start="00:08:00.060" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""A dabbrev is a dynamic abbreviation.""" start="00:08:03.820" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""Here's how it works.""" start="00:08:09.500" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""If I have three strings""" start="00:08:11.440" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""that begin with S-T, string, strawberry, and stop,""" start="00:08:12.900" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""I can write S-T and then call dabbrev expand.""" start="00:08:17.820" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""First, this will give me stop""" start="00:08:22.180" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""because I'm nearest to the word stop.""" start="00:08:24.380" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""Then when I call it again, I'll get strawberry.""" start="00:08:27.120" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""And if I call it a third time, I'll get string.""" start="00:08:30.500" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""If I start off with S-T-R, then I'll get strawberry first""" start="00:08:35.460" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""and then string.""" start="00:08:40.140" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""I used dabbrev twice in this function.""" start="00:08:42.280" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""If you read the top of the screen,""" start="00:08:46.000" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""you can see which commands I use and how I invoke them.""" start="00:08:48.080" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""Finally, I use one last skeleton""" start="00:09:00.240" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""to map the function I just wrote to a hotkey.""" start="00:09:03.120" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""In this case, C-o.""" start="00:09:07.040" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""Here we can see what the function I just wrote does.""" start="00:09:15.580" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""It opens a line with the line below indented""" start="00:09:19.220" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""if it isn't blank.""" start="00:09:22.240" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""I've kept the old behavior with an argument of zero""" start="00:09:23.801" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""and done something for when I use a negative argument.""" start="00:09:29.040" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""You can see the interesting points.""" start="00:09:33.600" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""I could jump to any of them or cycle through them.""" start="00:09:36.900" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""I normally use a 9-to-16 setup.""" start="00:09:50.000" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""To me, Emacs, and computing in general,""" start="00:09:54.620" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""is much more pleasant to use that way.""" start="00:09:58.120" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""When I stenotype a word,""" start="00:10:07.680" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""a space is sent immediately afterwards.""" start="00:10:10.000" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""Orderless treats spaces as delimiters.""" start="00:10:14.180" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""This is very helpful""" start="00:10:17.800" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""because I can enter commands with stenotypy,""" start="00:10:19.380" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""without having to worry about""" start="00:10:23.460" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""whether words are in the right order.""" start="00:10:25.220" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""Lem, spelled L-E-M, is another Emacs.""" start="00:10:29.320" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""It's extremely powerful.""" start="00:10:34.220" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""But Lem doesn't have skeletons, not yet at least.""" start="00:10:35.901" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""So I'm going to program the traditional way.""" start="00:10:40.061" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""Nothing fancy, just left-to-right programming.""" start="00:10:43.740" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""With Plover, you have dictionaries.""" start="00:11:38.800" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""I added Fibonacci to my dictionary.""" start="00:11:41.521" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""I made my own dictionary from scratch.""" start="00:11:44.861" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""But if you don't want to do that,""" start="00:11:47.940" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""there are free dictionaries available""" start="00:11:49.781" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""that have many words already in them,""" start="00:11:52.261" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""saving you lots of time.""" start="00:11:55.121" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""The reason I made my dictionary from scratch""" start="00:11:56.721" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""is because I wanted to know my system inside and out.""" start="00:12:00.280" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""On one stroke, I typed T.""" start="00:12:03.560" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""And, on the next stroke, I stenotyped coalton.""" start="00:12:07.961" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""And then I got (coalton-toplevel and a new line.""" start="00:12:12.741" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""It's similar to what I did in GNU Emacs""" start="00:12:16.461" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""when I expanded a skeleton.""" start="00:12:19.520" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""This is actually not stenotypy,""" start="00:12:22.580" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""but a different kind of steno, known as serial steno.""" start="00:12:25.180" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""Plover is capable of this as well.""" start="00:12:29.821" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""Here are some things that Plover can do.""" start="00:12:32.941" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""Plover can glue words,""" start="00:12:36.841" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""like if you need to make a compound word.""" start="00:12:38.921" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""It can break a compound word.""" start="00:12:41.461" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""You can press keys to turn off Plover""" start="00:12:44.361" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""or to turn it back on.""" start="00:12:48.061" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""You can case words the way you want,""" start="00:12:50.121" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""uppercase, lowercase, capitalize.""" start="00:12:52.721" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""You can change your stenotype layout,""" start="00:12:55.761" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""like, say, if you want to use Grandjean for French,""" start="00:12:58.821" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""Melani for Castilian, and Ireland for English.""" start="00:13:02.381" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""All of that's possible.""" start="00:13:06.380" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""Here I should note that I'm using a Plover plugin""" start="00:13:10.480" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""called Full Keyboard Steno.""" start="00:13:14.620" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""It makes my entire keyboard into a stenotype.""" start="00:13:17.521" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""Lem also has a completion feature built in.""" start="00:13:26.800" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""But I didn't need it for the code that I wrote.""" start="00:13:30.701" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""It's quite good.""" start="00:13:35.101" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""In summary, if you add in the symbols""" start="00:13:38.720" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""that you're going to need when you're programming,""" start="00:13:42.281" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""you'll be fine.""" start="00:13:45.121" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""Even without skeletons,""" start="00:13:46.441" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""Plover is nice to use for programming.""" start="00:13:48.621" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""The search tool is the primary way of navigating in Emacs.""" start="00:14:00.920" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""Every Emacser can be measured""" start="00:14:05.621" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""by their skill with the search tool.""" start="00:14:08.041" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""C-s begins a forward search.""" start="00:14:11.640" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""The s stands for search.""" start="00:14:14.821" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""I'm reading Aesop's Fables,""" start="00:14:18.420" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""and I want to look for the word fox.""" start="00:14:20.741" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""So I press C-s and type fox.""" start="00:14:23.641" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""If I want to go back to the beginning of the word fox,""" start="00:14:28.201" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""I press C-r, which stands for reverse search.""" start="00:14:31.600" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""With Stenotypy, spaces are added to the end of words,""" start="00:14:37.501" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""so sometimes that causes problems.""" start="00:14:42.740" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""We can remedy that by changing the way""" start="00:14:49.060" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""Emacs interprets our whitespace.""" start="00:14:52.121" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""When I press C-M-s [alt control s],""" start="00:14:55.360" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""whitespace is interpreted as a wildcard.""" start="00:14:57.961" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""It's a function I made myself.""" start="00:15:01.301" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""fox mask will take me to the fox and the mask.""" start="00:15:04.160" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""The whitespace is a wildcard.""" start="00:15:09.160" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""For me, Ctrl-s makes the whitespace literal.""" start="00:15:12.181" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""I like having both options available to me:""" start="00:15:16.761" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""literal whitespace and wildcard whitespace.""" start="00:15:20.540" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""Say I want to find the cat and the fox,""" start="00:15:29.420" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""one of my favorite fables.""" start="00:15:32.620" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""I write cat fox, but I don't get what I want.""" start="00:15:34.860" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""I've written a function that reverses""" start="00:15:39.420" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""the order of my search query.""" start="00:15:42.120" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""Now I get what I want.""" start="00:15:45.260" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""Searching like this is very convenient.""" start="00:15:47.880" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""In Lem, we can do something similar.""" start="00:15:55.340" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""I want to read The Fox and the Lion.""" start="00:15:58.540" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""I search for Lion Fox. Notice those words are capitalized.""" start="00:16:01.420" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""Now I'm going to transform the last two words""" start="00:16:08.380" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""into a regular expression""" start="00:16:11.781" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""so that the order doesn't matter.""" start="00:16:14.300" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""And now I can find the fable I'm looking for.""" start="00:16:18.480" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""I did this with a plugin called Retro Stringop,""" start="00:16:27.220" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""op meaning operation.""" start="00:16:31.900" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""I can perform any operation on the last n words.""" start="00:16:34.260" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""Let's look at that.""" start="00:16:40.060" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""The 2 means that I want to do something""" start="00:16:42.320" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""to the last two words.""" start="00:16:44.700" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""The operation I'm performing is Python code.""" start="00:16:46.940" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""To be honest, I don't know any Python,""" start="00:16:50.900" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""but string manipulation is easy to understand.""" start="00:16:54.060" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""If you do know Python, then you can make your own plugins""" start="00:16:57.620" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""and even help with the development of Plover.""" start="00:17:01.701" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""A feature I like in Lem is that""" start="00:17:07.820" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""when you gracefully exit search with Enter or C-m,""" start="00:17:09.900" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""what you searched for is highlighted.""" start="00:17:15.780" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""You can cycle through the results, the highlights,""" start="00:17:18.500" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""and you can toggle the highlights on or off.""" start="00:17:23.241" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""1978, John Kulp designs a keyboard""" start="00:17:30.160" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""known as the Space Cadet Keyboard.""" start="00:17:34.481" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""This keyboard has many distinctive qualities,""" start="00:17:37.180" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""one being the modifiers, numbering seven in total:""" start="00:17:40.340" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""Shift, Control, Meta, Super, Hyper, Greek, and Top.""" start="00:17:44.420" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""This keyboard influences the development of Emacs.""" start="00:17:51.900" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""2000, designer Kiyoshi Kimura and programmer Yoji Hagia""" start="00:17:56.860" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""release SandS, a program that lets you turn your spacebar""" start="00:18:02.660" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""into a dual-function key,""" start="00:18:07.400" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""sending space on tap""" start="00:18:09.660" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""and acting as the Shift modifier on hold.""" start="00:18:11.500" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""This idea, the dual-function key,""" start="00:18:16.220" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""later revolutionizes typing.""" start="00:18:18.501" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""These two concepts, the space cadet modifiers""" start="00:18:22.060" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""and the dual-function key, can be combined.""" start="00:18:25.641" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""I use a program called Kanata""" start="00:18:29.580" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""to put all the modifiers on my homerow.""" start="00:18:32.440" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""When I tap the letter a, I get an a.""" start="00:18:36.660" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""If I hold it down for longer than 200 milliseconds,""" start="00:18:40.100" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""it acts as the Meta modifier,""" start="00:18:43.420" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""and really I can add""" start="00:18:46.740" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""as many layers to my keyboard as I want.""" start="00:18:48.060" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""I don't use a little stenotype.""" start="00:18:52.400" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""Thanks to Full Keyboard Steno, the Plover plugin,""" start="00:18:55.500" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""I use my whole keyboard.""" start="00:18:59.140" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""I have an alternative keyboard layout on it,""" start="00:19:02.020" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""so, even when I'm typing in the traditional way,""" start="00:19:05.440" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""it feels amazing.""" start="00:19:08.700" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""My layout is called Kuron, and I lay it over Melani""" start="00:19:10.380" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""so that I have both available to me at all times.""" start="00:19:15.700" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""I don't get them confused because I set them off""" start="00:19:19.620" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""with the way I press keys.""" start="00:19:24.400" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""If I press one key at a time,""" start="00:19:26.940" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""I'm using Kuron, my keyboard layout.""" start="00:19:29.320" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""If I press multiple keys at the same time""" start="00:19:32.420" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""and let them go quickly,""" start="00:19:35.400" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""then I'm using stenotypy, in my case Melani.""" start="00:19:37.340" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""And if I hold one key longer than 200 milliseconds,""" start="00:19:41.420" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""then I'm activating it as a modifier key or a layer key.""" start="00:19:45.241" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""I always know what state I'm in by the way I press my keys.""" start="00:19:51.340" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""It's impossible for me to get confused.""" start="00:19:56.800" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""Holding multiple modifiers is not a problem""" start="00:20:03.800" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""because the keycaps used for stenotypy are flat and square.""" start="00:20:07.860" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""Pressing two or more keys at once""" start="00:20:13.440" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""with the same finger is easy.""" start="00:20:15.980" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""Notice how close they are to each other.""" start="00:20:18.900" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""In stenotypy, the homerow is the border""" start="00:20:21.900" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""between the two rows of keys.""" start="00:20:25.660" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""It took me a while to get used to it,""" start="00:20:28.560" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""but now that I am used to it, I quite like it.""" start="00:20:31.260" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""So if I have to press a hotkey""" start="00:20:35.640" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""with all six modifiers, Shift, Control, Meta,""" start="00:20:38.220" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""Alt, Hyper, Super, it's easy.""" start="00:20:43.980" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""Thanks to Kanata, I have a Greek layer on my board.""" start="00:20:50.900" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""Additionally, I have alpha, beta, and gamma layers""" start="00:20:54.660" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""that send sequences of keys that I can use as hotkeys""" start="00:20:58.800" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""in both GNU Emacs and Lem.""" start="00:21:03.320" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""Maybe you noticed a few while I was programming.""" start="00:21:06.540" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""Now it's possible to bring the Space Cadet""" start="00:21:10.420" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""to any keyboard and to build on its wonderful ideas.""" start="00:21:12.960" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""Here I'll note that another Emacser, Excalamus,""" start="00:21:20.920" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""has made a page called Plover with Emacs,""" start="00:21:24.460" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""with information on how to use Emacs""" start="00:21:27.540" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""with the standard stenotype,""" start="00:21:30.640" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""the one that has two rows,""" start="00:21:32.540" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""the one I call a little stenotype.""" start="00:21:34.520" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""While I use my full keyboard,""" start="00:21:37.440" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""I understand how a small board can be useful.""" start="00:21:39.600" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""Finger movement is greatly reduced,""" start="00:21:43.200" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""leading to a very ergonomic typing experience.""" start="00:21:46.160" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""In fact, all of the speed records""" start="00:21:49.440" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""are set with this stenotype, the standard stenotype.""" start="00:21:53.240" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""There are many great ideas on this page.""" start="00:21:58.840" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""Thank you, Excalamus.""" start="00:22:01.480" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""Special thanks to Richard Stallman,""" start="00:22:06.800" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""the creator of GNU Emacs and the Free Software Foundation,""" start="00:22:09.160" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""Sasaki Ryosuke, first name Ryosuke,""" start="00:22:13.420" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""the creator and lead developer of Lem,""" start="00:22:16.920" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""Mirabai Knight, the creator of the Open Steno Project,""" start="00:22:20.120" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""which oversees the development of Plover,""" start="00:22:24.280" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""and jtroo, the creator and lead developer of Kanata.""" start="00:22:26.840" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""The views expressed in this talk are solely my own.""" start="00:22:32.700" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""I have no connection to any of the parties mentioned herein""" start="00:22:37.000" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""and therefore cannot be seen""" start="00:22:41.160" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""as representing them in any capacity.""" start="00:22:43.480" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""What I've said cannot be taken as medical advice.""" start="00:22:45.360" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""I used the TranSide theme for GNU Emacs in this talk.""" start="00:22:50.860" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""It's beautiful and functional.""" start="00:22:54.760" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""I love how the code looks, and I can read the comments.""" start="00:22:57.900" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""In Lem, I used Gruber.""" start="00:23:03.560" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""Again, the comments are readable, and the code looks nice.""" start="00:23:05.760" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""When I first started using Emacs,""" start="00:23:11.200" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""I used the Wheatgrass theme.""" start="00:23:13.840" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""Another theme that I love is os1.""" start="00:23:19.980" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""It's a light, warm, modern theme for Emacs""" start="00:23:24.520" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""inspired by film palettes.""" start="00:23:28.240" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""Regarding typography, for programming,""" start="00:23:35.040" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""I used JuliaMono, which was designed by Cormullion.""" start="00:23:38.500" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""It's extensive, and it's beautiful.""" start="00:23:43.520" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""For graphics, I used PromptFont,""" start="00:23:48.000" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""which was made by Yukari Hafner.""" start="00:23:51.380" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""She's very talented.""" start="00:23:54.840" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""I really like her work, including this font.""" start="00:23:56.480" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""There are so many packages that I love in Emacs.""" start="00:24:01.180" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""If I talked about all of them,""" start="00:24:05.520" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""my talk would last for days,""" start="00:24:07.640" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""so I'm only going to mention three.""" start="00:24:09.800" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""Keycast.""" start="00:24:12.580" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""At the top of the screen,""" start="00:24:14.400" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""you can see the commands I'm executing""" start="00:24:15.520" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""and how I'm invoking those commands.""" start="00:24:18.040" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""That's Keycast.""" start="00:24:20.560" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""Rainbow Delimiters is another one I like.""" start="00:24:21.920" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""It lets me know visually""" start="00:24:25.540" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""when my parentheses are out of balance.""" start="00:24:27.520" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""Very helpful when I'm programming in Lisp.""" start="00:24:30.480" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""Moodline is another.""" start="00:24:35.900" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""The modeline is where I can see relevant information""" start="00:24:37.880" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""about the file I'm working on.""" start="00:24:42.900" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""Moodline only gives me the information I want.""" start="00:24:46.840" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""I'm not really worried about too many things, just""" start="00:24:50.760" video="mainVideo-steno" id="subtitle"]]
+[[!template text="""the file name, the mode I'm in, and where I am in the file.""" start="00:24:55.461" video="mainVideo-steno" id="subtitle"]]
+
+</div>
+
+Captioner: daniel
+
+Questions or comments? Please e-mail [z111.513.321@gmail.com](mailto:z111.513.321@gmail.com?subject=Comment%20for%20EmacsConf%202023%20steno%3A%20Programming%20with%20steno)
<!-- End of emacsconf-publish-after-page -->
diff --git a/2023/info/steno-before.md b/2023/info/steno-before.md
index 67b36818..ef51fa66 100644
--- a/2023/info/steno-before.md
+++ b/2023/info/steno-before.md
@@ -1,12 +1,12 @@
<!-- Automatically generated by emacsconf-publish-before-page -->
[[!toc ]]
-Format: 30-min talk followed by email Q&A
-Discuss on IRC: [#emacsconf](https://chat.emacsconf.org/?join=emacsconf)
-Status: Waiting for video from speaker
+Format: 26-min talk ; Q&A: ask questions via Etherpad/IRC; we'll e-mail the speaker and post answers on this wiki page after the conference
+Status: All done
+<div class="vid mainVideo"><video controls preload="none" id="mainVideo-steno"><source src="https://media.emacsconf.org/2023/emacsconf-2023-steno--programming-with-steno--daniel-alejandro-tapia--main.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2023/captions/emacsconf-2023-steno--programming-with-steno--daniel-alejandro-tapia--main.vtt" default />"""<p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video><div></div>Duration: 25:03 minutes<div class="files resources"><ul><li><a href="https://pad.emacsconf.org/2023-steno">Open Etherpad</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-steno--programming-with-steno--daniel-alejandro-tapia--intro.vtt">Download --intro.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-steno--programming-with-steno--daniel-alejandro-tapia--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-steno--programming-with-steno--daniel-alejandro-tapia--main.opus">Download --main.opus (13MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-steno--programming-with-steno--daniel-alejandro-tapia--main.vtt">Download --main.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-steno--programming-with-steno--daniel-alejandro-tapia--main.webm">Download --main.webm (66MB)</a></li><li><a href="https://toobnix.org/w/1xodScC6DPkfbnqG5FmbB3">View on Toobnix</a></li><li><a href="https://www.youtube.com/watch?v=McHurKmk-rQ">View on Youtube</a></li></ul></div></div>
# Description
<!-- End of emacsconf-publish-before-page --> \ No newline at end of file
diff --git a/2023/info/steno-nav.md b/2023/info/steno-nav.md
index 99ad2ecb..6f369a19 100644
--- a/2023/info/steno-nav.md
+++ b/2023/info/steno-nav.md
@@ -1,7 +1,7 @@
<div class="talk-nav">
Back to the [[talks]]
-Previous by track: <a href="/2023/talks/emacsconf">EmacsConf.org: How we use Org Mode and TRAMP to organize and run a multi-track conference</a>
-Next by track: <a href="/2023/talks/emacsen">The Emacsen family, the design of an Emacs and the importance of Lisp</a>
-Track: <span class="sched-track Development">Development</span>
+Previous by track: <a href="/2023/talks/emms">Emacs MultiMedia System (EMMS)</a>
+Next by track: <a href="/2023/talks/mentor">Mentoring VS-Coders as an Emacsian (or How to show not tell people about the wonders of Emacs)</a>
+Track: <span class="sched-track General">General</span> - <strong><a href="https://emacsconf.org/2023/watch/gen">Watch</a></strong>
</div>
diff --git a/2023/info/sun-close-after.md b/2023/info/sun-close-after.md
index f15ea0e2..aebbe6f8 100644
--- a/2023/info/sun-close-after.md
+++ b/2023/info/sun-close-after.md
@@ -1,7 +1,7 @@
<!-- Automatically generated by emacsconf-publish-after-page -->
-Questions or comments? Please e-mail [emacsconf-org-private@gnu.org](mailto:emacsconf-org-private@gnu.org?subject=Comment%20for%20EmacsConf%202022%20sun-close%3A%20Sunday%20closing%20remarks)
+Questions or comments? Please e-mail [emacsconf-org-private@gnu.org](mailto:emacsconf-org-private@gnu.org?subject=Comment%20for%20EmacsConf%202023%20sun-close%3A%20Sunday%20closing%20remarks)
<!-- End of emacsconf-publish-after-page -->
diff --git a/2023/info/sun-close-before.md b/2023/info/sun-close-before.md
index 02431083..311ec7b2 100644
--- a/2023/info/sun-close-before.md
+++ b/2023/info/sun-close-before.md
@@ -1,12 +1,12 @@
<!-- Automatically generated by emacsconf-publish-before-page -->
[[!toc ]]
-Format: 10-min talk
-Discuss on IRC: [#emacsconf](https://chat.emacsconf.org/?join=emacsconf)
-Status: Ready to stream
+Format: 121-min talk ; Q&A: BigBlueButton conference room
+Status: Q&A to be extracted from the room recordings
+<div class="vid mainVideo"><video controls preload="none" id="mainVideo-sun-close"><source src="https://media.emacsconf.org/2023/emacsconf-2023-sun-close--sunday-closing-remarks--main.webm" /><p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video><div></div>Duration: 2:00:43 minutes<div class="files resources"><ul><li><a href="https://pad.emacsconf.org/2023-sun-close">Open Etherpad</a></li><li><a href="https://bbb.emacsverse.org/playback/presentation/2.0/playback.html?meetingId=5f07e2b967f71ad503ac367ea43866abeaad63b6-1701636099684">Play recording from BigBlueButton</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-sun-close--sunday-closing-remarks--intro.vtt">Download --intro.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-sun-close--sunday-closing-remarks--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-sun-close--sunday-closing-remarks--main.opus">Download --main.opus (71MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-sun-close--sunday-closing-remarks--main.webm">Download --main.webm (279MB)</a></li><li><a href="https://toobnix.org/w/p/nMXCCJ25wxKUtbuQiwkakA">View on Toobnix</a></li><li><a href="https://www.youtube.com/watch?v=qqvelKB5v0c">View on Youtube</a></li></ul></div></div>
# Description
<!-- End of emacsconf-publish-before-page --> \ No newline at end of file
diff --git a/2023/info/sun-close-nav.md b/2023/info/sun-close-nav.md
index 92d58f1d..866eca7f 100644
--- a/2023/info/sun-close-nav.md
+++ b/2023/info/sun-close-nav.md
@@ -2,5 +2,5 @@
<div class="talk-nav">
Back to the [[talks]]
Previous by track: <a href="/2023/talks/sun-open">Sunday opening remarks</a>
-Track: <span class="sched-track General">General</span>
+Track: <span class="sched-track General">General</span> - <strong><a href="https://emacsconf.org/2023/watch/gen">Watch</a></strong>
</div>
diff --git a/2023/info/sun-open-after.md b/2023/info/sun-open-after.md
index e11c9bbb..d07dee3f 100644
--- a/2023/info/sun-open-after.md
+++ b/2023/info/sun-open-after.md
@@ -1,7 +1,128 @@
<!-- Automatically generated by emacsconf-publish-after-page -->
-Questions or comments? Please e-mail [emacsconf-org-private@gnu.org](mailto:emacsconf-org-private@gnu.org?subject=Comment%20for%20EmacsConf%202022%20sun-open%3A%20Sunday%20opening%20remarks)
+<div class="transcript transcript-mainVideo"><a name="sun-open-mainVideo-transcript"></a><h1>Transcript</h1>
+
+[[!template text="""Welcome to the second day of EmacsConf 2023.""" start="00:00:00.000" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""There's a General track and a Development track,""" start="00:00:04.520" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""but really, you'll probably find""" start="00:00:06.859" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""interesting things on both tracks""" start="00:00:08.438" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""no matter what your level of experience is,""" start="00:00:10.157" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""so don't feel limited to one or the other.""" start="00:00:12.696" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""Please note that the hyperdrive talk""" start="00:00:15.355" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""(titled &quot;hyperdrive.el: Peer-to-peer filesystem in Emacs&quot;)""" start="00:00:17.094" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""on the Development track in the afternoon""" start="00:00:21.173" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""is actually a general-audience talk,""" start="00:00:23.492" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""I just didn't have space elsewhere in the schedule.""" start="00:00:25.232" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""The best parts of EmacsConf are the conversations.""" start="00:00:28.092" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""The wiki has a page on how to watch and participate,""" start="00:00:31.331" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""and I'll give you a quick overview as well.""" start="00:00:34.090" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""You can watch both streams at live.emacsconf.org""" start="00:00:36.869" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""using free and open source software.""" start="00:00:40.348" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""Using a streaming media player like mpv""" start="00:00:43.227" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""seems to be the best way to watch in terms of performance""" start="00:00:45.646" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""but there are also web-based players""" start="00:00:49.045" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""just in case that's all you've got.""" start="00:00:50.644" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""The schedule shows the General track on top""" start="00:00:53.123" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""and the Development track on the bottom,""" start="00:00:55.122" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""so you can see what else is going on.""" start="00:00:56.801" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""As you're watching the talks,""" start="00:00:59.420" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""you can refer to the schedule in another window.""" start="00:01:00.619" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""Hover over the boxes to see the times and titles,""" start="00:01:03.518" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""and click on the boxes in the schedule""" start="00:01:06.537" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""to jump to the talk's page for more details.""" start="00:01:08.436" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""You can also get the schedule as an iCalendar file""" start="00:01:11.215" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""or as an Org file in different time zones.""" start="00:01:13.754" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""Many talks will be followed by""" start="00:01:16.013" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""live Q&A web conferences with the speaker,""" start="00:01:17.512" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""which will be done in BigBlueButton or BBB.""" start="00:01:20.171" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""These are indicated with a solid border on the schedule""" start="00:01:23.250" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""and by Q&A: BBB on the schedule page.""" start="00:01:26.249" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""You can join the web conference room""" start="00:01:29.408" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""by clicking on the BBB link""" start="00:01:31.107" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""on the schedule page or the talk's webpage.""" start="00:01:32.726" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""Then you can ask your questions yourself when the Q&A starts.""" start="00:01:35.665" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""To improve performance, please keep your webcam off""" start="00:01:38.584" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""and stay muted until it's your turn to talk.""" start="00:01:41.043" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""This year we're experimenting with automatically switching""" start="00:01:43.782" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""between talks and Q&A sessions,""" start="00:01:46.401" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""so the transitions on the stream might be a little sudden,""" start="00:01:48.760" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""but people in the BigBlueButton room""" start="00:01:51.959" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""can continue the conversation""" start="00:01:53.718" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""even after the talk moves off-stream.""" start="00:01:55.397" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""Other talks will have Q&A via Etherpad or IRC,""" start="00:01:58.236" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""depending on what the speakers prefer.""" start="00:02:01.595" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""This is indicated in the schedule with a dashed border""" start="00:02:03.914" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""and on the schedule page as well.""" start="00:02:06.933" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""Please ask your questions in the recommended places""" start="00:02:09.652" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""so that the speakers can easily see them.""" start="00:02:12.091" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""Some talks will have the Q&A after the event,""" start="00:02:14.610" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""so you can add your questions to their Etherpad.""" start="00:02:17.329" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""We'll e-mail the speakers afterwards""" start="00:02:20.188" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""and update the talk pages when they answer.""" start="00:02:21.920" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""The schedule pages and track pages have quick shortcuts""" start="00:02:25.186" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""so that you can find out more about talks, open the Etherpads,""" start="00:02:28.325" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""and join the Q&A sessions. The watch page has more tips""" start="00:02:31.804" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""on how to make the most of Q&A.""" start="00:02:35.363" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""If you can, please add notes and ask questions""" start="00:02:38.062" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""in the Etherpad for the talk. That makes it easier""" start="00:02:40.841" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""for everyone to share their notes,""" start="00:02:43.840" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""and speakers and hosts can read the questions from there.""" start="00:02:45.659" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""We'll copy the notes to the talk pages afterwards.""" start="00:02:48.598" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""We have one pad for each talk,""" start="00:02:52.617" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""so you can follow the links to get to the next one""" start="00:02:54.676" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""or go back to the schedule and get the link from there.""" start="00:02:56.795" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""If you have general feedback about""" start="00:02:59.954" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""the conference itself, please put it in""" start="00:03:01.593" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""pad.emacsconf.org/2023 , which is linked on each pad.""" start="00:03:03.752" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""You can also use this as a general community message board""" start="00:03:09.211" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""for things like Help Wanted.""" start="00:03:11.870" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""Internet Relay Chat or IRC can be another great way""" start="00:03:15.009" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""to be part of lots of conversations.""" start="00:03:18.260" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""You can use chat.emacsconf.org to join the IRC channels""" start="00:03:20.787" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""through your web browser. The tabs on the left can help you""" start="00:03:24.506" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""switch between the different channels.""" start="00:03:27.345" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""There's #emacsconf-gen for the General track""" start="00:03:29.904" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""and #emacsconf-dev for the Development track.""" start="00:03:32.960" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""If you need to reach us, you can join #emacsconf-org""" start="00:03:36.522" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""or e-mail emacsconf-org-private@gnu.org.""" start="00:03:40.241" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""You can use #emacsconf for hallway conversations.""" start="00:03:45.220" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""Of course, you can join any of these channels""" start="00:03:48.499" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""with your favourite IRC client.""" start="00:03:50.618" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""We're on the libera.chat network.""" start="00:03:52.760" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""Once again, we're going to be streaming with open captions""" start="00:03:56.736" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""for most of the talks this year, thanks to our speakers and""" start="00:03:59.375" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""captioning volunteers. The captioned talks are indicated""" start="00:04:02.454" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""on the schedule, and with any luck, we'll be posting""" start="00:04:05.813" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""transcripts on talk pages shortly after the talks start.""" start="00:04:08.532" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""If you need additional accommodations,""" start="00:04:12.031" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""please let us know in #emacsconf-org""" start="00:04:13.850" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""and we'll see if we can make things happen.""" start="00:04:16.610" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""If something goes down, we'll update status.emacsconf.org.""" start="00:04:18.509" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""If it doesn't look like we've noticed yet,""" start="00:04:22.748" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""please let us know in the #emacsconf-org IRC channel,""" start="00:04:24.607" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""where we will be quietly panicking.""" start="00:04:28.046" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""In all of these conversations, please keep in mind""" start="00:04:30.205" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""our guidelines for conduct. You can find them on the wiki,""" start="00:04:32.904" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""They basically boil down to: please be nice.""" start="00:04:35.903" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""If all goes well, the prerecorded talks and transcripts""" start="00:04:39.383" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""should be available from the talk pages""" start="00:04:41.822" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""shortly after they start playing,""" start="00:04:43.821" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""and we'll post the recordings of live talks""" start="00:04:45.560" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""and Q&A sessions within the next month or so.""" start="00:04:47.459" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""If you'd like to get an update, you can subscribe to""" start="00:04:50.578" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""the emacsconf-discuss mailing list.""" start="00:04:53.097" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""All right, let's get going.""" start="00:04:56.396" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""Leo Vivier is hosting the general track,""" start="00:04:57.955" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""and Amin Bandali hosting the development track.""" start="00:05:00.355" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""The other volunteers and I will run around mostly backstage,""" start="00:05:03.474" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""and you'll probably meet us in the closing remarks.""" start="00:05:06.193" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""That's also where we get to thank""" start="00:05:08.272" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""all the people and organizations""" start="00:05:09.911" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""who make EmacsConf even possible.""" start="00:05:11.550" video="mainVideo-sun-open" id="subtitle"]]
+[[!template text="""Thanks for coming to EmacsConf 2023.""" start="00:05:14.589" video="mainVideo-sun-open" id="subtitle"]]
+
+</div>Questions or comments? Please e-mail [emacsconf-org-private@gnu.org](mailto:emacsconf-org-private@gnu.org?subject=Comment%20for%20EmacsConf%202023%20sun-open%3A%20Sunday%20opening%20remarks)
<!-- End of emacsconf-publish-after-page -->
diff --git a/2023/info/sun-open-before.md b/2023/info/sun-open-before.md
index b5eaea73..70f38dc1 100644
--- a/2023/info/sun-open-before.md
+++ b/2023/info/sun-open-before.md
@@ -1,12 +1,12 @@
<!-- Automatically generated by emacsconf-publish-before-page -->
[[!toc ]]
-Format: 5-min talk
-Discuss on IRC: [#emacsconf](https://chat.emacsconf.org/?join=emacsconf)
-Status: Ready to stream
+Format: 6-min talk ; Q&A: ask questions via Etherpad/IRC; we'll e-mail the speaker and post answers on this wiki page after the conference
+Status: All done
+<div class="vid mainVideo"><video controls preload="none" id="mainVideo-sun-open"><source src="https://media.emacsconf.org/2023/emacsconf-2023-sun-open--sunday-opening-remarks--main.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2023/captions/emacsconf-2023-sun-open--sunday-opening-remarks--main.vtt" default />"""<p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video><div></div>Duration: 05:17 minutes<div class="files resources"><ul><li><a href="https://pad.emacsconf.org/2023-sun-open">Open Etherpad</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-sun-open--sunday-opening-remarks--intro.vtt">Download --intro.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-sun-open--sunday-opening-remarks--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-sun-open--sunday-opening-remarks--main.opus">Download --main.opus (2.5MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-sun-open--sunday-opening-remarks--main.vtt">Download --main.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-sun-open--sunday-opening-remarks--main.webm">Download --main.webm (12MB)</a></li><li><a href="https://toobnix.org/w/9zjMPEZz1nYokiY7rk4wYv">View on Toobnix</a></li><li><a href="https://www.youtube.com/watch?v=B3NKI5Mviq8">View on Youtube</a></li></ul></div></div>
# Description
<!-- End of emacsconf-publish-before-page --> \ No newline at end of file
diff --git a/2023/info/sun-open-nav.md b/2023/info/sun-open-nav.md
index f84ed342..35ea2f41 100644
--- a/2023/info/sun-open-nav.md
+++ b/2023/info/sun-open-nav.md
@@ -3,5 +3,5 @@
Back to the [[talks]]
Previous by track: <a href="/2023/talks/sat-close">Saturday closing remarks</a>
Next by track: <a href="/2023/talks/sun-close">Sunday closing remarks</a>
-Track: <span class="sched-track General">General</span>
+Track: <span class="sched-track General">General</span> - <strong><a href="https://emacsconf.org/2023/watch/gen">Watch</a></strong>
</div>
diff --git a/2023/info/table-after.md b/2023/info/table-after.md
index a6649256..7b45f22e 100644
--- a/2023/info/table-after.md
+++ b/2023/info/table-after.md
@@ -1,7 +1,233 @@
<!-- Automatically generated by emacsconf-publish-after-page -->
-Questions or comments? Please e-mail [dmolina@mailbox.org](mailto:dmolina@mailbox.org?subject=Comment%20for%20EmacsConf%202022%20table%3A%20Who%20needs%20Excel%3F%20Managing%20your%20students%20qualifications%20with%20org-table)
+<div class="transcript transcript-mainVideo"><a name="table-mainVideo-transcript"></a><h1>Transcript</h1>
+
+
+<div class="transcript-heading">[[!template new="1" text="""Introduction""" start="00:00:01.360" video="mainVideo-table" id="subtitle"]]</div>[[!template text="""Welcome everybody. My name is Daniel Molina""" start="00:00:01.360" video="mainVideo-table" id="subtitle"]]
+[[!template text="""and I'm going to give this talk""" start="00:00:03.080" video="mainVideo-table" id="subtitle"]]
+[[!template text="""&quot;Who needs Excel? Managing your students' qualifications""" start="00:00:05.061" video="mainVideo-table" id="subtitle"]]
+[[!template text="""with Org-table&quot;.""" start="00:00:08.064" video="mainVideo-table" id="subtitle"]]
+[[!template text="""I'm a professor. I work every day.""" start="00:00:08.960" video="mainVideo-table" id="subtitle"]]
+[[!template text="""I have to qualify my students.""" start="00:00:10.560" video="mainVideo-table" id="subtitle"]]
+[[!template text="""While most would consider normal in this situation,""" start="00:00:12.520" video="mainVideo-table" id="subtitle"]]
+[[!template text="""would be to use Excel or LibreOffice""" start="00:00:15.080" video="mainVideo-table" id="subtitle"]]
+[[!template text="""for doing that.""" start="00:00:17.720" video="mainVideo-table" id="subtitle"]]
+[[!template text="""However, I think that approaching it from Emacs""" start="00:00:18.600" video="mainVideo-table" id="subtitle"]]
+[[!template text="""has several interesting advantages.""" start="00:00:21.180" video="mainVideo-table" id="subtitle"]]
+[[!template text="""First, I would like to write the qualification""" start="00:00:24.480" video="mainVideo-table" id="subtitle"]]
+[[!template text="""next to the justification, next to the student error,""" start="00:00:27.660" video="mainVideo-table" id="subtitle"]]
+[[!template text="""and in the Excel format, it's not comfortable to do that.""" start="00:00:33.600" video="mainVideo-table" id="subtitle"]]
+[[!template text="""Actually, I always prefer to write in Emacs""" start="00:00:36.640" video="mainVideo-table" id="subtitle"]]
+[[!template text="""for many reasons, as many of you.""" start="00:00:38.840" video="mainVideo-table" id="subtitle"]]
+[[!template text="""Also, I love text format because I can compare versions""" start="00:00:42.720" video="mainVideo-table" id="subtitle"]]
+[[!template text="""using a control version system like Git and easily change.""" start="00:00:46.680" video="mainVideo-table" id="subtitle"]]
+[[!template text="""This is very useful for the revision period""" start="00:00:50.280" video="mainVideo-table" id="subtitle"]]
+[[!template text="""in which a student visits me""" start="00:00:52.760" video="mainVideo-table" id="subtitle"]]
+[[!template text="""and maybe I can change the qualification for any reason.""" start="00:00:55.480" video="mainVideo-table" id="subtitle"]]
+[[!template text="""I also can export the results directly to PDF""" start="00:01:01.040" video="mainVideo-table" id="subtitle"]]
+[[!template text="""to publish them in my online campus for the student.""" start="00:01:03.440" video="mainVideo-table" id="subtitle"]]
+[[!template text="""I have many tools for doing that.""" start="00:01:08.680" video="mainVideo-table" id="subtitle"]]
+[[!template text="""I already knew about Org-table formula.""" start="00:01:11.360" video="mainVideo-table" id="subtitle"]]
+[[!template text="""I thought it was very cool and useful""" start="00:01:13.200" video="mainVideo-table" id="subtitle"]]
+[[!template text="""to use Emacs for that,""" start="00:01:15.200" video="mainVideo-table" id="subtitle"]]
+[[!template text="""and I have actually found a package `orgtbl-aggregate`""" start="00:01:16.160" video="mainVideo-table" id="subtitle"]]
+[[!template text="""that seemed adequate for doing that.""" start="00:01:19.240" video="mainVideo-table" id="subtitle"]]
+[[!template text="""Unfortunately, I didn't see a lot of information""" start="00:01:22.860" video="mainVideo-table" id="subtitle"]]
+[[!template text="""about how to do that in a painless way.""" start="00:01:26.320" video="mainVideo-table" id="subtitle"]]
+[[!template text="""So, I have to learn, training and testing,""" start="00:01:29.160" video="mainVideo-table" id="subtitle"]]
+[[!template text="""and then prepare these tools to solve that problem""" start="00:01:31.760" video="mainVideo-table" id="subtitle"]]
+[[!template text="""and to help other teachers.""" start="00:01:35.000" video="mainVideo-table" id="subtitle"]]
+[[!template text="""Anyway, it could be used not only for teaching""" start="00:01:36.640" video="mainVideo-table" id="subtitle"]]
+[[!template text="""but for more contexts.""" start="00:01:39.960" video="mainVideo-table" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Demonstration""" start="00:01:41.960" video="mainVideo-table" id="subtitle"]]</div>[[!template text="""Well, let's start.""" start="00:01:41.960" video="mainVideo-table" id="subtitle"]]
+[[!template text="""First, I have two sections,""" start="00:01:44.800" video="mainVideo-table" id="subtitle"]]
+[[!template text="""the comments and the section of the table, or results.""" start="00:01:46.460" video="mainVideo-table" id="subtitle"]]
+[[!template text="""I have... The comment for each student""" start="00:01:53.400" video="mainVideo-table" id="subtitle"]]
+[[!template text="""is in a different headline.""" start="00:01:56.480" video="mainVideo-table" id="subtitle"]]
+[[!template text="""It's very useful to check with a note.""" start="00:01:57.560" video="mainVideo-table" id="subtitle"]]
+[[!template text="""I can go directly using your helm or ivy""" start="00:02:05.440" video="mainVideo-table" id="subtitle"]]
+[[!template text="""or consult to go directly to the section.""" start="00:02:10.160" video="mainVideo-table" id="subtitle"]]
+[[!template text="""So it's very nice.""" start="00:02:13.000" video="mainVideo-table" id="subtitle"]]
+[[!template text="""Then I put the comment, right, completely wrong,""" start="00:02:14.560" video="mainVideo-table" id="subtitle"]]
+[[!template text="""it answers other questions.""" start="00:02:22.880" video="mainVideo-table" id="subtitle"]]
+[[!template text="""I put other comments here that I could send to the student,""" start="00:02:30.600" video="mainVideo-table" id="subtitle"]]
+[[!template text="""you can imagine, and then""" start="00:02:35.840" video="mainVideo-table" id="subtitle"]]
+[[!template text="""I can put the qualification, the score for each student.""" start="00:02:37.481" video="mainVideo-table" id="subtitle"]]
+[[!template text="""The thing with that is, initially,""" start="00:02:40.160" video="mainVideo-table" id="subtitle"]]
+[[!template text="""when I started doing that, I put, I don't know,""" start="00:02:43.160" video="mainVideo-table" id="subtitle"]]
+[[!template text="""the exception and a qualification with that.""" start="00:02:46.220" video="mainVideo-table" id="subtitle"]]
+[[!template text="""Okay, that's one point, this a three,""" start="00:02:50.720" video="mainVideo-table" id="subtitle"]]
+[[!template text="""and use a column total with something like that.""" start="00:02:55.680" video="mainVideo-table" id="subtitle"]]
+[[!template text="""Okay, that's nice.""" start="00:03:06.680" video="mainVideo-table" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Range""" start="00:03:08.320" video="mainVideo-table" id="subtitle"]]</div>[[!template text="""But then, when I started getting more and more parts,""" start="00:03:08.320" video="mainVideo-table" id="subtitle"]]
+[[!template text="""I considered it more useful to use,""" start="00:03:11.640" video="mainVideo-table" id="subtitle"]]
+[[!template text="""to put for each part,""" start="00:03:17.082" video="mainVideo-table" id="subtitle"]]
+[[!template text="""which is the maximum qualification,""" start="00:03:20.700" video="mainVideo-table" id="subtitle"]]
+[[!template text="""on the range of the qualification.""" start="00:03:20.300" video="mainVideo-table" id="subtitle"]]
+[[!template text="""In that case, I'm going to put,""" start="00:03:22.920" video="mainVideo-table" id="subtitle"]]
+[[!template text="""the first one is two scores, the second three points,""" start="00:03:25.560" video="mainVideo-table" id="subtitle"]]
+[[!template text="""the third one is one point, and the last one, four points.""" start="00:03:28.680" video="mainVideo-table" id="subtitle"]]
+[[!template text="""And instead of putting that in that way,""" start="00:03:35.000" video="mainVideo-table" id="subtitle"]]
+[[!template text="""I like to put one is completely right,""" start="00:03:37.800" video="mainVideo-table" id="subtitle"]]
+[[!template text="""zero is completely wrong, or maybe some intermediate values for that.""" start="00:03:41.028" video="mainVideo-table" id="subtitle"]]
+[[!template text="""Of course, I have to change the qualification,""" start="00:03:47.320" video="mainVideo-table" id="subtitle"]]
+[[!template text="""the formula, so it's very simple.""" start="00:03:51.000" video="mainVideo-table" id="subtitle"]]
+[[!template text="""I only have to put,""" start="00:03:54.440" video="mainVideo-table" id="subtitle"]]
+[[!template text="""multiply the values of the second line with that.""" start="00:03:56.480" video="mainVideo-table" id="subtitle"]]
+[[!template text="""So, it's very useful for doing that.""" start="00:04:08.300" video="mainVideo-table" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""More qualifications""" start="00:04:11.900" video="mainVideo-table" id="subtitle"]]</div>[[!template text="""Okay, that's the first part, so I can put the comment,""" start="00:04:11.900" video="mainVideo-table" id="subtitle"]]
+[[!template text="""I can go to the section, I can create...""" start="00:04:16.640" video="mainVideo-table" id="subtitle"]]
+[[!template text="""I'm going to put more qualifications.""" start="00:04:19.960" video="mainVideo-table" id="subtitle"]]
+[[!template text="""Now I'm going to put the table.""" start="00:04:24.920" video="mainVideo-table" id="subtitle"]]
+[[!template text="""First I'm going to change, rename the column name,""" start="00:04:27.640" video="mainVideo-table" id="subtitle"]]
+[[!template text="""because it's easier when there is only one word.""" start="00:04:30.460" video="mainVideo-table" id="subtitle"]]
+[[!template text="""And it's very simple to use. You only have to put""" start="00:04:39.040" video="mainVideo-table" id="subtitle"]]
+[[!template text="""the name, aggregate, the name of the table,""" start="00:04:47.160" video="mainVideo-table" id="subtitle"]]
+[[!template text="""in that case group A,""" start="00:04:51.440" video="mainVideo-table" id="subtitle"]]
+[[!template text="""and in another string, the columns.""" start="00:04:54.660" video="mainVideo-table" id="subtitle"]]
+[[!template text="""For instance, name, surname, total.""" start="00:04:57.200" video="mainVideo-table" id="subtitle"]]
+[[!template text="""And you can see that you can get a lesson list""" start="00:05:03.800" video="mainVideo-table" id="subtitle"]]
+[[!template text="""with all the students,""" start="00:05:07.440" video="mainVideo-table" id="subtitle"]]
+[[!template text="""but only with the final score to publish them.""" start="00:05:09.120" video="mainVideo-table" id="subtitle"]]
+[[!template text="""Okay?""" start="00:05:16.760" video="mainVideo-table" id="subtitle"]]
+[[!template text="""Even you can update the name of the column,""" start="00:05:17.680" video="mainVideo-table" id="subtitle"]]
+[[!template text="""not in the original table,""" start="00:05:20.680" video="mainVideo-table" id="subtitle"]]
+[[!template text="""but in the lesson table using that format.""" start="00:05:21.801" video="mainVideo-table" id="subtitle"]]
+[[!template text="""Okay?""" start="00:05:29.560" video="mainVideo-table" id="subtitle"]]
+[[!template text="""That is a good option.""" start="00:05:32.100" video="mainVideo-table" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Subsets""" start="00:05:34.240" video="mainVideo-table" id="subtitle"]]</div>[[!template text="""Now we are going to see how can we use that""" start="00:05:34.240" video="mainVideo-table" id="subtitle"]]
+[[!template text="""to make a subset of the students.""" start="00:05:38.500" video="mainVideo-table" id="subtitle"]]
+[[!template text="""For instance, imagine, this is me,""" start="00:05:44.360" video="mainVideo-table" id="subtitle"]]
+[[!template text="""I'm going to put the bad, I change, now I can update,""" start="00:05:47.840" video="mainVideo-table" id="subtitle"]]
+[[!template text="""you can see this, but also I'm going to put a list""" start="00:05:54.800" video="mainVideo-table" id="subtitle"]]
+[[!template text="""with the students that have failed the exam.""" start="00:06:02.760" video="mainVideo-table" id="subtitle"]]
+[[!template text="""It's simple, because this package has the option `:cond`.""" start="00:06:10.961" video="mainVideo-table" id="subtitle"]]
+[[!template text="""I'm going to put first to see it better,""" start="00:06:21.260" video="mainVideo-table" id="subtitle"]]
+[[!template text="""I'm going to put a condition""" start="00:06:26.200" video="mainVideo-table" id="subtitle"]]
+[[!template text="""in which we aggregate less than a half, 5,""" start="00:06:28.600" video="mainVideo-table" id="subtitle"]]
+[[!template text="""and I have to use a `string-to-number` total.""" start="00:06:37.520" video="mainVideo-table" id="subtitle"]]
+[[!template text="""In that way, I can see that this is the student""" start="00:06:44.180" video="mainVideo-table" id="subtitle"]]
+[[!template text="""that has failed the exam,""" start="00:06:47.260" video="mainVideo-table" id="subtitle"]]
+[[!template text="""I could use that to make another table,""" start="00:06:48.840" video="mainVideo-table" id="subtitle"]]
+[[!template text="""this is the people that passed the exam.""" start="00:06:54.080" video="mainVideo-table" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Sorting""" start="00:07:08.300" video="mainVideo-table" id="subtitle"]]</div>[[!template text="""Another interesting feature is that""" start="00:07:08.300" video="mainVideo-table" id="subtitle"]]
+[[!template text="""I can... the lesson table can be sorted automatically.""" start="00:07:10.981" video="mainVideo-table" id="subtitle"]]
+[[!template text="""It's simple. You only have to put this symbol (`^`),""" start="00:07:15.621" video="mainVideo-table" id="subtitle"]]
+[[!template text="""and you can put next to the column you want""" start="00:07:20.101" video="mainVideo-table" id="subtitle"]]
+[[!template text="""to use for the sort, and then you can put""" start="00:07:23.361" video="mainVideo-table" id="subtitle"]]
+[[!template text="""`a` if you want to sort alphabetically,""" start="00:07:27.000" video="mainVideo-table" id="subtitle"]]
+[[!template text="""in uppercase if you want to reverse the sort,""" start="00:07:30.680" video="mainVideo-table" id="subtitle"]]
+[[!template text="""and `n` if you want to sort numerically.""" start="00:07:33.880" video="mainVideo-table" id="subtitle"]]
+[[!template text="""For instance, I can put that""" start="00:07:38.920" video="mainVideo-table" id="subtitle"]]
+[[!template text="""from the lesser score to the best score,""" start="00:07:40.760" video="mainVideo-table" id="subtitle"]]
+[[!template text="""or here from the best score to the lesser score.""" start="00:07:43.960" video="mainVideo-table" id="subtitle"]]
+[[!template text="""And this sort is completely independent""" start="00:07:46.640" video="mainVideo-table" id="subtitle"]]
+[[!template text="""to the sort of the original table.""" start="00:07:48.961" video="mainVideo-table" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""New table""" start="00:07:51.641" video="mainVideo-table" id="subtitle"]]</div>[[!template text="""Now I'm going to do another different thing,""" start="00:07:51.641" video="mainVideo-table" id="subtitle"]]
+[[!template text="""we are going to put a new table,""" start="00:07:54.521" video="mainVideo-table" id="subtitle"]]
+[[!template text="""I'm going to put a new table""" start="00:08:02.800" video="mainVideo-table" id="subtitle"]]
+[[!template text="""in which I'm going to put""" start="00:08:07.560" video="mainVideo-table" id="subtitle"]]
+[[!template text="""the number of passed students, failed students""" start="00:08:09.640" video="mainVideo-table" id="subtitle"]]
+[[!template text="""and the ratio of students. It's simple.""" start="00:08:14.320" video="mainVideo-table" id="subtitle"]]
+[[!template text="""I'm going to put the pass, in that case, as column,""" start="00:08:16.520" video="mainVideo-table" id="subtitle"]]
+[[!template text="""I can put the count, of course, I can put the count,""" start="00:08:26.560" video="mainVideo-table" id="subtitle"]]
+[[!template text="""the number of students""" start="00:08:32.920" video="mainVideo-table" id="subtitle"]]
+[[!template text="""that have passed, so I'm going to put in that way, ok?""" start="00:08:35.800" video="mainVideo-table" id="subtitle"]]
+[[!template text="""I'm going to put pass, count, failed, ratio.""" start="00:08:42.080" video="mainVideo-table" id="subtitle"]]
+[[!template text="""You can see, ok?""" start="00:08:58.480" video="mainVideo-table" id="subtitle"]]
+[[!template text="""But this only the count,""" start="00:08:59.740" video="mainVideo-table" id="subtitle"]]
+[[!template text="""you are going to put the number wrong.""" start="00:09:01.860" video="mainVideo-table" id="subtitle"]]
+[[!template text="""So, it's true, but you can actually put formula here.""" start="00:09:04.520" video="mainVideo-table" id="subtitle"]]
+[[!template text="""For instance, you can say,""" start="00:09:08.360" video="mainVideo-table" id="subtitle"]]
+[[!template text="""I know that I have 3 students,""" start="00:09:10.080" video="mainVideo-table" id="subtitle"]]
+[[!template text="""so the number of failed is 3 minus the passed student.""" start="00:09:12.400" video="mainVideo-table" id="subtitle"]]
+[[!template text="""And also, I can put the formula, is the people,""" start="00:09:18.800" video="mainVideo-table" id="subtitle"]]
+[[!template text="""the students that passed,""" start="00:09:24.960" video="mainVideo-table" id="subtitle"]]
+[[!template text="""divide into the number total of students, ok?""" start="00:09:27.720" video="mainVideo-table" id="subtitle"]]
+[[!template text="""Let's go to put that in that way,""" start="00:09:36.080" video="mainVideo-table" id="subtitle"]]
+[[!template text="""is the people that passed, it is better in that way,""" start="00:09:41.380" video="mainVideo-table" id="subtitle"]]
+[[!template text="""and also I can put directly the number of,""" start="00:09:44.400" video="mainVideo-table" id="subtitle"]]
+[[!template text="""the ratio of students.""" start="00:09:48.360" video="mainVideo-table" id="subtitle"]]
+[[!template text="""So, in that way, I can have a table""" start="00:09:50.920" video="mainVideo-table" id="subtitle"]]
+[[!template text="""with the students that passed,""" start="00:09:55.740" video="mainVideo-table" id="subtitle"]]
+[[!template text="""the students that failed""" start="00:09:57.520" video="mainVideo-table" id="subtitle"]]
+[[!template text="""and the ratio of people that passed.""" start="00:09:58.560" video="mainVideo-table" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Statistics""" start="00:10:01.280" video="mainVideo-table" id="subtitle"]]</div>[[!template text="""Sometimes this type of qualification will be useful for me,""" start="00:10:01.280" video="mainVideo-table" id="subtitle"]]
+[[!template text="""to see how much has been the sound,""" start="00:10:04.820" video="mainVideo-table" id="subtitle"]]
+[[!template text="""how much good has been the exercise.""" start="00:10:08.080" video="mainVideo-table" id="subtitle"]]
+[[!template text="""Now, I'm going to put a new table.""" start="00:10:12.240" video="mainVideo-table" id="subtitle"]]
+[[!template text="""This new table is going to go some statistics,""" start="00:10:14.880" video="mainVideo-table" id="subtitle"]]
+[[!template text="""`statistics_score`, `begin: aggregate :table &quot;final&quot;`.""" start="00:10:22.422" video="mainVideo-table" id="subtitle"]]
+[[!template text="""In this case, I'm going to use not the original table,""" start="00:10:32.380" video="mainVideo-table" id="subtitle"]]
+[[!template text="""but a final, I'm going to put `final_group`,""" start="00:10:43.920" video="mainVideo-table" id="subtitle"]]
+[[!template text="""`final_p1`, `final_p2`, ok?""" start="00:10:54.020" video="mainVideo-table" id="subtitle"]]
+[[!template text="""And as `:cols`, I'm going to put directly""" start="00:11:01.400" video="mainVideo-table" id="subtitle"]]
+[[!template text="""how many results I have, I put number,""" start="00:11:06.120" video="mainVideo-table" id="subtitle"]]
+[[!template text="""I'm going to put also the mean.""" start="00:11:13.580" video="mainVideo-table" id="subtitle"]]
+[[!template text="""You can see that mean total is not working""" start="00:11:19.200" video="mainVideo-table" id="subtitle"]]
+[[!template text="""because I'm using this table and I renamed,""" start="00:11:21.401" video="mainVideo-table" id="subtitle"]]
+[[!template text="""the column name was renamed,""" start="00:11:24.520" video="mainVideo-table" id="subtitle"]]
+[[!template text="""so it's `mean(Score)`, mean,""" start="00:11:26.080" video="mainVideo-table" id="subtitle"]]
+[[!template text="""and then the score. You can obtain `stdiv` -- `sdev`,""" start="00:11:36.680" video="mainVideo-table" id="subtitle"]]
+[[!template text="""sorry, there was an error about that,""" start="00:12:05.920" video="mainVideo-table" id="subtitle"]]
+[[!template text="""and two decimal,""" start="00:12:08.960" video="mainVideo-table" id="subtitle"]]
+[[!template text="""and that is another interesting score.""" start="00:12:12.640" video="mainVideo-table" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Combining""" start="00:12:17.800" video="mainVideo-table" id="subtitle"]]</div>[[!template text="""Now, I'm going to finish showing how we can use.""" start="00:12:17.800" video="mainVideo-table" id="subtitle"]]
+[[!template text="""To finish it, we are going to see""" start="00:12:23.240" video="mainVideo-table" id="subtitle"]]
+[[!template text="""how we can combine several tables""" start="00:12:25.840" video="mainVideo-table" id="subtitle"]]
+[[!template text="""or even an aggregated table in a new table.""" start="00:12:28.300" video="mainVideo-table" id="subtitle"]]
+[[!template text="""For instance, you can have a table for the practice 1,""" start="00:12:32.480" video="mainVideo-table" id="subtitle"]]
+[[!template text="""you can have a table for the practice 2,""" start="00:12:36.260" video="mainVideo-table" id="subtitle"]]
+[[!template text="""so I'm going to do that.""" start="00:12:38.200" video="mainVideo-table" id="subtitle"]]
+[[!template text="""I'm going to move this table. You can copy or remove,""" start="00:12:40.360" video="mainVideo-table" id="subtitle"]]
+[[!template text="""doesn't matter the order,""" start="00:12:48.181" video="mainVideo-table" id="subtitle"]]
+[[!template text="""I'm going to put this to identify the result of practice 2,""" start="00:12:49.760" video="mainVideo-table" id="subtitle"]]
+[[!template text="""Org create an ID (`org-id-get-create`),""" start="00:12:59.520" video="mainVideo-table" id="subtitle"]]
+[[!template text="""then we have a previous result,""" start="00:13:03.322" video="mainVideo-table" id="subtitle"]]
+[[!template text="""and I have a final table.""" start="00:13:07.480" video="mainVideo-table" id="subtitle"]]
+[[!template text="""The final table could be complicated,""" start="00:13:10.200" video="mainVideo-table" id="subtitle"]]
+[[!template text="""but it's not so much complicated, it's only that,""" start="00:13:11.840" video="mainVideo-table" id="subtitle"]]
+[[!template text="""I'm going to put something that the formula wants.""" start="00:13:17.440" video="mainVideo-table" id="subtitle"]]
+[[!template text="""The formula is to make""" start="00:13:21.960" video="mainVideo-table" id="subtitle"]]
+[[!template text="""an `org-lookup-first` of the second name,""" start="00:13:26.589" video="mainVideo-table" id="subtitle"]]
+[[!template text="""considering that it's unique,""" start="00:13:34.401" video="mainVideo-table" id="subtitle"]]
+[[!template text="""`remote` of the surname,""" start="00:13:41.541" video="mainVideo-table" id="subtitle"]]
+[[!template text="""and let's say another `remote` of the `$3` element,""" start="00:13:53.440" video="mainVideo-table" id="subtitle"]]
+[[!template text="""ok, that's an error because I don't put yet the ID,""" start="00:14:05.560" video="mainVideo-table" id="subtitle"]]
+[[!template text="""so I'm going to copy -- mark and copy --""" start="00:14:15.120" video="mainVideo-table" id="subtitle"]]
+[[!template text="""and paste the unique ID generated,""" start="00:14:19.760" video="mainVideo-table" id="subtitle"]]
+[[!template text="""I'm going to put that... I think there is missing one.""" start="00:14:28.520" video="mainVideo-table" id="subtitle"]]
+[[!template text="""Finally. Okay, that's right.""" start="00:14:38.520" video="mainVideo-table" id="subtitle"]]
+[[!template text="""So imagine that I change something here, for instance,""" start="00:14:43.400" video="mainVideo-table" id="subtitle"]]
+[[!template text="""I put... I change that,""" start="00:14:49.580" video="mainVideo-table" id="subtitle"]]
+[[!template text="""actually, this is changed also, and this is changed.""" start="00:14:56.701" video="mainVideo-table" id="subtitle"]]
+[[!template text="""This is a good way to divide the classification""" start="00:15:02.200" video="mainVideo-table" id="subtitle"]]
+[[!template text="""in several files, one for the practice 1,""" start="00:15:08.600" video="mainVideo-table" id="subtitle"]]
+[[!template text="""one for the practice 2, and one final practice""" start="00:15:10.201" video="mainVideo-table" id="subtitle"]]
+[[!template text="""that I can finally export in a final table.""" start="00:15:15.040" video="mainVideo-table" id="subtitle"]]
+[[!template text="""Of course you can make it a lot more pretty,""" start="00:15:27.640" video="mainVideo-table" id="subtitle"]]
+[[!template text="""but this is all I want to show you.""" start="00:15:31.120" video="mainVideo-table" id="subtitle"]]
+[[!template text="""I hope with this talk""" start="00:15:33.360" video="mainVideo-table" id="subtitle"]]
+[[!template text="""you have learned a lot more about Org formula,""" start="00:15:34.800" video="mainVideo-table" id="subtitle"]]
+[[!template text="""[orgtbl-aggregate] package,""" start="00:15:37.680" video="mainVideo-table" id="subtitle"]]
+[[!template text="""and how you can use all this techniques""" start="00:15:39.689" video="mainVideo-table" id="subtitle"]]
+[[!template text="""to improve your qualification of a student,""" start="00:15:42.280" video="mainVideo-table" id="subtitle"]]
+[[!template text="""or for whatever you want.""" start="00:15:45.600" video="mainVideo-table" id="subtitle"]]
+
+</div>
+
+Captioner: danielmolina
+
+Questions or comments? Please e-mail [dmolina@mailbox.org](mailto:dmolina@mailbox.org?subject=Comment%20for%20EmacsConf%202023%20table%3A%20Who%20needs%20Excel%3F%20Managing%20your%20students%20qualifications%20with%20org-table)
<!-- End of emacsconf-publish-after-page -->
diff --git a/2023/info/table-before.md b/2023/info/table-before.md
index f1f6f49a..3a26bf63 100644
--- a/2023/info/table-before.md
+++ b/2023/info/table-before.md
@@ -1,12 +1,12 @@
<!-- Automatically generated by emacsconf-publish-before-page -->
[[!toc ]]
-Format: 10-min talk followed by live web conference Q&A
-Discuss on IRC: [#emacsconf](https://chat.emacsconf.org/?join=emacsconf)
-Status: Waiting for video from speaker
+Format: 16-min talk ; Q&A: ask questions via Etherpad/IRC; we'll e-mail the speaker and post answers on this wiki page after the conference
+Status: All done
+<div class="vid mainVideo"><video controls preload="none" id="mainVideo-table"><source src="https://media.emacsconf.org/2023/emacsconf-2023-table--who-needs-excel-managing-your-students-qualifications-with-orgtable--daniel-molina--main.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2023/captions/emacsconf-2023-table--who-needs-excel-managing-your-students-qualifications-with-orgtable--daniel-molina--main.vtt" default />"""<p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video><div></div>Duration: 15:51 minutes<div class="files resources"><ul><li><a href="https://pad.emacsconf.org/2023-table">Open Etherpad</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-table--who-needs-excel-managing-your-students-qualifications-with-orgtable--daniel-molina--alternative.mp4">Download --alternative.mp4 (126MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-table--who-needs-excel-managing-your-students-qualifications-with-orgtable--daniel-molina--alternative.webm">Download --alternative.webm (45MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-table--who-needs-excel-managing-your-students-qualifications-with-orgtable--daniel-molina--intro.vtt">Download --intro.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-table--who-needs-excel-managing-your-students-qualifications-with-orgtable--daniel-molina--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-table--who-needs-excel-managing-your-students-qualifications-with-orgtable--daniel-molina--main.opus">Download --main.opus (11MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-table--who-needs-excel-managing-your-students-qualifications-with-orgtable--daniel-molina--main.vtt">Download --main.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-table--who-needs-excel-managing-your-students-qualifications-with-orgtable--daniel-molina--main.webm">Download --main.webm (45MB)</a></li><li><a href="https://toobnix.org/w/p8K8mtayv2HYtw1gK3zUwR">View on Toobnix</a></li><li><a href="https://www.youtube.com/watch?v=UzDqOrFGWbw">View on Youtube</a></li></ul></div></div>
# Description
<!-- End of emacsconf-publish-before-page --> \ No newline at end of file
diff --git a/2023/info/table-nav.md b/2023/info/table-nav.md
index 97890831..f825c777 100644
--- a/2023/info/table-nav.md
+++ b/2023/info/table-nav.md
@@ -1,7 +1,7 @@
<div class="talk-nav">
Back to the [[talks]]
-Previous by track: <a href="/2023/talks/uni">Authoring and presenting university courses with Emacs and a full libre software stack</a>
-Next by track: <a href="/2023/talks/taming">Taming things with Org Mode</a>
-Track: <span class="sched-track General">General</span>
+Previous by track: <a href="/2023/talks/teaching">Teaching computer and data science with literate programming tools</a>
+Next by track: <a href="/2023/talks/one">one.el: the static site generator for Emacs Lisp Programmers</a>
+Track: <span class="sched-track General">General</span> - <strong><a href="https://emacsconf.org/2023/watch/gen">Watch</a></strong>
</div>
diff --git a/2023/info/taming-before.md b/2023/info/taming-before.md
index a44ed84a..364f0fdc 100644
--- a/2023/info/taming-before.md
+++ b/2023/info/taming-before.md
@@ -1,8 +1,14 @@
<!-- Automatically generated by emacsconf-publish-before-page -->
+
+The following image shows where the talk is in the schedule for Sat 2023-12-02. Solid lines show talks with Q&A via BigBlueButton. Dashed lines show talks with Q&A via IRC or Etherpad.<div class="schedule-in-context schedule-svg-container" data-slug="taming">
+<svg width="800" height="150" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> <title> Schedule for Saturday</title> <rect width="800" height="150" x="0" y="0" fill="white"></rect> <text font-size="10" fill="black" y="12" x="3"> Saturday</text> <a href="/2023/talks/sat-open" title="Saturday opening remarks" data-slug="sat-open"> <title> 9:00- 9:10 Saturday opening remarks</title> <rect x="0" y="15" opacity="0.5" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect> <g transform="translate(13,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> sat-open</text></g></a> <a href="/2023/talks/adventure" title="An Org-Mode based text adventure game for learning the basics of Emacs, inside Emacs, written in Emacs Lisp" data-slug="adventure"> <title> 9:10- 9:20 An Org-Mode based text adventure game for learning the basics of Emacs, inside Emacs, written in Emacs Lisp</title> <rect x="15" y="15" opacity="0.5" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect> <g transform="translate(28,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> adventure</text></g></a> <a href="/2023/talks/uni" title="Authoring and presenting university courses with Emacs and a full libre software stack" data-slug="uni"> <title> 9:30- 9:50 Authoring and presenting university courses with Emacs and a full libre software stack</title> <rect x="47" y="15" opacity="0.5" width="31" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect> <g transform="translate(76,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> uni</text></g></a> <a href="/2023/talks/teaching" title="Teaching computer and data science with literate programming tools" data-slug="teaching"> <title> 10:05-10:25 Teaching computer and data science with literate programming tools</title> <rect x="101" y="15" opacity="0.5" width="31" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect> <g transform="translate(130,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> teaching</text></g></a> <a href="/2023/talks/table" title="Who needs Excel? Managing your students qualifications with org-table" data-slug="table"> <title> 10:40-10:50 Who needs Excel? Managing your students qualifications with org-table</title> <rect x="156" y="15" opacity="0.5" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect> <g transform="translate(169,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> table</text></g></a> <a href="/2023/talks/taming" title="Taming things with Org Mode" data-slug="taming"> <title> 11:05-11:15 Taming things with Org Mode</title> <rect stroke-width="3" x="196" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect> <g transform="translate(209,73)"> <text font-weight="bold" fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> taming</text></g></a> <a href="/2023/talks/one" title="one.el: the static site generator for Emacs Lisp Programmers" data-slug="one"> <title> 11:30-11:50 one.el: the static site generator for Emacs Lisp Programmers</title> <rect x="235" y="15" opacity="0.5" width="31" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect> <g transform="translate(264,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> one</text></g></a> <a href="/2023/talks/writing" title="Emacs turbo-charges my writing" data-slug="writing"> <title> 1:00- 1:10 Emacs turbo-charges my writing</title> <rect x="376" y="15" opacity="0.5" width="15" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect> <g transform="translate(389,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> writing</text></g></a> <a href="/2023/talks/nabokov" title="Why Nabokov would use Org-Mode if he were writing today" data-slug="nabokov"> <title> 1:25- 1:35 Why Nabokov would use Org-Mode if he were writing today</title> <rect x="415" y="15" opacity="0.5" width="15" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect> <g transform="translate(428,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> nabokov</text></g></a> <a href="/2023/talks/collab" title="Collaborative data processing and documenting using org-babel" data-slug="collab"> <title> 1:50- 2:10 Collaborative data processing and documenting using org-babel</title> <rect x="454" y="15" opacity="0.5" width="31" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect> <g transform="translate(483,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> collab</text></g></a> <a href="/2023/talks/solo" title="How I play TTRPGs in Emacs" data-slug="solo"> <title> 2:20- 2:40 How I play TTRPGs in Emacs</title> <rect x="501" y="15" opacity="0.5" width="31" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect> <g transform="translate(530,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> solo</text></g></a> <a href="/2023/talks/ref" title="Org-Mode workflow: informal reference tracking" data-slug="ref"> <title> 2:55- 3:15 Org-Mode workflow: informal reference tracking</title> <rect x="556" y="15" opacity="0.5" width="31" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect> <g transform="translate(585,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> ref</text></g></a> <a href="/2023/talks/unentangling" title="(Un)entangling projects and repos" data-slug="unentangling"> <title> 3:25- 3:35 (Un)entangling projects and repos</title> <rect x="603" y="15" opacity="0.5" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect> <g transform="translate(616,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> unentangling</text></g></a> <a href="/2023/talks/devel" title="Emacs development updates" data-slug="devel"> <title> 3:45- 3:55 Emacs development updates</title> <rect x="635" y="15" opacity="0.5" width="15" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect> <g transform="translate(648,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> devel</text></g></a> <a href="/2023/talks/core" title="Emacs core development: how it works" data-slug="core"> <title> 4:10- 4:50 Emacs core development: how it works</title> <rect x="674" y="15" opacity="0.5" width="62" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect> <g transform="translate(734,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> core</text></g></a> <a href="/2023/talks/sat-close" title="Saturday closing remarks" data-slug="sat-close"> <title> 5:05- 5:15 Saturday closing remarks</title> <rect x="760" y="15" opacity="0.5" width="15" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect> <g transform="translate(773,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> sat-close</text></g></a> <a href="/2023/talks/matplotllm" title="MatplotLLM, iterative natural language data visualization in org-babel" data-slug="matplotllm"> <title> 10:00-10:10 MatplotLLM, iterative natural language data visualization in org-babel</title> <rect x="94" y="75" opacity="0.5" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect> <g transform="translate(107,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> matplotllm</text></g></a> <a href="/2023/talks/voice" title="Enhancing productivity with voice computing" data-slug="voice"> <title> 10:20-10:40 Enhancing productivity with voice computing</title> <rect x="125" y="75" opacity="0.5" width="31" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect> <g transform="translate(154,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> voice</text></g></a> <a href="/2023/talks/llm" title="LLM clients in Emacs, functionality and standardization" data-slug="llm"> <title> 10:55-11:15 LLM clients in Emacs, functionality and standardization</title> <rect x="180" y="75" opacity="0.5" width="31" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect> <g transform="translate(209,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> llm</text></g></a> <a href="/2023/talks/overlay" title="Improving compiler diagnostics with overlays" data-slug="overlay"> <title> 1:00- 1:20 Improving compiler diagnostics with overlays</title> <rect x="376" y="75" opacity="0.5" width="31" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect> <g transform="translate(405,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> overlay</text></g></a> <a href="/2023/talks/eval" title="Editor Integrated REPL Driven Development for all languages" data-slug="eval"> <title> 1:35- 1:45 Editor Integrated REPL Driven Development for all languages</title> <rect x="431" y="75" opacity="0.5" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect> <g transform="translate(444,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> eval</text></g></a> <a href="/2023/talks/repl" title="REPLs in strange places: Lua, LaTeX, LPeg, LPegRex, TikZ" data-slug="repl"> <title> 2:00- 2:40 REPLs in strange places: Lua, LaTeX, LPeg, LPegRex, TikZ</title> <rect x="470" y="75" opacity="0.5" width="62" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect> <g transform="translate(530,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> repl</text></g></a> <a href="/2023/talks/doc" title="Literate Documentation with Emacs and Org Mode" data-slug="doc"> <title> 2:50- 3:30 Literate Documentation with Emacs and Org Mode</title> <rect x="549" y="75" opacity="0.5" width="62" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect> <g transform="translate(609,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> doc</text></g></a> <a href="/2023/talks/emacsconf" title="EmacsConf.org: How we use Org Mode and TRAMP to organize and run a multi-track conference" data-slug="emacsconf"> <title> 3:45- 4:05 EmacsConf.org: How we use Org Mode and TRAMP to organize and run a multi-track conference</title> <rect x="635" y="75" opacity="0.5" width="31" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect> <g transform="translate(664,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> emacsconf</text></g></a> <g transform="translate(0,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="133" font-size="10" text-anchor="left"> 9 AM</text></g> <g transform="translate(94,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="133" font-size="10" text-anchor="left"> 10 AM</text></g> <g transform="translate(188,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="133" font-size="10" text-anchor="left"> 11 AM</text></g> <g transform="translate(282,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="133" font-size="10" text-anchor="left"> 12 PM</text></g> <g transform="translate(376,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="133" font-size="10" text-anchor="left"> 1 PM</text></g> <g transform="translate(470,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="133" font-size="10" text-anchor="left"> 2 PM</text></g> <g transform="translate(564,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="133" font-size="10" text-anchor="left"> 3 PM</text></g> <g transform="translate(658,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="133" font-size="10" text-anchor="left"> 4 PM</text></g> <g transform="translate(752,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="133" font-size="10" text-anchor="left"> 5 PM</text></g></svg>
+</div>
+
[[!toc ]]
-Format: 10-min talk followed by live, pad, IRC, or social media - just tag me, or #EmacsConf, or something like that. Q&A
+Format: 10-min talk; Q&A: BigBlueButton conference room <https://media.emacsconf.org/2023/current/bbb-taming.html>
Discuss on IRC: [#emacsconf](https://chat.emacsconf.org/?join=emacsconf)
-Status: Waiting for video from speaker
+Status: Sorry, this talk has been cancelled
+
diff --git a/2023/info/taming-nav.md b/2023/info/taming-nav.md
index 968a82b3..4fa4474d 100644
--- a/2023/info/taming-nav.md
+++ b/2023/info/taming-nav.md
@@ -1,7 +1,7 @@
<div class="talk-nav">
Back to the [[talks]]
-Previous by track: <a href="/2023/talks/table">Who needs Excel? Managing your students qualifications with org-table</a>
-Next by track: <a href="/2023/talks/one">one.el: the static site generator for Emacs Lisp Programmers</a>
+Previous by time: <a href="/2023/talks/llm">LLM clients in Emacs, functionality and standardization</a>
+Next by time: <a href="/2023/talks/one">one.el: the static site generator for Emacs Lisp Programmers</a>
Track: <span class="sched-track General">General</span>
</div>
diff --git a/2023/info/teaching-after.md b/2023/info/teaching-after.md
new file mode 100644
index 00000000..1e1bf481
--- /dev/null
+++ b/2023/info/teaching-after.md
@@ -0,0 +1,1304 @@
+<!-- Automatically generated by emacsconf-publish-after-page -->
+
+
+<div class="transcript transcript-mainVideo"><a name="teaching-mainVideo-transcript"></a><h1>Transcript</h1>
+
+
+<div class="transcript-heading">[[!template new="1" text="""Introduction""" start="00:00:00.000" video="mainVideo-teaching" id="subtitle"]]</div>[[!template text="""Welcome to my talk, which is pre-recorded,""" start="00:00:00.000" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""so please don't blame me if I come across""" start="00:00:04.520" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""as wooden and humorless.""" start="00:00:06.960" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""It's hard to work up any emotion""" start="00:00:08.600" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""when looking at a mechanical eye.""" start="00:00:11.320" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""Of course, I am German,""" start="00:00:13.880" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""so I am pretty wooden and humorless to begin with.""" start="00:00:15.040" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""What else do you need to know about me?""" start="00:00:18.640" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""Not much, I suppose, except that I have been""" start="00:00:20.440" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""an Emacs user on and off""" start="00:00:23.320" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""since my days as a graduate student""" start="00:00:25.200" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""in theoretical physics in the 1990s.""" start="00:00:26.920" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""I picked Emacs and Org Mode up again""" start="00:00:30.080" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""for teaching during COVID""" start="00:00:34.680" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""when I had a lot of time on my hands,""" start="00:00:36.240" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""and when the teaching and learning needs shifted""" start="00:00:38.040" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""because of the exclusive online teaching.""" start="00:00:40.360" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""Now I'm going to take my picture away.""" start="00:00:44.240" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""You had a good look at me.""" start="00:00:48.200" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""I think that's just going to be in the way.""" start="00:00:49.560" video="mainVideo-teaching" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""My interest in this topic""" start="00:00:54.160" video="mainVideo-teaching" id="subtitle"]]</div>[[!template text="""So my interest in this topic began with""" start="00:00:54.160" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""an Emacs talk given by Daniel German""" start="00:00:57.280" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""from the University of Victoria in Canada in 2021.""" start="00:00:59.280" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""Daniel demonstrated in detail""" start="00:01:04.120" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""how he uses Emacs and Org Mode""" start="00:01:06.440" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""to prepare and deliver lectures""" start="00:01:09.200" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""on different programming languages.""" start="00:01:12.120" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""This gave me the idea to try the same thing""" start="00:01:14.200" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""with my students with an important alteration.""" start="00:01:16.320" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""I wanted to force them to use Emacs and Org Mode""" start="00:01:20.000" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""just as most computer science instructors""" start="00:01:23.560" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""force their students to use whatever they are using""" start="00:01:25.960" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""when they develop their material.""" start="00:01:29.080" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""I carried my plan out and mandated Emacs and Org Mode""" start="00:01:32.360" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""as the only programming platform and IDE""" start="00:01:36.840" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""for three consecutive terms in all my courses,""" start="00:01:40.360" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""nine courses in total.""" start="00:01:43.640" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""I will give more details later.""" start="00:01:45.920" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""I published my results as a case study""" start="00:01:47.800" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""in September of this year,""" start="00:01:49.920" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""and it contains the missing bits""" start="00:01:52.280" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""that I will not talk about today for lack of time,""" start="00:01:53.640" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""especially regarding the methodology,""" start="00:01:56.160" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""the assessment, et cetera.""" start="00:01:58.640" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""Please also use the Q&A to inquire about such details""" start="00:02:00.120" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""if they interest you.""" start="00:02:05.000" video="mainVideo-teaching" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""What is data science?""" start="00:02:08.040" video="mainVideo-teaching" id="subtitle"]]</div>[[!template text="""I probably don't have to explain what computer science is,""" start="00:02:08.040" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""but not everyone may know what data science does.""" start="00:02:12.800" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""I teach courses in both disciplines""" start="00:02:16.360" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""and the boundaries between them are blurred,""" start="00:02:18.240" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""so much of what I'm saying about data science""" start="00:02:20.560" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""will also be relevant for computer science.""" start="00:02:22.640" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""Conceptually, data science is an interdisciplinary affair""" start="00:02:24.720" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""that intersects with computer science""" start="00:02:29.360" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""and with whatever it is that the data scientist""" start="00:02:32.000" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""or his or her clients know very well; their domain.""" start="00:02:34.960" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""Because of this interdisciplinary character,""" start="00:02:39.160" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""and because their focus is on the data""" start="00:02:42.680" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""rather than only on algorithms or mathematics,""" start="00:02:45.400" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""successful data scientists need to be more broadly educated""" start="00:02:48.120" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""than specialists in computer science or statistics.""" start="00:02:52.720" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""In particular, there's a need to master""" start="00:02:56.200" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""the entire so-called data science pipeline:""" start="00:03:00.520" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""from data cleaning, which you see""" start="00:03:03.480" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""on the very left in this slide,""" start="00:03:06.080" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""over coding, to statistical modeling,""" start="00:03:08.880" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""and to data storytelling through visualization,""" start="00:03:12.120" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""which you see on the very right.""" start="00:03:14.720" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""This is why until recently,""" start="00:03:17.160" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""data science was a graduate-level education""" start="00:03:19.080" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""only for software engineers, computer scientists,""" start="00:03:22.120" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""statisticians, psychologists, biologists, business people,""" start="00:03:25.880" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""or for whoever took a special fancy""" start="00:03:31.680" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""to data in their chosen field.""" start="00:03:34.280" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""Only with a growing interest in machine learning,""" start="00:03:37.720" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""this has changed.""" start="00:03:40.040" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""And now we train--or try to train--data scientists""" start="00:03:42.000" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""in undergraduate programs as well.""" start="00:03:45.600" video="mainVideo-teaching" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Computer science is a craft""" start="00:03:47.640" video="mainVideo-teaching" id="subtitle"]]</div>[[!template text="""Now, what I'm saying here, I think is true""" start="00:03:47.640" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""for all areas of computing,""" start="00:03:52.400" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""from software engineering to data science.""" start="00:03:54.200" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""They are mostly taught and learned like a craft""" start="00:03:56.960" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""rather than a science, not through research,""" start="00:04:00.640" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""but through drill.""" start="00:04:03.680" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""The elements of this drill can be illustrated""" start="00:04:04.680" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""by learning how to fix cars.""" start="00:04:07.800" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""They include taking a problem apart""" start="00:04:09.960" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""with the tools you already know,""" start="00:04:12.760" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""learn a lot more tools in the process of doing that,""" start="00:04:14.120" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""then solve many, many problems""" start="00:04:18.240" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""of increasing difficulty""" start="00:04:20.640" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""while being or getting more literate, as it were,""" start="00:04:22.200" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""about the mechanics of computing,""" start="00:04:25.720" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""including the hardware, the infrastructure,""" start="00:04:27.920" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""and finally develop a way of thinking""" start="00:04:30.760" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""that allows the learner to identify patterns""" start="00:04:32.640" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""to solve new problems better and faster.""" start="00:04:35.520" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""Unlike learning how to fix cars,""" start="00:04:39.720" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""all of the objects of our interest--""" start="00:04:42.480" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""both hardware and software--are evolving rapidly.""" start="00:04:44.440" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""In this field, radical innovation is the rule,""" start="00:04:48.720" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""not the exception.""" start="00:04:51.520" video="mainVideo-teaching" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""The problem""" start="00:04:52.840" video="mainVideo-teaching" id="subtitle"]]</div>[[!template text="""The problem that I identified is that students,""" start="00:04:52.840" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""especially undergraduate students""" start="00:04:58.680" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""in computer and data science,""" start="00:05:00.800" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""often do no longer understand the infrastructure.""" start="00:05:02.400" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""Here are a few examples of the problems""" start="00:05:06.440" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""that the students seem to have.""" start="00:05:08.920" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""They do not understand computer architecture,""" start="00:05:10.080" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""except in theory.""" start="00:05:13.600" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""They cannot navigate their way around their own computers.""" start="00:05:14.600" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""They don't understand the value or the issues of networks.""" start="00:05:18.520" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""They are often more interested in convenience""" start="00:05:22.320" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""than in customization of the environment.""" start="00:05:25.080" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""As a result, the machines which we're meant to control""" start="00:05:28.280" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""have all the power--though passively,""" start="00:05:31.840" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""of course, for now anyway.""" start="00:05:35.080" video="mainVideo-teaching" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""The solution: Emacs + Org-mode""" start="00:05:36.560" video="mainVideo-teaching" id="subtitle"]]</div>[[!template text="""Enter Emacs, the self-extensible operating system""" start="00:05:36.560" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""disguised as a text editor.""" start="00:05:43.680" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""You're at EmacsConf, so of course I don't have to tell you""" start="00:05:46.000" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""what Emacs can do.""" start="00:05:51.000" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""Here's a rundown on the right-hand side""" start="00:05:52.200" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""of some of its most important properties,""" start="00:05:54.320" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""and an Org Mode file excerpt""" start="00:05:56.760" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""from one of my classes on the left.""" start="00:05:58.960" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""What you may not know is how to onboard students who have,""" start="00:06:00.520" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""at the start, no interest whatsoever""" start="00:06:05.240" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""in leaving their comfort zone,""" start="00:06:07.440" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""which is defined by a lifetime of Windows,""" start="00:06:08.920" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""pre-configured graphical interfaces, and software bloat.""" start="00:06:12.400" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""In fact, when I started this, I wasn't very hopeful,""" start="00:06:16.320" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""but the results have made me even more optimistic""" start="00:06:19.680" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""than I already am by nature.""" start="00:06:22.400" video="mainVideo-teaching" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Emacs configuration file""" start="00:06:24.120" video="mainVideo-teaching" id="subtitle"]]</div>[[!template text="""So to rein in your expectations,""" start="00:06:24.120" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""you cannot do entirely without""" start="00:06:28.840" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""configuring the student's experience.""" start="00:06:31.840" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""An important part of this""" start="00:06:33.800" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""is the initial Emacs configuration shown here.""" start="00:06:35.280" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""The minimal configuration file,""" start="00:06:38.000" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""which you can see on the right-hand side,""" start="00:06:40.640" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""allows the students to run code in C and C++, R, SQL,""" start="00:06:42.200" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""SQLite, Python, and Bash.""" start="00:06:46.680" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""It will allow them to update Emacs packages""" start="00:06:48.600" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""from the stable Melpa repository,""" start="00:06:52.560" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""and it will allow them to create code blocks easily""" start="00:06:55.040" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""using skeleton commands for code blocks,""" start="00:06:58.600" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""and to auto-load the Emacs Speaks Statistics package,""" start="00:07:01.920" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""which you particularly need when you run R in Emacs,""" start="00:07:06.280" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""and lastly, to disable toolbar and graphical menu bars.""" start="00:07:09.760" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""To do that encourages the exclusive use of the keyboard""" start="00:07:14.400" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""to control Emacs, and to stop the students""" start="00:07:19.000" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""from flicking all the time to the mouse;""" start="00:07:23.200" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""seems to be an essential part of getting used to Emacs.""" start="00:07:25.840" video="mainVideo-teaching" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Story + code = source + documentation""" start="00:07:30.360" video="mainVideo-teaching" id="subtitle"]]</div>[[!template text="""Now Org Mode was included in Emacs in 2006 as a major mode,""" start="00:07:30.360" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""and as you know, it's a structured plain text format""" start="00:07:38.840" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""with notebook live code execution.""" start="00:07:41.960" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""It's an ideal platform for literate programming,""" start="00:07:45.040" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""which is a term for programming that intermingles code,""" start="00:07:47.840" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""documentation, and output within a single document,""" start="00:07:52.360" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""and that can, as you can see here from an org file,""" start="00:07:55.840" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""either be tangled into source code""" start="00:07:59.520" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""or woven into a documentation file, which could be PDF,""" start="00:08:02.560" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""could be Markdown, could be OpenOffice,""" start="00:08:07.000" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""could be a notebook format.""" start="00:08:11.040" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""This methodology was conceived by Donald Knuth in 1984,""" start="00:08:13.920" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""and it is therefore even older than Emacs itself.""" start="00:08:18.480" video="mainVideo-teaching" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""What is literate programming?""" start="00:08:22.040" video="mainVideo-teaching" id="subtitle"]]</div>[[!template text="""The main purpose of literate programming is not only""" start="00:08:22.040" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""to make code or documentation or output more manageable,""" start="00:08:27.200" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""but to allow humans to create a data story with ease""" start="00:08:31.120" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""from a single source.""" start="00:08:34.760" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""So what you see on the slide on the left-hand side""" start="00:08:37.200" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""is the story and code inside a Org Mode file.""" start="00:08:40.360" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""The file starts with some documentation,""" start="00:08:45.480" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""then with the white background is the code,""" start="00:08:49.480" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""and at the bottom you see an output file,""" start="00:08:52.520" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""which is not shown here on the slide itself.""" start="00:08:56.240" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""In the middle, you have the source code,""" start="00:09:00.160" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""which is the result of tangling""" start="00:09:02.840" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""or of opening a buffer inside org-mode.""" start="00:09:05.760" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""And on the very right-hand side, you have a PDF--""" start="00:09:10.800" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""actually this HTML rendering of the very same file""" start="00:09:16.120" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""that you see on the very left.""" start="00:09:20.160" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""So the humans look at some of this code,""" start="00:09:22.600" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""and the machines will look at other parts of the code.""" start="00:09:26.480" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""I actually did all my programming in a literate way""" start="00:09:29.880" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""even in the early 1990s, not using org-mode,""" start="00:09:33.360" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""which didn't exist yet,""" start="00:09:35.960" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""but using Norman Ramsey's Noweb preprocessor.""" start="00:09:36.800" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""And I still use it inside org-mode today.""" start="00:09:40.320" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""This preprocessor, Noweb, allows you to tangle code""" start="00:09:43.400" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""from within an org-mode file that's a self-standing file,""" start="00:09:47.440" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""much like org-mode's edit functions,""" start="00:09:50.080" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""which export code blocks into buffers""" start="00:09:52.800" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""in whatever language the code block is written.""" start="00:09:55.640" video="mainVideo-teaching" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Emacs as a literate programming tool""" start="00:09:59.880" video="mainVideo-teaching" id="subtitle"]]</div>[[!template text="""In data science, these interactive notebooks""" start="00:09:59.880" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""in one of the interpreted languages like Julia,""" start="00:10:02.720" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""Python, or R dominate.""" start="00:10:06.000" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""The basis technology,""" start="00:10:07.840" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""is that of Jupyter notebooks, which take their name""" start="00:10:10.240" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""from Julia, Python, and R.""" start="00:10:12.760" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""And these notebooks use a spruced-up shell (for example,""" start="00:10:14.440" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""IPython for Python) with an option to add SQL cells.""" start="00:10:19.200" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""Org Mode inside Emacs has a large number of advantages--""" start="00:10:23.080" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""some of them are listed here--over these notebooks.""" start="00:10:28.080" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""Two of these stand out particularly.""" start="00:10:31.480" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""Different languages can be mixed, as shown in the image,""" start="00:10:33.680" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""while in Jupyter notebooks, a notebook is limited to""" start="00:10:39.440" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""running a kernel in one language only.""" start="00:10:43.440" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""So the content of the notebook--""" start="00:10:45.640" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""its document code or output part--""" start="00:10:48.160" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""can be exported in a variety of formats,""" start="00:10:50.320" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""which makes it much easier to share with others""" start="00:10:52.880" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""and to use one's work in different reporting formats;""" start="00:10:55.480" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""for example, to read it out into a LaTeX publication.""" start="00:10:58.480" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""Actually, to come back to this,""" start="00:11:02.400" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""the file does not show different languages.""" start="00:11:08.320" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""That is something you can see in a paper of mine,""" start="00:11:11.040" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""in one of the figures.""" start="00:11:14.160" video="mainVideo-teaching" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Case study: basic setup""" start="00:11:18.960" video="mainVideo-teaching" id="subtitle"]]</div>[[!template text="""Now, coming to the case study itself,""" start="00:11:18.960" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""here are some of the overall results of the case study.""" start="00:11:22.720" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""Now, the courses ranged from introductory to advanced,""" start="00:11:25.040" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""as you can see here in the table on the left-hand side.""" start="00:11:29.040" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""The topics covered different programming applications.""" start="00:11:32.040" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""The courses were taught""" start="00:11:37.200" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""over a period of three consecutive terms.""" start="00:11:38.680" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""There was between 6 and 28 participants per course.""" start="00:11:41.040" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""I used a few other tools besides Emacs:""" start="00:11:45.840" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""GitHub as the main repository for all the material,""" start="00:11:49.240" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""Datacamp for structured online lessons and exercises,""" start="00:11:51.920" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""Canvas as a learning management system,""" start="00:11:55.240" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""and Zoom to record the sessions for later use.""" start="00:11:57.360" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""Now, the material for all these courses""" start="00:12:00.920" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""is openly available on GitHub,""" start="00:12:03.280" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""and the address is on the slide at the bottom.""" start="00:12:05.400" video="mainVideo-teaching" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Emacs + Org-mode notebooks""" start="00:12:11.280" video="mainVideo-teaching" id="subtitle"]]</div>[[!template text="""I'm now going to briefly comment on""" start="00:12:11.280" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""the most important aspects of using Emacs and Org Mode""" start="00:12:15.880" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""in and outside of class.""" start="00:12:18.800" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""Essentially, these two--Emacs and Org Mode--""" start="00:12:20.120" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""were used all the time for almost everything""" start="00:12:24.040" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""that the students were doing in and outside of class.""" start="00:12:26.240" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""The only exception were multiple choice tests""" start="00:12:29.240" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""and online assignments""" start="00:12:32.320" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""on the Datacamp learning platform""" start="00:12:34.040" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""in the data science courses.""" start="00:12:35.600" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""But everything else--code-along lectures, home assignments,""" start="00:12:37.200" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""student projects, practice in class--""" start="00:12:40.000" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""was done with these two tools.""" start="00:12:42.440" video="mainVideo-teaching" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Onboarding: simplified Emacs tutorial""" start="00:12:45.800" video="mainVideo-teaching" id="subtitle"]]</div>[[!template text="""To facilitate the onboarding,""" start="00:12:45.800" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""so to get students used to Emacs in the first place,""" start="00:12:48.000" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""I developed a simplified Emacs tutorial,""" start="00:12:51.000" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""which was focused on the basics of literate programming.""" start="00:12:53.280" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""It included navigation in major modes,""" start="00:12:56.520" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""managing files and buffers, customizing the interface,""" start="00:13:00.000" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""and keyboard shortcuts.""" start="00:13:02.840" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""It was considerably shorter;""" start="00:13:04.040" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""about a quarter of the size of the standard Emacs tutorial,""" start="00:13:06.320" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""which contains a lot more stuff.""" start="00:13:12.880" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""As a result of this onboarding,""" start="00:13:14.320" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""by the end of the second week,""" start="00:13:16.760" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""most students were able""" start="00:13:18.280" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""to use Emacs and Org Mode competently""" start="00:13:19.920" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""for their assignments in and outside of class,""" start="00:13:22.640" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""completely independent of their previous exposure""" start="00:13:25.080" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""to any of these tools.""" start="00:13:29.640" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""Most of the students, in fact, had never heard of Emacs.""" start="00:13:31.200" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""All the classes were taught physically in a computer lab.""" start="00:13:35.400" video="mainVideo-teaching" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Instruction + interaction""" start="00:13:40.840" video="mainVideo-teaching" id="subtitle"]]</div>[[!template text="""Emacs with Org Mode""" start="00:13:40.840" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""and the necessary languages for the class""" start="00:13:42.760" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""were pre-installed on the computers.""" start="00:13:45.480" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""The computers ran Windows, unfortunately,""" start="00:13:47.360" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""like most of the students' personal computers.""" start="00:13:50.200" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""A typical class involved a lecture delivered by me""" start="00:13:52.760" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""in Emacs as a code-along.""" start="00:13:57.480" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""The students would get an Org Mode file""" start="00:13:59.160" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""with all the code removed.""" start="00:14:01.560" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""You can see an example here""" start="00:14:03.400" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""on the slide on the right-hand side.""" start="00:14:04.600" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""This example is actually only one line of code in blue,""" start="00:14:06.800" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""visible at the bottom for an award file.""" start="00:14:12.240" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""Then the students submitted home assignments""" start="00:14:15.040" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""also as Org Mode files, complete with documentation,""" start="00:14:17.920" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""code and sample output.""" start="00:14:21.160" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""Working this way makes the classes highly interactive.""" start="00:14:23.480" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""So the students are busy coding""" start="00:14:27.000" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""and they learn to control their environment better""" start="00:14:28.880" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""all the time.""" start="00:14:31.640" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""In my classes, the students have to complete""" start="00:14:34.920" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""an independent, agile research project""" start="00:14:38.600" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""using an adaptation of Scrum as a methodology.""" start="00:14:41.360" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""You can find examples of these rather high-octane projects""" start="00:14:44.240" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""in my paper.""" start="00:14:48.080" video="mainVideo-teaching" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Assignments + projects""" start="00:14:48.720" video="mainVideo-teaching" id="subtitle"]]</div>[[!template text="""Now, using literate programming for the projects""" start="00:14:48.720" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""provided some unique benefits.""" start="00:14:52.680" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""By having to continuously interweave documentation,""" start="00:14:54.400" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""references and output alongside functional code,""" start="00:14:57.960" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""the students learn to communicate their work""" start="00:15:01.600" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""throughout the term""" start="00:15:04.320" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""in various stages of completion,""" start="00:15:05.600" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""from the research question at the start,""" start="00:15:07.560" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""over the prototype to the finished product.""" start="00:15:09.840" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""And here on the right-hand side,""" start="00:15:12.880" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""you can see one of those assignments""" start="00:15:15.000" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""that the students received,""" start="00:15:17.480" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""including some of the metadata for their Org Mode files""" start="00:15:18.840" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""in the beginning of the course.""" start="00:15:24.960" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""Here are two graphs that I created early on""" start="00:15:26.160" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""when I started doing this.""" start="00:15:32.600" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""They show how the test results of the students""" start="00:15:34.320" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""in two different courses, actually three courses,""" start="00:15:36.440" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""changed from before to after""" start="00:15:39.640" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""introducing literate programming with Emacs and Org Mode.""" start="00:15:41.720" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""So you see the before and after""" start="00:15:45.920" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""introducing literate programming in the red curve before""" start="00:15:49.560" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""and the blue curve afterwards.""" start="00:15:53.480" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""And the improvement, especially on the right-hand side,""" start="00:15:54.920" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""is quite significant.""" start="00:15:58.520" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""It was this performance improvement,""" start="00:15:59.720" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""apart from the students who were voicing their support,""" start="00:16:02.000" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""that made me extend the Emacs experiment""" start="00:16:05.120" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""after the first term""" start="00:16:08.000" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""and continue for the following two terms.""" start="00:16:09.160" video="mainVideo-teaching" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Overall results positive""" start="00:16:15.280" video="mainVideo-teaching" id="subtitle"]]</div>[[!template text="""The courses... Coming to the result, the overall result...""" start="00:16:15.280" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""The courses were formally and informally""" start="00:16:18.840" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""also evaluated by the students,""" start="00:16:21.000" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""but you need to look at my paper""" start="00:16:23.120" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""for some explicit student comments,""" start="00:16:24.600" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""which you will find there.""" start="00:16:27.040" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""Here, I'm giving you only the summary.""" start="00:16:28.200" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""So first of all, Emacs proved to be hard to learn for some,""" start="00:16:29.880" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""but all students succeeded in all courses,""" start="00:16:34.520" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""independent of the level of""" start="00:16:37.840" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""their previous knowledge and skill.""" start="00:16:39.520" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""The documentation practices remained pretty uneven.""" start="00:16:40.960" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""So some students wrote a lot, others wrote little.""" start="00:16:45.920" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""But they were overall much higher than in classes""" start="00:16:49.640" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""without the use of Emacs and Org Mode.""" start="00:16:53.000" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""The interactivity enabled through Emacs""" start="00:16:57.280" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""was highly praised by the students""" start="00:16:59.560" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""and always identified on the evaluations.""" start="00:17:01.600" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""And lastly and most importantly, given the problems""" start="00:17:05.040" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""that I identified earlier, the computing file""" start="00:17:08.560" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""and data handling competence""" start="00:17:13.280" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""of the students who worked with Emacs throughout""" start="00:17:15.080" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""opening Emacs shells, running programs through Emacs,""" start="00:17:18.280" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""these skills increased massively.""" start="00:17:23.400" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""In the published paper, I have expressed""" start="00:17:27.000" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""a little more doubt than you see on this slide.""" start="00:17:30.600" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""But now, actually, I'm feeling quite hopeful again,""" start="00:17:32.840" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""especially because recently for one term,""" start="00:17:38.360" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""I have returned to Jupyter notebooks.""" start="00:17:41.880" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""In the current term, I abandoned Emacs again""" start="00:17:47.680" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""for online Jupyter notebook installations.""" start="00:17:50.600" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""The reason is that these Jupyter notebooks""" start="00:17:53.120" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""that I use from DataCamp have generative AI support""" start="00:17:55.680" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""from ChatGPT integrated into the notebook.""" start="00:18:00.160" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""And I wanted to try that.""" start="00:18:03.440" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""But after one term without Emacs,""" start="00:18:04.920" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""I regret that decision now.""" start="00:18:08.520" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""The AI advantage does not make up""" start="00:18:10.200" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""for the loss of the immersion""" start="00:18:13.200" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""that Emacs and Org Mode deliver.""" start="00:18:15.120" video="mainVideo-teaching" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Conclusion & outlook""" start="00:18:19.800" video="mainVideo-teaching" id="subtitle"]]</div>[[!template text="""And here's the summary.""" start="00:18:19.800" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""When learning computer and data science,""" start="00:18:21.400" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""immersion is everything.""" start="00:18:23.760" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""The best students will aim at immersion anyway.""" start="00:18:25.680" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""But for the majority of students,""" start="00:18:29.480" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""immersion must happen in class.""" start="00:18:31.240" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""Emacs and Org Mode performed throughout very well""" start="00:18:33.680" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""as the central literary programming platform.""" start="00:18:39.840" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""And the pre-configuring and the onboarding,""" start="00:18:42.320" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""which I showed to you, were very important""" start="00:18:45.960" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""to train the students quickly.""" start="00:18:48.960" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""In the paper, I also speculated on the impact""" start="00:18:50.360" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""of low-code, no-code, and AI coding assistance.""" start="00:18:54.480" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""And my general view on this is that""" start="00:18:57.920" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""the arrival of these tools""" start="00:19:00.240" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""make literary programming as an immersive technique""" start="00:19:01.800" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""focused on teaching a broad range of skills""" start="00:19:04.320" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""even more important.""" start="00:19:08.400" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""So even with AI--or especially with AI--""" start="00:19:09.720" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""this kind of approach, I think, could be critical.""" start="00:19:13.080" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""And that's it.""" start="00:19:16.800" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""I'm at the end of my presentation.""" start="00:19:18.440" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""Thank you very much for your attention.""" start="00:19:19.840" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""And I'm looking forward to the Q&A.""" start="00:19:21.720" video="mainVideo-teaching" id="subtitle"]]
+[[!template text="""Thank you.""" start="00:19:22.840" video="mainVideo-teaching" id="subtitle"]]
+
+</div>
+
+Captioner: sachac
+
+<div class="transcript transcript-qanda"><a name="teaching-qanda-transcript"></a><h1>Q&A transcript (unedited)</h1>
+
+[[!template text="""[Speaker 0]: Again, second only live Q&A of the day.""" start="00:00:00.599" video="qanda-teaching" id="subtitle"]]
+[[!template text="""So, things are still a bit rusty,""" start="00:00:04.339" video="qanda-teaching" id="subtitle"]]
+[[!template text="""but believe me, by the end of the morning,""" start="00:00:06.339" video="qanda-teaching" id="subtitle"]]
+[[!template text="""we will be well-oiled machinery.""" start="00:00:08.380" video="qanda-teaching" id="subtitle"]]
+[[!template text="""So, hi Marcus, how are you doing?""" start="00:00:12.340" video="qanda-teaching" id="subtitle"]]
+[[!template text="""[Speaker 1]: I'm fine, Thank you.""" start="00:00:14.540" video="qanda-teaching" id="subtitle"]]
+[[!template text="""[Speaker 0]: I really liked, most people might have""" start="00:00:17.500" video="qanda-teaching" id="subtitle"]]
+[[!template text="""forgotten, but you started your presentation""" start="00:00:20.020" video="qanda-teaching" id="subtitle"]]
+[[!template text="""with the, in a very dark room and with this""" start="00:00:22.360" video="qanda-teaching" id="subtitle"]]
+[[!template text="""typical note of dry German humor that I""" start="00:00:26.680" video="qanda-teaching" id="subtitle"]]
+[[!template text="""particularly liked.""" start="00:00:29.340" video="qanda-teaching" id="subtitle"]]
+[[!template text="""[Speaker 1]: Whereas I told you we're born without humour""" start="00:00:31.640" video="qanda-teaching" id="subtitle"]]
+[[!template text="""so any sense of humour is the result of very""" start="00:00:34.280" video="qanda-teaching" id="subtitle"]]
+[[!template text="""hard work.""" start="00:00:38.300" video="qanda-teaching" id="subtitle"]]
+[[!template text="""[Speaker 0]: Well I can confirm therefore that your work""" start="00:00:40.940" video="qanda-teaching" id="subtitle"]]
+[[!template text="""is evident in this particular remark.""" start="00:00:44.280" video="qanda-teaching" id="subtitle"]]
+[[!template text="""So as we did before and perhaps this time""" start="00:00:47.780" video="qanda-teaching" id="subtitle"]]
+[[!template text="""more punctiliously, terrible adverb,""" start="00:00:50.940" video="qanda-teaching" id="subtitle"]]
+[[!template text="""that's why I'm an English major we will be""" start="00:00:54.320" video="qanda-teaching" id="subtitle"]]
+[[!template text="""taking questions first from the pad and then""" start="00:00:58.100" video="qanda-teaching" id="subtitle"]]
+[[!template text="""we'll be moving on to people in the BBV room.""" start="00:01:00.420" video="qanda-teaching" id="subtitle"]]
+[[!template text="""Let me just check if we have some people.""" start="00:01:03.740" video="qanda-teaching" id="subtitle"]]
+[[!template text="""We do have some people.""" start="00:01:05.540" video="qanda-teaching" id="subtitle"]]
+[[!template text="""All right, so Markus, I'm gonna ask you the""" start="00:01:06.960" video="qanda-teaching" id="subtitle"]]
+[[!template text="""questions in the pad unless you have""" start="00:01:08.860" video="qanda-teaching" id="subtitle"]]
+[[!template text="""something to remark first.""" start="00:01:11.200" video="qanda-teaching" id="subtitle"]]
+[[!template text="""[Speaker 1]: Yes, oh no, no, I don't have nothing to""" start="00:01:13.080" video="qanda-teaching" id="subtitle"]]
+[[!template text="""remark. I mean, only that we're coming to the""" start="00:01:15.060" video="qanda-teaching" id="subtitle"]]
+[[!template text="""end of the term here, and I think in the""" start="00:01:17.800" video="qanda-teaching" id="subtitle"]]
+[[!template text="""paper that I wrote, I expressed doubt that""" start="00:01:20.200" video="qanda-teaching" id="subtitle"]]
+[[!template text="""Emacs was good for beginners,""" start="00:01:24.140" video="qanda-teaching" id="subtitle"]]
+[[!template text="""but I've now gone back to an interactive""" start="00:01:25.560" video="qanda-teaching" id="subtitle"]]
+[[!template text="""notebook in the class without Emacs,""" start="00:01:31.780" video="qanda-teaching" id="subtitle"]]
+[[!template text="""and I've just missed it terribly the whole""" start="00:01:34.080" video="qanda-teaching" id="subtitle"]]
+[[!template text="""term. And I think I saw you walk too,""" start="00:01:37.500" video="qanda-teaching" id="subtitle"]]
+[[!template text="""so that's kind of interesting.""" start="00:01:39.220" video="qanda-teaching" id="subtitle"]]
+[[!template text="""That's it.""" start="00:01:41.380" video="qanda-teaching" id="subtitle"]]
+[[!template text="""[Speaker 0]: Right. All right, well,""" start="00:01:42.270" video="qanda-teaching" id="subtitle"]]
+[[!template text="""let's get started with the questions because""" start="00:01:43.580" video="qanda-teaching" id="subtitle"]]
+[[!template text="""I'm a little worried that we might acquire""" start="00:01:45.040" video="qanda-teaching" id="subtitle"]]
+[[!template text="""debt because of the time that we have.""" start="00:01:48.340" video="qanda-teaching" id="subtitle"]]
+[[!template text="""And just to be clear, so that you also know""" start="00:01:50.580" video="qanda-teaching" id="subtitle"]]
+[[!template text="""the time at which we're supposed to be""" start="00:01:53.040" video="qanda-teaching" id="subtitle"]]
+[[!template text="""finishing, the next talk here on this track""" start="00:01:54.479" video="qanda-teaching" id="subtitle"]]
+[[!template text="""is supposed to be at 10.40,""" start="00:01:57.240" video="qanda-teaching" id="subtitle"]]
+[[!template text="""which is in 13 minutes from now.""" start="00:01:59.700" video="qanda-teaching" id="subtitle"]]
+[[!template text="""All right, with that said,""" start="00:02:01.800" video="qanda-teaching" id="subtitle"]]
+[[!template text="""starting with the first questions.""" start="00:02:03.240" video="qanda-teaching" id="subtitle"]]
+[[!template text="""What tools do you use for making your slides?""" start="00:02:05.000" video="qanda-teaching" id="subtitle"]]
+[[!template text="""They are very nice and I concur.""" start="00:02:07.300" video="qanda-teaching" id="subtitle"]]
+[[!template text="""OrgReveal?""" start="00:02:17.680" video="qanda-teaching" id="subtitle"]]
+[[!template text="""[Speaker 1]: I use OrgReveal. It's a package,""" start="00:02:12.280" video="qanda-teaching" id="subtitle"]]
+[[!template text="""OrgReveal. I don't have the link right now,""" start="00:02:22.980" video="qanda-teaching" id="subtitle"]]
+[[!template text="""but it's an org mode package where You create""" start="00:02:26.380" video="qanda-teaching" id="subtitle"]]
+[[!template text="""some meta information and I think it's""" start="00:02:31.560" video="qanda-teaching" id="subtitle"]]
+[[!template text="""basically JavaScript, JavaScript package that""" start="00:02:35.400" video="qanda-teaching" id="subtitle"]]
+[[!template text="""will work from a bunch of different""" start="00:02:39.900" video="qanda-teaching" id="subtitle"]]
+[[!template text="""platforms, but it works particularly well""" start="00:02:45.580" video="qanda-teaching" id="subtitle"]]
+[[!template text="""from Emacs. So you use that a lot.""" start="00:02:49.540" video="qanda-teaching" id="subtitle"]]
+[[!template text="""[Speaker 0]: Right, yeah, I think it is definitely""" start="00:02:53.740" video="qanda-teaching" id="subtitle"]]
+[[!template text="""interacting with JavaScript in the background""" start="00:02:55.440" video="qanda-teaching" id="subtitle"]]
+[[!template text="""and it makes for a very clean presentation""" start="00:02:57.120" video="qanda-teaching" id="subtitle"]]
+[[!template text="""right from Emacs. I mean,""" start="00:02:59.440" video="qanda-teaching" id="subtitle"]]
+[[!template text="""it's not opened in Emacs unless you use a web""" start="00:03:01.380" video="qanda-teaching" id="subtitle"]]
+[[!template text="""browser in Emacs that supports such""" start="00:03:04.340" video="qanda-teaching" id="subtitle"]]
+[[!template text="""compositing but it's pretty convenient and I""" start="00:03:06.480" video="qanda-teaching" id="subtitle"]]
+[[!template text="""recommend looking into it.""" start="00:03:09.400" video="qanda-teaching" id="subtitle"]]
+[[!template text="""[Speaker 1]: I'm just going to share the URL here.""" start="00:03:15.140" video="qanda-teaching" id="subtitle"]]
+[[!template text="""So if anybody's interested.""" start="00:03:20.080" video="qanda-teaching" id="subtitle"]]
+[[!template text="""[Speaker 0]: Right, and we'll be putting all the links""" start="00:03:22.300" video="qanda-teaching" id="subtitle"]]
+[[!template text="""right now. So obviously right now,""" start="00:03:24.140" video="qanda-teaching" id="subtitle"]]
+[[!template text="""Marcus is writing inside of his own Emacs,""" start="00:03:25.600" video="qanda-teaching" id="subtitle"]]
+[[!template text="""but we also have the pad.""" start="00:03:28.180" video="qanda-teaching" id="subtitle"]]
+[[!template text="""We'll make sure that you have all the links""" start="00:03:29.340" video="qanda-teaching" id="subtitle"]]
+[[!template text="""accessible a little bit later.""" start="00:03:31.020" video="qanda-teaching" id="subtitle"]]
+[[!template text="""Okay, moving on to the next question,""" start="00:03:32.660" video="qanda-teaching" id="subtitle"]]
+[[!template text="""why MDPI?""" start="00:03:34.460" video="qanda-teaching" id="subtitle"]]
+[[!template text="""[Speaker 1]: Oh yeah, well that's a little bit of a longer""" start="00:03:36.820" video="qanda-teaching" id="subtitle"]]
+[[!template text="""answer, kind of boring I suppose.""" start="00:03:40.520" video="qanda-teaching" id="subtitle"]]
+[[!template text="""So when I came here to the US,""" start="00:03:42.840" video="qanda-teaching" id="subtitle"]]
+[[!template text="""I used to teach a lot of graduate courses and""" start="00:03:45.560" video="qanda-teaching" id="subtitle"]]
+[[!template text="""I had to suddenly teach a lot of""" start="00:03:47.960" video="qanda-teaching" id="subtitle"]]
+[[!template text="""undergraduate courses,""" start="00:03:49.280" video="qanda-teaching" id="subtitle"]]
+[[!template text="""which partly motivated this move because it""" start="00:03:50.500" video="qanda-teaching" id="subtitle"]]
+[[!template text="""made me realize, as I said in the""" start="00:03:53.100" video="qanda-teaching" id="subtitle"]]
+[[!template text="""presentation, how little the students""" start="00:03:55.640" video="qanda-teaching" id="subtitle"]]
+[[!template text="""understand of the underlying infrastructure""" start="00:03:58.020" video="qanda-teaching" id="subtitle"]]
+[[!template text="""and how important it is for them to work with""" start="00:04:00.040" video="qanda-teaching" id="subtitle"]]
+[[!template text="""an IDE that doesn't make coding especially""" start="00:04:01.920" video="qanda-teaching" id="subtitle"]]
+[[!template text="""convenient, but that teaches them a lot of""" start="00:04:06.540" video="qanda-teaching" id="subtitle"]]
+[[!template text="""the stuff on the side,""" start="00:04:09.140" video="qanda-teaching" id="subtitle"]]
+[[!template text="""you know, while still presenting a very""" start="00:04:10.840" video="qanda-teaching" id="subtitle"]]
+[[!template text="""smooth environment, which developers""" start="00:04:13.440" video="qanda-teaching" id="subtitle"]]
+[[!template text="""appreciate as well. So I came here and I used""" start="00:04:17.480" video="qanda-teaching" id="subtitle"]]
+[[!template text="""to publish like 4 or 5 research papers per""" start="00:04:22.120" video="qanda-teaching" id="subtitle"]]
+[[!template text="""year, but I didn't have the time.""" start="00:04:24.520" video="qanda-teaching" id="subtitle"]]
+[[!template text="""So I was contacted by MDPI.""" start="00:04:26.520" video="qanda-teaching" id="subtitle"]]
+[[!template text="""And it's 1 of those research paper mills,""" start="00:04:30.060" video="qanda-teaching" id="subtitle"]]
+[[!template text="""which seem to be springing up where authors""" start="00:04:34.700" video="qanda-teaching" id="subtitle"]]
+[[!template text="""can, really the institutions of the authors""" start="00:04:37.200" video="qanda-teaching" id="subtitle"]]
+[[!template text="""have to pay so that they can publish,""" start="00:04:40.840" video="qanda-teaching" id="subtitle"]]
+[[!template text="""right? So it's not really,""" start="00:04:42.560" video="qanda-teaching" id="subtitle"]]
+[[!template text="""and I checked them out and they seem to be""" start="00:04:44.440" video="qanda-teaching" id="subtitle"]]
+[[!template text="""proper peer review publishing,""" start="00:04:46.400" video="qanda-teaching" id="subtitle"]]
+[[!template text="""but to be absolutely sure I said,""" start="00:04:47.680" video="qanda-teaching" id="subtitle"]]
+[[!template text="""well, you can have my article,""" start="00:04:49.120" video="qanda-teaching" id="subtitle"]]
+[[!template text="""but of course for free,""" start="00:04:51.220" video="qanda-teaching" id="subtitle"]]
+[[!template text="""I'm not going to pay for you to publish it.""" start="00:04:52.540" video="qanda-teaching" id="subtitle"]]
+[[!template text="""And so that's what they did.""" start="00:04:55.080" video="qanda-teaching" id="subtitle"]]
+[[!template text="""They invited me and I submitted the paper and""" start="00:04:57.880" video="qanda-teaching" id="subtitle"]]
+[[!template text="""it was a very good process.""" start="00:05:01.160" video="qanda-teaching" id="subtitle"]]
+[[!template text="""That was a very, it was a good peer review""" start="00:05:02.240" video="qanda-teaching" id="subtitle"]]
+[[!template text="""critique. So I changed the paper quite a bit.""" start="00:05:04.540" video="qanda-teaching" id="subtitle"]]
+[[!template text="""It's still not a great paper.""" start="00:05:06.760" video="qanda-teaching" id="subtitle"]]
+[[!template text="""It's just a small case study.""" start="00:05:07.940" video="qanda-teaching" id="subtitle"]]
+[[!template text="""That's the kind of thing that you have a lot""" start="00:05:09.320" video="qanda-teaching" id="subtitle"]]
+[[!template text="""in medical research where also people don't""" start="00:05:12.100" video="qanda-teaching" id="subtitle"]]
+[[!template text="""have a lot of time to do research,""" start="00:05:14.800" video="qanda-teaching" id="subtitle"]]
+[[!template text="""proper research, which takes a very long""" start="00:05:17.720" video="qanda-teaching" id="subtitle"]]
+[[!template text="""time. And so that's why MDPI.""" start="00:05:19.480" video="qanda-teaching" id="subtitle"]]
+[[!template text="""And they are in the most of the relevant""" start="00:05:21.820" video="qanda-teaching" id="subtitle"]]
+[[!template text="""citation indices. So they are reputable""" start="00:05:24.800" video="qanda-teaching" id="subtitle"]]
+[[!template text="""enough. I mean, normally I would say for""" start="00:05:27.900" video="qanda-teaching" id="subtitle"]]
+[[!template text="""anybody who does anything like this,""" start="00:05:30.920" video="qanda-teaching" id="subtitle"]]
+[[!template text="""you might not even want to bother with the""" start="00:05:33.260" video="qanda-teaching" id="subtitle"]]
+[[!template text="""journal these days anymore.""" start="00:05:36.420" video="qanda-teaching" id="subtitle"]]
+[[!template text="""You just go straight to ArcSci,""" start="00:05:37.640" video="qanda-teaching" id="subtitle"]]
+[[!template text="""put out your preprint.""" start="00:05:40.520" video="qanda-teaching" id="subtitle"]]
+[[!template text="""And in fact, what will happen if you're on""" start="00:05:41.980" video="qanda-teaching" id="subtitle"]]
+[[!template text="""ArcSci, if somebody finds it interesting,""" start="00:05:44.540" video="qanda-teaching" id="subtitle"]]
+[[!template text="""they're going to reach out to you to capture""" start="00:05:46.440" video="qanda-teaching" id="subtitle"]]
+[[!template text="""your paper and have it published under their""" start="00:05:49.900" video="qanda-teaching" id="subtitle"]]
+[[!template text="""heading. Oh yeah, actually the other reason""" start="00:05:54.280" video="qanda-teaching" id="subtitle"]]
+[[!template text="""why I wanted MDPI is because there were open""" start="00:05:56.120" video="qanda-teaching" id="subtitle"]]
+[[!template text="""access from the start.""" start="00:05:58.660" video="qanda-teaching" id="subtitle"]]
+[[!template text="""And I really like, if you go to the paper,""" start="00:06:00.720" video="qanda-teaching" id="subtitle"]]
+[[!template text="""I really like the way it's presented.""" start="00:06:02.660" video="qanda-teaching" id="subtitle"]]
+[[!template text="""So I looked at a few papers and I thought""" start="00:06:04.200" video="qanda-teaching" id="subtitle"]]
+[[!template text="""it's a really nice online access,""" start="00:06:07.340" video="qanda-teaching" id="subtitle"]]
+[[!template text="""online open access solution.""" start="00:06:12.160" video="qanda-teaching" id="subtitle"]]
+[[!template text="""That's the long answer,""" start="00:06:15.920" video="qanda-teaching" id="subtitle"]]
+[[!template text="""sorry.""" start="00:06:17.220" video="qanda-teaching" id="subtitle"]]
+[[!template text="""[Speaker 0]: No, that was perfectly fine and you provided""" start="00:06:18.740" video="qanda-teaching" id="subtitle"]]
+[[!template text="""many details so it was far from a boring""" start="00:06:21.060" video="qanda-teaching" id="subtitle"]]
+[[!template text="""answer, let me reassure you.""" start="00:06:23.760" video="qanda-teaching" id="subtitle"]]
+[[!template text="""Moving on to the question,""" start="00:06:26.140" video="qanda-teaching" id="subtitle"]]
+[[!template text="""we only have about 8 minutes left so I'd like""" start="00:06:27.100" video="qanda-teaching" id="subtitle"]]
+[[!template text="""to finish those 2 questions and let people in""" start="00:06:29.120" video="qanda-teaching" id="subtitle"]]
+[[!template text="""the audience speak. So do you think immersion""" start="00:06:31.500" video="qanda-teaching" id="subtitle"]]
+[[!template text="""can be achieved on teaching other students""" start="00:06:35.280" video="qanda-teaching" id="subtitle"]]
+[[!template text="""with different backgrounds?""" start="00:06:37.500" video="qanda-teaching" id="subtitle"]]
+[[!template text="""[Speaker 1]: Oh yeah, that's a really good question.""" start="00:06:39.340" video="qanda-teaching" id="subtitle"]]
+[[!template text="""I had actually a discussion last night with""" start="00:06:45.740" video="qanda-teaching" id="subtitle"]]
+[[!template text="""my wife in bed about this,""" start="00:06:48.380" video="qanda-teaching" id="subtitle"]]
+[[!template text="""about the use of textbooks which are famously""" start="00:06:49.920" video="qanda-teaching" id="subtitle"]]
+[[!template text="""non-immersive because they're consumed away""" start="00:06:53.000" video="qanda-teaching" id="subtitle"]]
+[[!template text="""from the class. Very rarely you sit in class""" start="00:06:55.840" video="qanda-teaching" id="subtitle"]]
+[[!template text="""like people used to do and read something""" start="00:06:58.660" video="qanda-teaching" id="subtitle"]]
+[[!template text="""together. Maybe they did that in English.""" start="00:07:00.540" video="qanda-teaching" id="subtitle"]]
+[[!template text="""And that is of course instantly immersive.""" start="00:07:02.420" video="qanda-teaching" id="subtitle"]]
+[[!template text="""But in computer science,""" start="00:07:05.240" video="qanda-teaching" id="subtitle"]]
+[[!template text="""many other topics, psychology,""" start="00:07:06.700" video="qanda-teaching" id="subtitle"]]
+[[!template text="""you know, biology and so on,""" start="00:07:08.360" video="qanda-teaching" id="subtitle"]]
+[[!template text="""you cannot get immersion,""" start="00:07:10.680" video="qanda-teaching" id="subtitle"]]
+[[!template text="""at least not in a lecture theater.""" start="00:07:12.260" video="qanda-teaching" id="subtitle"]]
+[[!template text="""You get it in a lab because people solve the""" start="00:07:15.040" video="qanda-teaching" id="subtitle"]]
+[[!template text="""problem and then they're immersed in it.""" start="00:07:16.960" video="qanda-teaching" id="subtitle"]]
+[[!template text="""So, but my answer would be,""" start="00:07:18.920" video="qanda-teaching" id="subtitle"]]
+[[!template text="""yes, I can think totally immersion can be""" start="00:07:20.660" video="qanda-teaching" id="subtitle"]]
+[[!template text="""achieved anywhere, but what you have to do is""" start="00:07:22.680" video="qanda-teaching" id="subtitle"]]
+[[!template text="""you have to not lecture and you have to let""" start="00:07:25.520" video="qanda-teaching" id="subtitle"]]
+[[!template text="""students do work as you go along.""" start="00:07:29.500" video="qanda-teaching" id="subtitle"]]
+[[!template text="""So I used to lecture quite a bit because I""" start="00:07:31.640" video="qanda-teaching" id="subtitle"]]
+[[!template text="""was an insecure young professor and just read""" start="00:07:33.840" video="qanda-teaching" id="subtitle"]]
+[[!template text="""all my slides and my notes as I used to use,""" start="00:07:38.220" video="qanda-teaching" id="subtitle"]]
+[[!template text="""as everybody uses to when they start.""" start="00:07:41.400" video="qanda-teaching" id="subtitle"]]
+[[!template text="""But as I went along, I realized,""" start="00:07:44.200" video="qanda-teaching" id="subtitle"]]
+[[!template text="""you know, I've got such a grasp of the topic""" start="00:07:46.100" video="qanda-teaching" id="subtitle"]]
+[[!template text="""that I really everything I do now is prepared""" start="00:07:48.240" video="qanda-teaching" id="subtitle"]]
+[[!template text="""in Emacs in an interactive way so I start""" start="00:07:51.080" video="qanda-teaching" id="subtitle"]]
+[[!template text="""saying a few words and then the students""" start="00:07:53.800" video="qanda-teaching" id="subtitle"]]
+[[!template text="""immediately we get to work and they seem to""" start="00:07:55.480" video="qanda-teaching" id="subtitle"]]
+[[!template text="""love that because in most of the other""" start="00:07:58.000" video="qanda-teaching" id="subtitle"]]
+[[!template text="""classes people just talk at them they take""" start="00:07:59.840" video="qanda-teaching" id="subtitle"]]
+[[!template text="""their stuff home and work at home,""" start="00:08:01.680" video="qanda-teaching" id="subtitle"]]
+[[!template text="""which is of course is super.""" start="00:08:03.600" video="qanda-teaching" id="subtitle"]]
+[[!template text="""But most of the students,""" start="00:08:05.380" video="qanda-teaching" id="subtitle"]]
+[[!template text="""if they have, in at least in a liberal arts""" start="00:08:06.680" video="qanda-teaching" id="subtitle"]]
+[[!template text="""college, they have 5 other classes,""" start="00:08:08.600" video="qanda-teaching" id="subtitle"]]
+[[!template text="""they do not take a lot of time to do the work""" start="00:08:10.440" video="qanda-teaching" id="subtitle"]]
+[[!template text="""at home. So it's, you know,""" start="00:08:13.520" video="qanda-teaching" id="subtitle"]]
+[[!template text="""yeah, It's kind of different.""" start="00:08:16.880" video="qanda-teaching" id="subtitle"]]
+[[!template text="""It's kind of risky, yeah,""" start="00:08:18.840" video="qanda-teaching" id="subtitle"]]
+[[!template text="""but the main point I was trying to make is""" start="00:08:20.020" video="qanda-teaching" id="subtitle"]]
+[[!template text="""Emacs and Org Mode really helped me to boil""" start="00:08:22.360" video="qanda-teaching" id="subtitle"]]
+[[!template text="""that interactive session down to something""" start="00:08:26.740" video="qanda-teaching" id="subtitle"]]
+[[!template text="""that will work in the classroom.""" start="00:08:29.220" video="qanda-teaching" id="subtitle"]]
+[[!template text="""I don't have to jump around between""" start="00:08:30.800" video="qanda-teaching" id="subtitle"]]
+[[!template text="""platforms. For example,""" start="00:08:32.559" video="qanda-teaching" id="subtitle"]]
+[[!template text="""this term, and I didn't use Emacs in the""" start="00:08:33.840" video="qanda-teaching" id="subtitle"]]
+[[!template text="""class with the students,""" start="00:08:35.799" video="qanda-teaching" id="subtitle"]]
+[[!template text="""I had to render using a package.""" start="00:08:37.159" video="qanda-teaching" id="subtitle"]]
+[[!template text="""It's actually a very nice package called,""" start="00:08:40.760" video="qanda-teaching" id="subtitle"]]
+[[!template text="""what's it called? Ox, what's it called?""" start="00:08:42.299" video="qanda-teaching" id="subtitle"]]
+[[!template text="""Ox, Ox IPNB. It's called Ox IPNB.""" start="00:08:46.100" video="qanda-teaching" id="subtitle"]]
+[[!template text="""So what it does is it renders in the usual""" start="00:08:50.580" video="qanda-teaching" id="subtitle"]]
+[[!template text="""way with Emacs, Org Mode does,""" start="00:08:53.360" video="qanda-teaching" id="subtitle"]]
+[[!template text="""renders interactive notebook files in""" start="00:08:55.600" video="qanda-teaching" id="subtitle"]]
+[[!template text="""Jupyter. And that took me a lot of time.""" start="00:08:58.700" video="qanda-teaching" id="subtitle"]]
+[[!template text="""And I immediately noticed as soon as the""" start="00:09:01.320" video="qanda-teaching" id="subtitle"]]
+[[!template text="""teacher has to fight platforms themselves,""" start="00:09:03.840" video="qanda-teaching" id="subtitle"]]
+[[!template text="""they take the ball off the immersion task,""" start="00:09:06.660" video="qanda-teaching" id="subtitle"]]
+[[!template text="""you know, to keep the student on the problem.""" start="00:09:09.920" video="qanda-teaching" id="subtitle"]]
+[[!template text="""[Speaker 0]: Yeah. Oh, go on, please.""" start="00:09:16.000" video="qanda-teaching" id="subtitle"]]
+[[!template text="""Yeah. I was going to remark that.""" start="00:09:19.400" video="qanda-teaching" id="subtitle"]]
+[[!template text="""[Speaker 1]: So yeah, absolutely. Yeah,""" start="00:09:12.980" video="qanda-teaching" id="subtitle"]]
+[[!template text="""I suppose it might be MIT style.""" start="00:09:23.260" video="qanda-teaching" id="subtitle"]]
+[[!template text="""Big difference though,""" start="00:09:25.120" video="qanda-teaching" id="subtitle"]]
+[[!template text="""my classes are very, very short,""" start="00:09:26.140" video="qanda-teaching" id="subtitle"]]
+[[!template text="""small. So I have like between 10 and 15""" start="00:09:27.900" video="qanda-teaching" id="subtitle"]]
+[[!template text="""students per class. 1 of the reasons why I""" start="00:09:30.060" video="qanda-teaching" id="subtitle"]]
+[[!template text="""went to this college is because I was fed up""" start="00:09:32.180" video="qanda-teaching" id="subtitle"]]
+[[!template text="""teaching, trying to teach hundreds of""" start="00:09:35.080" video="qanda-teaching" id="subtitle"]]
+[[!template text="""students. Okay, sorry,""" start="00:09:36.940" video="qanda-teaching" id="subtitle"]]
+[[!template text="""do some of your students nag you about using""" start="00:09:40.580" video="qanda-teaching" id="subtitle"]]
+[[!template text="""VS Code? Yes, they do,""" start="00:09:42.520" video="qanda-teaching" id="subtitle"]]
+[[!template text="""but their arguments aren't very good.""" start="00:09:43.460" video="qanda-teaching" id="subtitle"]]
+[[!template text="""They hadn't really compared Emacs and VS""" start="00:09:46.800" video="qanda-teaching" id="subtitle"]]
+[[!template text="""Code. And what I do, actually I use RStudio""" start="00:09:48.740" video="qanda-teaching" id="subtitle"]]
+[[!template text="""as well, demonstrate VS Code,""" start="00:09:51.980" video="qanda-teaching" id="subtitle"]]
+[[!template text="""RStudio and Emacs. And I think it's very easy""" start="00:09:53.860" video="qanda-teaching" id="subtitle"]]
+[[!template text="""for them to see. And there are some videos""" start="00:10:01.060" video="qanda-teaching" id="subtitle"]]
+[[!template text="""about that as well, how much easier it is to""" start="00:10:02.840" video="qanda-teaching" id="subtitle"]]
+[[!template text="""get into Emacs to limit your investments to""" start="00:10:05.020" video="qanda-teaching" id="subtitle"]]
+[[!template text="""what you actually wanna do.""" start="00:10:08.520" video="qanda-teaching" id="subtitle"]]
+[[!template text="""When the problem with VS Code is it comes at""" start="00:10:09.820" video="qanda-teaching" id="subtitle"]]
+[[!template text="""you with this sort of Microsoft store""" start="00:10:11.840" video="qanda-teaching" id="subtitle"]]
+[[!template text="""ideology, like a gazillion plugins,""" start="00:10:14.440" video="qanda-teaching" id="subtitle"]]
+[[!template text="""which if you're a developer,""" start="00:10:17.420" video="qanda-teaching" id="subtitle"]]
+[[!template text="""you know what you want.""" start="00:10:18.900" video="qanda-teaching" id="subtitle"]]
+[[!template text="""And I mean, it's a bit like VS Code is like""" start="00:10:21.040" video="qanda-teaching" id="subtitle"]]
+[[!template text="""Google search for as if you were programming""" start="00:10:24.960" video="qanda-teaching" id="subtitle"]]
+[[!template text="""in Google search, a complete waste of time.""" start="00:10:27.980" video="qanda-teaching" id="subtitle"]]
+[[!template text="""Having said that, I've also seen some videos""" start="00:10:31.220" video="qanda-teaching" id="subtitle"]]
+[[!template text="""with people who really know how to use VS""" start="00:10:33.280" video="qanda-teaching" id="subtitle"]]
+[[!template text="""Code. And of course, you know,""" start="00:10:36.180" video="qanda-teaching" id="subtitle"]]
+[[!template text="""if somebody gets on the inside of a tool and""" start="00:10:37.420" video="qanda-teaching" id="subtitle"]]
+[[!template text="""spends upwards of a thousand hours in the""" start="00:10:41.180" video="qanda-teaching" id="subtitle"]]
+[[!template text="""tool, they'll be great.""" start="00:10:44.480" video="qanda-teaching" id="subtitle"]]
+[[!template text="""But that's not true for beginners.""" start="00:10:45.920" video="qanda-teaching" id="subtitle"]]
+[[!template text="""So hold on, there's another 1.""" start="00:10:48.960" video="qanda-teaching" id="subtitle"]]
+[[!template text="""I'm reading them, sorry.""" start="00:10:51.020" video="qanda-teaching" id="subtitle"]]
+[[!template text="""Leo, I can see the questions,""" start="00:10:52.840" video="qanda-teaching" id="subtitle"]]
+[[!template text="""but you may wanna turn them around.""" start="00:10:55.680" video="qanda-teaching" id="subtitle"]]
+[[!template text="""[Speaker 0]: No, No, no, please, please,""" start="00:10:59.700" video="qanda-teaching" id="subtitle"]]
+[[!template text="""you're free to read them.""" start="00:11:00.720" video="qanda-teaching" id="subtitle"]]
+[[!template text="""I'm on your fasted computer.""" start="00:11:01.560" video="qanda-teaching" id="subtitle"]]
+[[!template text="""[Speaker 1]: Some of you, too, that's the nagging.""" start="00:11:02.960" video="qanda-teaching" id="subtitle"]]
+[[!template text="""I teach simple programming at a vocational""" start="00:11:04.600" video="qanda-teaching" id="subtitle"]]
+[[!template text="""school, and even after showing the students""" start="00:11:06.100" video="qanda-teaching" id="subtitle"]]
+[[!template text="""Vim, Vim, of course, is a contender,""" start="00:11:07.700" video="qanda-teaching" id="subtitle"]]
+[[!template text="""and now I'm telling them I prefer Emacs.""" start="00:11:09.520" video="qanda-teaching" id="subtitle"]]
+[[!template text="""They still all choose VS Code as their""" start="00:11:12.180" video="qanda-teaching" id="subtitle"]]
+[[!template text="""editor. Well, okay, what I did is mandatory.""" start="00:11:14.260" video="qanda-teaching" id="subtitle"]]
+[[!template text="""I didn't let them choose.""" start="00:11:17.720" video="qanda-teaching" id="subtitle"]]
+[[!template text="""That's what I did. And I thought that was""" start="00:11:19.840" video="qanda-teaching" id="subtitle"]]
+[[!template text="""quite risky, but in the end,""" start="00:11:21.980" video="qanda-teaching" id="subtitle"]]
+[[!template text="""it turns out that the best students loved it""" start="00:11:23.860" video="qanda-teaching" id="subtitle"]]
+[[!template text="""and keep using Emacs in their jobs.""" start="00:11:26.400" video="qanda-teaching" id="subtitle"]]
+[[!template text="""I hear that now. The students in the middle""" start="00:11:28.580" video="qanda-teaching" id="subtitle"]]
+[[!template text="""were probably the ones who would pick VS Code""" start="00:11:33.160" video="qanda-teaching" id="subtitle"]]
+[[!template text="""because every tutorial they see,""" start="00:11:35.860" video="qanda-teaching" id="subtitle"]]
+[[!template text="""they learn a lot through YouTube and so""" start="00:11:38.600" video="qanda-teaching" id="subtitle"]]
+[[!template text="""everything they see is in VS Code.""" start="00:11:40.440" video="qanda-teaching" id="subtitle"]]
+[[!template text="""If there were more tutorials in Emacs,""" start="00:11:42.260" video="qanda-teaching" id="subtitle"]]
+[[!template text="""I'm trying to make some,""" start="00:11:44.180" video="qanda-teaching" id="subtitle"]]
+[[!template text="""then of course that would be different.""" start="00:11:45.700" video="qanda-teaching" id="subtitle"]]
+[[!template text="""But I think it's partly brainwashing and""" start="00:11:49.280" video="qanda-teaching" id="subtitle"]]
+[[!template text="""partly, of course, the other reason is there""" start="00:11:53.940" video="qanda-teaching" id="subtitle"]]
+[[!template text="""is no online Emacs. They use VS Code Dev,""" start="00:11:55.840" video="qanda-teaching" id="subtitle"]]
+[[!template text="""right? And that's, of course,""" start="00:12:00.500" video="qanda-teaching" id="subtitle"]]
+[[!template text="""they use an online cloud solution.""" start="00:12:03.340" video="qanda-teaching" id="subtitle"]]
+[[!template text="""Like most of the students in the high school,""" start="00:12:05.420" video="qanda-teaching" id="subtitle"]]
+[[!template text="""I teach Python in the high school right now,""" start="00:12:07.040" video="qanda-teaching" id="subtitle"]]
+[[!template text="""and the students only get Chromebooks that""" start="00:12:09.480" video="qanda-teaching" id="subtitle"]]
+[[!template text="""are completely cut down to nothing.""" start="00:12:11.600" video="qanda-teaching" id="subtitle"]]
+[[!template text="""They cannot have Linux on their Chromebooks.""" start="00:12:15.060" video="qanda-teaching" id="subtitle"]]
+[[!template text="""So what are they supposed to do?""" start="00:12:18.260" video="qanda-teaching" id="subtitle"]]
+[[!template text="""Their only choice really is Repl.""" start="00:12:19.900" video="qanda-teaching" id="subtitle"]]
+[[!template text="""Repl.com is a possibility for them to do""" start="00:12:21.760" video="qanda-teaching" id="subtitle"]]
+[[!template text="""that. But, you know, or they use code spaces,""" start="00:12:24.240" video="qanda-teaching" id="subtitle"]]
+[[!template text="""which is VS Code in GitHub.""" start="00:12:27.660" video="qanda-teaching" id="subtitle"]]
+[[!template text="""[Speaker 0]: Marcus, sorry for the interruption.""" start="00:12:31.400" video="qanda-teaching" id="subtitle"]]
+[[!template text="""We only have about 2 minutes left.""" start="00:12:32.640" video="qanda-teaching" id="subtitle"]]
+[[!template text="""So if you could take 1 question,""" start="00:12:34.040" video="qanda-teaching" id="subtitle"]]
+[[!template text="""that would be great. Sorry.""" start="00:12:35.380" video="qanda-teaching" id="subtitle"]]
+[[!template text="""[Speaker 1]: So. I'm observing the same behavior.""" start="00:12:30.660" video="qanda-teaching" id="subtitle"]]
+[[!template text="""Any more tutorials will be most welcome.""" start="00:12:38.100" video="qanda-teaching" id="subtitle"]]
+[[!template text="""Yes, I I'd love to. I spent the rest of my""" start="00:12:40.080" video="qanda-teaching" id="subtitle"]]
+[[!template text="""days on this earth making Emacs tutorials if""" start="00:12:43.660" video="qanda-teaching" id="subtitle"]]
+[[!template text="""[Speaker 0]: tutorials if I can.""" start="00:12:48.263" video="qanda-teaching" id="subtitle"]]
+[[!template text="""[Speaker 1]: I can. Thank you. DMAX Thank you.""" start="00:12:46.100" video="qanda-teaching" id="subtitle"]]
+[[!template text="""Approach to handling EDA.""" start="00:12:49.769" video="qanda-teaching" id="subtitle"]]
+[[!template text="""Oh yeah, with white data sets.""" start="00:12:51.140" video="qanda-teaching" id="subtitle"]]
+[[!template text="""Well, that's a good point.""" start="00:12:56.760" video="qanda-teaching" id="subtitle"]]
+[[!template text="""[Speaker 0]: So Markus, I don't want to put you under too""" start="00:13:01.500" video="qanda-teaching" id="subtitle"]]
+[[!template text="""[Speaker 1]: answer the question. The handling EDA,""" start="00:13:03.840" video="qanda-teaching" id="subtitle"]]
+[[!template text="""I don't know, if you look at the comments,""" start="00:13:07.080" video="qanda-teaching" id="subtitle"]]
+[[!template text="""I think these are on YouTube,""" start="00:13:08.760" video="qanda-teaching" id="subtitle"]]
+[[!template text="""right, at some point, Leo?""" start="00:13:09.960" video="qanda-teaching" id="subtitle"]]
+[[!template text="""[Speaker 0]: much pressure to Oh yes,""" start="00:13:03.260" video="qanda-teaching" id="subtitle"]]
+[[!template text="""they will definitely be on YouTube.""" start="00:13:12.600" video="qanda-teaching" id="subtitle"]]
+[[!template text="""answer the""" start="00:13:14.200" video="qanda-teaching" id="subtitle"]]
+[[!template text="""[Speaker 1]: I'm going to question you asked about the""" start="00:13:13.860" video="qanda-teaching" id="subtitle"]]
+[[!template text="""EDA, that's too long to go into right now,""" start="00:13:15.580" video="qanda-teaching" id="subtitle"]]
+[[!template text="""plus my cat is here. So I'm going to answer""" start="00:13:17.560" video="qanda-teaching" id="subtitle"]]
+[[!template text="""that in the comments, all right?""" start="00:13:21.100" video="qanda-teaching" id="subtitle"]]
+[[!template text="""Start up the conversation.""" start="00:13:23.000" video="qanda-teaching" id="subtitle"]]
+[[!template text="""Yes, I'm going to post that in the comments""" start="00:13:24.960" video="qanda-teaching" id="subtitle"]]
+[[!template text="""as well.""" start="00:13:27.800" video="qanda-teaching" id="subtitle"]]
+[[!template text="""[Speaker 0]: Sure, but Also, just to be clear,""" start="00:13:29.320" video="qanda-teaching" id="subtitle"]]
+[[!template text="""Marcus, you're going to continue the""" start="00:13:31.500" video="qanda-teaching" id="subtitle"]]
+[[!template text="""discussion. It's just a stream that will be""" start="00:13:32.640" video="qanda-teaching" id="subtitle"]]
+[[!template text="""moving on to the next talk in about 50""" start="00:13:35.440" video="qanda-teaching" id="subtitle"]]
+[[!template text="""seconds. Marcus, feel free to keep answering""" start="00:13:37.160" video="qanda-teaching" id="subtitle"]]
+[[!template text="""questions inside this room.""" start="00:13:39.380" video="qanda-teaching" id="subtitle"]]
+[[!template text="""You also have people, we're going to check""" start="00:13:40.760" video="qanda-teaching" id="subtitle"]]
+[[!template text="""aside with the stream,""" start="00:13:42.840" video="qanda-teaching" id="subtitle"]]
+[[!template text="""we have a number of people in the room.""" start="00:13:44.540" video="qanda-teaching" id="subtitle"]]
+[[!template text="""You can see them on the left on the button""" start="00:13:46.280" video="qanda-teaching" id="subtitle"]]
+[[!template text="""who are probably going to unmute themselves""" start="00:13:48.640" video="qanda-teaching" id="subtitle"]]
+[[!template text="""and ask you questions.""" start="00:13:51.460" video="qanda-teaching" id="subtitle"]]
+[[!template text="""So feel free to stay in the room,""" start="00:13:52.740" video="qanda-teaching" id="subtitle"]]
+[[!template text="""answer as lengthy as you want the questions""" start="00:13:54.720" video="qanda-teaching" id="subtitle"]]
+[[!template text="""because that's more content for us and we""" start="00:13:57.100" video="qanda-teaching" id="subtitle"]]
+[[!template text="""love it obviously. But it's just that I""" start="00:13:58.700" video="qanda-teaching" id="subtitle"]]
+[[!template text="""personally will be leaving to take care of""" start="00:14:01.640" video="qanda-teaching" id="subtitle"]]
+[[!template text="""the rest of the talks.""" start="00:14:03.760" video="qanda-teaching" id="subtitle"]]
+[[!template text="""So, Markus, do you have any last words before""" start="00:14:04.960" video="qanda-teaching" id="subtitle"]]
+[[!template text="""we move on?""" start="00:14:06.880" video="qanda-teaching" id="subtitle"]]
+[[!template text="""[Speaker 1]: No, just thank you for this wonderful...""" start="00:14:08.000" video="qanda-teaching" id="subtitle"]]
+[[!template text="""I'm going to copy this.""" start="00:14:09.680" video="qanda-teaching" id="subtitle"]]
+[[!template text="""I don't think I listened to the talk by""" start="00:14:11.660" video="qanda-teaching" id="subtitle"]]
+[[!template text="""Sascha yet, but I'm going to do that because""" start="00:14:13.280" video="qanda-teaching" id="subtitle"]]
+[[!template text="""I really want to copy this conference format.""" start="00:14:15.200" video="qanda-teaching" id="subtitle"]]
+[[!template text="""I think that is the conference format of the""" start="00:14:18.080" video="qanda-teaching" id="subtitle"]]
+[[!template text="""future, using volunteers to put together""" start="00:14:19.860" video="qanda-teaching" id="subtitle"]]
+[[!template text="""conferences. So I can't wait.""" start="00:14:21.820" video="qanda-teaching" id="subtitle"]]
+[[!template text="""Nobody wants to come to Batesville where I""" start="00:14:23.100" video="qanda-teaching" id="subtitle"]]
+[[!template text="""am, but thank you so much.""" start="00:14:24.720" video="qanda-teaching" id="subtitle"]]
+[[!template text="""That was really super professional.""" start="00:14:25.840" video="qanda-teaching" id="subtitle"]]
+[[!template text="""I love that.""" start="00:14:27.180" video="qanda-teaching" id="subtitle"]]
+[[!template text="""[Speaker 0]: Great. Okay, we are almost perfectly on time.""" start="00:14:28.980" video="qanda-teaching" id="subtitle"]]
+[[!template text="""I think we caught up about 1 or 2 seconds""" start="00:14:32.420" video="qanda-teaching" id="subtitle"]]
+[[!template text="""into the last sentence you said but otherwise""" start="00:14:35.420" video="qanda-teaching" id="subtitle"]]
+[[!template text="""we were splendidly on time.""" start="00:14:37.200" video="qanda-teaching" id="subtitle"]]
+[[!template text="""So thank you so much Marcus.""" start="00:14:38.960" video="qanda-teaching" id="subtitle"]]
+[[!template text="""[Speaker 1]: You're welcome. So I wanted to say a little""" start="00:14:40.440" video="qanda-teaching" id="subtitle"]]
+[[!template text="""bit about that question about handling EDA.""" start="00:14:43.140" video="qanda-teaching" id="subtitle"]]
+[[!template text="""[Speaker 0]: Can you see the chat on the left?""" start="00:14:51.220" video="qanda-teaching" id="subtitle"]]
+[[!template text="""Because people have started asking questions""" start="00:14:52.960" video="qanda-teaching" id="subtitle"]]
+[[!template text="""on the left. Can you see the chat?""" start="00:14:54.720" video="qanda-teaching" id="subtitle"]]
+[[!template text="""[Speaker 1]: I mean I used email. Sorry,""" start="00:14:49.460" video="qanda-teaching" id="subtitle"]]
+[[!template text="""[Speaker 0]: So you've got multiple avenues for questions.""" start="00:14:58.860" video="qanda-teaching" id="subtitle"]]
+[[!template text="""[Speaker 2]: You can""" start="00:15:01.020" video="qanda-teaching" id="subtitle"]]
+[[!template text="""[Speaker 0]: still answer questions in the chat.""" start="00:15:01.166" video="qanda-teaching" id="subtitle"]]
+[[!template text="""[Speaker 1]: sorry, sorry. Okay, I'm just going to go into""" start="00:14:57.053" video="qanda-teaching" id="subtitle"]]
+[[!template text="""that. Yeah, that's fine.""" start="00:15:03.760" video="qanda-teaching" id="subtitle"]]
+[[!template text="""[Speaker 0]: Sure, I'll need to go now.""" start="00:15:05.240" video="qanda-teaching" id="subtitle"]]
+[[!template text="""So Marcus, have a great day and I'll probably""" start="00:15:06.760" video="qanda-teaching" id="subtitle"]]
+[[!template text="""see you later.""" start="00:15:08.560" video="qanda-teaching" id="subtitle"]]
+[[!template text="""[Speaker 1]: Yeah, thank you. Sorry.""" start="00:15:10.160" video="qanda-teaching" id="subtitle"]]
+[[!template text="""Bye bye. There was a question about the,""" start="00:15:13.140" video="qanda-teaching" id="subtitle"]]
+[[!template text="""I wanted to ask the answer the question about""" start="00:15:15.620" video="qanda-teaching" id="subtitle"]]
+[[!template text="""EDA, large data sets. So,""" start="00:15:17.560" video="qanda-teaching" id="subtitle"]]
+[[!template text="""I mean, I teach undergraduate now,""" start="00:15:21.760" video="qanda-teaching" id="subtitle"]]
+[[!template text="""so there's a limited number of courses,""" start="00:15:25.080" video="qanda-teaching" id="subtitle"]]
+[[!template text="""like where I use, actually have big data""" start="00:15:28.660" video="qanda-teaching" id="subtitle"]]
+[[!template text="""issues. And I mean I'm not saying that I'm""" start="00:15:32.360" video="qanda-teaching" id="subtitle"]]
+[[!template text="""not that I don't run into performance issues""" start="00:15:36.100" video="qanda-teaching" id="subtitle"]]
+[[!template text="""with Emacs. I obviously do.""" start="00:15:38.760" video="qanda-teaching" id="subtitle"]]
+[[!template text="""But like the performance issues in Emacs are""" start="00:15:40.680" video="qanda-teaching" id="subtitle"]]
+[[!template text="""comparable to performance issues for example""" start="00:15:43.680" video="qanda-teaching" id="subtitle"]]
+[[!template text="""when using R. In R everything is in memory So""" start="00:15:45.780" video="qanda-teaching" id="subtitle"]]
+[[!template text="""you are limited to the available,""" start="00:15:49.640" video="qanda-teaching" id="subtitle"]]
+[[!template text="""what is it, 2 gigabyte or whatever memory of""" start="00:15:52.840" video="qanda-teaching" id="subtitle"]]
+[[!template text="""your computer. So you would have to find""" start="00:15:56.020" video="qanda-teaching" id="subtitle"]]
+[[!template text="""other infrastructure solutions anyway.""" start="00:15:58.180" video="qanda-teaching" id="subtitle"]]
+[[!template text="""The advantage of using Emacs is that I can,""" start="00:16:00.660" video="qanda-teaching" id="subtitle"]]
+[[!template text="""within 1 Org Mode file,""" start="00:16:05.860" video="qanda-teaching" id="subtitle"]]
+[[!template text="""connect to an external database.""" start="00:16:08.140" video="qanda-teaching" id="subtitle"]]
+[[!template text="""I can even, as probably most of you know,""" start="00:16:11.760" video="qanda-teaching" id="subtitle"]]
+[[!template text="""I can even use it as a text-based web browser""" start="00:16:13.840" video="qanda-teaching" id="subtitle"]]
+[[!template text="""if I want to. So I could look at individual""" start="00:16:17.860" video="qanda-teaching" id="subtitle"]]
+[[!template text="""files. And the other point of EDA of course""" start="00:16:22.940" video="qanda-teaching" id="subtitle"]]
+[[!template text="""is that you're not supposed to look at the""" start="00:16:26.820" video="qanda-teaching" id="subtitle"]]
+[[!template text="""tables. You're supposed to get the basic""" start="00:16:30.640" video="qanda-teaching" id="subtitle"]]
+[[!template text="""frame of your data. Is there a header?""" start="00:16:38.620" video="qanda-teaching" id="subtitle"]]
+[[!template text="""What's the approximate size and stuff like""" start="00:16:41.460" video="qanda-teaching" id="subtitle"]]
+[[!template text="""that? And then you're supposed to import it""" start="00:16:43.780" video="qanda-teaching" id="subtitle"]]
+[[!template text="""into a data frame ideally,""" start="00:16:45.940" video="qanda-teaching" id="subtitle"]]
+[[!template text="""at least in portions. And I don't think,""" start="00:16:47.960" video="qanda-teaching" id="subtitle"]]
+[[!template text="""yeah, so that's it. But the full answer is""" start="00:16:53.240" video="qanda-teaching" id="subtitle"]]
+[[!template text="""that I have not done big data analysis in""" start="00:16:56.260" video="qanda-teaching" id="subtitle"]]
+[[!template text="""Emacs. So that's actually a really nice""" start="00:16:59.980" video="qanda-teaching" id="subtitle"]]
+[[!template text="""extension. I'm going to write that down as a""" start="00:17:02.380" video="qanda-teaching" id="subtitle"]]
+[[!template text="""thing to talk about in some future talk.""" start="00:17:06.060" video="qanda-teaching" id="subtitle"]]
+[[!template text="""Okay, so ADA with big data.""" start="00:17:08.260" video="qanda-teaching" id="subtitle"]]
+[[!template text="""Even though interesting would be to know what""" start="00:17:11.599" video="qanda-teaching" id="subtitle"]]
+[[!template text="""kind of size of data you're actually talking""" start="00:17:13.940" video="qanda-teaching" id="subtitle"]]
+[[!template text="""about. So I don't know,""" start="00:17:16.560" video="qanda-teaching" id="subtitle"]]
+[[!template text="""what is it, upwards of 1 terabyte or""" start="00:17:20.920" video="qanda-teaching" id="subtitle"]]
+[[!template text="""something like that, I don't know.""" start="00:17:25.940" video="qanda-teaching" id="subtitle"]]
+[[!template text="""That'd be interesting to know.""" start="00:17:27.520" video="qanda-teaching" id="subtitle"]]
+[[!template text="""Haven't done that in class.""" start="00:17:31.560" video="qanda-teaching" id="subtitle"]]
+[[!template text="""So there's another question.""" start="00:17:39.240" video="qanda-teaching" id="subtitle"]]
+[[!template text="""Proportion of students that you think would""" start="00:17:41.240" video="qanda-teaching" id="subtitle"]]
+[[!template text="""keep on using Emacs after your course?""" start="00:17:43.020" video="qanda-teaching" id="subtitle"]]
+[[!template text="""That's not a difficult question,""" start="00:17:44.820" video="qanda-teaching" id="subtitle"]]
+[[!template text="""because as I said, I have very small classes.""" start="00:17:46.000" video="qanda-teaching" id="subtitle"]]
+[[!template text="""I've been here since 2 years.""" start="00:17:47.880" video="qanda-teaching" id="subtitle"]]
+[[!template text="""So I'm in touch with almost all the students.""" start="00:17:49.200" video="qanda-teaching" id="subtitle"]]
+[[!template text="""In fact, I'm getting them work after school.""" start="00:17:51.580" video="qanda-teaching" id="subtitle"]]
+[[!template text="""So that's really cool.""" start="00:17:54.760" video="qanda-teaching" id="subtitle"]]
+[[!template text="""And everybody who took to Emacs really""" start="00:17:56.200" video="qanda-teaching" id="subtitle"]]
+[[!template text="""seriously, so probably about 25% or so keep""" start="00:18:00.660" video="qanda-teaching" id="subtitle"]]
+[[!template text="""using Emacs after, afterwards.""" start="00:18:03.900" video="qanda-teaching" id="subtitle"]]
+[[!template text="""I mean, even in the job,""" start="00:18:06.560" video="qanda-teaching" id="subtitle"]]
+[[!template text="""right, in the professional field.""" start="00:18:08.360" video="qanda-teaching" id="subtitle"]]
+[[!template text="""Who, those who keep using Emacs after the""" start="00:18:10.680" video="qanda-teaching" id="subtitle"]]
+[[!template text="""course, I think the number is greater,""" start="00:18:13.080" video="qanda-teaching" id="subtitle"]]
+[[!template text="""but I have not followed up on that.""" start="00:18:15.180" video="qanda-teaching" id="subtitle"]]
+[[!template text="""I have to, my guess is more than half,""" start="00:18:16.920" video="qanda-teaching" id="subtitle"]]
+[[!template text="""I would say, half or more than half.""" start="00:18:23.140" video="qanda-teaching" id="subtitle"]]
+[[!template text="""Oh, Aaron, thank you so much.""" start="00:18:26.660" video="qanda-teaching" id="subtitle"]]
+[[!template text="""That's very sweet. But I didn't think the""" start="00:18:27.880" video="qanda-teaching" id="subtitle"]]
+[[!template text="""presentation was great.""" start="00:18:31.320" video="qanda-teaching" id="subtitle"]]
+[[!template text="""I was thinking about redoing it,""" start="00:18:32.300" video="qanda-teaching" id="subtitle"]]
+[[!template text="""but this is actually the first take.""" start="00:18:33.840" video="qanda-teaching" id="subtitle"]]
+[[!template text="""It was late, I had lots of other stuff to do.""" start="00:18:36.280" video="qanda-teaching" id="subtitle"]]
+[[!template text="""I think what I'm more interested in than""" start="00:18:40.840" video="qanda-teaching" id="subtitle"]]
+[[!template text="""papers is probably this idea of making""" start="00:18:44.700" video="qanda-teaching" id="subtitle"]]
+[[!template text="""Emacs-based data science videos because there""" start="00:18:48.320" video="qanda-teaching" id="subtitle"]]
+[[!template text="""aren't many out there.""" start="00:18:51.020" video="qanda-teaching" id="subtitle"]]
+[[!template text="""Most of the people who do,""" start="00:18:52.120" video="qanda-teaching" id="subtitle"]]
+[[!template text="""and computer science, most people who do that""" start="00:18:54.920" video="qanda-teaching" id="subtitle"]]
+[[!template text="""are not either developers and certainly not""" start="00:18:57.240" video="qanda-teaching" id="subtitle"]]
+[[!template text="""teachers. So I think that's a good idea.""" start="00:18:59.240" video="qanda-teaching" id="subtitle"]]
+[[!template text="""I'm gonna pick that up.""" start="00:19:02.080" video="qanda-teaching" id="subtitle"]]
+[[!template text="""So to do more Remax based data science videos""" start="00:19:03.860" video="qanda-teaching" id="subtitle"]]
+[[!template text="""Is there anything else?""" start="00:19:19.120" video="qanda-teaching" id="subtitle"]]
+[[!template text="""More people. There are some people here in""" start="00:19:20.800" video="qanda-teaching" id="subtitle"]]
+[[!template text="""the room still.""" start="00:19:22.360" video="qanda-teaching" id="subtitle"]]
+[[!template text="""[Speaker 2]: If you do a PSVL on work.""" start="00:19:23.800" video="qanda-teaching" id="subtitle"]]
+[[!template text="""What? Or wiki. What's my YouTube channel?""" start="00:19:27.040" video="qanda-teaching" id="subtitle"]]
+[[!template text="""[Speaker 1]: Oh, yeah, I'm going to give you the,""" start="00:19:34.460" video="qanda-teaching" id="subtitle"]]
+[[!template text="""I've got a bunch of different YouTube""" start="00:19:36.560" video="qanda-teaching" id="subtitle"]]
+[[!template text="""channels. I'm going to put them in the""" start="00:19:38.520" video="qanda-teaching" id="subtitle"]]
+[[!template text="""comments to my talk. Hold on,""" start="00:19:40.720" video="qanda-teaching" id="subtitle"]]
+[[!template text="""the 1 where I have the latest Emacs videos,""" start="00:19:43.660" video="qanda-teaching" id="subtitle"]]
+[[!template text="""you find my name, there's nobody in the world""" start="00:19:46.640" video="qanda-teaching" id="subtitle"]]
+[[!template text="""with my name. So if you look for Gerten Krag""" start="00:19:48.740" video="qanda-teaching" id="subtitle"]]
+[[!template text="""on YouTube, then you will find it.""" start="00:19:52.120" video="qanda-teaching" id="subtitle"]]
+[[!template text="""But I got a bunch of them.""" start="00:19:59.120" video="qanda-teaching" id="subtitle"]]
+[[!template text="""Hold on, I'm going to give you the...""" start="00:20:00.300" video="qanda-teaching" id="subtitle"]]
+[[!template text="""My channel. Okay, This 1 has only got a few""" start="00:20:13.260" video="qanda-teaching" id="subtitle"]]
+[[!template text="""videos. But so there's 1 with a lot more.""" start="00:20:20.220" video="qanda-teaching" id="subtitle"]]
+[[!template text="""Few recent videos. And I'm going to post""" start="00:20:25.380" video="qanda-teaching" id="subtitle"]]
+[[!template text="""more. Other ones in the comments of this""" start="00:20:32.740" video="qanda-teaching" id="subtitle"]]
+[[!template text="""video. Okay, what else?""" start="00:20:41.320" video="qanda-teaching" id="subtitle"]]
+[[!template text="""I'm trying to find my way back to the button.""" start="00:20:48.780" video="qanda-teaching" id="subtitle"]]
+[[!template text="""Okay, cool. Oh, yes, thank you.""" start="00:20:55.440" video="qanda-teaching" id="subtitle"]]
+[[!template text="""I will. That's very good.""" start="00:20:59.200" video="qanda-teaching" id="subtitle"]]
+[[!template text="""Thank you so much. Of course,""" start="00:21:01.500" video="qanda-teaching" id="subtitle"]]
+[[!template text="""I use Vork. I hadn't even thought of it.""" start="00:21:03.120" video="qanda-teaching" id="subtitle"]]
+[[!template text="""Very good. It's interesting,""" start="00:21:06.360" video="qanda-teaching" id="subtitle"]]
+[[!template text="""that's something that comes to my mind.""" start="00:21:15.860" video="qanda-teaching" id="subtitle"]]
+[[!template text="""When I was a young student,""" start="00:21:18.120" video="qanda-teaching" id="subtitle"]]
+[[!template text="""right, people who used Emacs and the web""" start="00:21:19.740" video="qanda-teaching" id="subtitle"]]
+[[!template text="""wasn't particularly large.""" start="00:21:24.020" video="qanda-teaching" id="subtitle"]]
+[[!template text="""So the volunteers would automatically make""" start="00:21:25.960" video="qanda-teaching" id="subtitle"]]
+[[!template text="""videos but not for commercial purposes.""" start="00:21:29.440" video="qanda-teaching" id="subtitle"]]
+[[!template text="""Now you have an army of people who make""" start="00:21:31.560" video="qanda-teaching" id="subtitle"]]
+[[!template text="""commercial videos and the videos are usually""" start="00:21:34.740" video="qanda-teaching" id="subtitle"]]
+[[!template text="""good for the first 10% of every content,""" start="00:21:38.240" video="qanda-teaching" id="subtitle"]]
+[[!template text="""but as soon as it gets a little more""" start="00:21:41.040" video="qanda-teaching" id="subtitle"]]
+[[!template text="""difficult, they either don't know what to do""" start="00:21:42.540" video="qanda-teaching" id="subtitle"]]
+[[!template text="""anymore or they don't do it because it's not""" start="00:21:44.760" video="qanda-teaching" id="subtitle"]]
+[[!template text="""commercially viable. The number of people who""" start="00:21:48.600" video="qanda-teaching" id="subtitle"]]
+[[!template text="""move on is gets smaller and smaller and""" start="00:21:50.980" video="qanda-teaching" id="subtitle"]]
+[[!template text="""smaller. So there's no commerce anymore.""" start="00:21:53.720" video="qanda-teaching" id="subtitle"]]
+[[!template text="""But when I was a student,""" start="00:21:55.960" video="qanda-teaching" id="subtitle"]]
+[[!template text="""pretty much all the documentation everywhere""" start="00:21:58.740" video="qanda-teaching" id="subtitle"]]
+[[!template text="""was created by volunteers,""" start="00:22:01.100" video="qanda-teaching" id="subtitle"]]
+[[!template text="""just like this conference or like anything in""" start="00:22:02.500" video="qanda-teaching" id="subtitle"]]
+[[!template text="""org mode. And that doesn't seem to be much of""" start="00:22:04.840" video="qanda-teaching" id="subtitle"]]
+[[!template text="""a trend anymore, but maybe we can resurrect""" start="00:22:09.520" video="qanda-teaching" id="subtitle"]]
+[[!template text="""it. So yes, I'm definitely gonna contribute""" start="00:22:12.860" video="qanda-teaching" id="subtitle"]]
+[[!template text="""to that. Multiple people are typing here.""" start="00:22:22.960" video="qanda-teaching" id="subtitle"]]
+[[!template text="""Oh, sorry. Yes. Thank you so much.""" start="00:22:30.280" video="qanda-teaching" id="subtitle"]]
+[[!template text="""I'm gonna put that, I'm gonna rectify that in""" start="00:22:37.060" video="qanda-teaching" id="subtitle"]]
+[[!template text="""the comment. Having said that,""" start="00:22:40.920" video="qanda-teaching" id="subtitle"]]
+[[!template text="""I am not 100% sure that I didn't lie here.""" start="00:22:45.260" video="qanda-teaching" id="subtitle"]]
+[[!template text="""May just be because I didn't have much time""" start="00:22:50.500" video="qanda-teaching" id="subtitle"]]
+[[!template text="""to put the presentation together.""" start="00:22:52.760" video="qanda-teaching" id="subtitle"]]
+[[!template text="""And it's perfectly possible that that's""" start="00:22:54.340" video="qanda-teaching" id="subtitle"]]
+[[!template text="""actually Google slides and not all reveal.""" start="00:22:56.820" video="qanda-teaching" id="subtitle"]]
+[[!template text="""In the classroom when I present and just do""" start="00:23:00.040" video="qanda-teaching" id="subtitle"]]
+[[!template text="""lectures, I always do reveal,""" start="00:23:02.360" video="qanda-teaching" id="subtitle"]]
+[[!template text="""but most of the time I do a tree slide.""" start="00:23:04.600" video="qanda-teaching" id="subtitle"]]
+[[!template text="""That's the quickest way to do it for me.""" start="00:23:08.640" video="qanda-teaching" id="subtitle"]]
+[[!template text="""So, so presentation. Hold on,""" start="00:23:10.840" video="qanda-teaching" id="subtitle"]]
+[[!template text="""Let me just copy this 1.""" start="00:23:15.060" video="qanda-teaching" id="subtitle"]]
+[[!template text="""Make sure that this doesn't get lost.""" start="00:23:17.960" video="qanda-teaching" id="subtitle"]]
+[[!template text="""Thank you so much for that.""" start="00:23:21.880" video="qanda-teaching" id="subtitle"]]
+[[!template text="""And presentations in class.""" start="00:23:24.280" video="qanda-teaching" id="subtitle"]]
+[[!template text="""I use sometimes org-present,""" start="00:23:28.780" video="qanda-teaching" id="subtitle"]]
+[[!template text="""but there are issues with the font sometimes.""" start="00:23:30.660" video="qanda-teaching" id="subtitle"]]
+[[!template text="""I use Treeslide most of the time and Org""" start="00:23:33.740" video="qanda-teaching" id="subtitle"]]
+[[!template text="""[Speaker 2]: tool.""" start="00:23:44.240" video="qanda-teaching" id="subtitle"]]
+[[!template text="""[Speaker 1]: Reveal. But this 1 is my top Of course,""" start="00:23:36.960" video="qanda-teaching" id="subtitle"]]
+[[!template text="""this is not org, so forget about that.""" start="00:23:46.780" video="qanda-teaching" id="subtitle"]]
+[[!template text="""Okay. Yeah, so you can send me your,""" start="00:24:02.660" video="qanda-teaching" id="subtitle"]]
+[[!template text="""you've got my email, I think,""" start="00:24:10.680" video="qanda-teaching" id="subtitle"]]
+[[!template text="""on the end, if you're interested in following""" start="00:24:12.160" video="qanda-teaching" id="subtitle"]]
+[[!template text="""up or letting me know about your stuff.""" start="00:24:14.060" video="qanda-teaching" id="subtitle"]]
+[[!template text="""It might be interesting to,""" start="00:24:16.680" video="qanda-teaching" id="subtitle"]]
+[[!template text="""I don't know, might be interesting to put""" start="00:24:18.480" video="qanda-teaching" id="subtitle"]]
+[[!template text="""together a conference or a little seminar""" start="00:24:20.040" video="qanda-teaching" id="subtitle"]]
+[[!template text="""just for educators.""" start="00:24:22.040" video="qanda-teaching" id="subtitle"]]
+[[!template text="""DF is still typing, I'm waiting.""" start="00:24:37.500" video="qanda-teaching" id="subtitle"]]
+[[!template text="""I'm waiting.""" start="00:24:39.025" video="qanda-teaching" id="subtitle"]]
+[[!template text="""[Speaker 2]: Actually, our mod maintainer,""" start="00:24:44.840" video="qanda-teaching" id="subtitle"]]
+[[!template text="""Bastien, was talking about possibility to""" start="00:24:46.700" video="qanda-teaching" id="subtitle"]]
+[[!template text="""have just org mod conference.""" start="00:24:52.340" video="qanda-teaching" id="subtitle"]]
+[[!template text="""But the question is, is it worth making a""" start="00:24:55.760" video="qanda-teaching" id="subtitle"]]
+[[!template text="""[Speaker 1]: Yeah. A whole separate 1 what?""" start="00:24:54.780" video="qanda-teaching" id="subtitle"]]
+[[!template text="""[Speaker 2]: whole separate 1? A whole separate org""" start="00:24:59.180" video="qanda-teaching" id="subtitle"]]
+[[!template text="""[Speaker 1]: Oh, I see. Yeah, probably would be.""" start="00:25:07.120" video="qanda-teaching" id="subtitle"]]
+[[!template text="""Actually.""" start="00:25:10.840" video="qanda-teaching" id="subtitle"]]
+[[!template text="""[Speaker 2]: dedicated conference. It's just like you see""" start="00:25:05.020" video="qanda-teaching" id="subtitle"]]
+[[!template text="""how EmacsConf is well done.""" start="00:25:13.940" video="qanda-teaching" id="subtitle"]]
+[[!template text="""So it's like creating anything that has good""" start="00:25:16.800" video="qanda-teaching" id="subtitle"]]
+[[!template text="""[Speaker 1]: Yes. No, I think that's a good idea.""" start="00:25:22.500" video="qanda-teaching" id="subtitle"]]
+[[!template text="""Yeah, I mean.""" start="00:25:25.640" video="qanda-teaching" id="subtitle"]]
+[[!template text="""[Speaker 2]: is tricky. I mean, Okay,""" start="00:25:19.340" video="qanda-teaching" id="subtitle"]]
+[[!template text="""it's anywhere, like half of Emacs is anywhere""" start="00:25:30.480" video="qanda-teaching" id="subtitle"]]
+[[!template text="""remote. So it's almost the same.""" start="00:25:32.920" video="qanda-teaching" id="subtitle"]]
+[[!template text="""[Speaker 1]: Yeah. Well, I suppose at this point,""" start="00:25:37.500" video="qanda-teaching" id="subtitle"]]
+[[!template text="""I don't know if that's what you mean.""" start="00:25:40.200" video="qanda-teaching" id="subtitle"]]
+[[!template text="""Org Mode is probably what attracts people to""" start="00:25:41.520" video="qanda-teaching" id="subtitle"]]
+[[!template text="""Emacs in the first place.""" start="00:25:45.020" video="qanda-teaching" id="subtitle"]]
+[[!template text="""Like, I suppose Org Roam is the,""" start="00:25:47.040" video="qanda-teaching" id="subtitle"]]
+[[!template text="""maybe the biggest 1 for people even outside""" start="00:25:51.260" video="qanda-teaching" id="subtitle"]]
+[[!template text="""of computer science. I use Org.ROM""" start="00:25:54.600" video="qanda-teaching" id="subtitle"]]
+[[!template text="""for everything. But there are...""" start="00:25:58.280" video="qanda-teaching" id="subtitle"]]
+[[!template text="""I mean, the thresholds...""" start="00:26:04.760" video="qanda-teaching" id="subtitle"]]
+[[!template text="""I think that the maintainer or maybe the""" start="00:26:06.220" video="qanda-teaching" id="subtitle"]]
+[[!template text="""creator of Org.MODE has claimed and said for""" start="00:26:07.900" video="qanda-teaching" id="subtitle"]]
+[[!template text="""many years that Org Mode itself doesn't""" start="00:26:10.520" video="qanda-teaching" id="subtitle"]]
+[[!template text="""actually necessarily need Emacs.""" start="00:26:13.140" video="qanda-teaching" id="subtitle"]]
+[[!template text="""You can have it as a completely separate""" start="00:26:14.680" video="qanda-teaching" id="subtitle"]]
+[[!template text="""application as well. But I,""" start="00:26:17.360" video="qanda-teaching" id="subtitle"]]
+[[!template text="""for a number of reasons,""" start="00:26:19.760" video="qanda-teaching" id="subtitle"]]
+[[!template text="""I don't like that. I really like the idea to""" start="00:26:21.040" video="qanda-teaching" id="subtitle"]]
+[[!template text="""[Speaker 2]: why- The current strategy is that It has to""" start="00:26:28.434" video="qanda-teaching" id="subtitle"]]
+[[!template text="""be Emacs because the configurability is 1 of""" start="00:26:30.620" video="qanda-teaching" id="subtitle"]]
+[[!template text="""the strong points anyway.""" start="00:26:33.580" video="qanda-teaching" id="subtitle"]]
+[[!template text="""[Speaker 1]: have it inside Emacs. The reason That's true.""" start="00:26:23.440" video="qanda-teaching" id="subtitle"]]
+[[!template text="""[Speaker 2]: You cannot make a separate application.""" start="00:26:35.820" video="qanda-teaching" id="subtitle"]]
+[[!template text="""No,""" start="00:26:37.840" video="qanda-teaching" id="subtitle"]]
+[[!template text="""[Speaker 1]: that's true. I was going to say that.""" start="00:26:38.080" video="qanda-teaching" id="subtitle"]]
+[[!template text="""The thing is you use the flexibility.""" start="00:26:39.800" video="qanda-teaching" id="subtitle"]]
+[[!template text="""Plus, you also use the,""" start="00:26:41.680" video="qanda-teaching" id="subtitle"]]
+[[!template text="""I don't know if that's the right word,""" start="00:26:43.440" video="qanda-teaching" id="subtitle"]]
+[[!template text="""but you use there's something about the free""" start="00:26:46.080" video="qanda-teaching" id="subtitle"]]
+[[!template text="""ideology of Emacs that is what attracted me""" start="00:26:48.760" video="qanda-teaching" id="subtitle"]]
+[[!template text="""to it in the first place when I was younger""" start="00:26:52.600" video="qanda-teaching" id="subtitle"]]
+[[!template text="""and that I find even more important now.""" start="00:26:56.460" video="qanda-teaching" id="subtitle"]]
+[[!template text="""So what they say the community aspect,""" start="00:27:00.765" video="qanda-teaching" id="subtitle"]]
+[[!template text="""the reason, the main reason why Python is so""" start="00:27:06.220" video="qanda-teaching" id="subtitle"]]
+[[!template text="""big today, really. So yeah.""" start="00:27:08.800" video="qanda-teaching" id="subtitle"]]
+[[!template text="""[Speaker 2]: But in terms of going out of Emacs,""" start="00:27:15.060" video="qanda-teaching" id="subtitle"]]
+[[!template text="""it's org syntax that is supposed to be like""" start="00:27:17.860" video="qanda-teaching" id="subtitle"]]
+[[!template text="""breaking out of Emacs.""" start="00:27:21.820" video="qanda-teaching" id="subtitle"]]
+[[!template text="""So like there's a plan to lay out the actual""" start="00:27:24.960" video="qanda-teaching" id="subtitle"]]
+[[!template text="""standard document so that you can register""" start="00:27:28.860" video="qanda-teaching" id="subtitle"]]
+[[!template text="""the format officially.""" start="00:27:31.440" video="qanda-teaching" id="subtitle"]]
+[[!template text="""[Speaker 1]: Yeah. Yeah, I think I've heard that too.""" start="00:27:23.860" video="qanda-teaching" id="subtitle"]]
+[[!template text="""I've not followed up on it much.""" start="00:27:34.760" video="qanda-teaching" id="subtitle"]]
+[[!template text="""I don't know what the,""" start="00:27:36.880" video="qanda-teaching" id="subtitle"]]
+[[!template text="""I mean, that probably would,""" start="00:27:39.400" video="qanda-teaching" id="subtitle"]]
+[[!template text="""it would strength, very likely,""" start="00:27:41.480" video="qanda-teaching" id="subtitle"]]
+[[!template text="""if you do that, it would at least for a short""" start="00:27:43.040" video="qanda-teaching" id="subtitle"]]
+[[!template text="""time, strengthen org mode and weaken emacs.""" start="00:27:45.100" video="qanda-teaching" id="subtitle"]]
+[[!template text="""I don't know what other examples,""" start="00:27:49.420" video="qanda-teaching" id="subtitle"]]
+[[!template text="""if there are other examples of applications""" start="00:27:51.580" video="qanda-teaching" id="subtitle"]]
+[[!template text="""pulled out of IDEs like that.""" start="00:27:55.120" video="qanda-teaching" id="subtitle"]]
+[[!template text="""I'm not aware of any others.""" start="00:27:57.840" video="qanda-teaching" id="subtitle"]]
+[[!template text="""[Speaker 2]: Actually, people are trying to make""" start="00:28:00.300" video="qanda-teaching" id="subtitle"]]
+[[!template text="""three-seater drama. People are trying to make""" start="00:28:02.680" video="qanda-teaching" id="subtitle"]]
+[[!template text="""like some external parsers,""" start="00:28:04.920" video="qanda-teaching" id="subtitle"]]
+[[!template text="""a lot of them. And a lot of stuff is done on""" start="00:28:06.460" video="qanda-teaching" id="subtitle"]]
+[[!template text="""mobile part. I can draw it to iOS,""" start="00:28:10.320" video="qanda-teaching" id="subtitle"]]
+[[!template text="""especially recently. So things that are Emacs""" start="00:28:13.440" video="qanda-teaching" id="subtitle"]]
+[[!template text="""independent are demanded.""" start="00:28:17.780" video="qanda-teaching" id="subtitle"]]
+[[!template text="""[Speaker 1]: Okay, yeah. I have no doubt that there is a""" start="00:28:20.660" video="qanda-teaching" id="subtitle"]]
+[[!template text="""[Speaker 2]: Especially in the environment,""" start="00:28:25.440" video="qanda-teaching" id="subtitle"]]
+[[!template text="""like every time.""" start="00:28:27.040" video="qanda-teaching" id="subtitle"]]
+[[!template text="""[Speaker 1]: demand. Yeah. I mean, I didn't get into that""" start="00:28:23.040" video="qanda-teaching" id="subtitle"]]
+[[!template text="""very much. I have some of my students have 0""" start="00:28:30.680" video="qanda-teaching" id="subtitle"]]
+[[!template text="""affinity with computers.""" start="00:28:35.020" video="qanda-teaching" id="subtitle"]]
+[[!template text="""They really don't know their way around their""" start="00:28:38.240" video="qanda-teaching" id="subtitle"]]
+[[!template text="""computers at all. And so for them,""" start="00:28:39.900" video="qanda-teaching" id="subtitle"]]
+[[!template text="""It is quite important to learn how to find""" start="00:28:46.860" video="qanda-teaching" id="subtitle"]]
+[[!template text="""your way around Emacs because it's like a""" start="00:28:51.440" video="qanda-teaching" id="subtitle"]]
+[[!template text="""little operating system,""" start="00:28:56.520" video="qanda-teaching" id="subtitle"]]
+[[!template text="""but it's not. It's an operating system""" start="00:28:57.920" video="qanda-teaching" id="subtitle"]]
+[[!template text="""without much of the obscurity.""" start="00:29:00.300" video="qanda-teaching" id="subtitle"]]
+[[!template text="""And the alternative to that would be to""" start="00:29:05.080" video="qanda-teaching" id="subtitle"]]
+[[!template text="""simply let them work only on the command""" start="00:29:07.960" video="qanda-teaching" id="subtitle"]]
+[[!template text="""line, which is another possibility.""" start="00:29:10.520" video="qanda-teaching" id="subtitle"]]
+[[!template text="""But, you know, there of course you are""" start="00:29:13.480" video="qanda-teaching" id="subtitle"]]
+[[!template text="""limited with regard to if you want to swap""" start="00:29:16.160" video="qanda-teaching" id="subtitle"]]
+[[!template text="""languages. So for example,""" start="00:29:20.540" video="qanda-teaching" id="subtitle"]]
+[[!template text="""quite often I find myself in the situation I""" start="00:29:23.940" video="qanda-teaching" id="subtitle"]]
+[[!template text="""teach data science in R and Python and in""" start="00:29:26.000" video="qanda-teaching" id="subtitle"]]
+[[!template text="""Emacs org mode I can demonstrate both of""" start="00:29:28.780" video="qanda-teaching" id="subtitle"]]
+[[!template text="""these side by side in the same file.""" start="00:29:31.520" video="qanda-teaching" id="subtitle"]]
+[[!template text="""And that's a great advantage.""" start="00:29:35.280" video="qanda-teaching" id="subtitle"]]
+[[!template text="""Not to overburden the students when they are""" start="00:29:39.800" video="qanda-teaching" id="subtitle"]]
+[[!template text="""at the beginning with things that you don't""" start="00:29:43.060" video="qanda-teaching" id="subtitle"]]
+[[!template text="""want them to necessarily learn about.""" start="00:29:45.100" video="qanda-teaching" id="subtitle"]]
+[[!template text="""And plus the thing what I like as a graduate""" start="00:29:48.480" video="qanda-teaching" id="subtitle"]]
+[[!template text="""student when I stepped onto Emacs was that it""" start="00:29:51.000" video="qanda-teaching" id="subtitle"]]
+[[!template text="""was infinite possibilities to lose myself in""" start="00:29:54.440" video="qanda-teaching" id="subtitle"]]
+[[!template text="""Emacs and you know go on and learn more stuff""" start="00:30:00.140" video="qanda-teaching" id="subtitle"]]
+[[!template text="""about it. But it's such a long time ago that""" start="00:30:03.060" video="qanda-teaching" id="subtitle"]]
+[[!template text="""I barely dare to mention it anymore.""" start="00:30:07.300" video="qanda-teaching" id="subtitle"]]
+[[!template text="""[Speaker 2]: For command line, actually,""" start="00:30:11.600" video="qanda-teaching" id="subtitle"]]
+[[!template text="""it's since the Jupyter notebooks and that""" start="00:30:12.880" video="qanda-teaching" id="subtitle"]]
+[[!template text="""Google thing they are running.""" start="00:30:17.080" video="qanda-teaching" id="subtitle"]]
+[[!template text="""It's getting so popular that it's clear that""" start="00:30:20.820" video="qanda-teaching" id="subtitle"]]
+[[!template text="""command line is just losing in popularity in""" start="00:30:23.820" video="qanda-teaching" id="subtitle"]]
+[[!template text="""[Speaker 1]: well, yes and no. I mean,""" start="00:30:28.580" video="qanda-teaching" id="subtitle"]]
+[[!template text="""[Speaker 2]: this. Yeah, of course,""" start="00:30:26.760" video="qanda-teaching" id="subtitle"]]
+[[!template text="""Not the usage. People are still using it,""" start="00:30:36.100" video="qanda-teaching" id="subtitle"]]
+[[!template text="""obviously.""" start="00:30:38.400" video="qanda-teaching" id="subtitle"]]
+[[!template text="""[Speaker 1]: I mean, in Google Colab,""" start="00:30:39.520" video="qanda-teaching" id="subtitle"]]
+[[!template text="""only the paid version allows you to go to the""" start="00:30:41.200" video="qanda-teaching" id="subtitle"]]
+[[!template text="""terminal and use the command line.""" start="00:30:43.620" video="qanda-teaching" id="subtitle"]]
+[[!template text="""But of course, the traction,""" start="00:30:46.620" video="qanda-teaching" id="subtitle"]]
+[[!template text="""and I think that's kind of interesting,""" start="00:30:48.580" video="qanda-teaching" id="subtitle"]]
+[[!template text="""1 of the reasons why IPython or any of the""" start="00:30:50.660" video="qanda-teaching" id="subtitle"]]
+[[!template text="""Jupyter notebooks are so cool is because you""" start="00:30:54.680" video="qanda-teaching" id="subtitle"]]
+[[!template text="""can use a lot of shell commands from the""" start="00:30:56.960" video="qanda-teaching" id="subtitle"]]
+[[!template text="""IPython shell. There's a whole bunch of magic""" start="00:31:00.240" video="qanda-teaching" id="subtitle"]]
+[[!template text="""commands which are quite powerful.""" start="00:31:05.080" video="qanda-teaching" id="subtitle"]]
+[[!template text="""I mean the the 1 that comes to mind is time.""" start="00:31:07.040" video="qanda-teaching" id="subtitle"]]
+[[!template text="""The time command for example you know gives""" start="00:31:10.680" video="qanda-teaching" id="subtitle"]]
+[[!template text="""you a really nice performance quick""" start="00:31:12.940" video="qanda-teaching" id="subtitle"]]
+[[!template text="""performance check. There's a bunch of""" start="00:31:15.720" video="qanda-teaching" id="subtitle"]]
+[[!template text="""different, I think probably close to a""" start="00:31:17.660" video="qanda-teaching" id="subtitle"]]
+[[!template text="""hundred magic commands that you can use in""" start="00:31:19.780" video="qanda-teaching" id="subtitle"]]
+[[!template text="""Jupyter. But I don't know JupyterLab too""" start="00:31:22.340" video="qanda-teaching" id="subtitle"]]
+[[!template text="""well, but I noticed that the companies that""" start="00:31:25.600" video="qanda-teaching" id="subtitle"]]
+[[!template text="""do online training, And they are usually the""" start="00:31:28.840" video="qanda-teaching" id="subtitle"]]
+[[!template text="""ones that are closest to what beginners want,""" start="00:31:31.080" video="qanda-teaching" id="subtitle"]]
+[[!template text="""especially in business.""" start="00:31:34.920" video="qanda-teaching" id="subtitle"]]
+[[!template text="""And what those companies do is they,""" start="00:31:36.280" video="qanda-teaching" id="subtitle"]]
+[[!template text="""you know, they take, they take JupyterLab and""" start="00:31:38.560" video="qanda-teaching" id="subtitle"]]
+[[!template text="""turn it into a presentation of their own.""" start="00:31:41.720" video="qanda-teaching" id="subtitle"]]
+[[!template text="""Another 1 is Notable, notable.io.""" start="00:31:43.740" video="qanda-teaching" id="subtitle"]]
+[[!template text="""That's another 1. They took JupyterLab and""" start="00:31:46.840" video="qanda-teaching" id="subtitle"]]
+[[!template text="""turned it into something commercial.""" start="00:31:49.900" video="qanda-teaching" id="subtitle"]]
+[[!template text="""It's boosted up a little bit.""" start="00:31:51.340" video="qanda-teaching" id="subtitle"]]
+[[!template text="""And so the shell inside the JupyterLab has""" start="00:31:55.840" video="qanda-teaching" id="subtitle"]]
+[[!template text="""some of the most more important shell""" start="00:32:00.480" video="qanda-teaching" id="subtitle"]]
+[[!template text="""properties. And so people still use the""" start="00:32:03.120" video="qanda-teaching" id="subtitle"]]
+[[!template text="""command line without knowing that they use""" start="00:32:05.440" video="qanda-teaching" id="subtitle"]]
+[[!template text="""the command line. But I also like doing,""" start="00:32:07.080" video="qanda-teaching" id="subtitle"]]
+[[!template text="""how do I use org-roam?""" start="00:32:13.680" video="qanda-teaching" id="subtitle"]]
+[[!template text="""Well, I use it, I do not have not used it""" start="00:32:19.360" video="qanda-teaching" id="subtitle"]]
+[[!template text="""with the students yet,""" start="00:32:22.020" video="qanda-teaching" id="subtitle"]]
+[[!template text="""only the best students have sort of seen me""" start="00:32:23.000" video="qanda-teaching" id="subtitle"]]
+[[!template text="""use it and copied it. But I use it probably""" start="00:32:25.020" video="qanda-teaching" id="subtitle"]]
+[[!template text="""in a very naive, trivial way.""" start="00:32:29.780" video="qanda-teaching" id="subtitle"]]
+[[!template text="""I can't say that I am,""" start="00:32:32.000" video="qanda-teaching" id="subtitle"]]
+[[!template text="""that I have a very sophisticated use.""" start="00:32:34.300" video="qanda-teaching" id="subtitle"]]
+[[!template text="""I basically, I like the fact that,""" start="00:32:37.200" video="qanda-teaching" id="subtitle"]]
+[[!template text="""I mean, it's built on the original concept of""" start="00:32:39.640" video="qanda-teaching" id="subtitle"]]
+[[!template text="""the, with the German word,""" start="00:32:43.100" video="qanda-teaching" id="subtitle"]]
+[[!template text="""Zettelkasten, right? Which is that you do not""" start="00:32:44.540" video="qanda-teaching" id="subtitle"]]
+[[!template text="""have to think about a taxonomy because as you""" start="00:32:48.280" video="qanda-teaching" id="subtitle"]]
+[[!template text="""move along, your taxonomy changes all the""" start="00:32:50.940" video="qanda-teaching" id="subtitle"]]
+[[!template text="""time. You know, what you think is important""" start="00:32:53.800" video="qanda-teaching" id="subtitle"]]
+[[!template text="""at the beginning, your root node,""" start="00:32:55.580" video="qanda-teaching" id="subtitle"]]
+[[!template text="""as you go along, you realize,""" start="00:32:57.440" video="qanda-teaching" id="subtitle"]]
+[[!template text="""oh, that's not the root node at all.""" start="00:32:58.940" video="qanda-teaching" id="subtitle"]]
+[[!template text="""There's a higher level and a higher level.""" start="00:33:00.680" video="qanda-teaching" id="subtitle"]]
+[[!template text="""And some of the lower levels are at the lower""" start="00:33:02.640" video="qanda-teaching" id="subtitle"]]
+[[!template text="""level, actually the higher level.""" start="00:33:04.740" video="qanda-teaching" id="subtitle"]]
+[[!template text="""So you're beginning to create hierarchies""" start="00:33:06.320" video="qanda-teaching" id="subtitle"]]
+[[!template text="""that are out of date as soon as you create""" start="00:33:10.760" video="qanda-teaching" id="subtitle"]]
+[[!template text="""the hierarchy. So what is the idea of the""" start="00:33:14.340" video="qanda-teaching" id="subtitle"]]
+[[!template text="""tittle custom is that anything that comes to""" start="00:33:16.360" video="qanda-teaching" id="subtitle"]]
+[[!template text="""your mind you can throw in the custom the box""" start="00:33:18.480" video="qanda-teaching" id="subtitle"]]
+[[!template text="""it literally means Box of notes and That's""" start="00:33:21.160" video="qanda-teaching" id="subtitle"]]
+[[!template text="""what I appreciate about it.""" start="00:33:26.580" video="qanda-teaching" id="subtitle"]]
+[[!template text="""So I create a I create a note pretty much for""" start="00:33:27.740" video="qanda-teaching" id="subtitle"]]
+[[!template text="""anything I do, but I've only used it for""" start="00:33:32.920" video="qanda-teaching" id="subtitle"]]
+[[!template text="""about a year and a half or so,""" start="00:33:35.860" video="qanda-teaching" id="subtitle"]]
+[[!template text="""or grown, maybe a year.""" start="00:33:38.220" video="qanda-teaching" id="subtitle"]]
+[[!template text="""So I can see that I'm coming up against the""" start="00:33:40.680" video="qanda-teaching" id="subtitle"]]
+[[!template text="""Zettelkasten or note box problems,""" start="00:33:43.700" video="qanda-teaching" id="subtitle"]]
+[[!template text="""which is that I've got so many notes now that""" start="00:33:47.120" video="qanda-teaching" id="subtitle"]]
+[[!template text="""unless I have clever aliases,""" start="00:33:50.860" video="qanda-teaching" id="subtitle"]]
+[[!template text="""there is a chance that I might forget that I""" start="00:33:54.180" video="qanda-teaching" id="subtitle"]]
+[[!template text="""[Speaker 2]: That's why you need meta notes.""" start="00:33:58.820" video="qanda-teaching" id="subtitle"]]
+[[!template text="""[Speaker 1]: have a note. So I need a- Yes,""" start="00:33:56.680" video="qanda-teaching" id="subtitle"]]
+[[!template text="""[Speaker 2]: In other words, a summarization is important,""" start="00:34:02.780" video="qanda-teaching" id="subtitle"]]
+[[!template text="""no matter what system you use.""" start="00:34:04.940" video="qanda-teaching" id="subtitle"]]
+[[!template text="""[Speaker 1]: yes. But what I'm trying to say is that's a""" start="00:34:01.740" video="qanda-teaching" id="subtitle"]]
+[[!template text="""different approach than hierarchies,""" start="00:34:09.739" video="qanda-teaching" id="subtitle"]]
+[[!template text="""right? It's the same, it's the same,""" start="00:34:11.480" video="qanda-teaching" id="subtitle"]]
+[[!template text="""it's the same principle as a relational""" start="00:34:13.620" video="qanda-teaching" id="subtitle"]]
+[[!template text="""database versus a hierarchical database.""" start="00:34:16.080" video="qanda-teaching" id="subtitle"]]
+[[!template text="""Same thing. So, yeah, and I've not used that.""" start="00:34:19.120" video="qanda-teaching" id="subtitle"]]
+[[!template text="""I've not really used, actually I have cut""" start="00:34:23.360" video="qanda-teaching" id="subtitle"]]
+[[!template text="""meta notes, of course I do.""" start="00:34:25.400" video="qanda-teaching" id="subtitle"]]
+[[!template text="""So notes that point to other notes.""" start="00:34:27.100" video="qanda-teaching" id="subtitle"]]
+[[!template text="""Yes, of course. I use those.""" start="00:34:29.487" video="qanda-teaching" id="subtitle"]]
+[[!template text="""I have not taught that part to the students""" start="00:34:35.412" video="qanda-teaching" id="subtitle"]]
+[[!template text="""because I do project work with the students,""" start="00:34:38.880" video="qanda-teaching" id="subtitle"]]
+[[!template text="""but there's only so much time.""" start="00:34:45.040" video="qanda-teaching" id="subtitle"]]
+[[!template text="""I'm already, I mean, already,""" start="00:34:46.320" video="qanda-teaching" id="subtitle"]]
+[[!template text="""I don't think there's any class that where I""" start="00:34:48.340" video="qanda-teaching" id="subtitle"]]
+[[!template text="""am able to use more than 30% of my material.""" start="00:34:51.000" video="qanda-teaching" id="subtitle"]]
+[[!template text="""And the reason is that when the students come""" start="00:34:55.880" video="qanda-teaching" id="subtitle"]]
+[[!template text="""to class, which is I pointed out in the""" start="00:34:57.620" video="qanda-teaching" id="subtitle"]]
+[[!template text="""video, they know so little.""" start="00:34:59.220" video="qanda-teaching" id="subtitle"]]
+[[!template text="""And most of the students,""" start="00:35:01.840" video="qanda-teaching" id="subtitle"]]
+[[!template text="""at least in liberal arts,""" start="00:35:03.720" video="qanda-teaching" id="subtitle"]]
+[[!template text="""spend just too little time outside of class,""" start="00:35:04.960" video="qanda-teaching" id="subtitle"]]
+[[!template text="""getting there, you know,""" start="00:35:10.760" video="qanda-teaching" id="subtitle"]]
+[[!template text="""drilling down into the,""" start="00:35:11.600" video="qanda-teaching" id="subtitle"]]
+[[!template text="""into the, into the infrastructure,""" start="00:35:13.040" video="qanda-teaching" id="subtitle"]]
+[[!template text="""into the work. Only, only the best students""" start="00:35:14.860" video="qanda-teaching" id="subtitle"]]
+[[!template text="""do that. The ones that really catch fire.""" start="00:35:17.060" video="qanda-teaching" id="subtitle"]]
+[[!template text="""[Speaker 2]: Don't you have something like a course""" start="00:35:20.080" video="qanda-teaching" id="subtitle"]]
+[[!template text="""project at the end?""" start="00:35:22.280" video="qanda-teaching" id="subtitle"]]
+[[!template text="""[Speaker 1]: Yes, I have course, not at the end.""" start="00:35:24.140" video="qanda-teaching" id="subtitle"]]
+[[!template text="""I use Scrum. Maybe I shouldn't,""" start="00:35:25.760" video="qanda-teaching" id="subtitle"]]
+[[!template text="""but I've used Scrum for many years.""" start="00:35:27.720" video="qanda-teaching" id="subtitle"]]
+[[!template text="""So I have course projects that start at the""" start="00:35:30.040" video="qanda-teaching" id="subtitle"]]
+[[!template text="""beginning and they do sprint reviews every 3""" start="00:35:32.600" video="qanda-teaching" id="subtitle"]]
+[[!template text="""or 4 weeks. So term end projects I find""" start="00:35:35.280" video="qanda-teaching" id="subtitle"]]
+[[!template text="""completely useless because the students do""" start="00:35:40.640" video="qanda-teaching" id="subtitle"]]
+[[!template text="""the work at the very end of the term.""" start="00:35:43.080" video="qanda-teaching" id="subtitle"]]
+[[!template text="""[Speaker 2]: no, by determined I mean they don't start at""" start="00:35:46.220" video="qanda-teaching" id="subtitle"]]
+[[!template text="""the end, they just report at the end.""" start="00:35:49.600" video="qanda-teaching" id="subtitle"]]
+[[!template text="""[Speaker 1]: And so I... Oh I use the IMRAD,""" start="00:35:45.060" video="qanda-teaching" id="subtitle"]]
+[[!template text="""I use the IMRAD method.""" start="00:35:52.960" video="qanda-teaching" id="subtitle"]]
+[[!template text="""So I use IMRAD, basically IMRAD plus,""" start="00:35:54.340" video="qanda-teaching" id="subtitle"]]
+[[!template text="""plus Scrum, right? So,""" start="00:35:58.700" video="qanda-teaching" id="subtitle"]]
+[[!template text="""So the first sprint review is introductory,""" start="00:36:00.300" video="qanda-teaching" id="subtitle"]]
+[[!template text="""the research proposal,""" start="00:36:02.500" video="qanda-teaching" id="subtitle"]]
+[[!template text="""the second 1 is about methodology,""" start="00:36:03.540" video="qanda-teaching" id="subtitle"]]
+[[!template text="""the third 1 about results,""" start="00:36:05.060" video="qanda-teaching" id="subtitle"]]
+[[!template text="""and the last 1 is their final presentation.""" start="00:36:06.360" video="qanda-teaching" id="subtitle"]]
+[[!template text="""And so that's the way I manage the projects,""" start="00:36:09.000" video="qanda-teaching" id="subtitle"]]
+[[!template text="""but that's about as much as I can do with""" start="00:36:11.160" video="qanda-teaching" id="subtitle"]]
+[[!template text="""them. It's a good idea.""" start="00:36:16.040" video="qanda-teaching" id="subtitle"]]
+[[!template text="""I hadn't even thought about using Org-ROM""" start="00:36:17.640" video="qanda-teaching" id="subtitle"]]
+[[!template text="""with them, but to teach them that might be a""" start="00:36:19.900" video="qanda-teaching" id="subtitle"]]
+[[!template text="""good idea, actually.""" start="00:36:22.760" video="qanda-teaching" id="subtitle"]]
+[[!template text="""[Speaker 2]: Well, for Org-ROM, actually,""" start="00:36:25.360" video="qanda-teaching" id="subtitle"]]
+[[!template text="""what I found useful during my graduate is for""" start="00:36:27.400" video="qanda-teaching" id="subtitle"]]
+[[!template text="""literature review. Yes.""" start="00:36:32.360" video="qanda-teaching" id="subtitle"]]
+[[!template text="""The other part of our program that is not""" start="00:36:34.960" video="qanda-teaching" id="subtitle"]]
+[[!template text="""about your like noting down your thoughts is""" start="00:36:37.360" video="qanda-teaching" id="subtitle"]]
+[[!template text="""about writing about literature notes.""" start="00:36:40.580" video="qanda-teaching" id="subtitle"]]
+[[!template text="""[Speaker 1]: Yeah, that's a good idea actually.""" start="00:36:43.780" video="qanda-teaching" id="subtitle"]]
+[[!template text="""And of course, I mean,""" start="00:36:45.480" video="qanda-teaching" id="subtitle"]]
+[[!template text="""there's more stuff that they should learn,""" start="00:36:46.320" video="qanda-teaching" id="subtitle"]]
+[[!template text="""you know, like another 1,""" start="00:36:48.180" video="qanda-teaching" id="subtitle"]]
+[[!template text="""since you mentioned literature,""" start="00:36:50.140" video="qanda-teaching" id="subtitle"]]
+[[!template text="""you know, latex and Bibtech is another""" start="00:36:52.420" video="qanda-teaching" id="subtitle"]]
+[[!template text="""obvious extension of that.""" start="00:36:55.760" video="qanda-teaching" id="subtitle"]]
+[[!template text="""But that is actually a good idea because the""" start="00:36:58.780" video="qanda-teaching" id="subtitle"]]
+[[!template text="""literature is what they have the hardest time""" start="00:37:01.120" video="qanda-teaching" id="subtitle"]]
+[[!template text="""[Speaker 2]: Yeah, like when you need to read like 50""" start="00:37:04.640" video="qanda-teaching" id="subtitle"]]
+[[!template text="""papers.""" start="00:37:06.980" video="qanda-teaching" id="subtitle"]]
+[[!template text="""[Speaker 1]: with. Last term, since you mentioned that,""" start="00:37:03.080" video="qanda-teaching" id="subtitle"]]
+[[!template text="""I had a really nice experience because 1 of""" start="00:37:12.480" video="qanda-teaching" id="subtitle"]]
+[[!template text="""our librarians, our digital librarian,""" start="00:37:16.220" video="qanda-teaching" id="subtitle"]]
+[[!template text="""came along and talked to the students,""" start="00:37:18.420" video="qanda-teaching" id="subtitle"]]
+[[!template text="""and he taught me about a tool called""" start="00:37:19.920" video="qanda-teaching" id="subtitle"]]
+[[!template text="""litmap.com, which is basically,""" start="00:37:21.580" video="qanda-teaching" id="subtitle"]]
+[[!template text="""I don't know how it's implemented,""" start="00:37:24.140" video="qanda-teaching" id="subtitle"]]
+[[!template text="""but it's basically a graph,""" start="00:37:25.460" video="qanda-teaching" id="subtitle"]]
+[[!template text="""a graph representation of papers organized by""" start="00:37:28.140" video="qanda-teaching" id="subtitle"]]
+[[!template text="""citation. It's very, very cool.""" start="00:37:31.620" video="qanda-teaching" id="subtitle"]]
+[[!template text="""And the students who used to only find,""" start="00:37:35.900" video="qanda-teaching" id="subtitle"]]
+[[!template text="""I don't know, 1 paper and otherwise,""" start="00:37:38.480" video="qanda-teaching" id="subtitle"]]
+[[!template text="""of course, 15 YouTube videos and 100 blogs,""" start="00:37:41.180" video="qanda-teaching" id="subtitle"]]
+[[!template text="""suddenly started finding and reading""" start="00:37:45.380" video="qanda-teaching" id="subtitle"]]
+[[!template text="""scientific papers. It was only because of""" start="00:37:49.540" video="qanda-teaching" id="subtitle"]]
+[[!template text="""this presentation. So you should take the,""" start="00:37:52.120" video="qanda-teaching" id="subtitle"]]
+[[!template text="""I think, I hope that is the right,""" start="00:37:55.640" video="qanda-teaching" id="subtitle"]]
+[[!template text="""that's the right mode,""" start="00:37:58.320" video="qanda-teaching" id="subtitle"]]
+[[!template text="""litmaps. Okay, it's not litmap,""" start="00:38:00.280" video="qanda-teaching" id="subtitle"]]
+[[!template text="""it's called Litmaps. I'm gonna give you an""" start="00:38:02.380" video="qanda-teaching" id="subtitle"]]
+[[!template text="""example. I don't know if I can share this,""" start="00:38:05.640" video="qanda-teaching" id="subtitle"]]
+[[!template text="""if you can look at that.""" start="00:38:09.000" video="qanda-teaching" id="subtitle"]]
+[[!template text="""But basically you create a,""" start="00:38:10.240" video="qanda-teaching" id="subtitle"]]
+[[!template text="""1 can use 1 of your papers as a seed,""" start="00:38:13.860" video="qanda-teaching" id="subtitle"]]
+[[!template text="""and then it will create a graph,""" start="00:38:16.800" video="qanda-teaching" id="subtitle"]]
+[[!template text="""graph representation of it for you.""" start="00:38:19.660" video="qanda-teaching" id="subtitle"]]
+[[!template text="""And this is a powerful tool in itself.""" start="00:38:21.960" video="qanda-teaching" id="subtitle"]]
+[[!template text="""But what I'm saying is that the students""" start="00:38:25.400" video="qanda-teaching" id="subtitle"]]
+[[!template text="""suddenly, their use of literature and that""" start="00:38:27.620" video="qanda-teaching" id="subtitle"]]
+[[!template text="""citation goes to the roof.""" start="00:38:30.900" video="qanda-teaching" id="subtitle"]]
+[[!template text="""And I've been waiting for that for probably""" start="00:38:33.080" video="qanda-teaching" id="subtitle"]]
+[[!template text="""15 years since I've started teaching.""" start="00:38:36.140" video="qanda-teaching" id="subtitle"]]
+[[!template text="""It's crazy. That's really cool.""" start="00:38:38.760" video="qanda-teaching" id="subtitle"]]
+[[!template text="""[Speaker 2]: Here is the same tool,""" start="00:38:46.500" video="qanda-teaching" id="subtitle"]]
+[[!template text="""it's called connected papers.""" start="00:38:47.720" video="qanda-teaching" id="subtitle"]]
+[[!template text="""It's based on the open source citation data.""" start="00:38:49.440" video="qanda-teaching" id="subtitle"]]
+[[!template text="""[Speaker 1]: Yeah, I know that as well,""" start="00:38:54.140" video="qanda-teaching" id="subtitle"]]
+[[!template text="""I think.""" start="00:38:56.500" video="qanda-teaching" id="subtitle"]]
+[[!template text="""[Speaker 2]: It's actually very useful when you just start""" start="00:39:00.060" video="qanda-teaching" id="subtitle"]]
+[[!template text="""learning the topic. It's like you find 1""" start="00:39:01.560" video="qanda-teaching" id="subtitle"]]
+[[!template text="""paper, then you look into the connections.""" start="00:39:03.960" video="qanda-teaching" id="subtitle"]]
+[[!template text="""You can quickly narrow down to the most""" start="00:39:05.800" video="qanda-teaching" id="subtitle"]]
+[[!template text="""cited, the core papers.""" start="00:39:08.260" video="qanda-teaching" id="subtitle"]]
+[[!template text="""[Speaker 1]: Of course. And that is exactly their""" start="00:39:10.840" video="qanda-teaching" id="subtitle"]]
+[[!template text="""situation, you know, and they're always at""" start="00:39:12.500" video="qanda-teaching" id="subtitle"]]
+[[!template text="""the beginning. As you go on,""" start="00:39:14.800" video="qanda-teaching" id="subtitle"]]
+[[!template text="""you develop different ways,""" start="00:39:17.280" video="qanda-teaching" id="subtitle"]]
+[[!template text="""but for these complete beginners,""" start="00:39:18.680" video="qanda-teaching" id="subtitle"]]
+[[!template text="""that's a good idea. Thank you so much for""" start="00:39:20.200" video="qanda-teaching" id="subtitle"]]
+[[!template text="""that. Okay, guys, anything else?""" start="00:39:22.680" video="qanda-teaching" id="subtitle"]]
+[[!template text="""I've enjoyed the conversation,""" start="00:39:31.240" video="qanda-teaching" id="subtitle"]]
+[[!template text="""so you should definitely,""" start="00:39:32.920" video="qanda-teaching" id="subtitle"]]
+[[!template text="""I'm going to take some of these things away.""" start="00:39:36.000" video="qanda-teaching" id="subtitle"]]
+[[!template text="""Thank you so much for that.""" start="00:39:38.800" video="qanda-teaching" id="subtitle"]]
+[[!template text="""Have you done, Yanta, have you done org mode""" start="00:39:42.340" video="qanda-teaching" id="subtitle"]]
+[[!template text="""documentations yourself on WOC?""" start="00:39:46.300" video="qanda-teaching" id="subtitle"]]
+[[!template text="""Or do you have a sort of a favorite 1?""" start="00:39:48.900" video="qanda-teaching" id="subtitle"]]
+[[!template text="""I mean, I often on walk,""" start="00:39:52.120" video="qanda-teaching" id="subtitle"]]
+[[!template text="""I often use the documentation for code""" start="00:39:53.600" video="qanda-teaching" id="subtitle"]]
+[[!template text="""blocks. I used to when I started doing that""" start="00:39:56.740" video="qanda-teaching" id="subtitle"]]
+[[!template text="""[Speaker 2]: Yeah, because it's only on work.""" start="00:40:00.760" video="qanda-teaching" id="subtitle"]]
+[[!template text="""It's not part of the manual.""" start="00:40:02.800" video="qanda-teaching" id="subtitle"]]
+[[!template text="""[Speaker 1]: for the first time. Yeah,""" start="00:39:59.620" video="qanda-teaching" id="subtitle"]]
+[[!template text="""yeah. And so I've used that a lot.""" start="00:40:05.280" video="qanda-teaching" id="subtitle"]]
+[[!template text="""[Speaker 2]: Have I done? Not really,""" start="00:40:07.780" video="qanda-teaching" id="subtitle"]]
+[[!template text="""mostly fixing the errors.""" start="00:40:09.720" video="qanda-teaching" id="subtitle"]]
+[[!template text="""Okay.""" start="00:40:12.260" video="qanda-teaching" id="subtitle"]]
+[[!template text="""[Speaker 1]: Yeah, I think that's a really good idea.""" start="00:40:14.280" video="qanda-teaching" id="subtitle"]]
+[[!template text="""All right. Well, thank you very much.""" start="00:40:16.440" video="qanda-teaching" id="subtitle"]]
+[[!template text="""And it's great to be at this conference.""" start="00:40:19.960" video="qanda-teaching" id="subtitle"]]
+[[!template text="""I think I'm going to get on.""" start="00:40:22.360" video="qanda-teaching" id="subtitle"]]
+[[!template text="""[Speaker 2]: Thanks for answering all the questions.""" start="00:40:27.660" video="qanda-teaching" id="subtitle"]]
+[[!template text="""And for the talk, It was quite interesting to""" start="00:40:29.840" video="qanda-teaching" id="subtitle"]]
+[[!template text="""see our modules in actual teaching.""" start="00:40:32.560" video="qanda-teaching" id="subtitle"]]
+[[!template text="""[Speaker 1]: Yes, thank you. And I got to thank Daniel""" start="00:40:36.200" video="qanda-teaching" id="subtitle"]]
+[[!template text="""German from Canada, the 1 of,""" start="00:40:38.600" video="qanda-teaching" id="subtitle"]]
+[[!template text="""I had him on 1 of the slides because he,""" start="00:40:40.840" video="qanda-teaching" id="subtitle"]]
+[[!template text="""he inspired me to do that.""" start="00:40:43.660" video="qanda-teaching" id="subtitle"]]
+[[!template text="""And, and I wouldn't be at the conference if I""" start="00:40:45.380" video="qanda-teaching" id="subtitle"]]
+[[!template text="""hadn't contacted him and said oh here's my""" start="00:40:47.540" video="qanda-teaching" id="subtitle"]]
+[[!template text="""paper and he said oh you should come to the""" start="00:40:49.480" video="qanda-teaching" id="subtitle"]]
+[[!template text="""conference and so that's why I came to the""" start="00:40:50.980" video="qanda-teaching" id="subtitle"]]
+[[!template text="""conference. Thank you very much and as they""" start="00:40:52.680" video="qanda-teaching" id="subtitle"]]
+[[!template text="""say keep in touch. You're welcome.""" start="00:40:58.480" video="qanda-teaching" id="subtitle"]]
+[[!template text="""Okay bye-bye. You're welcome.""" start="00:41:04.100" video="qanda-teaching" id="subtitle"]]
+[[!template text="""Okay, bye-bye. Take a copy of the chat before""" start="00:41:05.060" video="qanda-teaching" id="subtitle"]]
+[[!template text="""you go, if you can. Happy weekend to just bye""" start="00:41:15.820" video="qanda-teaching" id="subtitle"]]
+[[!template text="""bye.""" start="00:41:22.360" video="qanda-teaching" id="subtitle"]]
+[[!template text="""[Speaker 0]: You are currently the only person in this""" start="00:41:34.920" video="qanda-teaching" id="subtitle"]]
+[[!template text="""conference.""" start="00:41:36.840" video="qanda-teaching" id="subtitle"]]
+[[!template text="""[Speaker 1]: You""" start="00:42:00.060" video="qanda-teaching" id="subtitle"]]
+
+</div>Questions or comments? Please e-mail [birkenkrahe@lyon.edu](mailto:birkenkrahe@lyon.edu?subject=Comment%20for%20EmacsConf%202023%20teaching%3A%20Teaching%20computer%20and%20data%20science%20with%20literate%20programming%20tools)
+
+
+<!-- End of emacsconf-publish-after-page -->
diff --git a/2023/info/teaching-before.md b/2023/info/teaching-before.md
new file mode 100644
index 00000000..1348f7ae
--- /dev/null
+++ b/2023/info/teaching-before.md
@@ -0,0 +1,37 @@
+<!-- Automatically generated by emacsconf-publish-before-page -->
+[[!toc ]]
+Format: 20-min talk ; Q&A: BigBlueButton conference room
+Status: TO_INDEX_QA
+
+
+
+
+
+# Talk
+
+<div class="vid mainVideo"><video controls preload="none" id="mainVideo-teaching"><source src="https://media.emacsconf.org/2023/emacsconf-2023-teaching--teaching-computer-and-data-science-with-literate-programming-tools--marcus-birkenkrahe--main.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2023/captions/emacsconf-2023-teaching--teaching-computer-and-data-science-with-literate-programming-tools--marcus-birkenkrahe--main.vtt" default />"""<track kind="chapters" label="Chapters" src="/2023/captions/emacsconf-2023-teaching--teaching-computer-and-data-science-with-literate-programming-tools--marcus-birkenkrahe--main--chapters.vtt" /><p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video>[[!template id="chapters" vidid="mainVideo-teaching" data="""
+00:00.000 Introduction
+00:54.160 My interest in this topic
+02:08.040 What is data science?
+03:47.640 Computer science is a craft
+04:52.840 The problem
+05:36.560 The solution: Emacs + Org-mode
+06:24.120 Emacs configuration file
+07:30.360 Story + code = source + documentation
+08:22.040 What is literate programming?
+09:59.880 Emacs as a literate programming tool
+11:18.960 Case study: basic setup
+12:11.280 Emacs + Org-mode notebooks
+12:45.800 Onboarding: simplified Emacs tutorial
+13:40.840 Instruction + interaction
+14:48.720 Assignments + projects
+16:15.280 Overall results positive
+18:19.800 Conclusion & outlook
+
+"""]]<div></div>Duration: 19:27 minutes<div class="files resources"><ul><li><a href="https://pad.emacsconf.org/2023-teaching">Open Etherpad</a></li><li><a href="https://bbb.emacsverse.org/playback/presentation/2.0/playback.html?meetingId=c7af4fb02c209bbd6864301fdf26dd137916469c-1701529159289">Play recording from BigBlueButton</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-teaching--teaching-computer-and-data-science-with-literate-programming-tools--marcus-birkenkrahe--intro.vtt">Download --intro.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-teaching--teaching-computer-and-data-science-with-literate-programming-tools--marcus-birkenkrahe--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-teaching--teaching-computer-and-data-science-with-literate-programming-tools--marcus-birkenkrahe--main--chapters.vtt">Download --main--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-teaching--teaching-computer-and-data-science-with-literate-programming-tools--marcus-birkenkrahe--main.opus">Download --main.opus (14MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-teaching--teaching-computer-and-data-science-with-literate-programming-tools--marcus-birkenkrahe--main.vtt">Download --main.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-teaching--teaching-computer-and-data-science-with-literate-programming-tools--marcus-birkenkrahe--main.webm">Download --main.webm (44MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-teaching--teaching-computer-and-data-science-with-literate-programming-tools--marcus-birkenkrahe.odp">Download .odp (15MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-teaching--teaching-computer-and-data-science-with-literate-programming-tools--marcus-birkenkrahe.org">Download .org</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-teaching--teaching-computer-and-data-science-with-literate-programming-tools--marcus-birkenkrahe.pdf">Download .pdf (2.9MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-teaching--teaching-computer-and-data-science-with-literate-programming-tools--marcus-birkenkrahe.pptx">Download .pptx (15MB)</a></li><li><a href="https://toobnix.org/w/b4eLjcLo9vcewVTzrv95L8">View on Toobnix</a></li><li><a href="https://youtu.be/U15zUNBz2CU">View on Youtube</a></li></ul></div></div>
+
+# Q&A
+
+<div class="vid qanda"><video controls preload="none" id="qanda-teaching"><source src="https://media.emacsconf.org/2023/emacsconf-2023-teaching--teaching-computer-and-data-science-with-literate-programming-tools--marcus-birkenkrahe--answers.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2023/captions/emacsconf-2023-teaching--teaching-computer-and-data-science-with-literate-programming-tools--marcus-birkenkrahe--answers.vtt" default />"""<p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video><div>Listen to just the audio:<br /><audio controls preload="none" id="qanda-teaching-audio" src="https://media.emacsconf.org/2023/emacsconf-2023-teaching--teaching-computer-and-data-science-with-literate-programming-tools--marcus-birkenkrahe--answers.opus"></audio></div><div></div>Duration: 42:23 minutes<div class="files resources"><ul><li><a href="https://pad.emacsconf.org/2023-teaching">Open Etherpad</a></li><li><a href="https://bbb.emacsverse.org/playback/presentation/2.0/playback.html?meetingId=c7af4fb02c209bbd6864301fdf26dd137916469c-1701529159289">Play recording from BigBlueButton</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-teaching--teaching-computer-and-data-science-with-literate-programming-tools--marcus-birkenkrahe--answers.json">Download --answers.json (1.8MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-teaching--teaching-computer-and-data-science-with-literate-programming-tools--marcus-birkenkrahe--answers.opus">Download --answers.opus (22MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-teaching--teaching-computer-and-data-science-with-literate-programming-tools--marcus-birkenkrahe--answers.vtt">Download --answers.vtt</a> (unedited)</li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-teaching--teaching-computer-and-data-science-with-literate-programming-tools--marcus-birkenkrahe--answers.webm">Download --answers.webm (199MB)</a></li></ul></div></div>
+# Description
+<!-- End of emacsconf-publish-before-page --> \ No newline at end of file
diff --git a/2023/info/teaching-nav.md b/2023/info/teaching-nav.md
new file mode 100644
index 00000000..64d98156
--- /dev/null
+++ b/2023/info/teaching-nav.md
@@ -0,0 +1,7 @@
+
+<div class="talk-nav">
+Back to the [[talks]]
+Previous by track: <a href="/2023/talks/uni">Authoring and presenting university courses with Emacs and a full libre software stack</a>
+Next by track: <a href="/2023/talks/table">Who needs Excel? Managing your students qualifications with org-table</a>
+Track: <span class="sched-track General">General</span> - <strong><a href="https://emacsconf.org/2023/watch/gen">Watch</a></strong>
+</div>
diff --git a/2023/info/test-after.md b/2023/info/test-after.md
index 2c7c24ba..b2329598 100644
--- a/2023/info/test-after.md
+++ b/2023/info/test-after.md
@@ -1,7 +1,945 @@
<!-- Automatically generated by emacsconf-publish-after-page -->
-Questions or comments? Please e-mail [matsl@gnu.org](mailto:matsl@gnu.org?subject=Comment%20for%20EmacsConf%202022%20test%3A%20What%20I%20learned%20by%20writing%20test%20cases%20for%20GNU%20Hyperbole)
+<div class="transcript transcript-mainVideo"><a name="test-mainVideo-transcript"></a><h1>Transcript</h1>
+
+
+<div class="transcript-heading">[[!template new="1" text="""Introduction""" start="00:00:03.120" video="mainVideo-test" id="subtitle"]]</div>[[!template text="""Hi everyone! I'm Mats Lidell.""" start="00:00:03.120" video="mainVideo-test" id="subtitle"]]
+[[!template text="""I'm going to talk about my journey""" start="00:00:07.440" video="mainVideo-test" id="subtitle"]]
+[[!template text="""writing test cases for GNU Hyperbole""" start="00:00:09.880" video="mainVideo-test" id="subtitle"]]
+[[!template text="""and what I learned on the way.""" start="00:00:12.481" video="mainVideo-test" id="subtitle"]]
+[[!template text="""So, why write tests for GNU Hyperbole?""" start="00:00:19.400" video="mainVideo-test" id="subtitle"]]
+[[!template text="""There is some background.""" start="00:00:24.080" video="mainVideo-test" id="subtitle"]]
+[[!template text="""I'm the co-maintainer of GNU Hyperbole""" start="00:00:25.680" video="mainVideo-test" id="subtitle"]]
+[[!template text="""together with Bob Weiner. Bob is the author of the package.""" start="00:00:27.960" video="mainVideo-test" id="subtitle"]]
+[[!template text="""The package is available through""" start="00:00:33.480" video="mainVideo-test" id="subtitle"]]
+[[!template text="""the Emacs package manager and GNU Elpa""" start="00:00:34.681" video="mainVideo-test" id="subtitle"]]
+[[!template text="""if you would want to try it out.""" start="00:00:38.800" video="mainVideo-test" id="subtitle"]]
+[[!template text="""The package has some age. I think it dates back to""" start="00:00:42.600" video="mainVideo-test" id="subtitle"]]
+[[!template text="""a first release around 1993, which is also""" start="00:00:46.360" video="mainVideo-test" id="subtitle"]]
+[[!template text="""when I got in contact with the package the first time.""" start="00:00:50.120" video="mainVideo-test" id="subtitle"]]
+[[!template text="""I was a user of the package for many years.""" start="00:00:54.800" video="mainVideo-test" id="subtitle"]]
+[[!template text="""Later, I became the maintainer of the package for the FSF.""" start="00:00:58.240" video="mainVideo-test" id="subtitle"]]
+[[!template text="""That was although I did not have""" start="00:01:03.120" video="mainVideo-test" id="subtitle"]]
+[[!template text="""much knowledge of Emacs Lisp,""" start="00:01:04.680" video="mainVideo-test" id="subtitle"]]
+[[!template text="""and I still have a lot to learn.""" start="00:01:09.040" video="mainVideo-test" id="subtitle"]]
+[[!template text="""A few years ago, we started to work actively on the package,""" start="00:01:12.680" video="mainVideo-test" id="subtitle"]]
+[[!template text="""with setting up goals and having meetings.""" start="00:01:15.960" video="mainVideo-test" id="subtitle"]]
+[[!template text="""So my starting point is that I had experience""" start="00:01:20.840" video="mainVideo-test" id="subtitle"]]
+[[!template text="""with test automation from development""" start="00:01:24.960" video="mainVideo-test" id="subtitle"]]
+[[!template text="""in C++, Java and Python""" start="00:01:27.440" video="mainVideo-test" id="subtitle"]]
+[[!template text="""using different x-unit frameworks like cppunit, junit.""" start="00:01:30.600" video="mainVideo-test" id="subtitle"]]
+[[!template text="""That was in my daytime work where""" start="00:01:37.240" video="mainVideo-test" id="subtitle"]]
+[[!template text="""the technique of using pull requests""" start="00:01:40.040" video="mainVideo-test" id="subtitle"]]
+[[!template text="""with changes backed up by tests were the daily routine.""" start="00:01:41.960" video="mainVideo-test" id="subtitle"]]
+[[!template text="""It was really a requirement for a change to go in""" start="00:01:46.720" video="mainVideo-test" id="subtitle"]]
+[[!template text="""to have supporting test cases.""" start="00:01:49.200" video="mainVideo-test" id="subtitle"]]
+[[!template text="""I believe, a quite common setup and requirement these days.""" start="00:01:52.160" video="mainVideo-test" id="subtitle"]]
+[[!template text="""I also had been an Emacs user for many years,""" start="00:01:58.560" video="mainVideo-test" id="subtitle"]]
+[[!template text="""but with focus on being a user.""" start="00:02:02.040" video="mainVideo-test" id="subtitle"]]
+[[!template text="""So as I mentioned, I have limited Emacs Lisp knowledge.""" start="00:02:04.280" video="mainVideo-test" id="subtitle"]]
+[[!template text="""When we decided to start""" start="00:02:09.840" video="mainVideo-test" id="subtitle"]]
+[[!template text="""to work actively on Hyperbole again,""" start="00:02:11.360" video="mainVideo-test" id="subtitle"]]
+[[!template text="""it was natural for me to look into""" start="00:02:13.960" video="mainVideo-test" id="subtitle"]]
+[[!template text="""raising the quality by adding unit tests.""" start="00:02:15.520" video="mainVideo-test" id="subtitle"]]
+[[!template text="""This also goes hand in hand""" start="00:02:18.680" video="mainVideo-test" id="subtitle"]]
+[[!template text="""with running these regularly as part of a build process.""" start="00:02:20.680" video="mainVideo-test" id="subtitle"]]
+[[!template text="""All in all, following the current best practice""" start="00:02:25.240" video="mainVideo-test" id="subtitle"]]
+[[!template text="""of software development.""" start="00:02:28.440" video="mainVideo-test" id="subtitle"]]
+[[!template text="""But since Hyperbole had no tests at all,""" start="00:02:31.360" video="mainVideo-test" id="subtitle"]]
+[[!template text="""it would not be enough just to add tests""" start="00:02:36.480" video="mainVideo-test" id="subtitle"]]
+[[!template text="""for new or changed functionality.""" start="00:02:38.720" video="mainVideo-test" id="subtitle"]]
+[[!template text="""We wanted to add it even broader; ideally, everywhere.""" start="00:02:41.800" video="mainVideo-test" id="subtitle"]]
+[[!template text="""So work started with adding tests here and there""" start="00:02:44.640" video="mainVideo-test" id="subtitle"]]
+[[!template text="""based on our gut feeling where it would be most useful.""" start="00:02:48.400" video="mainVideo-test" id="subtitle"]]
+[[!template text="""This work is still ongoing.""" start="00:02:52.040" video="mainVideo-test" id="subtitle"]]
+[[!template text="""So this is where my journey starts""" start="00:02:55.800" video="mainVideo-test" id="subtitle"]]
+[[!template text="""with much functionality to test,""" start="00:02:58.120" video="mainVideo-test" id="subtitle"]]
+[[!template text="""no knowledge of what testing frameworks existed,""" start="00:03:00.760" video="mainVideo-test" id="subtitle"]]
+[[!template text="""and not really knowing a lot about Emacs Lisp at all.""" start="00:03:03.360" video="mainVideo-test" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""ERT: Emacs Lisp Regression Testing""" start="00:03:11.160" video="mainVideo-test" id="subtitle"]]</div>[[!template text="""Luckily there is a package for writing tests in Emacs.""" start="00:03:11.160" video="mainVideo-test" id="subtitle"]]
+[[!template text="""It is called ERT: Emacs Lisp Regression Testing.""" start="00:03:13.800" video="mainVideo-test" id="subtitle"]]
+[[!template text="""It contains both support for defining tests and running them.""" start="00:03:17.920" video="mainVideo-test" id="subtitle"]]
+[[!template text="""Defining a test is done with the macro `ert-deftest`.""" start="00:03:20.960" video="mainVideo-test" id="subtitle"]]
+[[!template text="""In its simplest form, a test has a name, a doc string, and a body.""" start="00:03:24.640" video="mainVideo-test" id="subtitle"]]
+[[!template text="""The doc string is where you typically can give""" start="00:03:28.920" video="mainVideo-test" id="subtitle"]]
+[[!template text="""a detailed description of the test""" start="00:03:31.440" video="mainVideo-test" id="subtitle"]]
+[[!template text="""and has space for more info""" start="00:03:33.800" video="mainVideo-test" id="subtitle"]]
+[[!template text="""than what can be given in the test name.""" start="00:03:35.560" video="mainVideo-test" id="subtitle"]]
+[[!template text="""The body is where all the interesting things happen.""" start="00:03:42.280" video="mainVideo-test" id="subtitle"]]
+[[!template text="""It is here you prepare the test, run it and verify the outcome.""" start="00:03:45.240" video="mainVideo-test" id="subtitle"]]
+[[!template text="""Schematically, it looks like this.""" start="00:03:51.960" video="mainVideo-test" id="subtitle"]]
+[[!template text="""You have the ert-deftest, you have the test name,""" start="00:03:54.240" video="mainVideo-test" id="subtitle"]]
+[[!template text="""and the doc string, and then the body.""" start="00:04:00.240" video="mainVideo-test" id="subtitle"]]
+[[!template text="""It is in the body where everything interesting happens.""" start="00:04:02.800" video="mainVideo-test" id="subtitle"]]
+[[!template text="""The test is prepared, the function of the test is executed,""" start="00:04:06.560" video="mainVideo-test" id="subtitle"]]
+[[!template text="""and the outcome of the test is evaluated.""" start="00:04:09.760" video="mainVideo-test" id="subtitle"]]
+[[!template text="""Did the test succeed or not?""" start="00:04:13.120" video="mainVideo-test" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Assertions with `should`""" start="00:04:14.360" video="mainVideo-test" id="subtitle"]]</div>[[!template text="""The verification of a test is performed with""" start="00:04:14.360" video="mainVideo-test" id="subtitle"]]
+[[!template text="""one or more so-called assertions.""" start="00:04:18.480" video="mainVideo-test" id="subtitle"]]
+[[!template text="""In ERT, they are implemented""" start="00:04:21.480" video="mainVideo-test" id="subtitle"]]
+[[!template text="""with the macro `should`""" start="00:04:25.000" video="mainVideo-test" id="subtitle"]]
+[[!template text="""together with a set of related macros.""" start="00:04:26.600" video="mainVideo-test" id="subtitle"]]
+[[!template text="""`should` takes a form as argument,""" start="00:04:33.560" video="mainVideo-test" id="subtitle"]]
+[[!template text="""and if the form evaluates to nil,""" start="00:04:35.520" video="mainVideo-test" id="subtitle"]]
+[[!template text="""the test has failed. So let's look at an example.""" start="00:04:37.840" video="mainVideo-test" id="subtitle"]]
+[[!template text="""This simple test verifies that the function `+`""" start="00:04:48.581" video="mainVideo-test" id="subtitle"]]
+[[!template text="""can add the numbers 2 and 3 and get the result 5.""" start="00:04:51.920" video="mainVideo-test" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Running a test case""" start="00:04:56.920" video="mainVideo-test" id="subtitle"]]</div>[[!template text="""So now we have defined a test case. How do we run it?""" start="00:04:56.920" video="mainVideo-test" id="subtitle"]]
+[[!template text="""The ERT package has the function (or""" start="00:05:01.960" video="mainVideo-test" id="subtitle"]]
+[[!template text="""rather convenience alias) `ert`. It takes a test selector.""" start="00:05:03.920" video="mainVideo-test" id="subtitle"]]
+[[!template text="""The test name works as a selector for running just one test.""" start="00:05:09.520" video="mainVideo-test" id="subtitle"]]
+[[!template text="""So here we have the example. Let's evaluate it.""" start="00:05:19.760" video="mainVideo-test" id="subtitle"]]
+[[!template text="""We define it and then we run it using ERT.""" start="00:05:27.901" video="mainVideo-test" id="subtitle"]]
+[[!template text="""As you see, we get prompted for a test selector""" start="00:05:34.520" video="mainVideo-test" id="subtitle"]]
+[[!template text="""but we only have one test case defined at the moment.""" start="00:05:42.400" video="mainVideo-test" id="subtitle"]]
+[[!template text="""It's the example 0. So let's hit RET.""" start="00:05:46.320" video="mainVideo-test" id="subtitle"]]
+[[!template text="""As you see here, we get some output""" start="00:05:55.920" video="mainVideo-test" id="subtitle"]]
+[[!template text="""describing what we have just done.""" start="00:05:58.960" video="mainVideo-test" id="subtitle"]]
+[[!template text="""There is one test case it has passed, zero failed,""" start="00:06:01.360" video="mainVideo-test" id="subtitle"]]
+[[!template text="""zero skipped, total 1 of 1 test case""" start="00:06:04.840" video="mainVideo-test" id="subtitle"]]
+[[!template text="""and some time stamps for the execution.""" start="00:06:07.840" video="mainVideo-test" id="subtitle"]]
+[[!template text="""We also see this green mark here indicating one test case""" start="00:06:14.440" video="mainVideo-test" id="subtitle"]]
+[[!template text="""and that it was successful.""" start="00:06:18.520" video="mainVideo-test" id="subtitle"]]
+[[!template text="""For inspecting the test, we can hit the letter `l`""" start="00:06:23.040" video="mainVideo-test" id="subtitle"]]
+[[!template text="""which shows all the `should` forms""" start="00:06:29.660" video="mainVideo-test" id="subtitle"]]
+[[!template text="""that was executed during this test case.""" start="00:06:32.840" video="mainVideo-test" id="subtitle"]]
+[[!template text="""So here we see that we have the `should`,""" start="00:06:37.780" video="mainVideo-test" id="subtitle"]]
+[[!template text="""one `should` executed, and we see the form equals to 2,""" start="00:06:39.920" video="mainVideo-test" id="subtitle"]]
+[[!template text="""and it was 5 equals to 5.""" start="00:06:48.000" video="mainVideo-test" id="subtitle"]]
+[[!template text="""So a good example of a successful test case.""" start="00:06:49.800" video="mainVideo-test" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Debug a test""" start="00:06:54.560" video="mainVideo-test" id="subtitle"]]</div>[[!template text="""So now we've seen how we can run a test case.""" start="00:06:54.560" video="mainVideo-test" id="subtitle"]]
+[[!template text="""Can we debug it? Yes. For debugging a test case,""" start="00:06:57.920" video="mainVideo-test" id="subtitle"]]
+[[!template text="""the `ert-deftest` can be set up using `edebug-defun`,""" start="00:07:03.800" video="mainVideo-test" id="subtitle"]]
+[[!template text="""just as a function or macro is set up""" start="00:07:07.940" video="mainVideo-test" id="subtitle"]]
+[[!template text="""or instrumented for debugging. So let's try that.""" start="00:07:10.320" video="mainVideo-test" id="subtitle"]]
+[[!template text="""So we try `edebug-defun` here.""" start="00:07:18.820" video="mainVideo-test" id="subtitle"]]
+[[!template text="""Now it's instrumented for debugging.""" start="00:07:24.120" video="mainVideo-test" id="subtitle"]]
+[[!template text="""And we run it, `ert`, and we're inside the debugger,""" start="00:07:28.280" video="mainVideo-test" id="subtitle"]]
+[[!template text="""and we can inspect here what's happening.""" start="00:07:35.660" video="mainVideo-test" id="subtitle"]]
+[[!template text="""Step through it and yes it succeeded just as before.""" start="00:07:40.680" video="mainVideo-test" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Commercial break: Hyperbole""" start="00:07:50.380" video="mainVideo-test" id="subtitle"]]</div>[[!template text="""It's time for a commercial break!""" start="00:07:50.380" video="mainVideo-test" id="subtitle"]]
+[[!template text="""Hyperbole itself can help with running tests""" start="00:07:56.880" video="mainVideo-test" id="subtitle"]]
+[[!template text="""and also help with running them in debug mode.""" start="00:08:00.080" video="mainVideo-test" id="subtitle"]]
+[[!template text="""That is because hyperbole identifies the `ert-deftest`""" start="00:08:03.640" video="mainVideo-test" id="subtitle"]]
+[[!template text="""as an implicit button. An implicit button is basically""" start="00:08:08.520" video="mainVideo-test" id="subtitle"]]
+[[!template text="""a string or pattern""" start="00:08:12.680" video="mainVideo-test" id="subtitle"]]
+[[!template text="""that Hyperbole has assigned some meaning to.""" start="00:08:13.760" video="mainVideo-test" id="subtitle"]]
+[[!template text="""For the string `ert-deftest`, it is to run the test case.""" start="00:08:16.800" video="mainVideo-test" id="subtitle"]]
+[[!template text="""You activate the button with the action-key.""" start="00:08:19.960" video="mainVideo-test" id="subtitle"]]
+[[!template text="""The standard binding is the middle mouse button,""" start="00:08:24.560" video="mainVideo-test" id="subtitle"]]
+[[!template text="""or from the keyboard, M-RET.""" start="00:08:27.080" video="mainVideo-test" id="subtitle"]]
+[[!template text="""So let's try that.""" start="00:08:33.041" video="mainVideo-test" id="subtitle"]]
+[[!template text="""We move the cursor here and then we type M-RET.""" start="00:08:34.800" video="mainVideo-test" id="subtitle"]]
+[[!template text="""And boom, the test case was executed.""" start="00:08:42.220" video="mainVideo-test" id="subtitle"]]
+[[!template text="""And to run it in debug mode we type C-u M-RET""" start="00:08:47.960" video="mainVideo-test" id="subtitle"]]
+[[!template text="""to get the assist key, and then we're in the debugger.""" start="00:08:54.480" video="mainVideo-test" id="subtitle"]]
+[[!template text="""So that's pretty useful and convenient.""" start="00:08:57.720" video="mainVideo-test" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Instrument function on the fly""" start="00:09:10.480" video="mainVideo-test" id="subtitle"]]</div>[[!template text="""A related useful feature here is the step-in functionality""" start="00:09:10.480" video="mainVideo-test" id="subtitle"]]
+[[!template text="""bound to the letter i in `debug-mode`.""" start="00:09:13.720" video="mainVideo-test" id="subtitle"]]
+[[!template text="""It allows you to step into a function""" start="00:09:16.400" video="mainVideo-test" id="subtitle"]]
+[[!template text="""and continue debugging from there.""" start="00:09:18.120" video="mainVideo-test" id="subtitle"]]
+[[!template text="""For the cases where your test does not do what you want,""" start="00:09:20.480" video="mainVideo-test" id="subtitle"]]
+[[!template text="""looking at what happens in the function of the test""" start="00:09:22.840" video="mainVideo-test" id="subtitle"]]
+[[!template text="""can be really useful. Let's try that with another example.""" start="00:09:25.120" video="mainVideo-test" id="subtitle"]]
+[[!template text="""So here we have two helper functions, one `f1-add`,""" start="00:09:37.260" video="mainVideo-test" id="subtitle"]]
+[[!template text="""that use the built-in `+` function""" start="00:09:43.360" video="mainVideo-test" id="subtitle"]]
+[[!template text="""and then we have `my-add` that uses that function.""" start="00:09:47.440" video="mainVideo-test" id="subtitle"]]
+[[!template text="""So we're going to test myadd.""" start="00:09:52.240" video="mainVideo-test" id="subtitle"]]
+[[!template text="""And then let's run this.""" start="00:09:59.400" video="mainVideo-test" id="subtitle"]]
+[[!template text="""Let's run this using hyperbole in debug mode""" start="00:10:02.920" video="mainVideo-test" id="subtitle"]]
+[[!template text="""C-u M-RET. We're in the debugger again,""" start="00:10:05.960" video="mainVideo-test" id="subtitle"]]
+[[!template text="""and let's step up front to my function under test""" start="00:10:10.080" video="mainVideo-test" id="subtitle"]]
+[[!template text="""and then press `i` for getting it instrumented""" start="00:10:15.640" video="mainVideo-test" id="subtitle"]]
+[[!template text="""and going into it for debugging.""" start="00:10:19.360" video="mainVideo-test" id="subtitle"]]
+[[!template text="""And here we can expect that it's getting""" start="00:10:23.020" video="mainVideo-test" id="subtitle"]]
+[[!template text="""the arguments 1 and 3,""" start="00:10:25.140" video="mainVideo-test" id="subtitle"]]
+[[!template text="""and it returns the result 4 as expected.""" start="00:10:26.560" video="mainVideo-test" id="subtitle"]]
+[[!template text="""And yes, of course, our test case will then succeed.""" start="00:10:31.000" video="mainVideo-test" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Mocking""" start="00:10:39.120" video="mainVideo-test" id="subtitle"]]</div>[[!template text="""The next tool in our toolbox is mocking.""" start="00:10:39.120" video="mainVideo-test" id="subtitle"]]
+[[!template text="""Mocking is needed when we want to simulate the response""" start="00:10:41.840" video="mainVideo-test" id="subtitle"]]
+[[!template text="""from a function used by the function under test.""" start="00:10:46.240" video="mainVideo-test" id="subtitle"]]
+[[!template text="""That is the implementation of the function.""" start="00:10:49.280" video="mainVideo-test" id="subtitle"]]
+[[!template text="""This could be for various reasons.""" start="00:10:53.140" video="mainVideo-test" id="subtitle"]]
+[[!template text="""One example could be because it would be hard or impossible""" start="00:10:56.120" video="mainVideo-test" id="subtitle"]]
+[[!template text="""in the test setup to get the behavior you want to test for,""" start="00:11:00.880" video="mainVideo-test" id="subtitle"]]
+[[!template text="""like an external error case.""" start="00:11:04.200" video="mainVideo-test" id="subtitle"]]
+[[!template text="""But the mock can also be used to verify""" start="00:11:06.280" video="mainVideo-test" id="subtitle"]]
+[[!template text="""that the function is called with a specific argument.""" start="00:11:08.680" video="mainVideo-test" id="subtitle"]]
+[[!template text="""We can view it as a way to isolate the function on the test""" start="00:11:11.620" video="mainVideo-test" id="subtitle"]]
+[[!template text="""from its dependencies.""" start="00:11:14.560" video="mainVideo-test" id="subtitle"]]
+[[!template text="""So in order to test the function in isolation,""" start="00:11:16.720" video="mainVideo-test" id="subtitle"]]
+[[!template text="""we need to cut out any dependencies to external behavior.""" start="00:11:18.960" video="mainVideo-test" id="subtitle"]]
+[[!template text="""Most obvious would be dependencies to external resources,""" start="00:11:22.080" video="mainVideo-test" id="subtitle"]]
+[[!template text="""such as web pages. As an example:""" start="00:11:25.840" video="mainVideo-test" id="subtitle"]]
+[[!template text="""Hyperbole contains functionality to link you to""" start="00:11:27.640" video="mainVideo-test" id="subtitle"]]
+[[!template text="""social media resources and other resources on the net.""" start="00:11:30.640" video="mainVideo-test" id="subtitle"]]
+[[!template text="""Testing that would require the test system to call out""" start="00:11:34.240" video="mainVideo-test" id="subtitle"]]
+[[!template text="""to the social media resources""" start="00:11:37.900" video="mainVideo-test" id="subtitle"]]
+[[!template text="""and would depend on it being available, etc.""" start="00:11:39.640" video="mainVideo-test" id="subtitle"]]
+[[!template text="""Nothing technically stops a test case""" start="00:11:43.540" video="mainVideo-test" id="subtitle"]]
+[[!template text="""to depend on the external resources,""" start="00:11:45.480" video="mainVideo-test" id="subtitle"]]
+[[!template text="""but would, if nothing else, be flaky or slow.""" start="00:11:47.240" video="mainVideo-test" id="subtitle"]]
+[[!template text="""It could be part of an end-to-end suite""" start="00:11:51.320" video="mainVideo-test" id="subtitle"]]
+[[!template text="""where we want to test that it works all the way.""" start="00:11:53.760" video="mainVideo-test" id="subtitle"]]
+[[!template text="""In this case, we want to look at the isolated case""" start="00:11:57.180" video="mainVideo-test" id="subtitle"]]
+[[!template text="""that can be run with no dependency on external resources.""" start="00:11:59.720" video="mainVideo-test" id="subtitle"]]
+[[!template text="""What you want to do is to replace the function with a mock""" start="00:12:04.100" video="mainVideo-test" id="subtitle"]]
+[[!template text="""that behaves as the real function would do.""" start="00:12:06.680" video="mainVideo-test" id="subtitle"]]
+[[!template text="""The package I have found""" start="00:12:10.340" video="mainVideo-test" id="subtitle"]]
+[[!template text="""and have used for mocking is `el-mock`.""" start="00:12:11.640" video="mainVideo-test" id="subtitle"]]
+[[!template text="""The workhorse in this package is the `with-mock` macro.""" start="00:12:14.320" video="mainVideo-test" id="subtitle"]]
+[[!template text="""It looks like this: `with-mock` followed by a body.""" start="00:12:21.840" video="mainVideo-test" id="subtitle"]]
+[[!template text="""In the execution of the body, stubs and mocks""" start="00:12:26.520" video="mainVideo-test" id="subtitle"]]
+[[!template text="""defined in the body is respected.""" start="00:12:30.440" video="mainVideo-test" id="subtitle"]]
+[[!template text="""Let's look at some examples to make that clearer.""" start="00:12:32.900" video="mainVideo-test" id="subtitle"]]
+[[!template text="""In this case, we have the macro `with-mock`.""" start="00:12:39.200" video="mainVideo-test" id="subtitle"]]
+[[!template text="""It works so that the expression""" start="00:12:42.080" video="mainVideo-test" id="subtitle"]]
+[[!template text="""`stub + => 10` is interpreted""" start="00:12:43.960" video="mainVideo-test" id="subtitle"]]
+[[!template text="""so that the function `+` will be replaced with the stub.""" start="00:12:48.640" video="mainVideo-test" id="subtitle"]]
+[[!template text="""The stub will return 10 regardless how it is called.""" start="00:12:51.920" video="mainVideo-test" id="subtitle"]]
+[[!template text="""Note that the stub function""" start="00:12:56.780" video="mainVideo-test" id="subtitle"]]
+[[!template text="""does not have to be called at this level""" start="00:12:58.120" video="mainVideo-test" id="subtitle"]]
+[[!template text="""but could be called at any level in the call chain.""" start="00:13:00.200" video="mainVideo-test" id="subtitle"]]
+[[!template text="""By knowing how the function under test is implemented""" start="00:13:02.800" video="mainVideo-test" id="subtitle"]]
+[[!template text="""and how the implementation works,""" start="00:13:07.480" video="mainVideo-test" id="subtitle"]]
+[[!template text="""you can find function calls you want to mock""" start="00:13:09.320" video="mainVideo-test" id="subtitle"]]
+[[!template text="""to force certain behavior that you want to test,""" start="00:13:11.960" video="mainVideo-test" id="subtitle"]]
+[[!template text="""or to avoid calls to external resources, slow calls, etc.""" start="00:13:15.000" video="mainVideo-test" id="subtitle"]]
+[[!template text="""Simply isolate the function under test""" start="00:13:19.000" video="mainVideo-test" id="subtitle"]]
+[[!template text="""and simulate its environment.""" start="00:13:21.960" video="mainVideo-test" id="subtitle"]]
+[[!template text="""Mock is a little bit more sophisticated""" start="00:13:26.120" video="mainVideo-test" id="subtitle"]]
+[[!template text="""and depends on the arguments""" start="00:13:28.640" video="mainVideo-test" id="subtitle"]]
+[[!template text="""that the mock function is called with.""" start="00:13:30.080" video="mainVideo-test" id="subtitle"]]
+[[!template text="""Or more precise, it is checked""" start="00:13:31.480" video="mainVideo-test" id="subtitle"]]
+[[!template text="""after the `with-mock` clause""" start="00:13:33.848" video="mainVideo-test" id="subtitle"]]
+[[!template text="""that the arguments match the arguments it was called with""" start="00:13:35.520" video="mainVideo-test" id="subtitle"]]
+[[!template text="""or even if it was called at all.""" start="00:13:38.080" video="mainVideo-test" id="subtitle"]]
+[[!template text="""If it is called with other arguments""" start="00:13:39.760" video="mainVideo-test" id="subtitle"]]
+[[!template text="""there will be an error,""" start="00:13:41.840" video="mainVideo-test" id="subtitle"]]
+[[!template text="""and if it's not called, it is also an error.""" start="00:13:43.720" video="mainVideo-test" id="subtitle"]]
+[[!template text="""So this way, we are sure that the function""" start="00:13:46.480" video="mainVideo-test" id="subtitle"]]
+[[!template text="""we were expected to be called actually was called.""" start="00:13:48.360" video="mainVideo-test" id="subtitle"]]
+[[!template text="""An important piece of the testing.""" start="00:13:51.320" video="mainVideo-test" id="subtitle"]]
+[[!template text="""So we are sure that the mock we have provided""" start="00:13:53.400" video="mainVideo-test" id="subtitle"]]
+[[!template text="""actually is triggered by the test case.""" start="00:13:56.240" video="mainVideo-test" id="subtitle"]]
+[[!template text="""So here we have an example of `with-mock`""" start="00:14:04.000" video="mainVideo-test" id="subtitle"]]
+[[!template text="""where the `f1-add` function is mocked,""" start="00:14:08.160" video="mainVideo-test" id="subtitle"]]
+[[!template text="""so that if it's called with 2 and 3 as arguments,""" start="00:14:18.880" video="mainVideo-test" id="subtitle"]]
+[[!template text="""it will return 10. Then we have a test case""" start="00:14:22.000" video="mainVideo-test" id="subtitle"]]
+[[!template text="""where we try the `my-add` function,""" start="00:14:24.920" video="mainVideo-test" id="subtitle"]]
+[[!template text="""as you might remember, and call that with 2 and 3""" start="00:14:28.000" video="mainVideo-test" id="subtitle"]]
+[[!template text="""and see that it should also then return 10""" start="00:14:30.320" video="mainVideo-test" id="subtitle"]]
+[[!template text="""because it's using `f1-add`.""" start="00:14:32.800" video="mainVideo-test" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""cl-letf""" start="00:14:41.240" video="mainVideo-test" id="subtitle"]]</div>[[!template text="""Moving over to `cl-letf`.""" start="00:14:41.240" video="mainVideo-test" id="subtitle"]]
+[[!template text="""In rare occasions, the limitations of `el-mock` means""" start="00:14:44.560" video="mainVideo-test" id="subtitle"]]
+[[!template text="""you would want to implement a full-fledged function""" start="00:14:47.680" video="mainVideo-test" id="subtitle"]]
+[[!template text="""to be used under test.""" start="00:14:50.240" video="mainVideo-test" id="subtitle"]]
+[[!template text="""Then the macro `cl-letf` can be useful.""" start="00:14:52.980" video="mainVideo-test" id="subtitle"]]
+[[!template text="""However, you need to handle the case yourself""" start="00:14:55.440" video="mainVideo-test" id="subtitle"]]
+[[!template text="""if the function was not called.""" start="00:14:57.880" video="mainVideo-test" id="subtitle"]]
+[[!template text="""Looking through the test cases where I have used `cl-letf`,""" start="00:15:00.100" video="mainVideo-test" id="subtitle"]]
+[[!template text="""I think most can be implemented using plain mocking.""" start="00:15:03.520" video="mainVideo-test" id="subtitle"]]
+[[!template text="""Cases left is where the args to the mock might be different""" start="00:15:06.120" video="mainVideo-test" id="subtitle"]]
+[[!template text="""due to environment issues.""" start="00:15:11.240" video="mainVideo-test" id="subtitle"]]
+[[!template text="""In that case, a static mock will not work.""" start="00:15:13.740" video="mainVideo-test" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Hooks""" start="00:15:24.100" video="mainVideo-test" id="subtitle"]]</div>[[!template text="""Another trick is that functions that uses hooks.""" start="00:15:24.100" video="mainVideo-test" id="subtitle"]]
+[[!template text="""You can overload or replace the hooks to do the testing.""" start="00:15:30.720" video="mainVideo-test" id="subtitle"]]
+[[!template text="""So you can use the hook function just to do the verification""" start="00:15:35.640" video="mainVideo-test" id="subtitle"]]
+[[!template text="""and not do anything useful in the hook.""" start="00:15:40.760" video="mainVideo-test" id="subtitle"]]
+[[!template text="""Also, here you need to be careful""" start="00:15:43.120" video="mainVideo-test" id="subtitle"]]
+[[!template text="""to make sure the test handler is called and nothing else.""" start="00:15:45.080" video="mainVideo-test" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Side effects and initial buffer state""" start="00:15:55.720" video="mainVideo-test" id="subtitle"]]</div>[[!template text="""So far we have been talking about testing""" start="00:15:55.720" video="mainVideo-test" id="subtitle"]]
+[[!template text="""and what the function returns.""" start="00:15:57.680" video="mainVideo-test" id="subtitle"]]
+[[!template text="""In the best of words, we have a pure function""" start="00:15:59.040" video="mainVideo-test" id="subtitle"]]
+[[!template text="""that only depends on its arguments""" start="00:16:01.120" video="mainVideo-test" id="subtitle"]]
+[[!template text="""and produces no side effects.""" start="00:16:02.960" video="mainVideo-test" id="subtitle"]]
+[[!template text="""Many operations produce side effects""" start="00:16:04.940" video="mainVideo-test" id="subtitle"]]
+[[!template text="""or operate on the contents of buffers""" start="00:16:06.900" video="mainVideo-test" id="subtitle"]]
+[[!template text="""such as writing a message in the message buffer,""" start="00:16:09.480" video="mainVideo-test" id="subtitle"]]
+[[!template text="""change the state of a buffer, move point etc.""" start="00:16:12.380" video="mainVideo-test" id="subtitle"]]
+[[!template text="""Hyperbole is not an exception. Quite the contrary.""" start="00:16:15.660" video="mainVideo-test" id="subtitle"]]
+[[!template text="""Much of the functions creating links""" start="00:16:18.860" video="mainVideo-test" id="subtitle"]]
+[[!template text="""are just about updating buffers.""" start="00:16:20.840" video="mainVideo-test" id="subtitle"]]
+[[!template text="""This poses a special problem for tests.""" start="00:16:24.421" video="mainVideo-test" id="subtitle"]]
+[[!template text="""The test gets longer""" start="00:16:28.560" video="mainVideo-test" id="subtitle"]]
+[[!template text="""since you need to create buffers and files,""" start="00:16:29.840" video="mainVideo-test" id="subtitle"]]
+[[!template text="""initialize the contents.""" start="00:16:31.920" video="mainVideo-test" id="subtitle"]]
+[[!template text="""Verifying the outcome becomes trickier""" start="00:16:33.280" video="mainVideo-test" id="subtitle"]]
+[[!template text="""since you need to make sure you look at the right place.""" start="00:16:35.160" video="mainVideo-test" id="subtitle"]]
+[[!template text="""At the end of the test, you need to clean up,""" start="00:16:39.020" video="mainVideo-test" id="subtitle"]]
+[[!template text="""both for not leaving a lot of garbage""" start="00:16:41.040" video="mainVideo-test" id="subtitle"]]
+[[!template text="""in buffers and files around,""" start="00:16:43.440" video="mainVideo-test" id="subtitle"]]
+[[!template text="""and even worse, not cause later tests""" start="00:16:45.280" video="mainVideo-test" id="subtitle"]]
+[[!template text="""to depend on the leftovers from the other tests.""" start="00:16:48.480" video="mainVideo-test" id="subtitle"]]
+[[!template text="""Here are some functions and variables""" start="00:16:50.960" video="mainVideo-test" id="subtitle"]]
+[[!template text="""I have found useful for this.""" start="00:16:53.080" video="mainVideo-test" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""with-temp-buffer""" start="00:17:05.100" video="mainVideo-test" id="subtitle"]]</div>[[!template text="""For creating tests: `with-temp-buffer`:""" start="00:17:05.100" video="mainVideo-test" id="subtitle"]]
+[[!template text="""it provides you a temp buffer that you visit,""" start="00:17:09.200" video="mainVideo-test" id="subtitle"]]
+[[!template text="""and afterwards, there is no need to clean up.""" start="00:17:11.920" video="mainVideo-test" id="subtitle"]]
+[[!template text="""This is the first choice if that is all you need.""" start="00:17:13.720" video="mainVideo-test" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""make-temp-file""" start="00:17:16.520" video="mainVideo-test" id="subtitle"]]</div>[[!template text="""`make-temp-file`: If you need a file,""" start="00:17:16.520" video="mainVideo-test" id="subtitle"]]
+[[!template text="""this is the function to use.""" start="00:17:20.520" video="mainVideo-test" id="subtitle"]]
+[[!template text="""It creates a temp file or a directory.""" start="00:17:21.960" video="mainVideo-test" id="subtitle"]]
+[[!template text="""The file can be filled with initial contents.""" start="00:17:24.280" video="mainVideo-test" id="subtitle"]]
+[[!template text="""This needs to be cleaned up after a test.""" start="00:17:26.960" video="mainVideo-test" id="subtitle"]]
+[[!template text="""Moving on to verifying and debugging:""" start="00:17:31.020" video="mainVideo-test" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""buffer-string""" start="00:17:33.288" video="mainVideo-test" id="subtitle"]]</div>[[!template text="""`buffer-string`: returns the full contents""" start="00:17:33.288" video="mainVideo-test" id="subtitle"]]
+[[!template text="""of the buffer as a string.""" start="00:17:38.248" video="mainVideo-test" id="subtitle"]]
+[[!template text="""That can sound a bit voluminous,""" start="00:17:39.500" video="mainVideo-test" id="subtitle"]]
+[[!template text="""but since tests are normally small, this often works well.""" start="00:17:41.400" video="mainVideo-test" id="subtitle"]]
+[[!template text="""I have in particular found good use of comparing""" start="00:17:46.140" video="mainVideo-test" id="subtitle"]]
+[[!template text="""the contents of buffers with the empty string.""" start="00:17:48.440" video="mainVideo-test" id="subtitle"]]
+[[!template text="""That would give an error, but as we have seen""" start="00:17:50.400" video="mainVideo-test" id="subtitle"]]
+[[!template text="""with the output produced by the `should` assertion,""" start="00:17:53.360" video="mainVideo-test" id="subtitle"]]
+[[!template text="""this is almost like a print statement""" start="00:17:56.080" video="mainVideo-test" id="subtitle"]]
+[[!template text="""and can be compared with the good old technique""" start="00:17:58.080" video="mainVideo-test" id="subtitle"]]
+[[!template text="""of debugging with print statements.""" start="00:18:01.200" video="mainVideo-test" id="subtitle"]]
+[[!template text="""There might be other ways to do the same""" start="00:18:04.400" video="mainVideo-test" id="subtitle"]]
+[[!template text="""as we saw with debugging.""" start="00:18:06.248" video="mainVideo-test" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""buffer-name""" start="00:18:09.920" video="mainVideo-test" id="subtitle"]]</div>[[!template text="""buffer-name: Getting the buffer name is good""" start="00:18:09.920" video="mainVideo-test" id="subtitle"]]
+[[!template text="""to verify what buffer we are looking at.""" start="00:18:13.720" video="mainVideo-test" id="subtitle"]]
+[[!template text="""I often found it useful to check""" start="00:18:16.240" video="mainVideo-test" id="subtitle"]]
+[[!template text="""that my assumptions on what buffer I am acting on""" start="00:18:18.360" video="mainVideo-test" id="subtitle"]]
+[[!template text="""is correct by adding `should` clauses""" start="00:18:21.120" video="mainVideo-test" id="subtitle"]]
+[[!template text="""in the middle of the test execution""" start="00:18:23.400" video="mainVideo-test" id="subtitle"]]
+[[!template text="""or after preparing the test input.""" start="00:18:25.400" video="mainVideo-test" id="subtitle"]]
+[[!template text="""Sometimes Emacs can switch buffers in strange ways,""" start="00:18:27.400" video="mainVideo-test" id="subtitle"]]
+[[!template text="""maybe because the test case is badly written,""" start="00:18:31.680" video="mainVideo-test" id="subtitle"]]
+[[!template text="""and making sure your assumptions are correct""" start="00:18:34.200" video="mainVideo-test" id="subtitle"]]
+[[!template text="""is a good sanity check.""" start="00:18:37.240" video="mainVideo-test" id="subtitle"]]
+[[!template text="""Even the ert package does""" start="00:18:40.340" video="mainVideo-test" id="subtitle"]]
+[[!template text="""some buffer and windows manipulation for its reporting""" start="00:18:42.240" video="mainVideo-test" id="subtitle"]]
+[[!template text="""that I have not fully learned how to master,""" start="00:18:44.880" video="mainVideo-test" id="subtitle"]]
+[[!template text="""so assertion for checking the sanity of the test is good.""" start="00:18:47.488" video="mainVideo-test" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""major-mode""" start="00:18:51.980" video="mainVideo-test" id="subtitle"]]</div>[[!template text="""Finally, `major-mode`: Verify the buffer has the proper mode.""" start="00:18:51.980" video="mainVideo-test" id="subtitle"]]
+[[!template text="""Can also be very useful and is a good sanity check.""" start="00:18:55.680" video="mainVideo-test" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""unwind-protect""" start="00:19:02.680" video="mainVideo-test" id="subtitle"]]</div>[[!template text="""Finally, cleaning up. `unwind-protect`.""" start="00:19:02.680" video="mainVideo-test" id="subtitle"]]
+[[!template text="""The tool for cleaning up is the `unwind-protect` form""" start="00:19:06.600" video="mainVideo-test" id="subtitle"]]
+[[!template text="""which ensures that the unwind forms""" start="00:19:09.040" video="mainVideo-test" id="subtitle"]]
+[[!template text="""always are executed regardless of the outcome of the body.""" start="00:19:12.480" video="mainVideo-test" id="subtitle"]]
+[[!template text="""So if your test fails, you are sure the cleanup is executed.""" start="00:19:15.440" video="mainVideo-test" id="subtitle"]]
+[[!template text="""Let's look at unwind-protect together with""" start="00:19:20.420" video="mainVideo-test" id="subtitle"]]
+[[!template text="""the temporary file example. Many tests look like this.""" start="00:19:22.760" video="mainVideo-test" id="subtitle"]]
+[[!template text="""You create some resource, you call `unwind-protect`,""" start="00:19:30.520" video="mainVideo-test" id="subtitle"]]
+[[!template text="""you do the test, and then afterwards you do the cleanup.""" start="00:19:35.280" video="mainVideo-test" id="subtitle"]]
+[[!template text="""The cleanup for a file and a buffer is so common,""" start="00:19:42.760" video="mainVideo-test" id="subtitle"]]
+[[!template text="""so I have created a helper for that.""" start="00:19:46.360" video="mainVideo-test" id="subtitle"]]
+[[!template text="""It looks like this.""" start="00:19:51.000" video="mainVideo-test" id="subtitle"]]
+[[!template text="""The trick with the `buffer-modified` flag""" start="00:19:56.560" video="mainVideo-test" id="subtitle"]]
+[[!template text="""is to avoid getting prompted""" start="00:19:59.180" video="mainVideo-test" id="subtitle"]]
+[[!template text="""for killing a buffer that is not saved.""" start="00:20:00.720" video="mainVideo-test" id="subtitle"]]
+[[!template text="""The test buffers are often in the state""" start="00:20:03.220" video="mainVideo-test" id="subtitle"]]
+[[!template text="""where they have not been saved but modified.""" start="00:20:05.440" video="mainVideo-test" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Input, with-simulated-input""" start="00:20:15.100" video="mainVideo-test" id="subtitle"]]</div>[[!template text="""Another problem for tests are input.""" start="00:20:15.100" video="mainVideo-test" id="subtitle"]]
+[[!template text="""In the middle of execution a function""" start="00:20:19.680" video="mainVideo-test" id="subtitle"]]
+[[!template text="""might want to have some interaction with the user.""" start="00:20:21.560" video="mainVideo-test" id="subtitle"]]
+[[!template text="""Testing this poses a problem, not only in that""" start="00:20:24.040" video="mainVideo-test" id="subtitle"]]
+[[!template text="""the input matters, but also as how even to get the test case""" start="00:20:26.960" video="mainVideo-test" id="subtitle"]]
+[[!template text="""to recognize the input!?""" start="00:20:31.200" video="mainVideo-test" id="subtitle"]]
+[[!template text="""Ideally the tests are run in batch mode,""" start="00:20:34.080" video="mainVideo-test" id="subtitle"]]
+[[!template text="""which in some sense means no user interaction.""" start="00:20:36.040" video="mainVideo-test" id="subtitle"]]
+[[!template text="""In batch mode, there is no event loop running.""" start="00:20:38.920" video="mainVideo-test" id="subtitle"]]
+[[!template text="""Fortunately, there is a package `with-simulated-input`""" start="00:20:43.000" video="mainVideo-test" id="subtitle"]]
+[[!template text="""that gets you around these issues.""" start="00:20:47.180" video="mainVideo-test" id="subtitle"]]
+[[!template text="""This is a macro that allows us""" start="00:20:53.260" video="mainVideo-test" id="subtitle"]]
+[[!template text="""to define a set of characters""" start="00:20:55.400" video="mainVideo-test" id="subtitle"]]
+[[!template text="""that will be read by the function under the test,""" start="00:20:57.000" video="mainVideo-test" id="subtitle"]]
+[[!template text="""and all of this works in batch mode. It looks like this.""" start="00:20:59.080" video="mainVideo-test" id="subtitle"]]
+[[!template text="""We have `with-simulated-input`,""" start="00:21:02.580" video="mainVideo-test" id="subtitle"]]
+[[!template text="""and then a string of characters, and then a body.""" start="00:21:04.160" video="mainVideo-test" id="subtitle"]]
+[[!template text="""The form takes a string of keys""" start="00:21:09.840" video="mainVideo-test" id="subtitle"]]
+[[!template text="""and runs the rest of the body,""" start="00:21:11.648" video="mainVideo-test" id="subtitle"]]
+[[!template text="""and if there are input required,""" start="00:21:13.120" video="mainVideo-test" id="subtitle"]]
+[[!template text="""it is picked from the string of keys.""" start="00:21:15.440" video="mainVideo-test" id="subtitle"]]
+[[!template text="""In our example, the `read-string` call""" start="00:21:18.120" video="mainVideo-test" id="subtitle"]]
+[[!template text="""will read up until RET,""" start="00:21:20.422" video="mainVideo-test" id="subtitle"]]
+[[!template text="""and then return the characters read.""" start="00:21:21.720" video="mainVideo-test" id="subtitle"]]
+[[!template text="""As you see in the example, space needs to be provided""" start="00:21:26.120" video="mainVideo-test" id="subtitle"]]
+[[!template text="""by the string SPC, as return by the string RET.""" start="00:21:29.640" video="mainVideo-test" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Running all tests""" start="00:21:38.460" video="mainVideo-test" id="subtitle"]]</div>[[!template text="""So now we have seen ways to create test cases""" start="00:21:38.460" video="mainVideo-test" id="subtitle"]]
+[[!template text="""and even make it possible to run some of them""" start="00:21:40.800" video="mainVideo-test" id="subtitle"]]
+[[!template text="""that has I/O in batch mode.""" start="00:21:43.220" video="mainVideo-test" id="subtitle"]]
+[[!template text="""But the initial goal was to run them all at once.""" start="00:21:44.680" video="mainVideo-test" id="subtitle"]]
+[[!template text="""How do you do that?""" start="00:21:47.280" video="mainVideo-test" id="subtitle"]]
+[[!template text="""Let's go back to the `ert` command.""" start="00:21:48.920" video="mainVideo-test" id="subtitle"]]
+[[!template text="""It prompts for a test selector.""" start="00:21:51.760" video="mainVideo-test" id="subtitle"]]
+[[!template text="""If we give it the selector `t`,""" start="00:21:53.800" video="mainVideo-test" id="subtitle"]]
+[[!template text="""it will run all tests we have currently defined.""" start="00:21:56.280" video="mainVideo-test" id="subtitle"]]
+[[!template text="""Let's try that with the subset of the Hyperbole tests.""" start="00:21:59.260" video="mainVideo-test" id="subtitle"]]
+[[!template text="""Here is the test folder in the Hyperbole directory.""" start="00:22:05.780" video="mainVideo-test" id="subtitle"]]
+[[!template text="""Let's go up here and load all the demo tests.""" start="00:22:09.560" video="mainVideo-test" id="subtitle"]]
+[[!template text="""And then try to run `ert`.""" start="00:22:18.820" video="mainVideo-test" id="subtitle"]]
+[[!template text="""Now we see that we have a bunch of test cases.""" start="00:22:21.208" video="mainVideo-test" id="subtitle"]]
+[[!template text="""We can all run them individually,""" start="00:22:26.120" video="mainVideo-test" id="subtitle"]]
+[[!template text="""but we can run them with `t` instead.""" start="00:22:27.920" video="mainVideo-test" id="subtitle"]]
+[[!template text="""We will run them all at once.""" start="00:22:31.720" video="mainVideo-test" id="subtitle"]]
+[[!template text="""So now, ert is executing all our test cases.""" start="00:22:35.460" video="mainVideo-test" id="subtitle"]]
+[[!template text="""So here we have a nice green display""" start="00:22:51.420" video="mainVideo-test" id="subtitle"]]
+[[!template text="""with all the test cases.""" start="00:22:57.080" video="mainVideo-test" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Batch mode""" start="00:23:03.220" video="mainVideo-test" id="subtitle"]]</div>[[!template text="""So that was fine, but we were still running it manually""" start="00:23:03.220" video="mainVideo-test" id="subtitle"]]
+[[!template text="""by calling ert. How could we run it from the command line?""" start="00:23:08.160" video="mainVideo-test" id="subtitle"]]
+[[!template text="""Ert comes with functions for running it in batch mode.""" start="00:23:17.180" video="mainVideo-test" id="subtitle"]]
+[[!template text="""For Hyperbole, we use `make` for repetitive tasks.""" start="00:23:21.500" video="mainVideo-test" id="subtitle"]]
+[[!template text="""So we have a make target""" start="00:23:25.640" video="mainVideo-test" id="subtitle"]]
+[[!template text="""that uses the ert batch functionality,""" start="00:23:27.120" video="mainVideo-test" id="subtitle"]]
+[[!template text="""and this is the line from the Makefile.""" start="00:23:29.280" video="mainVideo-test" id="subtitle"]]
+[[!template text="""This is a bit detailed,""" start="00:23:33.260" video="mainVideo-test" id="subtitle"]]
+[[!template text="""but you see that we have a part here""" start="00:23:35.480" video="mainVideo-test" id="subtitle"]]
+[[!template text="""where we load the test dependencies.""" start="00:23:37.540" video="mainVideo-test" id="subtitle"]]
+[[!template text="""For getting the packages""" start="00:23:40.780" video="mainVideo-test" id="subtitle"]]
+[[!template text="""such as `el-mock` and `with-simulated-input` etc. loaded.""" start="00:23:43.521" video="mainVideo-test" id="subtitle"]]
+[[!template text="""We also have... I also want to point out here the call to""" start="00:23:48.460" video="mainVideo-test" id="subtitle"]]
+[[!template text="""or the setting of `auto-save-default` to `nil`""" start="00:23:53.560" video="mainVideo-test" id="subtitle"]]
+[[!template text="""to get away with the prompt for excessive backup files""" start="00:23:58.160" video="mainVideo-test" id="subtitle"]]
+[[!template text="""that can pile up after running the tests a few times.""" start="00:24:02.440" video="mainVideo-test" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Skipping tests""" start="00:24:05.060" video="mainVideo-test" id="subtitle"]]</div>[[!template text="""Even with the help of simulated input,""" start="00:24:05.060" video="mainVideo-test" id="subtitle"]]
+[[!template text="""not all tests can be run in batch mode.""" start="00:24:06.880" video="mainVideo-test" id="subtitle"]]
+[[!template text="""They would simply not work there""" start="00:24:08.920" video="mainVideo-test" id="subtitle"]]
+[[!template text="""and have to be run in an interactive Emacs""" start="00:24:10.560" video="mainVideo-test" id="subtitle"]]
+[[!template text="""with the running event loop.""" start="00:24:12.440" video="mainVideo-test" id="subtitle"]]
+[[!template text="""One trick still to be able to use batch mode for automation""" start="00:24:14.180" video="mainVideo-test" id="subtitle"]]
+[[!template text="""is to put the guard at the top of each test case""" start="00:24:17.920" video="mainVideo-test" id="subtitle"]]
+[[!template text="""as the first thing to be executed,""" start="00:24:20.320" video="mainVideo-test" id="subtitle"]]
+[[!template text="""so that it kicks in before anything else and stops Emacs""" start="00:24:22.560" video="mainVideo-test" id="subtitle"]]
+[[!template text="""to try to run the test case.""" start="00:24:25.720" video="mainVideo-test" id="subtitle"]]
+[[!template text="""Now, it looks like this: `(skip-unless (not noninteractive))`.""" start="00:24:27.200" video="mainVideo-test" id="subtitle"]]
+[[!template text="""So when ert sees that the test should be skipped, it skips it""" start="00:24:35.520" video="mainVideo-test" id="subtitle"]]
+[[!template text="""and makes a note of that,""" start="00:24:38.640" video="mainVideo-test" id="subtitle"]]
+[[!template text="""so you will see how many tests that have been skipped.""" start="00:24:40.440" video="mainVideo-test" id="subtitle"]]
+[[!template text="""Too bad. We have a number of test cases defined,""" start="00:24:44.580" video="mainVideo-test" id="subtitle"]]
+[[!template text="""and to run them, we need to run them manually. Well sort of.""" start="00:24:47.560" video="mainVideo-test" id="subtitle"]]
+[[!template text="""Not being able to run all tests easily""" start="00:24:51.360" video="mainVideo-test" id="subtitle"]]
+[[!template text="""is a bit counterproductive""" start="00:24:53.808" video="mainVideo-test" id="subtitle"]]
+[[!template text="""since our goal is to run all tests.""" start="00:24:58.420" video="mainVideo-test" id="subtitle"]]
+[[!template text="""There is however no ert function to run tests in batch mode""" start="00:25:01.000" video="mainVideo-test" id="subtitle"]]
+[[!template text="""with an interactive Emacs.""" start="00:25:04.720" video="mainVideo-test" id="subtitle"]]
+[[!template text="""The closest I have got is either""" start="00:25:06.780" video="mainVideo-test" id="subtitle"]]
+[[!template text="""to start the Emacs from the command line""" start="00:25:08.480" video="mainVideo-test" id="subtitle"]]
+[[!template text="""calling the ert function as we just have seen,""" start="00:25:10.080" video="mainVideo-test" id="subtitle"]]
+[[!template text="""and then killing it manually when done;""" start="00:25:12.440" video="mainVideo-test" id="subtitle"]]
+[[!template text="""or add a function to extract the contents of the ERT buffer""" start="00:25:14.800" video="mainVideo-test" id="subtitle"]]
+[[!template text="""when done and echo it to standard output.""" start="00:25:19.600" video="mainVideo-test" id="subtitle"]]
+[[!template text="""This is how it looks in the Makefile""" start="00:25:24.600" video="mainVideo-test" id="subtitle"]]
+[[!template text="""to get the behavior of cutting and paste,""" start="00:25:27.801" video="mainVideo-test" id="subtitle"]]
+[[!template text="""getting the ERT output into a file""" start="00:25:31.208" video="mainVideo-test" id="subtitle"]]
+[[!template text="""so we can then kill Emacs""" start="00:25:34.581" video="mainVideo-test" id="subtitle"]]
+[[!template text="""and spit out the content of the ERT buffer.""" start="00:25:36.240" video="mainVideo-test" id="subtitle"]]
+[[!template text="""One final word here is that""" start="00:25:44.800" video="mainVideo-test" id="subtitle"]]
+[[!template text="""when you run this in a continuous integration pipeline,""" start="00:25:47.740" video="mainVideo-test" id="subtitle"]]
+[[!template text="""you might not have a TTY for getting Emacs to start,""" start="00:25:54.560" video="mainVideo-test" id="subtitle"]]
+[[!template text="""and that is then another problem""" start="00:25:59.400" video="mainVideo-test" id="subtitle"]]
+[[!template text="""with getting the interactive mode.""" start="00:26:03.201" video="mainVideo-test" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Conclusion""" start="00:26:08.460" video="mainVideo-test" id="subtitle"]]</div>[[!template text="""We have reached the end of the talk.""" start="00:26:08.460" video="mainVideo-test" id="subtitle"]]
+[[!template text="""If you have any new ideas""" start="00:26:11.121" video="mainVideo-test" id="subtitle"]]
+[[!template text="""or have some suggestions for improvements,""" start="00:26:14.160" video="mainVideo-test" id="subtitle"]]
+[[!template text="""feel free to reach out""" start="00:26:16.760" video="mainVideo-test" id="subtitle"]]
+[[!template text="""because I am still on the learning curve of writing,""" start="00:26:18.240" video="mainVideo-test" id="subtitle"]]
+[[!template text="""how to write good test cases.""" start="00:26:21.101" video="mainVideo-test" id="subtitle"]]
+[[!template text="""If you look at the test cases we have in Hyperbole""" start="00:26:25.300" video="mainVideo-test" id="subtitle"]]
+[[!template text="""and you think they might contradict what I am saying here,""" start="00:26:27.640" video="mainVideo-test" id="subtitle"]]
+[[!template text="""it is OK. It is probably right.""" start="00:26:29.800" video="mainVideo-test" id="subtitle"]]
+[[!template text="""I have changed the style as I go""" start="00:26:32.580" video="mainVideo-test" id="subtitle"]]
+[[!template text="""and we have not yet refactored all tests""" start="00:26:34.600" video="mainVideo-test" id="subtitle"]]
+[[!template text="""to benefit from new designs.""" start="00:26:36.640" video="mainVideo-test" id="subtitle"]]
+[[!template text="""That is also the beauty of the test case.""" start="00:26:38.580" video="mainVideo-test" id="subtitle"]]
+[[!template text="""As long as it serves its purpose, it is not terrible""" start="00:26:40.600" video="mainVideo-test" id="subtitle"]]
+[[!template text="""if it is not optimal or not having the best style.""" start="00:26:43.320" video="mainVideo-test" id="subtitle"]]
+[[!template text="""And yes, thanks for listening. Bye.""" start="00:26:47.800" video="mainVideo-test" id="subtitle"]]
+
+</div><div class="transcript transcript-qanda"><a name="test-qanda-transcript"></a><h1>Q&A transcript (unedited)</h1>
+
+[[!template text="""[Speaker 0]: Do we have any listeners?""" start="00:00:08.740" video="qanda-test" id="subtitle"]]
+[[!template text="""It's you and I. I have a question.""" start="00:00:13.340" video="qanda-test" id="subtitle"]]
+[[!template text="""How many tests do you have for hyperbole and""" start="00:00:16.420" video="qanda-test" id="subtitle"]]
+[[!template text="""How would you rate the test coverage compared""" start="00:00:18.800" video="qanda-test" id="subtitle"]]
+[[!template text="""to other packages? Well,""" start="00:00:21.279" video="qanda-test" id="subtitle"]]
+[[!template text="""that's a tricky 1. Shall I spell it out loud""" start="00:00:28.279" video="qanda-test" id="subtitle"]]
+[[!template text="""and then maybe type it at the same time?""" start="00:00:31.100" video="qanda-test" id="subtitle"]]
+[[!template text="""So, I believe it's around like more than 300""" start="00:00:36.420" video="qanda-test" id="subtitle"]]
+[[!template text="""test cases now. But I cannot compare the test""" start="00:00:43.660" video="qanda-test" id="subtitle"]]
+[[!template text="""coverage to any other""" start="00:00:45.220" video="qanda-test" id="subtitle"]]
+[[!template text="""other package. Maybe I can type that later.""" start="00:01:00.020" video="qanda-test" id="subtitle"]]
+[[!template text="""What do you say, Badal?""" start="00:01:01.560" video="qanda-test" id="subtitle"]]
+[[!template text="""[Speaker 1]: package. I have no knowledge of any Yeah,""" start="00:01:02.660" video="qanda-test" id="subtitle"]]
+[[!template text="""sure, yeah, that's totally fine.""" start="00:01:03.840" video="qanda-test" id="subtitle"]]
+[[!template text="""Feel free to just answer them with voice.""" start="00:01:05.660" video="qanda-test" id="subtitle"]]
+[[!template text="""[Speaker 0]: Yeah, yeah. There's another question.""" start="00:01:08.720" video="qanda-test" id="subtitle"]]
+[[!template text="""1 small suggestion to me,""" start="00:01:10.520" video="qanda-test" id="subtitle"]]
+[[!template text="""should means optional,""" start="00:01:11.440" video="qanda-test" id="subtitle"]]
+[[!template text="""where shall or must means required.""" start="00:01:13.660" video="qanda-test" id="subtitle"]]
+[[!template text="""Not sure if it is too late to make a major""" start="00:01:15.940" video="qanda-test" id="subtitle"]]
+[[!template text="""grammar change like that.""" start="00:01:17.220" video="qanda-test" id="subtitle"]]
+[[!template text="""Very nice presentation.""" start="00:01:18.080" video="qanda-test" id="subtitle"]]
+[[!template text="""So thanks for presentation,""" start="00:01:19.840" video="qanda-test" id="subtitle"]]
+[[!template text="""but the package ERT, well,""" start="00:01:24.380" video="qanda-test" id="subtitle"]]
+[[!template text="""it's not something that we have come up with.""" start="00:01:27.920" video="qanda-test" id="subtitle"]]
+[[!template text="""It's a standard package.""" start="00:01:28.920" video="qanda-test" id="subtitle"]]
+[[!template text="""So I believe it has been around for a long""" start="00:01:32.320" video="qanda-test" id="subtitle"]]
+[[!template text="""time. So, but please feel free to make""" start="00:01:37.760" video="qanda-test" id="subtitle"]]
+[[!template text="""suggestions and maybe you can,""" start="00:01:39.680" video="qanda-test" id="subtitle"]]
+[[!template text="""you know, like do a copy or like an alias for""" start="00:01:43.660" video="qanda-test" id="subtitle"]]
+[[!template text="""that. If you believe it makes more sense for""" start="00:01:46.080" video="qanda-test" id="subtitle"]]
+[[!template text="""your test cases to have that instead.""" start="00:01:48.080" video="qanda-test" id="subtitle"]]
+[[!template text="""And then we have another question here.""" start="00:01:53.540" video="qanda-test" id="subtitle"]]
+[[!template text="""For your info, you may find this helpful for""" start="00:01:55.540" video="qanda-test" id="subtitle"]]
+[[!template text="""running MX test lint both from a command line""" start="00:01:58.780" video="qanda-test" id="subtitle"]]
+[[!template text="""and from within MX with a transit menu.""" start="00:02:01.220" video="qanda-test" id="subtitle"]]
+[[!template text="""GitHub alpha papa make sure,""" start="00:02:03.600" video="qanda-test" id="subtitle"]]
+[[!template text="""yes. It also works on remote CI.""" start="00:02:06.760" video="qanda-test" id="subtitle"]]
+[[!template text="""Yeah, thank you, Alpha Papa.""" start="00:02:08.240" video="qanda-test" id="subtitle"]]
+[[!template text="""I think I've looked into that,""" start="00:02:10.580" video="qanda-test" id="subtitle"]]
+[[!template text="""but we haven't made any use of that.""" start="00:02:13.440" video="qanda-test" id="subtitle"]]
+[[!template text="""But maybe you'll inspire me to give it""" start="00:02:17.920" video="qanda-test" id="subtitle"]]
+[[!template text="""another look.""" start="00:02:18.400" video="qanda-test" id="subtitle"]]
+[[!template text="""[Speaker 2]: Hey guys.""" start="00:02:29.260" video="qanda-test" id="subtitle"]]
+[[!template text="""[Speaker 0]: I remember, I recognize that voice.""" start="00:02:34.120" video="qanda-test" id="subtitle"]]
+[[!template text="""Hi, Bob. Hey, how are you?""" start="00:02:37.160" video="qanda-test" id="subtitle"]]
+[[!template text="""Congratulations, man. Thanks,""" start="00:02:40.240" video="qanda-test" id="subtitle"]]
+[[!template text="""Hugh. Thank you. I have another question""" start="00:02:43.020" video="qanda-test" id="subtitle"]]
+[[!template text="""here. It is easy to run ad hoc tests inside""" start="00:02:45.520" video="qanda-test" id="subtitle"]]
+[[!template text="""an Emacs session given the command line""" start="00:02:48.400" video="qanda-test" id="subtitle"]]
+[[!template text="""scripts you need to run to get the batch test""" start="00:02:51.180" video="qanda-test" id="subtitle"]]
+[[!template text="""session running? You said it's to run an""" start="00:02:54.960" video="qanda-test" id="subtitle"]]
+[[!template text="""ad-hoc test. I'm not sure I understand that""" start="00:03:05.680" video="qanda-test" id="subtitle"]]
+[[!template text="""question. Yes, please.""" start="00:03:14.440" video="qanda-test" id="subtitle"]]
+[[!template text="""[Speaker 1]: Maybe I can rephrase. Sure.""" start="00:03:15.660" video="qanda-test" id="subtitle"]]
+[[!template text="""So I think what I understand is that since""" start="00:03:19.900" video="qanda-test" id="subtitle"]]
+[[!template text="""you have to use some of these command lines""" start="00:03:22.540" video="qanda-test" id="subtitle"]]
+[[!template text="""scripts to get a batch test session running,""" start="00:03:25.440" video="qanda-test" id="subtitle"]]
+[[!template text="""is it easy to run ad hoc tests in an Emacs""" start="00:03:28.780" video="qanda-test" id="subtitle"]]
+[[!template text="""session or does that, like in your""" start="00:03:30.700" video="qanda-test" id="subtitle"]]
+[[!template text="""experience, has that been difficult?""" start="00:03:32.040" video="qanda-test" id="subtitle"]]
+[[!template text="""[Speaker 0]: Well, from the command line,""" start="00:03:36.820" video="qanda-test" id="subtitle"]]
+[[!template text="""if you look at the command line,""" start="00:03:38.660" video="qanda-test" id="subtitle"]]
+[[!template text="""you'll see that it's only like a few image""" start="00:03:44.160" video="qanda-test" id="subtitle"]]
+[[!template text="""functions to call to get that behavior to run""" start="00:03:46.480" video="qanda-test" id="subtitle"]]
+[[!template text="""the batch tests. So I think we made some""" start="00:03:55.080" video="qanda-test" id="subtitle"]]
+[[!template text="""support function for that in hyperbole.""" start="00:03:57.100" video="qanda-test" id="subtitle"]]
+[[!template text="""So it's not, I don't think it's possible out""" start="00:04:02.800" video="qanda-test" id="subtitle"]]
+[[!template text="""of the box to do it, but it's not complicated""" start="00:04:05.540" video="qanda-test" id="subtitle"]]
+[[!template text="""to do it.""" start="00:04:08.060" video="qanda-test" id="subtitle"]]
+[[!template text="""[Speaker 2]: You can define a test anytime,""" start="00:04:12.190" video="qanda-test" id="subtitle"]]
+[[!template text="""right? Just like a new function.""" start="00:04:14.780" video="qanda-test" id="subtitle"]]
+[[!template text="""So that's ad hoc. You just write your test""" start="00:04:18.899" video="qanda-test" id="subtitle"]]
+[[!template text="""and you can run it.""" start="00:04:20.019" video="qanda-test" id="subtitle"]]
+[[!template text="""[Speaker 0]: Yeah, yeah, I mean, of course,""" start="00:04:22.900" video="qanda-test" id="subtitle"]]
+[[!template text="""but I got the impression it was about running""" start="00:04:25.900" video="qanda-test" id="subtitle"]]
+[[!template text="""all your tests like we did with the command""" start="00:04:28.620" video="qanda-test" id="subtitle"]]
+[[!template text="""line. Well, so the question is more about how""" start="00:04:35.740" video="qanda-test" id="subtitle"]]
+[[!template text="""would you run all your test cases from within""" start="00:04:38.260" video="qanda-test" id="subtitle"]]
+[[!template text="""Emacs? And the easy answer to that is""" start="00:04:44.860" video="qanda-test" id="subtitle"]]
+[[!template text="""actually you load all your test case files,""" start="00:04:48.420" video="qanda-test" id="subtitle"]]
+[[!template text="""and then you run ERT with the T as the test""" start="00:04:51.760" video="qanda-test" id="subtitle"]]
+[[!template text="""selector and then it will run all your test""" start="00:04:53.600" video="qanda-test" id="subtitle"]]
+[[!template text="""cases.""" start="00:04:53.880" video="qanda-test" id="subtitle"]]
+[[!template text="""[Speaker 1]: Right. And I think they have expanded on""" start="00:05:01.780" video="qanda-test" id="subtitle"]]
+[[!template text="""their question a little bit as well,""" start="00:05:03.180" video="qanda-test" id="subtitle"]]
+[[!template text="""clarifying that. In other words,""" start="00:05:04.960" video="qanda-test" id="subtitle"]]
+[[!template text="""can you tweak tests in an Emacs session and""" start="00:05:07.200" video="qanda-test" id="subtitle"]]
+[[!template text="""run them right away? Which I believe,""" start="00:05:08.860" video="qanda-test" id="subtitle"]]
+[[!template text="""if I understand correctly what Bob was""" start="00:05:11.400" video="qanda-test" id="subtitle"]]
+[[!template text="""saying, you can basically define or redefine""" start="00:05:13.820" video="qanda-test" id="subtitle"]]
+[[!template text="""functions on the fly and then have them be""" start="00:05:15.920" video="qanda-test" id="subtitle"]]
+[[!template text="""run, right?""" start="00:05:16.440" video="qanda-test" id="subtitle"]]
+[[!template text="""[Speaker 0]: Yes, yes. You just go into that test case and""" start="00:05:22.200" video="qanda-test" id="subtitle"]]
+[[!template text="""you just change it and you run it again.""" start="00:05:24.120" video="qanda-test" id="subtitle"]]
+[[!template text="""And either you have to sort of load it or you""" start="00:05:29.060" video="qanda-test" id="subtitle"]]
+[[!template text="""can use like the commercial thing I did.""" start="00:05:31.560" video="qanda-test" id="subtitle"]]
+[[!template text="""You use hyperbole and just hit meta return on""" start="00:05:36.140" video="qanda-test" id="subtitle"]]
+[[!template text="""the test case and it will load it and run the""" start="00:05:38.560" video="qanda-test" id="subtitle"]]
+[[!template text="""test case again. So that's of course what you""" start="00:05:42.240" video="qanda-test" id="subtitle"]]
+[[!template text="""normally do when you're defining a test or""" start="00:05:44.220" video="qanda-test" id="subtitle"]]
+[[!template text="""debug a test case or develop a test case.""" start="00:05:47.440" video="qanda-test" id="subtitle"]]
+[[!template text="""Just start with something small,""" start="00:05:49.960" video="qanda-test" id="subtitle"]]
+[[!template text="""just make sure maybe you can prepare the test""" start="00:05:52.700" video="qanda-test" id="subtitle"]]
+[[!template text="""properly and run it again and again and again""" start="00:05:55.320" video="qanda-test" id="subtitle"]]
+[[!template text="""until you're ready with it.""" start="00:05:56.720" video="qanda-test" id="subtitle"]]
+[[!template text="""That's a good point. You can definitely do""" start="00:05:59.760" video="qanda-test" id="subtitle"]]
+[[!template text="""that and that's part of how I normally""" start="00:06:02.800" video="qanda-test" id="subtitle"]]
+[[!template text="""develop the test cases that I mean start with""" start="00:06:06.420" video="qanda-test" id="subtitle"]]
+[[!template text="""something small so I can see that I get there""" start="00:06:09.160" video="qanda-test" id="subtitle"]]
+[[!template text="""maybe the right input in the buffer that I""" start="00:06:12.180" video="qanda-test" id="subtitle"]]
+[[!template text="""want to test on or something and I expand on""" start="00:06:14.180" video="qanda-test" id="subtitle"]]
+[[!template text="""that more and more and add more and more more""" start="00:06:18.160" video="qanda-test" id="subtitle"]]
+[[!template text="""and more more""" start="00:06:18.460" video="qanda-test" id="subtitle"]]
+[[!template text="""[Speaker 2]: tests to it. You might tell them a bit about""" start="00:06:31.040" video="qanda-test" id="subtitle"]]
+[[!template text="""how many test cases you have.""" start="00:06:33.280" video="qanda-test" id="subtitle"]]
+[[!template text="""I guess you commented on that and like what""" start="00:06:36.020" video="qanda-test" id="subtitle"]]
+[[!template text="""happens, you know, with the CICD pipeline,""" start="00:06:40.320" video="qanda-test" id="subtitle"]]
+[[!template text="""every time we commit, you know,""" start="00:06:43.780" video="qanda-test" id="subtitle"]]
+[[!template text="""across all the versions and what you have set""" start="00:06:46.360" video="qanda-test" id="subtitle"]]
+[[!template text="""up there because you know I wish people could""" start="00:06:48.760" video="qanda-test" id="subtitle"]]
+[[!template text="""see it. You can go and check on GitHub and""" start="00:06:53.940" video="qanda-test" id="subtitle"]]
+[[!template text="""you can see the logs right of any of the""" start="00:06:57.440" video="qanda-test" id="subtitle"]]
+[[!template text="""builds and but tell them a bit about that""" start="00:06:59.760" video="qanda-test" id="subtitle"]]
+[[!template text="""Mats because I think that's pretty""" start="00:07:01.080" video="qanda-test" id="subtitle"]]
+[[!template text="""impressive.""" start="00:07:01.320" video="qanda-test" id="subtitle"]]
+[[!template text="""[Speaker 0]: Well, that's part of more the CI,""" start="00:07:07.280" video="qanda-test" id="subtitle"]]
+[[!template text="""CD, part of how we developed this using""" start="00:07:11.760" video="qanda-test" id="subtitle"]]
+[[!template text="""GitHub and workflows that you get out of the""" start="00:07:15.460" video="qanda-test" id="subtitle"]]
+[[!template text="""box from there. So this more than 300 test""" start="00:07:20.740" video="qanda-test" id="subtitle"]]
+[[!template text="""cases on our round for I think 5 different""" start="00:07:23.440" video="qanda-test" id="subtitle"]]
+[[!template text="""versions of Emacs when we do a pull request""" start="00:07:26.480" video="qanda-test" id="subtitle"]]
+[[!template text="""or a commit. So that's a good way to ensure""" start="00:07:33.900" video="qanda-test" id="subtitle"]]
+[[!template text="""that it works from version 27.2""" start="00:07:38.040" video="qanda-test" id="subtitle"]]
+[[!template text="""up to the latest master version because""" start="00:07:42.240" video="qanda-test" id="subtitle"]]
+[[!template text="""there's some changes in Emacs over different""" start="00:07:45.860" video="qanda-test" id="subtitle"]]
+[[!template text="""versions that can affect your functions or""" start="00:07:48.940" video="qanda-test" id="subtitle"]]
+[[!template text="""your code.""" start="00:07:49.600" video="qanda-test" id="subtitle"]]
+[[!template text="""[Speaker 2]: They all run in parallel and so typically in""" start="00:07:56.580" video="qanda-test" id="subtitle"]]
+[[!template text="""under 60 seconds I think you've got all of""" start="00:08:00.580" video="qanda-test" id="subtitle"]]
+[[!template text="""them run so you've got pretty extensive""" start="00:08:03.960" video="qanda-test" id="subtitle"]]
+[[!template text="""testing which does catch interesting bugs""" start="00:08:08.860" video="qanda-test" id="subtitle"]]
+[[!template text="""here and there, right?""" start="00:08:09.760" video="qanda-test" id="subtitle"]]
+[[!template text="""[Speaker 0]: Yes, of course it does.""" start="00:08:13.320" video="qanda-test" id="subtitle"]]
+[[!template text="""I mean, you normally develop with 1 version""" start="00:08:18.060" video="qanda-test" id="subtitle"]]
+[[!template text="""and then you think everything is okay.""" start="00:08:20.280" video="qanda-test" id="subtitle"]]
+[[!template text="""But then when you're tested with the""" start="00:08:21.720" video="qanda-test" id="subtitle"]]
+[[!template text="""different versions, you find out that there""" start="00:08:23.460" video="qanda-test" id="subtitle"]]
+[[!template text="""are some changes and there are things you""" start="00:08:26.080" video="qanda-test" id="subtitle"]]
+[[!template text="""might not sort of keep track of what's""" start="00:08:30.140" video="qanda-test" id="subtitle"]]
+[[!template text="""happening also. So that's a way to get""" start="00:08:34.340" video="qanda-test" id="subtitle"]]
+[[!template text="""noticed that the core developers of Emacs""" start="00:08:38.559" video="qanda-test" id="subtitle"]]
+[[!template text="""have changed something that you sort of based""" start="00:08:41.120" video="qanda-test" id="subtitle"]]
+[[!template text="""your code on. Now I got another question""" start="00:08:44.380" video="qanda-test" id="subtitle"]]
+[[!template text="""here. Did you have to change hyperbole code""" start="00:08:47.900" video="qanda-test" id="subtitle"]]
+[[!template text="""and design to be more readily testable as you""" start="00:08:50.580" video="qanda-test" id="subtitle"]]
+[[!template text="""were increasing your test coverage?""" start="00:08:52.160" video="qanda-test" id="subtitle"]]
+[[!template text="""Well, we haven't done that to a lot,""" start="00:08:55.520" video="qanda-test" id="subtitle"]]
+[[!template text="""to a big degree, although I believe that that""" start="00:09:00.160" video="qanda-test" id="subtitle"]]
+[[!template text="""is an important thing for sort of the future""" start="00:09:03.760" video="qanda-test" id="subtitle"]]
+[[!template text="""to do that because some of the hyperbolic""" start="00:09:06.020" video="qanda-test" id="subtitle"]]
+[[!template text="""functions are very complicated and long and""" start="00:09:08.520" video="qanda-test" id="subtitle"]]
+[[!template text="""that makes testing them rather difficult.""" start="00:09:10.640" video="qanda-test" id="subtitle"]]
+[[!template text="""So, at a few places we have sort of broken up""" start="00:09:14.660" video="qanda-test" id="subtitle"]]
+[[!template text="""functions in smaller pieces so it'd be easier""" start="00:09:17.260" video="qanda-test" id="subtitle"]]
+[[!template text="""to do like unit tests of the different parts""" start="00:09:20.280" video="qanda-test" id="subtitle"]]
+[[!template text="""of it. But there's a lot of more work that""" start="00:09:27.740" video="qanda-test" id="subtitle"]]
+[[!template text="""has to be done there.""" start="00:09:28.680" video="qanda-test" id="subtitle"]]
+[[!template text="""[Speaker 2]: 1 of the nice things is you know the great""" start="00:09:33.820" video="qanda-test" id="subtitle"]]
+[[!template text="""environment in Lisp where we're able to do a""" start="00:09:36.760" video="qanda-test" id="subtitle"]]
+[[!template text="""lot of interactive bottom-up testing before""" start="00:09:40.520" video="qanda-test" id="subtitle"]]
+[[!template text="""we even get to lighting tech pieces.""" start="00:09:42.840" video="qanda-test" id="subtitle"]]
+[[!template text="""So it does tend to be more higher level bugs,""" start="00:09:48.740" video="qanda-test" id="subtitle"]]
+[[!template text="""I think, that get caught in cross-functional""" start="00:09:51.140" video="qanda-test" id="subtitle"]]
+[[!template text="""interaction. We had 1 recently that was an""" start="00:09:55.940" video="qanda-test" id="subtitle"]]
+[[!template text="""Emacs version change. It had been a function""" start="00:09:58.100" video="qanda-test" id="subtitle"]]
+[[!template text="""that had existed for a long time.""" start="00:10:01.100" video="qanda-test" id="subtitle"]]
+[[!template text="""It had an and rest in it,""" start="00:10:03.340" video="qanda-test" id="subtitle"]]
+[[!template text="""in its argument list, so it would assemble""" start="00:10:05.740" video="qanda-test" id="subtitle"]]
+[[!template text="""the list of arguments from individual""" start="00:10:08.600" video="qanda-test" id="subtitle"]]
+[[!template text="""arguments that you would give it,""" start="00:10:10.320" video="qanda-test" id="subtitle"]]
+[[!template text="""and they decided in a recent version,""" start="00:10:13.100" video="qanda-test" id="subtitle"]]
+[[!template text="""I think with Stefan's input,""" start="00:10:15.200" video="qanda-test" id="subtitle"]]
+[[!template text="""to change that to a list and allow the prior""" start="00:10:19.400" video="qanda-test" id="subtitle"]]
+[[!template text="""behavior, but it would issue a warning if you""" start="00:10:22.740" video="qanda-test" id="subtitle"]]
+[[!template text="""use the prior behavior.""" start="00:10:23.620" video="qanda-test" id="subtitle"]]
+[[!template text="""So all of a sudden, the way you were supposed""" start="00:10:25.560" video="qanda-test" id="subtitle"]]
+[[!template text="""to do it became semi-invalid.""" start="00:10:27.180" video="qanda-test" id="subtitle"]]
+[[!template text="""And so we started getting the warning,""" start="00:10:30.440" video="qanda-test" id="subtitle"]]
+[[!template text="""and we've tried to eliminate all those""" start="00:10:32.760" video="qanda-test" id="subtitle"]]
+[[!template text="""warnings in recent hyperbole developments.""" start="00:10:35.600" video="qanda-test" id="subtitle"]]
+[[!template text="""So we're like, what do we do?""" start="00:10:37.120" video="qanda-test" id="subtitle"]]
+[[!template text="""You know, because we wanted to be backward""" start="00:10:39.020" video="qanda-test" id="subtitle"]]
+[[!template text="""compatible to where you couldn't use a list.""" start="00:10:42.140" video="qanda-test" id="subtitle"]]
+[[!template text="""It required you to use individual arguments.""" start="00:10:44.620" video="qanda-test" id="subtitle"]]
+[[!template text="""And now it's sort of requiring you to do""" start="00:10:48.380" video="qanda-test" id="subtitle"]]
+[[!template text="""that. And all of that was caused by the""" start="00:10:51.660" video="qanda-test" id="subtitle"]]
+[[!template text="""automatic testing on it.""" start="00:10:52.940" video="qanda-test" id="subtitle"]]
+[[!template text="""So you said, Max, you were going to tell us""" start="00:11:08.680" video="qanda-test" id="subtitle"]]
+[[!template text="""what you learned. So what are the major""" start="00:11:12.740" video="qanda-test" id="subtitle"]]
+[[!template text="""things that you learned in doing all of this""" start="00:11:15.368" video="qanda-test" id="subtitle"]]
+[[!template text="""work? All of this work?""" start="00:11:15.680" video="qanda-test" id="subtitle"]]
+[[!template text="""[Speaker 0]: Well, I tried to cover some of it in the""" start="00:11:26.520" video="qanda-test" id="subtitle"]]
+[[!template text="""presentation, but as I was going along,""" start="00:11:29.380" video="qanda-test" id="subtitle"]]
+[[!template text="""the presentation became like twice as long as""" start="00:11:33.420" video="qanda-test" id="subtitle"]]
+[[!template text="""fitted into the time we had so I had to cut""" start="00:11:36.180" video="qanda-test" id="subtitle"]]
+[[!template text="""it out. But I think some of the core things""" start="00:11:42.380" video="qanda-test" id="subtitle"]]
+[[!template text="""still is in the presentation.""" start="00:11:44.340" video="qanda-test" id="subtitle"]]
+[[!template text="""From a personal perspective,""" start="00:11:49.560" video="qanda-test" id="subtitle"]]
+[[!template text="""And this might not be hard to realize,""" start="00:11:52.440" video="qanda-test" id="subtitle"]]
+[[!template text="""but forcing yourself to test functions,""" start="00:11:56.960" video="qanda-test" id="subtitle"]]
+[[!template text="""test code really forces you to understand the""" start="00:12:02.900" video="qanda-test" id="subtitle"]]
+[[!template text="""code a little bit better in a way that sort""" start="00:12:05.080" video="qanda-test" id="subtitle"]]
+[[!template text="""of makes it easier than just to read the""" start="00:12:07.300" video="qanda-test" id="subtitle"]]
+[[!template text="""code. I don't know how it is for the rest""" start="00:12:11.460" video="qanda-test" id="subtitle"]]
+[[!template text="""listening to this, but for me it works so""" start="00:12:13.780" video="qanda-test" id="subtitle"]]
+[[!template text="""that if I just read the code then I don't""" start="00:12:16.580" video="qanda-test" id="subtitle"]]
+[[!template text="""sort of become as sharp as I should be but if""" start="00:12:20.140" video="qanda-test" id="subtitle"]]
+[[!template text="""I try to write the test case for it then I""" start="00:12:22.500" video="qanda-test" id="subtitle"]]
+[[!template text="""really need to understand better of all the""" start="00:12:24.680" video="qanda-test" id="subtitle"]]
+[[!template text="""edge cases and all the sort of states and etc""" start="00:12:27.660" video="qanda-test" id="subtitle"]]
+[[!template text="""that is involved and I think that's That's""" start="00:12:30.060" video="qanda-test" id="subtitle"]]
+[[!template text="""what's sort of 1 of the learning things I""" start="00:12:33.080" video="qanda-test" id="subtitle"]]
+[[!template text="""wanted to communicate as well that I don't""" start="00:12:34.960" video="qanda-test" id="subtitle"]]
+[[!template text="""think I covered in detail in the""" start="00:12:38.940" video="qanda-test" id="subtitle"]]
+[[!template text="""presentation. Maybe all this,""" start="00:12:41.480" video="qanda-test" id="subtitle"]]
+[[!template text="""but try it. 1 other sort of more from the fun""" start="00:12:48.060" video="qanda-test" id="subtitle"]]
+[[!template text="""side is that I really think it's fun to write""" start="00:12:50.740" video="qanda-test" id="subtitle"]]
+[[!template text="""the test. So if you haven't tests in your""" start="00:12:55.080" video="qanda-test" id="subtitle"]]
+[[!template text="""package, you should start doing that because""" start="00:12:58.020" video="qanda-test" id="subtitle"]]
+[[!template text="""it is fun. It might feel like some extra""" start="00:13:05.740" video="qanda-test" id="subtitle"]]
+[[!template text="""work, but it really pays off in the long run,""" start="00:13:08.080" video="qanda-test" id="subtitle"]]
+[[!template text="""especially if you have it in like a pipeline""" start="00:13:10.320" video="qanda-test" id="subtitle"]]
+[[!template text="""and where you can run it regularly when you""" start="00:13:12.520" video="qanda-test" id="subtitle"]]
+[[!template text="""do new commits, et cetera.""" start="00:13:13.940" video="qanda-test" id="subtitle"]]
+[[!template text="""So, I mean, that's maybe obvious from,""" start="00:13:16.560" video="qanda-test" id="subtitle"]]
+[[!template text="""if you look from the commercial side or your""" start="00:13:19.160" video="qanda-test" id="subtitle"]]
+[[!template text="""work side to do it like that.""" start="00:13:21.080" video="qanda-test" id="subtitle"]]
+[[!template text="""But even for your hobby project,""" start="00:13:22.260" video="qanda-test" id="subtitle"]]
+[[!template text="""it can be very sort of pay off really well.""" start="00:13:26.260" video="qanda-test" id="subtitle"]]
+[[!template text="""[Speaker 2]: It's worked really well when we're adding new""" start="00:13:32.900" video="qanda-test" id="subtitle"]]
+[[!template text="""functionality or we're changing some of the""" start="00:13:35.020" video="qanda-test" id="subtitle"]]
+[[!template text="""plumbing in the system.""" start="00:13:36.560" video="qanda-test" id="subtitle"]]
+[[!template text="""You know, you go and you do some surgery and""" start="00:13:40.400" video="qanda-test" id="subtitle"]]
+[[!template text="""then you run the tests.""" start="00:13:41.320" video="qanda-test" id="subtitle"]]
+[[!template text="""And sometimes 6 to 10 tests will fail.""" start="00:13:45.400" video="qanda-test" id="subtitle"]]
+[[!template text="""And you find there, you know,""" start="00:13:48.260" video="qanda-test" id="subtitle"]]
+[[!template text="""it tends to be they're all interconnected and""" start="00:13:50.460" video="qanda-test" id="subtitle"]]
+[[!template text="""it leads you back to the single source.""" start="00:13:52.920" video="qanda-test" id="subtitle"]]
+[[!template text="""You fix that and you know it could be an edge""" start="00:13:56.660" video="qanda-test" id="subtitle"]]
+[[!template text="""case and off by 1 or Sometimes it's an""" start="00:14:00.560" video="qanda-test" id="subtitle"]]
+[[!template text="""assumption about the way something is used""" start="00:14:03.520" video="qanda-test" id="subtitle"]]
+[[!template text="""and it's not actually always true.""" start="00:14:05.980" video="qanda-test" id="subtitle"]]
+[[!template text="""And so, Matt's just really good at""" start="00:14:09.520" video="qanda-test" id="subtitle"]]
+[[!template text="""identifying some of those scenarios and""" start="00:14:13.540" video="qanda-test" id="subtitle"]]
+[[!template text="""keeping us honest, I guess I would say.""" start="00:14:17.480" video="qanda-test" id="subtitle"]]
+[[!template text="""So I love, I run it as much as I before,""" start="00:14:22.900" video="qanda-test" id="subtitle"]]
+[[!template text="""you know, even before I commit something.""" start="00:14:26.400" video="qanda-test" id="subtitle"]]
+[[!template text="""So I get to see, you know,""" start="00:14:29.960" video="qanda-test" id="subtitle"]]
+[[!template text="""if anything has progressed.""" start="00:14:30.940" video="qanda-test" id="subtitle"]]
+[[!template text="""So yeah, I really recommend this process to""" start="00:14:39.480" video="qanda-test" id="subtitle"]]
+[[!template text="""people. I haven't seen it done.""" start="00:14:42.120" video="qanda-test" id="subtitle"]]
+[[!template text="""I don't think that, I don't know any other""" start="00:14:45.720" video="qanda-test" id="subtitle"]]
+[[!template text="""package that has done it to this level.""" start="00:14:47.800" video="qanda-test" id="subtitle"]]
+[[!template text="""And it's been working really great for us.""" start="00:14:51.560" video="qanda-test" id="subtitle"]]
+[[!template text="""And I think, well, we'll see too when we""" start="00:14:55.440" video="qanda-test" id="subtitle"]]
+[[!template text="""release to the general public.""" start="00:14:56.780" video="qanda-test" id="subtitle"]]
+[[!template text="""[Speaker 0]: But Bob, also, maybe the test part of""" start="00:15:04.380" video="qanda-test" id="subtitle"]]
+[[!template text="""different packages is not the first thing you""" start="00:15:06.400" video="qanda-test" id="subtitle"]]
+[[!template text="""look at. So I know there are packages that""" start="00:15:08.900" video="qanda-test" id="subtitle"]]
+[[!template text="""have testing, a lot of testing,""" start="00:15:10.960" video="qanda-test" id="subtitle"]]
+[[!template text="""but how much, much testing they have or not,""" start="00:15:13.860" video="qanda-test" id="subtitle"]]
+[[!template text="""I don't know. It's not what you normally look""" start="00:15:16.060" video="qanda-test" id="subtitle"]]
+[[!template text="""into when you look at someone's else code.""" start="00:15:17.900" video="qanda-test" id="subtitle"]]
+[[!template text="""You look maybe on the functionality side but""" start="00:15:20.600" video="qanda-test" id="subtitle"]]
+[[!template text="""not on how they've done the sort of the""" start="00:15:22.760" video="qanda-test" id="subtitle"]]
+[[!template text="""quality side. So there could be other""" start="00:15:26.540" video="qanda-test" id="subtitle"]]
+[[!template text="""packages out there that are well equipped.""" start="00:15:28.780" video="qanda-test" id="subtitle"]]
+[[!template text="""[Speaker 2]: I hope so. I hope so.""" start="00:15:31.800" video="qanda-test" id="subtitle"]]
+[[!template text="""[Speaker 0]: What's the craziest bug you found when""" start="00:15:39.860" video="qanda-test" id="subtitle"]]
+[[!template text="""writing these tests? Well,""" start="00:15:44.700" video="qanda-test" id="subtitle"]]
+[[!template text="""What springs to my mind just now is that we""" start="00:15:50.760" video="qanda-test" id="subtitle"]]
+[[!template text="""were doing some tests or I would do some""" start="00:15:52.760" video="qanda-test" id="subtitle"]]
+[[!template text="""tests for when you narrow,""" start="00:15:55.920" video="qanda-test" id="subtitle"]]
+[[!template text="""what do you say that? When you,""" start="00:15:57.940" video="qanda-test" id="subtitle"]]
+[[!template text="""in outlining, when you sort of compress""" start="00:16:04.500" video="qanda-test" id="subtitle"]]
+[[!template text="""things in an outline, so you just,""" start="00:16:06.480" video="qanda-test" id="subtitle"]]
+[[!template text="""sorry Bob, maybe you have it,""" start="00:16:08.540" video="qanda-test" id="subtitle"]]
+[[!template text="""[Speaker 2]: When you hide text.""" start="00:16:12.100" video="qanda-test" id="subtitle"]]
+[[!template text="""[Speaker 0]: What I'm looking for? Yeah,""" start="00:16:12.740" video="qanda-test" id="subtitle"]]
+[[!template text="""when you hide. So I was doing some cursor""" start="00:16:15.580" video="qanda-test" id="subtitle"]]
+[[!template text="""movement over that. And I always assume that""" start="00:16:17.780" video="qanda-test" id="subtitle"]]
+[[!template text="""if you do like a prefix argument to like a""" start="00:16:22.540" video="qanda-test" id="subtitle"]]
+[[!template text="""simple cursor movement,""" start="00:16:23.800" video="qanda-test" id="subtitle"]]
+[[!template text="""like control F moving 1 character position,""" start="00:16:26.420" video="qanda-test" id="subtitle"]]
+[[!template text="""and you would give it the,""" start="00:16:28.340" video="qanda-test" id="subtitle"]]
+[[!template text="""and then the prefix, like you want to move""" start="00:16:36.580" video="qanda-test" id="subtitle"]]
+[[!template text="""like 2 or 3 positions,""" start="00:16:39.140" video="qanda-test" id="subtitle"]]
+[[!template text="""you would do like control U 3 and then""" start="00:16:43.040" video="qanda-test" id="subtitle"]]
+[[!template text="""control F and you move 3.""" start="00:16:44.240" video="qanda-test" id="subtitle"]]
+[[!template text="""I always assumed that that would be exactly""" start="00:16:46.560" video="qanda-test" id="subtitle"]]
+[[!template text="""the same as if you just hit the key control F""" start="00:16:49.240" video="qanda-test" id="subtitle"]]
+[[!template text="""3 times, but it's not.""" start="00:16:50.740" video="qanda-test" id="subtitle"]]
+[[!template text="""So it's not the bug, it's a feature,""" start="00:16:53.160" video="qanda-test" id="subtitle"]]
+[[!template text="""but that was the craziest thing.""" start="00:16:54.620" video="qanda-test" id="subtitle"]]
+[[!template text="""I spent the night trying to figure out why""" start="00:16:58.180" video="qanda-test" id="subtitle"]]
+[[!template text="""our code was wrong, but It turns out that's""" start="00:17:00.720" video="qanda-test" id="subtitle"]]
+[[!template text="""how Emacs behaves. Try it out yourself.""" start="00:17:03.560" video="qanda-test" id="subtitle"]]
+[[!template text="""Try to move over the 3 dots at the end of""" start="00:17:07.920" video="qanda-test" id="subtitle"]]
+[[!template text="""that and see what happens.""" start="00:17:09.140" video="qanda-test" id="subtitle"]]
+[[!template text="""Do it with cursor hitting the key or using a""" start="00:17:14.060" video="qanda-test" id="subtitle"]]
+[[!template text="""prefix argument and you see it behaves""" start="00:17:16.260" video="qanda-test" id="subtitle"]]
+[[!template text="""differently. That was the craziest thing.""" start="00:17:18.720" video="qanda-test" id="subtitle"]]
+[[!template text="""I think there was some other crazy thing or""" start="00:17:21.960" video="qanda-test" id="subtitle"]]
+[[!template text="""deep learning also, but I can't come up with""" start="00:17:24.280" video="qanda-test" id="subtitle"]]
+[[!template text="""it at the moment. So maybe I can write it in""" start="00:17:26.599" video="qanda-test" id="subtitle"]]
+[[!template text="""the Q&A later.""" start="00:17:27.900" video="qanda-test" id="subtitle"]]
+[[!template text="""[Speaker 1]: I think we're out of time on the stream,""" start="00:17:31.200" video="qanda-test" id="subtitle"]]
+[[!template text="""but people are welcome to join Mats and Bob""" start="00:17:33.360" video="qanda-test" id="subtitle"]]
+[[!template text="""here on BigBlueButton to further discuss""" start="00:17:35.280" video="qanda-test" id="subtitle"]]
+[[!template text="""this. Thank you both.""" start="00:17:36.480" video="qanda-test" id="subtitle"]]
+[[!template text="""[Speaker 0]: Okay, thank you. Thanks,""" start="00:17:38.674" video="qanda-test" id="subtitle"]]
+[[!template text="""Makaay. Thank you. I don't know,""" start="00:17:46.100" video="qanda-test" id="subtitle"]]
+[[!template text="""Is it only me and Bob here?""" start="00:17:48.740" video="qanda-test" id="subtitle"]]
+[[!template text="""So Bob, do you want to say something?""" start="00:17:50.680" video="qanda-test" id="subtitle"]]
+[[!template text="""[Speaker 2]: Well, I think it's been a great day.""" start="00:17:57.440" video="qanda-test" id="subtitle"]]
+[[!template text="""And I'm glad we did this.""" start="00:18:00.720" video="qanda-test" id="subtitle"]]
+[[!template text="""It takes a lot of energy.""" start="00:18:02.280" video="qanda-test" id="subtitle"]]
+[[!template text="""I'm just really excited about the progress""" start="00:18:15.140" video="qanda-test" id="subtitle"]]
+[[!template text="""that this, and we're actually doing a lot of""" start="00:18:20.580" video="qanda-test" id="subtitle"]]
+[[!template text="""QA at work and my professional software work""" start="00:18:23.940" video="qanda-test" id="subtitle"]]
+[[!template text="""and looking at you know how we can do more""" start="00:18:28.500" video="qanda-test" id="subtitle"]]
+[[!template text="""test driven development and so everybody's""" start="00:18:32.980" video="qanda-test" id="subtitle"]]
+[[!template text="""talking about this you know we've got AI over""" start="00:18:35.980" video="qanda-test" id="subtitle"]]
+[[!template text="""here that can generate test cases.""" start="00:18:37.540" video="qanda-test" id="subtitle"]]
+[[!template text="""But, you know, strangely enough,""" start="00:18:40.200" video="qanda-test" id="subtitle"]]
+[[!template text="""with the rapidity of development and web""" start="00:18:43.100" video="qanda-test" id="subtitle"]]
+[[!template text="""applications, I think the level of testing""" start="00:18:46.720" video="qanda-test" id="subtitle"]]
+[[!template text="""has gone down in recent years compared to""" start="00:18:50.140" video="qanda-test" id="subtitle"]]
+[[!template text="""where it used to be, right?""" start="00:18:51.500" video="qanda-test" id="subtitle"]]
+[[!template text="""Because the pace has gone up.""" start="00:18:53.040" video="qanda-test" id="subtitle"]]
+[[!template text="""And so I think it's starting to turn again""" start="00:18:57.340" video="qanda-test" id="subtitle"]]
+[[!template text="""where people are saying,""" start="00:18:58.740" video="qanda-test" id="subtitle"]]
+[[!template text="""we can't just release crap into the""" start="00:19:01.940" video="qanda-test" id="subtitle"]]
+[[!template text="""Webisphere and we have to better ourselves.""" start="00:19:08.120" video="qanda-test" id="subtitle"]]
+[[!template text="""And with all these advanced tool sets that""" start="00:19:13.620" video="qanda-test" id="subtitle"]]
+[[!template text="""you have, that you can do CICD testing,""" start="00:19:16.100" video="qanda-test" id="subtitle"]]
+[[!template text="""you know, I just, I just see it coming""" start="00:19:19.860" video="qanda-test" id="subtitle"]]
+[[!template text="""around, you know, as people develop new""" start="00:19:21.900" video="qanda-test" id="subtitle"]]
+[[!template text="""things. So That's kind of exciting to me""" start="00:19:24.000" video="qanda-test" id="subtitle"]]
+[[!template text="""because I came from a manufacturing culture""" start="00:19:26.980" video="qanda-test" id="subtitle"]]
+[[!template text="""originally where we, our company actually""" start="00:19:30.300" video="qanda-test" id="subtitle"]]
+[[!template text="""started a lot of the manufacturing quality""" start="00:19:33.800" video="qanda-test" id="subtitle"]]
+[[!template text="""efforts that you saw in Japan and elsewhere""" start="00:19:37.420" video="qanda-test" id="subtitle"]]
+[[!template text="""in America for a long time and that was you""" start="00:19:40.600" video="qanda-test" id="subtitle"]]
+[[!template text="""know entirely through testing.""" start="00:19:42.040" video="qanda-test" id="subtitle"]]
+[[!template text="""We used to just build incredible test cases""" start="00:19:46.640" video="qanda-test" id="subtitle"]]
+[[!template text="""because we were combining software with""" start="00:19:49.120" video="qanda-test" id="subtitle"]]
+[[!template text="""hardware. And if, you know,""" start="00:19:51.100" video="qanda-test" id="subtitle"]]
+[[!template text="""the hardware doesn't work and you ship a""" start="00:19:53.460" video="qanda-test" id="subtitle"]]
+[[!template text="""million units, you're,""" start="00:19:55.080" video="qanda-test" id="subtitle"]]
+[[!template text="""you're in trouble. So,""" start="00:19:57.340" video="qanda-test" id="subtitle"]]
+[[!template text="""that was just something we had to do.""" start="00:20:00.260" video="qanda-test" id="subtitle"]]
+[[!template text="""And so it's nice to start to see that curve""" start="00:20:04.280" video="qanda-test" id="subtitle"]]
+[[!template text="""come around. And I think,""" start="00:20:07.020" video="qanda-test" id="subtitle"]]
+[[!template text="""you know, Matt Vance is very modest,""" start="00:20:10.380" video="qanda-test" id="subtitle"]]
+[[!template text="""but I think he's really the 1 that started us""" start="00:20:16.680" video="qanda-test" id="subtitle"]]
+[[!template text="""down this path and really made it into a""" start="00:20:20.400" video="qanda-test" id="subtitle"]]
+[[!template text="""reality. So everybody else just gets to""" start="00:20:24.620" video="qanda-test" id="subtitle"]]
+[[!template text="""benefit from that work.""" start="00:20:25.760" video="qanda-test" id="subtitle"]]
+[[!template text="""So thanks.""" start="00:20:27.540" video="qanda-test" id="subtitle"]]
+[[!template text="""[Speaker 1]: That's awesome.""" start="00:20:32.760" video="qanda-test" id="subtitle"]]
+[[!template text="""[Speaker 0]: Thanks. Okay. Yeah. So if there's nothing""" start="00:20:39.960" video="qanda-test" id="subtitle"]]
+[[!template text="""more here, then maybe we should just close""" start="00:20:43.200" video="qanda-test" id="subtitle"]]
+[[!template text="""this and I go over to write in the etherpad""" start="00:20:45.440" video="qanda-test" id="subtitle"]]
+[[!template text="""the replies we had.""" start="00:20:47.960" video="qanda-test" id="subtitle"]]
+[[!template text="""[Speaker 1]: Right, yeah, I think, let's see,""" start="00:20:51.900" video="qanda-test" id="subtitle"]]
+[[!template text="""I see 1 other person here,""" start="00:20:53.520" video="qanda-test" id="subtitle"]]
+[[!template text="""I believe Ihor just joined us.""" start="00:20:55.080" video="qanda-test" id="subtitle"]]
+[[!template text="""Yeah. Yeah, so if you do want to discuss with""" start="00:20:58.780" video="qanda-test" id="subtitle"]]
+[[!template text="""Mats and Bob, you're welcome to,""" start="00:21:00.220" video="qanda-test" id="subtitle"]]
+[[!template text="""otherwise, yeah, we can close the room now.""" start="00:21:02.200" video="qanda-test" id="subtitle"]]
+[[!template text="""[Speaker 3]: Well, I think I missed most of the talk""" start="00:21:05.800" video="qanda-test" id="subtitle"]]
+[[!template text="""because I had power outage,""" start="00:21:06.900" video="qanda-test" id="subtitle"]]
+[[!template text="""but the part I heard was about the mock""" start="00:21:12.180" video="qanda-test" id="subtitle"]]
+[[!template text="""library. And you mentioned that you don't""" start="00:21:16.860" video="qanda-test" id="subtitle"]]
+[[!template text="""like CL-let, but instead you use mock.""" start="00:21:20.200" video="qanda-test" id="subtitle"]]
+[[!template text="""[Speaker 0]: Yeah, I was more saying that you have to do a""" start="00:21:29.700" video="qanda-test" id="subtitle"]]
+[[!template text="""lot more work when you use the CL letdef.""" start="00:21:31.560" video="qanda-test" id="subtitle"]]
+[[!template text="""It's for more ambitious and maybe more""" start="00:21:34.540" video="qanda-test" id="subtitle"]]
+[[!template text="""complicated cases where you want to really""" start="00:21:37.000" video="qanda-test" id="subtitle"]]
+[[!template text="""make a new implementation,""" start="00:21:38.840" video="qanda-test" id="subtitle"]]
+[[!template text="""test implementation. If you use the mock,""" start="00:21:41.940" video="qanda-test" id="subtitle"]]
+[[!template text="""you get a lot of things out of the box,""" start="00:21:44.380" video="qanda-test" id="subtitle"]]
+[[!template text="""verifying that you actually,""" start="00:21:47.440" video="qanda-test" id="subtitle"]]
+[[!template text="""like the mock was actually called for""" start="00:21:50.820" video="qanda-test" id="subtitle"]]
+[[!template text="""instance, whereas if you do with the CLLatf,""" start="00:21:53.320" video="qanda-test" id="subtitle"]]
+[[!template text="""you would have to take correct track of that""" start="00:21:56.520" video="qanda-test" id="subtitle"]]
+[[!template text="""yourself. And so, so a lot of more work.""" start="00:22:02.020" video="qanda-test" id="subtitle"]]
+[[!template text="""Oh yeah.""" start="00:22:03.760" video="qanda-test" id="subtitle"]]
+[[!template text="""[Speaker 3]: I'm saying that most of the time CLLess is""" start="00:22:07.940" video="qanda-test" id="subtitle"]]
+[[!template text="""used for simple cases actually.""" start="00:22:09.720" video="qanda-test" id="subtitle"]]
+[[!template text="""Because, just for example,""" start="00:22:12.320" video="qanda-test" id="subtitle"]]
+[[!template text="""the function always returns the same.""" start="00:22:15.100" video="qanda-test" id="subtitle"]]
+[[!template text="""And it tends to be simple lambda that ignores""" start="00:22:17.980" video="qanda-test" id="subtitle"]]
+[[!template text="""all the input arguments.""" start="00:22:19.040" video="qanda-test" id="subtitle"]]
+[[!template text="""So that's really trivial most of the time but""" start="00:22:23.000" video="qanda-test" id="subtitle"]]
+[[!template text="""I actually thought the opposite that mock is""" start="00:22:25.520" video="qanda-test" id="subtitle"]]
+[[!template text="""supposed to be used for non-trivial cases.""" start="00:22:27.640" video="qanda-test" id="subtitle"]]
+[[!template text="""[Speaker 0]: Sorry, what was the question?""" start="00:22:32.280" video="qanda-test" id="subtitle"]]
+[[!template text="""Mock was supposed to be used for non-trivial.""" start="00:22:35.280" video="qanda-test" id="subtitle"]]
+[[!template text="""Yeah I mean I don't know how to explain this.""" start="00:22:47.680" video="qanda-test" id="subtitle"]]
+[[!template text="""I mean, CLF can be used for non-trivial""" start="00:22:50.140" video="qanda-test" id="subtitle"]]
+[[!template text="""definitely. You can define then any behavior""" start="00:22:54.400" video="qanda-test" id="subtitle"]]
+[[!template text="""you want. You can write your own function,""" start="00:22:56.180" video="qanda-test" id="subtitle"]]
+[[!template text="""but you need to keep track of whether that""" start="00:22:58.440" video="qanda-test" id="subtitle"]]
+[[!template text="""function is called or not,""" start="00:22:59.620" video="qanda-test" id="subtitle"]]
+[[!template text="""for instance. So you have to make note of""" start="00:23:06.260" video="qanda-test" id="subtitle"]]
+[[!template text="""that the function was called so you can fire""" start="00:23:08.440" video="qanda-test" id="subtitle"]]
+[[!template text="""sort of an error in case your function wasn't""" start="00:23:12.440" video="qanda-test" id="subtitle"]]
+[[!template text="""called because that would be 1 error case.""" start="00:23:16.960" video="qanda-test" id="subtitle"]]
+[[!template text="""[Speaker 3]: So you mean the mock fires an error if the""" start="00:23:20.660" video="qanda-test" id="subtitle"]]
+[[!template text="""mocked function was actually not called?""" start="00:23:22.580" video="qanda-test" id="subtitle"]]
+[[!template text="""[Speaker 0]: Yes, it does. Yes. So if your assumptions,""" start="00:23:30.060" video="qanda-test" id="subtitle"]]
+[[!template text="""you sort of document with the mock also your""" start="00:23:33.900" video="qanda-test" id="subtitle"]]
+[[!template text="""assumptions how your code is going to be""" start="00:23:37.080" video="qanda-test" id="subtitle"]]
+[[!template text="""called. And if those are wrong,""" start="00:23:40.020" video="qanda-test" id="subtitle"]]
+[[!template text="""you will get an error.""" start="00:23:41.120" video="qanda-test" id="subtitle"]]
+[[!template text="""So you would, so if the implementation would""" start="00:23:43.680" video="qanda-test" id="subtitle"]]
+[[!template text="""maybe change, for instance,""" start="00:23:44.840" video="qanda-test" id="subtitle"]]
+[[!template text="""and not call the thing you're mocking,""" start="00:23:46.640" video="qanda-test" id="subtitle"]]
+[[!template text="""then you will notice that.""" start="00:23:50.460" video="qanda-test" id="subtitle"]]
+[[!template text="""But if you see a letdef,""" start="00:23:53.100" video="qanda-test" id="subtitle"]]
+[[!template text="""then you will have to keep track of that""" start="00:23:54.840" video="qanda-test" id="subtitle"]]
+[[!template text="""yourself. Okay, I see.""" start="00:23:57.560" video="qanda-test" id="subtitle"]]
+[[!template text="""I see.""" start="00:23:58.260" video="qanda-test" id="subtitle"]]
+[[!template text="""[Speaker 3]: And you know, our mode also uses a lot of""" start="00:24:01.240" video="qanda-test" id="subtitle"]]
+[[!template text="""test. In our mode, we have a lot of tests""" start="00:24:09.340" video="qanda-test" id="subtitle"]]
+[[!template text="""[Speaker 0]: Ah, okay. Yeah. Yeah. I'm sure I have.""" start="00:24:13.940" video="qanda-test" id="subtitle"]]
+[[!template text="""[Speaker 3]: also. We rely on CLLatF for,""" start="00:24:15.900" video="qanda-test" id="subtitle"]]
+[[!template text="""we don't use third-party libraries at all.""" start="00:24:19.220" video="qanda-test" id="subtitle"]]
+[[!template text="""[Speaker 0]: Oh, you use CLLatF, okay.""" start="00:24:22.140" video="qanda-test" id="subtitle"]]
+[[!template text="""Yeah. Yeah. Yeah. At First I found it very""" start="00:24:26.680" video="qanda-test" id="subtitle"]]
+[[!template text="""powerful to use that, but then I sort of,""" start="00:24:29.480" video="qanda-test" id="subtitle"]]
+[[!template text="""I learned more about how we can use the""" start="00:24:32.120" video="qanda-test" id="subtitle"]]
+[[!template text="""mocking library for what I needed.""" start="00:24:34.340" video="qanda-test" id="subtitle"]]
+[[!template text="""And I prefer that at the moment.""" start="00:24:36.900" video="qanda-test" id="subtitle"]]
+[[!template text="""[Speaker 3]: I see, that is interesting.""" start="00:24:40.560" video="qanda-test" id="subtitle"]]
+[[!template text="""Because I had seen it,""" start="00:24:42.500" video="qanda-test" id="subtitle"]]
+[[!template text="""but I didn't consider that it's gonna be""" start="00:24:45.440" video="qanda-test" id="subtitle"]]
+[[!template text="""useful even in simple cases.""" start="00:24:46.800" video="qanda-test" id="subtitle"]]
+[[!template text="""[Speaker 0]: It has its limitations.""" start="00:24:52.640" video="qanda-test" id="subtitle"]]
+[[!template text="""So it's like life, how you turn depends.""" start="00:24:58.260" video="qanda-test" id="subtitle"]]
+[[!template text="""But maybe I should look more into the org""" start="00:25:03.740" video="qanda-test" id="subtitle"]]
+[[!template text="""mode and the test case to learn more about""" start="00:25:05.880" video="qanda-test" id="subtitle"]]
+[[!template text="""that. So thanks for pointing that out.""" start="00:25:07.480" video="qanda-test" id="subtitle"]]
+[[!template text="""[Speaker 3]: We are trying to cover as much as we can.""" start="00:25:14.620" video="qanda-test" id="subtitle"]]
+[[!template text="""It's almost impossible for org.""" start="00:25:17.520" video="qanda-test" id="subtitle"]]
+[[!template text="""But yeah, we keep adding more tests.""" start="00:25:20.500" video="qanda-test" id="subtitle"]]
+[[!template text="""[Speaker 0]: That's great.""" start="00:25:22.780" video="qanda-test" id="subtitle"]]
+[[!template text="""Someone's typing. I don't know.""" start="00:25:52.720" video="qanda-test" id="subtitle"]]
+[[!template text="""Any more questions? No?""" start="00:25:54.340" video="qanda-test" id="subtitle"]]
+[[!template text="""Okay, then I'll go back and try to document""" start="00:26:01.060" video="qanda-test" id="subtitle"]]
+[[!template text="""this in the etherpad. Thank you everybody for""" start="00:26:05.200" video="qanda-test" id="subtitle"]]
+[[!template text="""[Speaker 1]: Thank you guys. Great work.""" start="00:26:08.860" video="qanda-test" id="subtitle"]]
+[[!template text="""[Speaker 0]: joining. Great. Thank you.""" start="00:26:09.400" video="qanda-test" id="subtitle"]]
+[[!template text="""Take care. Bye-bye.""" start="00:26:11.100" video="qanda-test" id="subtitle"]]
+[[!template text="""[Speaker 1]: Take care. Bye. Silence.""" start="00:26:15.060" video="qanda-test" id="subtitle"]]
+
+</div>Questions or comments? Please e-mail [matsl@gnu.org](mailto:matsl@gnu.org?subject=Comment%20for%20EmacsConf%202023%20test%3A%20What%20I%20learned%20by%20writing%20test%20cases%20for%20GNU%20Hyperbole)
<!-- End of emacsconf-publish-after-page -->
diff --git a/2023/info/test-before.md b/2023/info/test-before.md
index 376dee32..f68c0402 100644
--- a/2023/info/test-before.md
+++ b/2023/info/test-before.md
@@ -1,12 +1,42 @@
<!-- Automatically generated by emacsconf-publish-before-page -->
[[!toc ]]
-Format: 20-min talk followed by live web conference Q&A
-Discuss on IRC: [#emacsconf](https://chat.emacsconf.org/?join=emacsconf)
-Status: Waiting for video from speaker
+Format: 27-min talk ; Q&A: BigBlueButton conference room
+Status: Q&A to be extracted from the room recordings
+# Talk
+
+<div class="vid mainVideo"><video controls preload="none" id="mainVideo-test"><source src="https://media.emacsconf.org/2023/emacsconf-2023-test--what-i-learned-by-writing-test-cases-for-gnu-hyperbole--mats-lidell--main.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2023/captions/emacsconf-2023-test--what-i-learned-by-writing-test-cases-for-gnu-hyperbole--mats-lidell--main.vtt" default />"""<track kind="chapters" label="Chapters" src="/2023/captions/emacsconf-2023-test--what-i-learned-by-writing-test-cases-for-gnu-hyperbole--mats-lidell--main--chapters.vtt" /><p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video>[[!template id="chapters" vidid="mainVideo-test" data="""
+00:03.120 Introduction
+03:11.160 ERT: Emacs Lisp Regression Testing
+04:14.360 Assertions with `should`
+04:56.920 Running a test case
+06:54.560 Debug a test
+07:50.380 Commercial break: Hyperbole
+09:10.480 Instrument function on the fly
+10:39.120 Mocking
+14:41.240 cl-letf
+15:24.100 Hooks
+15:55.720 Side effects and initial buffer state
+17:05.100 with-temp-buffer
+17:16.520 make-temp-file
+17:33.288 buffer-string
+18:09.920 buffer-name
+18:51.980 major-mode
+19:02.680 unwind-protect
+20:15.100 Input, with-simulated-input
+21:38.460 Running all tests
+23:03.220 Batch mode
+24:05.060 Skipping tests
+26:08.460 Conclusion
+
+"""]]<div></div>Duration: 26:55 minutes<div class="files resources"><ul><li><a href="https://pad.emacsconf.org/2023-test">Open Etherpad</a></li><li><a href="https://bbb.emacsverse.org/playback/presentation/2.0/playback.html?meetingId=91ba10e7976ef010c38f57417275e78a87e21871-1701633816495">Play recording from BigBlueButton</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-test--what-i-learned-by-writing-test-cases-for-gnu-hyperbole--mats-lidell--intro.vtt">Download --intro.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-test--what-i-learned-by-writing-test-cases-for-gnu-hyperbole--mats-lidell--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-test--what-i-learned-by-writing-test-cases-for-gnu-hyperbole--mats-lidell--main--chapters.vtt">Download --main--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-test--what-i-learned-by-writing-test-cases-for-gnu-hyperbole--mats-lidell--main.opus">Download --main.opus (13MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-test--what-i-learned-by-writing-test-cases-for-gnu-hyperbole--mats-lidell--main.vtt">Download --main.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-test--what-i-learned-by-writing-test-cases-for-gnu-hyperbole--mats-lidell--main.webm">Download --main.webm (57MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-test--what-i-learned-by-writing-test-cases-for-gnu-hyperbole--mats-lidell--transcript.txt">Download --transcript.txt</a></li><li><a href="https://toobnix.org/w/4XmcGSe3TQrJJNUqQXqK2B">View on Toobnix</a></li><li><a href="https://www.youtube.com/watch?v=maNQSKxXIzI">View on Youtube</a></li></ul></div></div>
+
+# Q&A
+
+<div class="vid qanda"><video controls preload="none" id="qanda-test"><source src="https://media.emacsconf.org/2023/emacsconf-2023-test--what-i-learned-by-writing-test-cases-for-gnu-hyperbole--mats-lidell--answers.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2023/captions/emacsconf-2023-test--what-i-learned-by-writing-test-cases-for-gnu-hyperbole--mats-lidell--answers.vtt" default />"""<p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video><div>Listen to just the audio:<br /><audio controls preload="none" id="qanda-test-audio" src="https://media.emacsconf.org/2023/emacsconf-2023-test--what-i-learned-by-writing-test-cases-for-gnu-hyperbole--mats-lidell--answers.opus"></audio></div><div></div>Duration: 26:22 minutes<div class="files resources"><ul><li><a href="https://pad.emacsconf.org/2023-test">Open Etherpad</a></li><li><a href="https://bbb.emacsverse.org/playback/presentation/2.0/playback.html?meetingId=91ba10e7976ef010c38f57417275e78a87e21871-1701633816495">Play recording from BigBlueButton</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-test--what-i-learned-by-writing-test-cases-for-gnu-hyperbole--mats-lidell--answers.json">Download --answers.json (1MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-test--what-i-learned-by-writing-test-cases-for-gnu-hyperbole--mats-lidell--answers.opus">Download --answers.opus (9MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-test--what-i-learned-by-writing-test-cases-for-gnu-hyperbole--mats-lidell--answers.vtt">Download --answers.vtt</a> (unedited)</li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-test--what-i-learned-by-writing-test-cases-for-gnu-hyperbole--mats-lidell--answers.webm">Download --answers.webm (41MB)</a></li></ul></div></div>
# Description
<!-- End of emacsconf-publish-before-page --> \ No newline at end of file
diff --git a/2023/info/test-nav.md b/2023/info/test-nav.md
index 0c9d9fb1..eba71afd 100644
--- a/2023/info/test-nav.md
+++ b/2023/info/test-nav.md
@@ -1,7 +1,7 @@
<div class="talk-nav">
Back to the [[talks]]
-Previous by track: <a href="/2023/talks/scheme">Bringing joy to Scheme programming</a>
-Next by track: <a href="/2023/talks/flat">A modern Emacs look-and-feel without pain</a>
-Track: <span class="sched-track Development">Development</span>
+Previous by track: <a href="/2023/talks/lspocaml">Writing a language server in OCaml for Emacs, fun, and profit</a>
+Next by track: <a href="/2023/talks/emacsconf">EmacsConf.org: How we use Org Mode and TRAMP to organize and run a multi-track conference</a>
+Track: <span class="sched-track Development">Development</span> - <strong><a href="https://emacsconf.org/2023/watch/dev">Watch</a></strong>
</div>
diff --git a/2023/info/unentangling-after.md b/2023/info/unentangling-after.md
index 0f53c7af..57950f71 100644
--- a/2023/info/unentangling-after.md
+++ b/2023/info/unentangling-after.md
@@ -1,7 +1,280 @@
<!-- Automatically generated by emacsconf-publish-after-page -->
-Questions or comments? Please e-mail [emacsconf-org-private@gnu.org](mailto:emacsconf-org-private@gnu.org?subject=Comment%20for%20EmacsConf%202022%20unentangling%3A%20%28Un%29entangling%20projects%20and%20repos)
+<div class="transcript transcript-mainVideo"><a name="unentangling-mainVideo-transcript"></a><h1>Transcript</h1>
+
+
+<div class="transcript-heading">[[!template new="1" text="""Introduction""" start="00:00:01.220" video="mainVideo-unentangling" id="subtitle"]]</div>[[!template text="""Hello, I'm Alexey Bochkarev,""" start="00:00:01.220" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""and I'm talking about unentangling projects""" start="00:00:03.740" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""and repositories, or maybe entangling them,""" start="00:00:06.899" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""depending on how you look at that.""" start="00:00:09.679" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""So there's going to be a short workflow note.""" start="00:00:12.980" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""I work as a researcher,""" start="00:00:16.619" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""So there are 3 main components to my work,""" start="00:00:19.940" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""I guess. First, I think,""" start="00:00:23.680" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""so I try to come up with a new ideas that""" start="00:00:26.000" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""usually results in some collection of notes I""" start="00:00:28.140" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""have. Second, I try things out.""" start="00:00:31.580" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""So it usually means that I write code.""" start="00:00:33.760" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""And third, I communicate.""" start="00:00:36.820" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""So I prepare papers, presentations,""" start="00:00:38.739" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""memos, and so on and so forth.""" start="00:00:41.260" video="mainVideo-unentangling" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""The problem""" start="00:00:44.120" video="mainVideo-unentangling" id="subtitle"]]</div>[[!template text="""The workflow problem I had is""" start="00:00:44.120" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""sometimes all this does not really fit into a""" start="00:00:49.160" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""concept of a single repository per project.""" start="00:00:53.000" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""So I might want to have,""" start="00:00:56.200" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""for example, a source code in one repository""" start="00:00:58.180" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""and then I would like to have a paper in""" start="00:01:01.320" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""another one, and then I want to have a""" start="00:01:03.480" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""collection of notes somewhere unrelated to""" start="00:01:05.200" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""those two. Emacs is pretty good at supporting""" start="00:01:08.620" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""your workflows and I figured I should share""" start="00:01:12.500" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""what I used and what works for me.""" start="00:01:16.240" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""From the technical perspective,""" start="00:01:20.560" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""things are pretty easy.""" start="00:01:26.479" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""I use a collection of pretty standard""" start="00:01:27.940" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""components of Emacs. So it's projectile, org""" start="00:01:30.720" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""mode with this capture templates, and other""" start="00:01:33.240" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""things. Then I sustained a collection of""" start="00:01:35.360" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""nodes in something that is called org-roam,""" start="00:01:38.100" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""which is essentially it's a glorified""" start="00:01:40.680" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""collection of org mode files.""" start="00:01:43.580" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""Then I used directory-local variables,""" start="00:01:46.100" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""maybe a ctags to jump through the source""" start="00:01:48.260" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""code and very, very little elisp glue to""" start="00:01:51.140" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""make this all work, but that's not really""" start="00:01:54.920" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""rocket science. So that's the workflow I""" start="00:01:58.620" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""would like to talk about today.""" start="00:02:00.400" video="mainVideo-unentangling" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Jumping around""" start="00:02:04.860" video="mainVideo-unentangling" id="subtitle"]]</div>[[!template text="""So what I mean by all that,""" start="00:02:04.860" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""it's pretty straightforward to make Emacs,""" start="00:02:07.960" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""to make it easy to jump around a single""" start="00:02:10.680" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""repository in Emacs. So if I...""" start="00:02:12.720" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""Now I have Doom Emacs,""" start="00:02:15.060" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""but that's not really specific to a Doom""" start="00:02:16.640" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""that'll work in any Emacs configuration.""" start="00:02:19.120" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""Well, key bindings might be different,""" start="00:02:23.400" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""but that's not the point,""" start="00:02:27.720" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""I guess, for the workflow.""" start="00:02:28.820" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""So if I hit space 2 times,""" start="00:02:30.060" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""I have all the list of files within my""" start="00:02:31.960" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""project, right? So if I create a couple of""" start="00:02:34.640" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""custom shortcuts, so if I press a magic""" start="00:02:38.200" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""button, Hyper+o p... don't worry about""" start="00:02:42.780" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""hyper-key. So I want it to have a modifier""" start="00:02:45.280" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""key all to myself, so that would,""" start="00:02:47.560" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""no program on my computer would use that""" start="00:02:50.320" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""except Emacs. Emacs would use that only when""" start="00:02:53.200" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""I tell it to, so I have a hyper key instead""" start="00:02:55.680" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""of caps lock. That's pretty easy to do in GNU""" start="00:02:57.540" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""Linux system. So when I press this magic""" start="00:03:00.720" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""keys, I have a menu that's a normal key""" start="00:03:04.940" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""binding. Yeah, essentially an Emacs.""" start="00:03:07.400" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""And if I hit, for example,""" start="00:03:10.240" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""r, I end up in a README file within this""" start="00:03:12.540" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""specific repository I was sitting in,""" start="00:03:15.200" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""right? So if I want to document something""" start="00:03:17.320" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""real quick, I go to the README file.""" start="00:03:19.000" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""Then I could go to a change log file,""" start="00:03:21.680" video="mainVideo-unentangling" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Capturing""" start="00:03:25.280" video="mainVideo-unentangling" id="subtitle"]]</div>[[!template text="""right? So I have a list of changes and the""" start="00:03:25.280" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""way it works usually, for example,""" start="00:03:27.440" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""if I'm working in some code,""" start="00:03:29.480" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""I created a couple of dummy files in there,""" start="00:03:32.220" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""so I'm working in some code and then I""" start="00:03:34.280" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""implemented something and I can just use the""" start="00:03:36.560" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""org mode capture mechanisms to keep track of""" start="00:03:42.020" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""what I want to discuss with colleagues next""" start="00:03:46.860" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""time. For example, I could just hit capture""" start="00:03:48.880" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""repo specific changelog entry and I""" start="00:03:52.440" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""implemented a feature and I can continue""" start="00:03:56.200" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""working without this context switching.""" start="00:04:02.620" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""And then if I want to go to the change log,""" start="00:04:04.340" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""well, it is there. And next time I talk to""" start="00:04:06.880" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""the colleagues about the source code,""" start="00:04:11.320" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""I can open the change log and go through""" start="00:04:12.720" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""entries 1 by 1 and discuss what I haven't""" start="00:04:14.340" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""implemented last time.""" start="00:04:16.800" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""I could go to project-specific,""" start="00:04:19.540" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""sorry, to repo-specific to-do list.""" start="00:04:24.100" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""And I have list of to-dos that would leave""" start="00:04:26.320" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""within a repository. And for example,""" start="00:04:29.020" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""I could have a high level structure here,""" start="00:04:31.320" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""work distribution between team members and""" start="00:04:34.640" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""other things that sort of face outer world,""" start="00:04:36.460" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""so to speak. And of course,""" start="00:04:39.380" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""there are very many ways to jump through the""" start="00:04:42.840" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""source code conveniently.""" start="00:04:45.400" video="mainVideo-unentangling" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Ctags""" start="00:04:46.560" video="mainVideo-unentangling" id="subtitle"]]</div>[[!template text="""I ended up not using language servers. I use a""" start="00:04:46.560" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""special program called ctags and so the way""" start="00:04:49.960" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""it works is just I call projectile regenerate""" start="00:04:53.320" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""tags and it creates the special tags file""" start="00:04:56.680" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""within the repository and then I can again""" start="00:05:00.460" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""run it I usually just hit a single keystroke""" start="00:05:06.240" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""and here is all the symbols that are there in""" start="00:05:11.520" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""my source code, regardless of the language,""" start="00:05:14.060" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""right? So I can jump to the main function and""" start="00:05:17.160" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""that'll be a C++ file.""" start="00:05:19.540" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""Or I could go to the super function,""" start="00:05:21.020" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""which I had in my Python file.""" start="00:05:22.740" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""And this comes in pretty convenient if I have""" start="00:05:25.380" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""a mixture of languages.""" start="00:05:27.120" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""Sometimes I can have some algorithm specific""" start="00:05:28.360" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""code in Julia, and then I can have some""" start="00:05:30.800" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""Python glue within the same source code""" start="00:05:33.280" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""repository, it makes it really convenient to""" start="00:05:35.380" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""jump between all of those.""" start="00:05:39.720" video="mainVideo-unentangling" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Org Roam""" start="00:05:43.080" video="mainVideo-unentangling" id="subtitle"]]</div>[[!template text="""But I have a few problems here.""" start="00:05:43.080" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""So just to give you a little bit of context,""" start="00:05:47.360" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""for example, here is a real project that""" start="00:05:49.860" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""corresponds to real paper.""" start="00:05:53.100" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""I have a single note about that project where""" start="00:05:55.840" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""I keep all the things related to that project""" start="00:05:59.060" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""here, but that's a private note.""" start="00:06:01.780" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""So for example, again,""" start="00:06:03.260" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""I hit a special key that invokes my org-roam""" start="00:06:04.860" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""function that gives me a menu of my notes.""" start="00:06:08.640" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""And so here is the paper,""" start="00:06:13.080" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""essentially. And I can have a paper timeline,""" start="00:06:15.200" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""and I can have a list of all the dates what""" start="00:06:17.900" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""happened to the paper with links to my email,""" start="00:06:21.180" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""right? So for example if I hit this link that""" start="00:06:24.060" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""will open a specific email and that doesn't""" start="00:06:27.700" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""work outside of my computer,""" start="00:06:30.160" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""doesn't make any sense to keep it in the""" start="00:06:31.280" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""outer world facing repository,""" start="00:06:33.340" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""for example. So that's something to myself,""" start="00:06:35.500" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""right? Sometimes I want to have like this""" start="00:06:37.360" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""list of working notes,""" start="00:06:41.480" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""right, that contain like,""" start="00:06:43.940" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""for example, yeah, I might produce this kind""" start="00:06:45.780" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""of things for internal discussion,""" start="00:06:49.200" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""right? It has some marks,""" start="00:06:50.640" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""it has some margin notes and things like""" start="00:06:52.500" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""that. Maybe again, health-based ideas that""" start="00:06:54.620" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""may or may not end up in a repository,""" start="00:06:57.620" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""in the final paper or in a source code,""" start="00:07:01.020" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""but still I want to have it somewhere.""" start="00:07:03.220" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""And well, long story short,""" start="00:07:07.120" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""I need a project folder that would be""" start="00:07:08.800" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""unrelated to the source code or to the source""" start="00:07:11.680" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""code repository or to the paper itself or a""" start="00:07:16.120" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""final report, right? And 1 way,""" start="00:07:19.440" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""as usual, there are multiple ways to achieve""" start="00:07:22.960" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""that, I suppose. And 1 way to do that is,""" start="00:07:24.720" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""so I create a special folder within my""" start="00:07:29.040" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""org-roam storage. So it's a special folder""" start="00:07:33.160" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""outside of any repositories that got backed up""" start="00:07:38.240" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""to my hard drive with certain redundancy,""" start="00:07:40.940" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""but I don't really need version control,""" start="00:07:44.080" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""full blown version control for that.""" start="00:07:46.720" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""I'm okay with just having a couple of""" start="00:07:48.280" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""backups, right? So this is the folder you see""" start="00:07:49.760" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""here. So PKB stands for personal knowledge""" start="00:07:52.900" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""base, and I have a folder project notes in""" start="00:07:55.320" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""there, right?""" start="00:07:58.020" video="mainVideo-unentangling" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""How does it work?""" start="00:07:59.340" video="mainVideo-unentangling" id="subtitle"]]</div>[[!template text="""How does it work?""" start="00:07:59.340" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""So I have a folder per project in there,""" start="00:08:01.680" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""essentially. And here I can have all the""" start="00:08:05.020" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""stuff that kind of belongs to me and I do not""" start="00:08:07.900" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""publish it anywhere. And then,""" start="00:08:11.480" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""For example, a source code repository knows""" start="00:08:15.420" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""about that folder and a paper repository""" start="00:08:20.460" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""knows about that folder.""" start="00:08:23.460" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""And anything else that might leave in""" start="00:08:25.120" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""separate places all over my system can know""" start="00:08:26.820" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""about that folder. How do I achieve that?""" start="00:08:28.820" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""Well, essentially this is 1 of the use cases""" start="00:08:30.940" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""for the directory local variables,""" start="00:08:34.400" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""right? So for example,""" start="00:08:36.360" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""how does it work from the user perspective?""" start="00:08:39.520" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""So if I hit a special key,""" start="00:08:41.580" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""oh, sorry, if I hit a special key,""" start="00:08:44.380" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""that would be open project.""" start="00:08:48.280" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""And then for example, org mode file,""" start="00:08:51.680" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""right? So this is my personal notes about""" start="00:08:55.920" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""EmacsConf, not specifically about this very""" start="00:08:58.260" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""talk, but I can have, you know,""" start="00:09:01.260" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""the house baked ideas here again,""" start="00:09:02.580" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""presentation tools and things like that.""" start="00:09:04.760" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""And how does that happen?""" start="00:09:07.440" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""If we try to like look at the code,""" start="00:09:09.940" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""the elisp magic here,""" start="00:09:13.080" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""what is happening is it's just a couple of""" start="00:09:15.040" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""lines of code, in fact,""" start="00:09:17.560" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""so let me just press Control,""" start="00:09:18.720" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""help key. And so the key I was pressing is""" start="00:09:22.540" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""open project or my file.""" start="00:09:28.140" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""And so what we see here,""" start="00:09:30.480" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""there is a single, so it's just a call to a""" start="00:09:32.220" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""find file function. So I opened that file and""" start="00:09:34.760" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""there is a special function that figures out""" start="00:09:37.200" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""what is the like umbrella project nose file""" start="00:09:40.580" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""and that's, again, that's very easy.""" start="00:09:44.620" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""So essentially if a variable describing this,""" start="00:09:47.380" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""the name for that project is defined,""" start="00:09:51.820" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""then I use that as my project folder name.""" start="00:09:54.860" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""If not, I take the project name from the""" start="00:09:57.440" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""project tile. Well, that's pretty much it.""" start="00:10:00.480" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""And how do I define this variable?""" start="00:10:03.340" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""Is essentially there is this magical file in""" start="00:10:09.280" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""a folder called .dir-locals.el. And I just put it there.""" start="00:10:12.500" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""And then whenever I go into that folder or""" start="00:10:17.440" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""any of its children folders,""" start="00:10:20.380" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""I get this variable defined.""" start="00:10:22.300" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""And that's pretty much it.""" start="00:10:24.840" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""That's how it works for me.""" start="00:10:26.280" video="mainVideo-unentangling" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Time tracking""" start="00:10:31.860" video="mainVideo-unentangling" id="subtitle"]]</div>[[!template text="""I guess 1 thing that I wanted to emphasize""" start="00:10:31.860" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""specifically about that is of course,""" start="00:10:35.380" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""it is a time tracking,""" start="00:10:37.940" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""right? So what is I find especially important""" start="00:10:39.720" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""when I work in something and I want to clock""" start="00:10:42.260" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""time, I usually do not want this information""" start="00:10:44.340" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""to be in a source code repository or in a""" start="00:10:47.800" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""paper repository because other people I work""" start="00:10:50.340" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""with will not be particularly happy about""" start="00:10:52.600" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""that, especially if most of them do not use""" start="00:10:54.840" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""Emacs and they'll see this long list of org""" start="00:10:57.540" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""clocked data and that doesn't look nice in a""" start="00:11:00.720" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""plain text format. So what I usually do if I""" start="00:11:03.820" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""want to clock in some time and then later""" start="00:11:07.540" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""analyze what I've been spending time on,""" start="00:11:10.240" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""so I go to my org mode file and I go to the,""" start="00:11:12.560" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""my current project to-dos and I clock in""" start="00:11:16.880" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""there. And that's how it works.""" start="00:11:21.820" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""So again, what comes in handy,""" start="00:11:23.940" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""if I hit C-o, I just go back to the""" start="00:11:28.860" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""file I jumped in into and that's I jumped""" start="00:11:31.500" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""from so that's also pretty handy.""" start="00:11:34.240" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""So again no no rocket science in there.""" start="00:11:36.220" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""So I create a directory local variable that""" start="00:11:40.380" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""helps me to figure out what umbrella project""" start="00:11:42.660" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""does this particular folder belongs to.""" start="00:11:46.620" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""And this way I make Emacs aware of,""" start="00:11:49.940" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""for example, facts like,""" start="00:11:53.260" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""so this source code belongs to that project.""" start="00:11:54.480" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""And this paper, this repository with a paper""" start="00:11:56.740" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""also belongs to that project.""" start="00:11:59.180" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""And I can have capture templates that would""" start="00:12:01.060" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""save my notes into the my private notes file""" start="00:12:04.060" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""and my to-dos and go to my private note files""" start="00:12:07.800" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""and so on and so forth.""" start="00:12:10.920" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""So I find it pretty simple but that really""" start="00:12:12.260" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""helps to reduce this context switching.""" start="00:12:15.520" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""And I don't believe it allows me to save""" start="00:12:19.600" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""time, but that probably helps me to stay""" start="00:12:22.040" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""focused. And this is what is really""" start="00:12:26.260" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""important, I believe. So thank you very much.""" start="00:12:28.420" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""And if you have any comments or suggestions""" start="00:12:31.400" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""to that, please do jump into the discussion.""" start="00:12:33.320" video="mainVideo-unentangling" id="subtitle"]]
+[[!template text="""Yeah, after the talk, thank you.""" start="00:12:37.120" video="mainVideo-unentangling" id="subtitle"]]
+
+</div>Questions or comments? Please e-mail [emacsconf-org-private@gnu.org](mailto:emacsconf-org-private@gnu.org?subject=Comment%20for%20EmacsConf%202023%20unentangling%3A%20%28Un%29entangling%20projects%20and%20repos)
<!-- End of emacsconf-publish-after-page -->
diff --git a/2023/info/unentangling-before.md b/2023/info/unentangling-before.md
index b8f1c406..bec15a98 100644
--- a/2023/info/unentangling-before.md
+++ b/2023/info/unentangling-before.md
@@ -1,12 +1,22 @@
<!-- Automatically generated by emacsconf-publish-before-page -->
[[!toc ]]
-Format: 10-min talk followed by pad (preferred), or e-mail Q&A
-Discuss on IRC: [#emacsconf](https://chat.emacsconf.org/?join=emacsconf)
-Status: Waiting for video from speaker
+Format: 13-min talk ; Q&A: Etherpad
+Status: Q&A to be extracted from the room recordings
+<div class="vid mainVideo"><video controls preload="none" id="mainVideo-unentangling"><source src="https://media.emacsconf.org/2023/emacsconf-2023-unentangling--unentangling-projects-and-repos--alexey-bochkarev--main.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2023/captions/emacsconf-2023-unentangling--unentangling-projects-and-repos--alexey-bochkarev--main.vtt" default />"""<track kind="chapters" label="Chapters" src="/2023/captions/emacsconf-2023-unentangling--unentangling-projects-and-repos--alexey-bochkarev--main--chapters.vtt" /><p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video>[[!template id="chapters" vidid="mainVideo-unentangling" data="""
+00:01.220 Introduction
+00:44.120 The problem
+02:04.860 Jumping around
+03:25.280 Capturing
+04:46.560 Ctags
+05:43.080 Org Roam
+07:59.340 How does it work?
+10:31.860 Time tracking
+
+"""]]<div></div>Duration: 12:39 minutes<div class="files resources"><ul><li><a href="https://pad.emacsconf.org/2023-unentangling">Open Etherpad</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-unentangling--unentangling-projects-and-repos--alexey-bochkarev--intro.vtt">Download --intro.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-unentangling--unentangling-projects-and-repos--alexey-bochkarev--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-unentangling--unentangling-projects-and-repos--alexey-bochkarev--main--chapters.vtt">Download --main--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-unentangling--unentangling-projects-and-repos--alexey-bochkarev--main.json">Download --main.json</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-unentangling--unentangling-projects-and-repos--alexey-bochkarev--main.opus">Download --main.opus (10MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-unentangling--unentangling-projects-and-repos--alexey-bochkarev--main.vtt">Download --main.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-unentangling--unentangling-projects-and-repos--alexey-bochkarev--main.webm">Download --main.webm (68MB)</a></li><li><a href="https://toobnix.org/w/wLxyZBoFAad575Lp4PGyoF">View on Toobnix</a></li><li><a href="https://www.youtube.com/watch?v=o9j4IwJsvPI">View on Youtube</a></li></ul></div></div>
# Description
<!-- End of emacsconf-publish-before-page --> \ No newline at end of file
diff --git a/2023/info/unentangling-nav.md b/2023/info/unentangling-nav.md
index fdfb9cd2..4ddda87d 100644
--- a/2023/info/unentangling-nav.md
+++ b/2023/info/unentangling-nav.md
@@ -1,7 +1,7 @@
<div class="talk-nav">
Back to the [[talks]]
-Previous by track: <a href="/2023/talks/solo">How I play TTRPGs in Emacs</a>
-Next by track: <a href="/2023/talks/ref">Org-Mode workflow: informal reference tracking</a>
-Track: <span class="sched-track General">General</span>
+Previous by track: <a href="/2023/talks/ref">Org-Mode workflow: informal reference tracking</a>
+Next by track: <a href="/2023/talks/devel">Emacs development updates</a>
+Track: <span class="sched-track General">General</span> - <strong><a href="https://emacsconf.org/2023/watch/gen">Watch</a></strong>
</div>
diff --git a/2023/info/uni-after.md b/2023/info/uni-after.md
index 8c7055f7..bd372d5f 100644
--- a/2023/info/uni-after.md
+++ b/2023/info/uni-after.md
@@ -1,7 +1,937 @@
<!-- Automatically generated by emacsconf-publish-after-page -->
-Questions or comments? Please e-mail [emacsconf-org-private@gnu.org](mailto:emacsconf-org-private@gnu.org?subject=Comment%20for%20EmacsConf%202022%20uni%3A%20Authoring%20and%20presenting%20university%20courses%20with%20Emacs%20and%20a%20full%20libre%20software%20stack)
+<div class="transcript transcript-mainVideo"><a name="uni-mainVideo-transcript"></a><h1>Transcript</h1>
+
+
+<div class="transcript-heading">[[!template new="1" text="""Introduction""" start="00:00:00.000" video="mainVideo-uni" id="subtitle"]]</div>[[!template text="""Hello everyone. I'm James Howell.""" start="00:00:00.000" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""I teach biochemistry and""" start="00:00:01.940" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""molecular biology at Penn State University.""" start="00:00:03.540" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""I'm going to talk today""" start="00:00:07.220" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""about using Emacs to make all of""" start="00:00:08.880" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""the materials for presenting""" start="00:00:11.480" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""course meetings in my courses.""" start="00:00:13.620" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""Everything that you're going to see today is""" start="00:00:15.680" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""what I've made using""" start="00:00:18.820" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""the methods that I'm going to describe.""" start="00:00:20.440" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""The main point is that you can take""" start="00:00:26.200" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""an Org document and""" start="00:00:29.720" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""with a single Emacs document,""" start="00:00:32.080" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""make both a pretty text document""" start="00:00:34.470" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""that a student can have""" start="00:00:39.080" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""on the desk and take notes on.""" start="00:00:40.380" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""And also, I hope,""" start="00:00:42.040" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""fairly useful and attractive slides""" start="00:00:44.440" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""like the ones that I'm presenting right now.""" start="00:00:49.040" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""Both of these""" start="00:00:51.340" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""from a single source document.""" start="00:00:52.860" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""Okay. If you'd like""" start="00:00:56.660" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""to see the handout that goes along with this,""" start="00:00:59.260" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""you can download it""" start="00:01:00.920" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""at the [Sourcehut] repository where""" start="00:01:02.800" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""I've put— everything's here.""" start="00:01:04.060" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""So if you'd like to go look at it,""" start="00:01:05.960" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""you can follow with the handout.""" start="00:01:07.820" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""So I promised to talk about""" start="00:01:09.940" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""both authoring and presenting.""" start="00:01:11.240" video="mainVideo-uni" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Presenting""" start="00:01:12.440" video="mainVideo-uni" id="subtitle"]]</div>[[!template text="""And first I'm going to talk about presenting.""" start="00:01:12.440" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""I'm not the only one who does this.""" start="00:01:14.620" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""You might have seen System Crafters [David Wilson]""" start="00:01:16.600" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""or Prot's [Protesilaos Stavrou's] channel or""" start="00:01:19.300" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""Mike Zemansky's channel on Youtube.""" start="00:01:20.640" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""(Prot actually is going to be presenting tomorrow.)""" start="00:01:23.060" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""Maybe you've seen this""" start="00:01:26.680" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""chemical engineer at Carnegie Mellon,""" start="00:01:28.420" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""John Kitchin or Eric Fraga""" start="00:01:30.180" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""or Olivier Berger all have made""" start="00:01:32.160" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""blog posts about using Org mode""" start="00:01:34.140" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""to produce course materials.""" start="00:01:36.520" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""This pair Ro and Namkoon""" start="00:01:39.420" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""actually published a peer reviewed paper.""" start="00:01:41.460" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""There's prior art here""" start="00:01:43.740" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""that I'd like to acknowledge.""" start="00:01:45.740" video="mainVideo-uni" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Hardware""" start="00:01:47.820" video="mainVideo-uni" id="subtitle"]]</div>[[!template text="""Let me talk about my practices:""" start="00:01:47.820" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""First, the hardware.""" start="00:01:50.840" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""This is the hardware that I'm using to""" start="00:01:51.520" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""record this recording at the very moment,""" start="00:01:55.340" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""but also I carry these""" start="00:01:59.740" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""into every course meeting.""" start="00:02:01.260" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""I've done this for quite a while,""" start="00:02:05.060" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""this entire semester,""" start="00:02:07.120" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""and a few previous semesters""" start="00:02:09.620" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""where everything fits in a backpack.""" start="00:02:11.440" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""I do every meeting with this tablet—""" start="00:02:14.240" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""it's a Microsoft Surface that I put""" start="00:02:18.460" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""a Linux distribution on—and this laptop.""" start="00:02:20.840" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""I've got a bag full of""" start="00:02:26.600" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""dongles and connectors and so forth.""" start="00:02:29.600" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""It all fits in a backpack.""" start="00:02:34.080" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""This is very mobile.""" start="00:02:35.340" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""I can set it up and tear it down""" start="00:02:36.260" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""before and after every class""" start="00:02:38.180" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""with just a couple minutes.""" start="00:02:39.700" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""There's the laptop and the""" start="00:02:41.220" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""tablet with a stylus.""" start="00:02:42.740" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""Where's my stylus?""" start="00:02:45.020" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""So that I can draw...""" start="00:02:46.580" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""... which is very useful.""" start="00:02:51.500" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""Obviously, I need a camera.""" start="00:02:52.520" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""Today, I'm using a desk mic,""" start="00:02:55.860" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""but when I'm remote,""" start="00:02:57.460" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""I use a lapel mic.""" start="00:02:59.100" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""and a video converter,""" start="00:03:01.740" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""and I'll show you why that's important.""" start="00:03:02.900" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""And then all of the ancillary equipment.""" start="00:03:04.380" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""One thing that's nice about using""" start="00:03:09.020" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""a completely free software stack is""" start="00:03:11.140" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""that it tends to run""" start="00:03:14.020" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""on underpowered hardware,""" start="00:03:15.220" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""and none of the software cost anything.""" start="00:03:18.320" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""I could have spent much less than this""" start="00:03:20.540" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""on a used computer and""" start="00:03:23.220" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""a used tablet. And everything else,""" start="00:03:25.460" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""these are high estimates.""" start="00:03:28.200" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""I spent way less than""" start="00:03:30.300" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""$1,000 for all of this equipment.""" start="00:03:31.680" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""And it's my equipment,""" start="00:03:34.020" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""so I have hardware""" start="00:03:35.620" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""and software control over it,""" start="00:03:37.260" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""Which is nice.""" start="00:03:38.960" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""If you have an attitude of upcycling and building,""" start="00:03:41.100" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""and [if] this is a hobby anyway,""" start="00:03:43.240" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""this is an easy way—""" start="00:03:45.190" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""what I'm saying is—""" start="00:03:47.130" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""the entry into using these things,""" start="00:03:48.650" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""there's certainly a very low cost barrier.""" start="00:03:51.370" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""Because the hardware is so weak,""" start="00:03:58.020" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""I have the tablet for doing tablet stuff,""" start="00:04:01.430" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""and then I use the laptop to""" start="00:04:05.250" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""do all of the streaming and recording.""" start="00:04:06.630" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""I take the video output""" start="00:04:08.910" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""of the tablet and convert it to""" start="00:04:11.610" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""USB input into the laptop.""" start="00:04:13.830" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""Just to give you a diagram here,""" start="00:04:19.900" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""there's a laptop and there's a tablet.""" start="00:04:21.930" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""The tablet has a stylus.""" start="00:04:23.710" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""They both run GNU/Linux distributions.""" start="00:04:25.930" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""You've got a webcam that""" start="00:04:29.450" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""goes into the laptop.""" start="00:04:30.950" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""You've got video output""" start="00:04:32.130" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""from the tablet that goes into the laptop.""" start="00:04:33.620" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""There's a microphone that""" start="00:04:37.890" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""goes into the laptop,""" start="00:04:39.350" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""and then audio and video come out of""" start="00:04:40.470" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""the laptop and go into""" start="00:04:43.210" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""some AV system or another.""" start="00:04:44.410" video="mainVideo-uni" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Example setup""" start="00:04:46.610" video="mainVideo-uni" id="subtitle"]]</div>[[!template text="""Okay. This was Wednesday,""" start="00:04:46.610" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""teaching microbiology.""" start="00:04:49.070" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""There's the tablet, there's the laptop.""" start="00:04:51.070" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""There's the external screen""" start="00:04:53.230" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""in the podium here you can""" start="00:04:55.370" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""plug into the AV system.""" start="00:04:57.210" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""There it is. From where I stand,""" start="00:05:00.470" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""this is what the screen looks like.""" start="00:05:04.210" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""This is what students are seeing,""" start="00:05:06.010" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""on the live stream""" start="00:05:08.225" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""and later on the recording.""" start="00:05:09.460" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""And students in the room""" start="00:05:10.780" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""can see this as well.""" start="00:05:11.720" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""So you notice this is kind of meta,""" start="00:05:12.640" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""but the camera and""" start="00:05:15.100" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""the contents of the screen are""" start="00:05:17.140" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""there when I wander around,""" start="00:05:18.760" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""and when I stand in front of the screen,""" start="00:05:20.500" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""the students who aren't in the room can""" start="00:05:22.220" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""still see what I'm pointing to on the screen.""" start="00:05:23.940" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""Nobody gets left out.""" start="00:05:27.400" video="mainVideo-uni" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Presentation software: flexibility in function""" start="00:05:30.520" video="mainVideo-uni" id="subtitle"]]</div>[[!template text="""Let's talk about""" start="00:05:30.520" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""the software that I use.""" start="00:05:31.480" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""There's a lot of different things that""" start="00:05:33.900" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""I want to be able to show.""" start="00:05:35.980" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""And so I need a few different""" start="00:05:37.640" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""software packages— besides Emacs.""" start="00:05:39.300" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""For drawing on the tablet, I use""" start="00:05:42.400" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""(I don't know quite how this is pronounced:""" start="00:05:45.080" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""I think it's) Xournal++""" start="00:05:48.360" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""I use the web quite a bit,""" start="00:05:51.200" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""especially if I want to just""" start="00:05:54.040" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""spontaneously look something up.""" start="00:05:55.720" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""Often I use video,""" start="00:05:57.760" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""especially molecular animations.""" start="00:05:59.680" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""And that's incredibly powerful.""" start="00:06:01.500" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""And then now and again, I want to look at text.""" start="00:06:04.700" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""Especially in""" start="00:06:06.940" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""the English course that I teach,""" start="00:06:08.060" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""there's quite a bit of text.""" start="00:06:09.800" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""I'll use Emacs for that.""" start="00:06:11.840" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""The video compositor, the thing that""" start="00:06:15.000" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""puts this video and me in the green screen.""" start="00:06:18.440" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""and all of this stuff together, is called""" start="00:06:22.480" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""OBS Studio—and that also does recording.""" start="00:06:25.420" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""It's ALMOST a completely free software stack.""" start="00:06:34.820" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""I use Zoom to do""" start="00:06:37.510" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""the streaming and video""" start="00:06:38.750" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""conferencing because all of""" start="00:06:39.930" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""the students are forced to use it for""" start="00:06:41.030" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""their other classes and""" start="00:06:42.410" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""I've gone along with it.""" start="00:06:44.220" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""But a good alternative is""" start="00:06:45.410" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""Jitsi Meet. There are others.""" start="00:06:46.670" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""Okay. Again, here's""" start="00:06:48.860" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""the hardware setup. On the tablet,""" start="00:06:50.730" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""I'm running Xournal++. On the laptop,""" start="00:06:53.790" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""I've got Firefox and VLC, and Emacs.""" start="00:06:56.590" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""OBS is compositing that together.""" start="00:07:00.230" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""And I use Zoom, but you could use Jitsi.""" start="00:07:02.890" video="mainVideo-uni" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Live demonstration""" start="00:07:05.950" video="mainVideo-uni" id="subtitle"]]</div>[[!template text="""All right, let's""" start="00:07:05.950" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""demonstrate this live. Here we go.""" start="00:07:07.930" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""Here goes, nothing. The drawing program""" start="00:07:09.690" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""is really good because I can draw""" start="00:07:13.610" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""with the stylus on a tablet.""" start="00:07:15.050" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""It's a remarkable thing—""" start="00:07:17.970" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""I teach in these big lecture halls,""" start="00:07:20.090" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""and I guess they want them to be fancy?""" start="00:07:22.410" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""And so they don't have blackboards and""" start="00:07:24.410" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""whiteboards! If I want to be able to draw,""" start="00:07:25.970" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""if I want to do anything approaching analog,""" start="00:07:29.010" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""it has to be with this software!""" start="00:07:32.170" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""In this presentation, I""" start="00:07:35.290" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""don't have very many diagrams,""" start="00:07:37.810" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""but in my courses, most of""" start="00:07:39.490" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""the slides are complicated diagrams.""" start="00:07:41.510" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""Being able to annotate them""" start="00:07:44.250" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""is really important.""" start="00:07:45.810" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""This is why I don't use Emacs for""" start="00:07:47.550" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""presenting these kinds of documents,""" start="00:07:50.630" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""because I want to be able""" start="00:07:54.530" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""to mark them up visually.""" start="00:07:55.810" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""I can show you what that looks like.""" start="00:07:57.450" video="mainVideo-uni" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""OBS""" start="00:07:59.850" video="mainVideo-uni" id="subtitle"]]</div>[[!template text="""By the way, here's how OBS works:""" start="00:07:59.850" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""I can go from different &quot;scenes&quot;""" start="00:08:02.830" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""So I can just do just me,""" start="00:08:04.470" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""or I can show you the slides,""" start="00:08:06.070" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""or I can show you what I see on the tablet.""" start="00:08:08.130" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""On the tablet, I can go""" start="00:08:10.790" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""through all of the— notice here,""" start="00:08:12.270" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""I'm scrolling through all""" start="00:08:14.230" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""of the different slides.""" start="00:08:16.130" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""I've got all kinds of different markup tools,""" start="00:08:17.350" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""and tools for controlling""" start="00:08:19.990" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""zoom and what page I'm on,""" start="00:08:23.170" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""but you don't have to see that.""" start="00:08:24.830" video="mainVideo-uni" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Firefox""" start="00:08:27.190" video="mainVideo-uni" id="subtitle"]]</div>[[!template text="""Okay. Firefox, boy, I do a lot of this.""" start="00:08:27.190" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""All of the quizzes,""" start="00:08:32.390" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""quizzes and exams in my courses""" start="00:08:36.790" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""are online on this""" start="00:08:38.460" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""web platform called Canvas,""" start="00:08:40.130" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""which is good enough.""" start="00:08:43.370" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""It's based on a GPL3 package,""" start="00:08:45.430" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""but this one is proprietary for Penn State.""" start="00:08:49.590" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""Notice that there's a quiz""" start="00:08:53.070" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""every day, and this quiz,""" start="00:08:55.130" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""every quiz has a recording from""" start="00:08:57.050" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""that day and you notice""" start="00:08:59.470" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""there's a picture of me teaching,""" start="00:09:00.630" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""pointing to the slides.""" start="00:09:01.890" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""There's the slides themselves.""" start="00:09:05.030" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""I use OBS to composite in""" start="00:09:06.970" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""the Zoom chat because I teach this hybrid.""" start="00:09:09.590" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""There's people in the room""" start="00:09:12.770" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""and there's people at""" start="00:09:13.710" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""other campuses who are in this course.""" start="00:09:14.570" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""Having the Zoom chat in""" start="00:09:17.630" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""the live feed is very useful.""" start="00:09:19.390" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""Then the quiz—""" start="00:09:22.650" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""at the next class meeting,""" start="00:09:25.730" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""we'll go through this quiz.""" start="00:09:26.670" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""Here's some experimental data""" start="00:09:27.890" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""and here's a question where they're""" start="00:09:30.050" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""supposed to interpret these data.""" start="00:09:31.650" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""We can in class together,""" start="00:09:36.590" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""we can review those.""" start="00:09:38.850" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""That's why Firefox is useful.""" start="00:09:41.630" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""Being able to inhabit,""" start="00:09:47.970" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""being able to inhabit""" start="00:09:50.570" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""figures like this is incredibly powerful.""" start="00:09:52.830" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""This is the silver lining of being""" start="00:09:56.870" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""forced to teach online during the pandemic,""" start="00:09:59.350" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""because I couldn't do""" start="00:10:02.130" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""this before I had a green screen.""" start="00:10:03.070" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""But even more powerful than this—""" start="00:10:05.760" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""For years, I showed students""" start="00:10:09.540" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""this figure by standing in front""" start="00:10:10.820" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""of it or by having a""" start="00:10:12.340" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""projector screen above me.""" start="00:10:13.700" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""And I said, &quot;This is the B form of DNA.&quot;""" start="00:10:15.240" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""&quot;This is the most common form of DNA.&quot;""" start="00:10:18.460" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""&quot;You see here that there's this minor groove.&quot;""" start="00:10:20.380" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""&quot;And then this feature""" start="00:10:22.580" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""is called the major groove.&quot;""" start="00:10:23.420" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""And students couldn't see it.""" start="00:10:24.420" video="mainVideo-uni" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Animation""" start="00:10:26.060" video="mainVideo-uni" id="subtitle"]]</div>[[!template text="""But if you animate it—""" start="00:10:26.060" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""if you just have it""" start="00:10:29.440" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""move, the apparent movement,""" start="00:10:30.280" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""It's not really movement,""" start="00:10:33.320" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""it's apparent movement.""" start="00:10:34.400" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""And it tricks your visual cortex into""" start="00:10:35.380" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""adding three dimensional structure to this.""" start="00:10:37.820" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""You can see this feature is""" start="00:10:40.620" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""the major groove and that feature""" start="00:10:42.580" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""is the minor groove. And a static""" start="00:10:45.340" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""image just can't provide""" start="00:10:47.220" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""that understanding, while moving image can.""" start="00:10:48.320" video="mainVideo-uni" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Emacs""" start="00:10:55.790" video="mainVideo-uni" id="subtitle"]]</div>[[!template text="""I use Emacs to look at text.""" start="00:10:55.790" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""Where's Emacs? Here's Emacs! We read""" start="00:10:58.180" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""Vonnegut in this English class that I""" start="00:11:02.520" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""teach and I'm going to tab over to Emacs.""" start="00:11:04.280" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""It's nice to be able""" start="00:11:07.760" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""to have text jump""" start="00:11:09.860" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""around and be dynamic, right?""" start="00:11:12.420" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""If you, if you want to look""" start="00:11:14.160" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""at this passage and I'll""" start="00:11:16.860" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""have somebody read it aloud.""" start="00:11:18.040" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""And then we talk about why he chose""" start="00:11:19.260" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""this word and why he chose that word,""" start="00:11:20.820" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""and the cadence, and the alliteration.""" start="00:11:22.500" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""Then we can go to another particular excerpt""" start="00:11:25.180" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""and pick that apart on the screen together.""" start="00:11:30.840" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""That would be difficult to do with""" start="00:11:33.440" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""other software that would be very tedious""" start="00:11:34.900" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""to do on the chalkboard.""" start="00:11:36.820" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""So Emacs is really good for that sort of thing.""" start="00:11:39.400" video="mainVideo-uni" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Making slides and handouts with Org Mode""" start="00:11:42.260" video="mainVideo-uni" id="subtitle"]]</div>[[!template text="""Mostly what I use Emacs for is not to""" start="00:11:42.260" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""present but to make slides and handouts.""" start="00:11:45.380" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""Okay. Again, the thing that I want to""" start="00:11:50.340" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""stress is that the slides""" start="00:11:52.360" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""and the handouts can be produced from""" start="00:11:54.220" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""a single Org mode document.""" start="00:11:56.740" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""This entire presentation""" start="00:12:01.180" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""was assembled in Emacs.""" start="00:12:04.060" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""I'll show you how I did that.""" start="00:12:05.700" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""I think everybody""" start="00:12:08.420" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""probably knows what Org mode is.""" start="00:12:11.620" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""But for our purposes, it's a way""" start="00:12:13.160" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""to write documents in plain text.""" start="00:12:14.640" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""That's very important because one of""" start="00:12:16.120" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""the biggest advantages of this is""" start="00:12:19.840" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""being able to do version control.""" start="00:12:22.020" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""I don't have Powerpoint decks""" start="00:12:24.740" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""everywhere with slides that""" start="00:12:27.780" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""there's no way to keep track of them.""" start="00:12:29.360" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""Having these be plain text""" start="00:12:31.240" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""means that I can just put them in""" start="00:12:32.460" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""a git repository.""" start="00:12:33.580" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""Very clean and human readable markup""" start="00:12:36.140" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""including handling tables""" start="00:12:37.900" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""which is just incredibly powerful.""" start="00:12:41.160" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""You can manage projects and tasks.""" start="00:12:43.340" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""But the fact that it's an outline""" start="00:12:45.460" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""that you can produce a document that's""" start="00:12:47.300" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""hierarchical and fold and""" start="00:12:48.980" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""reveal different parts of it.""" start="00:12:51.280" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""But to produce a book length lectures for""" start="00:12:52.980" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""an entire semester and use""" start="00:12:57.120" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""those to produce both slides and handouts,""" start="00:12:58.920" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""that's very powerful,""" start="00:13:01.400" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""at least for my brain. To be able to""" start="00:13:03.180" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""put it all together and have it be""" start="00:13:05.000" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""discursive rather""" start="00:13:06.780" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""than having to be graphical.""" start="00:13:08.400" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""You can export to""" start="00:13:09.920" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""a million different formats including""" start="00:13:11.880" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""PDF documents like the handouts as""" start="00:13:15.060" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""LaTeX, and slides like these through Beamer export.""" start="00:13:17.000" video="mainVideo-uni" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Pedagogy first""" start="00:13:22.680" video="mainVideo-uni" id="subtitle"]]</div>[[!template text="""The approach is to think""" start="00:13:22.680" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""about pedagogy rather than thinking""" start="00:13:24.920" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""about software or thinking""" start="00:13:26.900" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""about graphic design.""" start="00:13:28.280" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""To think about how can""" start="00:13:31.000" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""I make the best argument?""" start="00:13:32.600" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""How can I make the best,""" start="00:13:34.380" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""the most effective sequence of ideas?""" start="00:13:35.980" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""All I've done is make a few tweaks to""" start="00:13:40.880" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""the export backends for LaTeX and""" start="00:13:45.000" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""Beamer to customize them""" start="00:13:47.980" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""for my particular needs.""" start="00:13:49.980" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""And I'll show you what I've done.""" start="00:13:51.500" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""You've seen this already. I'll put""" start="00:13:54.600" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""one idea in big text on the screen.""" start="00:13:58.060" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""I find it to be effective to""" start="00:14:00.900" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""make a single idea explicit at one time.""" start="00:14:04.620" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""Now, some concepts can""" start="00:14:09.120" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""be explained with words or text,""" start="00:14:12.260" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""but many ideas are best just illustrated.""" start="00:14:14.800" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""In contrast, we've""" start="00:14:20.260" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""all used Powerpoint, right?""" start="00:14:22.540" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""And Edward Tufte has taught us""" start="00:14:23.980" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""about how Powerpoint is so""" start="00:14:25.700" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""terrible from a cognitive point of""" start="00:14:27.480" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""view and from a communications point of view.""" start="00:14:29.240" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""So using Org mode is much better.""" start="00:14:31.800" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""How is it better?""" start="00:14:35.400" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""Well, Tufte also tells us that""" start="00:14:36.760" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""any oral presentation that is substantive at all""" start="00:14:42.040" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""has to have some physical handout""" start="00:14:49.050" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""that the audience can use to take notes on.""" start="00:14:52.630" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""Slides are terrible handouts.""" start="00:14:55.710" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""And notes are usually terrible slides.""" start="00:14:59.030" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""Having one document where you""" start="00:15:02.130" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""can produce both and have them be,""" start="00:15:03.690" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""have the same organization,""" start="00:15:05.850" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""but different structures and""" start="00:15:08.410" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""different visual organization is""" start="00:15:10.350" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""something that I wanted""" start="00:15:14.750" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""for a long time and I can only do it""" start="00:15:16.610" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""with Emacs.""" start="00:15:18.630" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""Being able""" start="00:15:20.020" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""also for my brain to""" start="00:15:21.410" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""separate the work of writing and developing""" start="00:15:22.730" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""ideas and developing explanations""" start="00:15:25.310" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""and developing arguments""" start="00:15:28.470" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""and scaffolding them.""" start="00:15:30.050" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""That's jargon in pedagogy""" start="00:15:31.430" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""for bringing the student along.""" start="00:15:33.690" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""Separate that work from wrangling slides.""" start="00:15:36.890" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""That's super helpful for me.""" start="00:15:41.350" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""Again, you have""" start="00:15:44.530" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""an Org document that makes""" start="00:15:46.710" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""both the handouts and the slides.""" start="00:15:48.230" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""What's beautiful about it is""" start="00:15:51.370" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""that everything is an outline.""" start="00:15:53.450" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""And again, it's very discursive.""" start="00:15:54.650" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""Here's Tufte's famous poster where he's making""" start="00:15:56.430" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""fun of the psychology of Powerpoint.""" start="00:15:59.110" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""I don't know about you, but I have the kind of brain""" start="00:16:02.010" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""and I'm in the kind of job""" start="00:16:05.750" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""and I'm at the age where I don't have extra""" start="00:16:07.610" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""cognitive function! You know?""" start="00:16:09.910" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""So streamlining this workflow""" start="00:16:12.050" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""has been really helpful.""" start="00:16:15.730" video="mainVideo-uni" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""org-teach""" start="00:16:17.790" video="mainVideo-uni" id="subtitle"]]</div>[[!template text="""All right, so let me show""" start="00:16:17.790" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""you what I've developed.""" start="00:16:19.310" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""Let's look at the Org doc.""" start="00:16:21.650" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""Okay. So what you see is you have""" start="00:16:24.490" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""a typical Org mode buffer.""" start="00:16:25.830" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""There's two headings here.""" start="00:16:30.770" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""One of them is stuff that I've deleted and""" start="00:16:32.850" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""the other is the talk.""" start="00:16:35.530" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""And so all of these subheadings have""" start="00:16:39.270" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""various things underneath including""" start="00:16:43.110" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""these macros that I wrote like `include-slide`,""" start="00:16:46.390" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""`impact-slide`, `subsection-slide`,""" start="00:16:48.970" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""et cetera, and then a bunch of stuff.""" start="00:16:51.230" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""Then I've got this include""" start="00:16:54.950" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""file that just has""" start="00:16:59.310" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""the macros that I've written.""" start="00:17:01.630" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""You can look at this on the repo.""" start="00:17:03.290" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""I'm not going to take""" start="00:17:05.450" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""the time to walk through it and""" start="00:17:06.290" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""explain what all the LaTeX means.""" start="00:17:07.570" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""But the upshot is""" start="00:17:10.370" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""that by including that file""" start="00:17:16.510" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""that has all the macro definitions,""" start="00:17:20.550" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""you get things like this macro pause""" start="00:17:22.430" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""or newline or whitespace-break,""" start="00:17:25.650" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""which just allow—""" start="00:17:27.690" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""pause splits a slide into two frames,""" start="00:17:30.810" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""so you can get these overlays,""" start="00:17:33.010" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""so you can go through paragraphs one by one.""" start="00:17:34.570" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""These just put""" start="00:17:36.310" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""white space in.""" start="00:17:38.630" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""Text-slides: This thing here, this title""" start="00:17:44.650" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""is level three heading.""" start="00:17:47.110" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""Figure-slides:""" start="00:17:49.170" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""the same thing are level three headings.""" start="00:17:50.190" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""One of the most powerful things""" start="00:17:52.050" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""is that I can take other files,""" start="00:17:54.010" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""I can take other Org files that have level""" start="00:17:56.230" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""three headings that are slides and those can""" start="00:18:00.150" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""be in some other repository.""" start="00:18:02.790" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""I only need to have one version of""" start="00:18:06.210" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""that slide that I""" start="00:18:08.510" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""can use in multiple courses.""" start="00:18:09.910" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""Just that functionality is""" start="00:18:13.230" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""incredibly helpful for keeping""" start="00:18:17.110" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""track of work from a few years ago.""" start="00:18:19.910" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""All of these I'm going to""" start="00:18:22.810" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""explain in the next few slides.""" start="00:18:24.270" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""The section slides""" start="00:18:25.930" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""correspond to course modules.""" start="00:18:27.710" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""Each of these is going to""" start="00:18:29.910" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""be a few weeks of a course.""" start="00:18:31.130" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""This is a major division of a course.""" start="00:18:32.550" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""I have some macros so that I can decorate""" start="00:18:34.630" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""this with relevant information.""" start="00:18:36.910" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""Then for every subsection,""" start="00:18:41.390" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""level two headline, that""" start="00:18:43.470" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""corresponds to a major""" start="00:18:45.570" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""course topic in the module.""" start="00:18:46.730" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""Then text slides, again,""" start="00:18:48.590" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""level three headlines become""" start="00:18:50.210" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""titles for the slide,""" start="00:18:52.850" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""and level four headlines become text elements.""" start="00:18:53.970" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""Most of my slides look like this.""" start="00:18:58.900" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""They're figures.""" start="00:19:01.680" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""Here's the glycolytic pathway.""" start="00:19:03.140" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""Level three gives you the title.""" start="00:19:06.020" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""It's missing here actually,""" start="00:19:11.420" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""but there's a way you can put in captions.""" start="00:19:14.280" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""This line here just tells""" start="00:19:16.720" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""the LaTeX export backend""" start="00:19:18.960" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""how big you want it and stuff like that.""" start="00:19:21.040" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""Impact slides, they have to go under H1 or H2.""" start="00:19:24.220" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""And they just give you one of these text slides.""" start="00:19:29.140" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""For an entire slide being an image,""" start="00:19:32.450" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""you can use this image-slide macro.""" start="00:19:35.650" video="mainVideo-uni" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Blank slides""" start="00:19:38.330" video="mainVideo-uni" id="subtitle"]]</div>[[!template text="""I often put in blank slides to""" start="00:19:38.330" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""remind myself that this is a time to stop.""" start="00:19:41.130" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""Often there's something for me to""" start="00:19:43.270" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""draw here with the stylus.""" start="00:19:44.790" video="mainVideo-uni" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Animations""" start="00:19:50.050" video="mainVideo-uni" id="subtitle"]]</div>[[!template text="""I often use— it used to be Powerpoint,""" start="00:19:50.050" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""now I use LibreOffice Impress—to make""" start="00:19:53.150" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""multi slide animations like""" start="00:19:56.070" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""the sphere and the donut and the GI tract.""" start="00:19:58.310" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""And this hardware thing""" start="00:20:01.310" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""that I did for you today,""" start="00:20:03.250" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""I export those animations as PDFs.""" start="00:20:05.270" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""Then I can just slurp them up into the slides.""" start="00:20:07.950" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""Just into the slides, not into""" start="00:20:14.470" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""the handouts with this macro.""" start="00:20:16.670" video="mainVideo-uni" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Conclusion""" start="00:20:19.270" video="mainVideo-uni" id="subtitle"]]</div>[[!template text="""I hope that you find this useful.""" start="00:20:19.270" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""I hope you share it with""" start="00:20:21.490" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""other educators that you know.""" start="00:20:22.450" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""Here is the sourcehut repo,""" start="00:20:24.090" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""here's how to get in touch with me.""" start="00:20:27.150" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""I look forward to addressing your questions.""" start="00:20:29.070" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""I want to say thank you""" start="00:20:32.690" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""to Sacha [Chua] and the organizers,""" start="00:20:34.990" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""and to everyone who made this possible and""" start="00:20:36.610" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""to all of you in the community.""" start="00:20:38.450" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""Because as we all know,""" start="00:20:40.690" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""that that's what makes Emacs such a strong""" start="00:20:42.770" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""and powerful package is""" start="00:20:47.430" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""all of the people behind it.""" start="00:20:50.090" video="mainVideo-uni" id="subtitle"]]
+[[!template text="""Thanks everybody.""" start="00:20:51.330" video="mainVideo-uni" id="subtitle"]]
+
+</div><div class="transcript transcript-qanda"><a name="uni-qanda-transcript"></a><h1>Q&A transcript (unedited)</h1>
+
+[[!template text="""[Speaker 0]: You can hear us. Can you perhaps do it for""" start="00:00:00.000" video="qanda-uni" id="subtitle"]]
+[[!template text="""me? Great. The little angels in the""" start="00:00:01.839" video="qanda-uni" id="subtitle"]]
+[[!template text="""background have done it for me.""" start="00:00:03.740" video="qanda-uni" id="subtitle"]]
+[[!template text="""So now finally that everything is ready.""" start="00:00:05.240" video="qanda-uni" id="subtitle"]]
+[[!template text="""Hi James, how are you doing?""" start="00:00:07.759" video="qanda-uni" id="subtitle"]]
+[[!template text="""Good morning. Hello. Well,""" start="00:00:13.780" video="qanda-uni" id="subtitle"]]
+[[!template text="""thank you for your talk and sorry for the""" start="00:00:14.599" video="qanda-uni" id="subtitle"]]
+[[!template text="""little hiccup at the middle we had to pull""" start="00:00:16.320" video="qanda-uni" id="subtitle"]]
+[[!template text="""out a fire with the audio going out in the""" start="00:00:19.240" video="qanda-uni" id="subtitle"]]
+[[!template text="""middle and sorry about this.""" start="00:00:20.900" video="qanda-uni" id="subtitle"]]
+[[!template text="""[Speaker 1]: It's no trouble.""" start="00:00:23.140" video="qanda-uni" id="subtitle"]]
+[[!template text="""[Speaker 0]: So James, you've obviously told us about your""" start="00:00:25.240" video="qanda-uni" id="subtitle"]]
+[[!template text="""very fancy setup with the green screen and""" start="00:00:28.680" video="qanda-uni" id="subtitle"]]
+[[!template text="""I'm sad to see that you haven't put out the""" start="00:00:30.220" video="qanda-uni" id="subtitle"]]
+[[!template text="""green screen for your BBB session right now.""" start="00:00:32.840" video="qanda-uni" id="subtitle"]]
+[[!template text="""Do you have it in the background just for""" start="00:00:35.579" video="qanda-uni" id="subtitle"]]
+[[!template text="""you? Right, okay, it wasn't that far.""" start="00:00:37.060" video="qanda-uni" id="subtitle"]]
+[[!template text="""Great. So I'm just going to ask,""" start="00:00:40.600" video="qanda-uni" id="subtitle"]]
+[[!template text="""so this is the first live Q&A that we have""" start="00:00:44.180" video="qanda-uni" id="subtitle"]]
+[[!template text="""for the session so things might be coming""" start="00:00:47.440" video="qanda-uni" id="subtitle"]]
+[[!template text="""into place so pardon us if we take a little""" start="00:00:49.300" video="qanda-uni" id="subtitle"]]
+[[!template text="""bit of time to put the questions on the""" start="00:00:51.600" video="qanda-uni" id="subtitle"]]
+[[!template text="""screen and all of this.""" start="00:00:54.340" video="qanda-uni" id="subtitle"]]
+[[!template text="""What I'm going to do, I'm just going to load""" start="00:00:56.400" video="qanda-uni" id="subtitle"]]
+[[!template text="""up the pad. I would invite James to also open""" start="00:00:57.940" video="qanda-uni" id="subtitle"]]
+[[!template text="""the pad on his hand. So yeah,""" start="00:01:02.660" video="qanda-uni" id="subtitle"]]
+[[!template text="""I've got people talking in my ears and it's""" start="00:01:04.200" video="qanda-uni" id="subtitle"]]
+[[!template text="""been a while since I've last had this.""" start="00:01:05.740" video="qanda-uni" id="subtitle"]]
+[[!template text="""And okay, so opening the talks right now,""" start="00:01:08.260" video="qanda-uni" id="subtitle"]]
+[[!template text="""opening the pad if I can find it.""" start="00:01:12.100" video="qanda-uni" id="subtitle"]]
+[[!template text="""Open up the pad. Okay.""" start="00:01:14.120" video="qanda-uni" id="subtitle"]]
+[[!template text="""So have you got a pad open on your end,""" start="00:01:19.200" video="qanda-uni" id="subtitle"]]
+[[!template text="""James? So I can read the question.""" start="00:01:21.240" video="qanda-uni" id="subtitle"]]
+[[!template text="""So, okay, great. Opening it on my end as""" start="00:01:23.119" video="qanda-uni" id="subtitle"]]
+[[!template text="""well. What I'm going to do,""" start="00:01:26.740" video="qanda-uni" id="subtitle"]]
+[[!template text="""folks, I see some of you have joined us.""" start="00:01:28.360" video="qanda-uni" id="subtitle"]]
+[[!template text="""I'm going to start doing is first taking""" start="00:01:39.900" video="qanda-uni" id="subtitle"]]
+[[!template text="""questions in the other part because it's a""" start="00:01:42.500" video="qanda-uni" id="subtitle"]]
+[[!template text="""little faster to ask questions like this.""" start="00:01:44.220" video="qanda-uni" id="subtitle"]]
+[[!template text="""And then as soon as we've finished,""" start="00:01:46.520" video="qanda-uni" id="subtitle"]]
+[[!template text="""feel free to unmute yourself and ask your""" start="00:01:48.160" video="qanda-uni" id="subtitle"]]
+[[!template text="""questions. All right so I've got some""" start="00:01:49.920" video="qanda-uni" id="subtitle"]]
+[[!template text="""reactions about OBS being cool and yes both""" start="00:01:54.180" video="qanda-uni" id="subtitle"]]
+[[!template text="""James and I will be able to tell you that""" start="00:01:57.660" video="qanda-uni" id="subtitle"]]
+[[!template text="""it's very cool we do very fancy stuff like""" start="00:01:59.340" video="qanda-uni" id="subtitle"]]
+[[!template text="""when I need to talk to production in the""" start="00:02:04.060" video="qanda-uni" id="subtitle"]]
+[[!template text="""background and all the stuff obviously that""" start="00:02:05.640" video="qanda-uni" id="subtitle"]]
+[[!template text="""James has been able to show you with a green""" start="00:02:07.540" video="qanda-uni" id="subtitle"]]
+[[!template text="""screen. So I don't see a whole lot of""" start="00:02:09.160" video="qanda-uni" id="subtitle"]]
+[[!template text="""questions so far. I see a lot of reactions on""" start="00:02:12.800" video="qanda-uni" id="subtitle"]]
+[[!template text="""publishing lectures book and of a classic""" start="00:02:16.020" video="qanda-uni" id="subtitle"]]
+[[!template text="""example is John Kitchens obviously.""" start="00:02:17.760" video="qanda-uni" id="subtitle"]]
+[[!template text="""Pedagogy first developments.""" start="00:02:20.900" video="qanda-uni" id="subtitle"]]
+[[!template text="""Macros are a cool idea.""" start="00:02:23.360" video="qanda-uni" id="subtitle"]]
+[[!template text="""Okay questions. So how do you overlap""" start="00:02:25.680" video="qanda-uni" id="subtitle"]]
+[[!template text="""yourself with a presentation.""" start="00:02:28.820" video="qanda-uni" id="subtitle"]]
+[[!template text="""It's so cool. It's quite simple.""" start="00:02:30.420" video="qanda-uni" id="subtitle"]]
+[[!template text="""[Speaker 1]: OBS provides filters for every...""" start="00:02:36.420" video="qanda-uni" id="subtitle"]]
+[[!template text="""You can have a separate filter for each video""" start="00:02:40.200" video="qanda-uni" id="subtitle"]]
+[[!template text="""feed and 1 of the filters that's available is""" start="00:02:42.440" video="qanda-uni" id="subtitle"]]
+[[!template text="""chroma key. You just choose a color to make""" start="00:02:44.960" video="qanda-uni" id="subtitle"]]
+[[!template text="""transparent and just make sure that the""" start="00:02:47.840" video="qanda-uni" id="subtitle"]]
+[[!template text="""webcam is at the top of the composition.""" start="00:02:52.020" video="qanda-uni" id="subtitle"]]
+[[!template text="""And the thing that surprised me the most was""" start="00:02:57.180" video="qanda-uni" id="subtitle"]]
+[[!template text="""how quickly my brain was able to mirror""" start="00:03:00.900" video="qanda-uni" id="subtitle"]]
+[[!template text="""everything and control my body from a""" start="00:03:05.420" video="qanda-uni" id="subtitle"]]
+[[!template text="""separate point of view like the way weather""" start="00:03:07.360" video="qanda-uni" id="subtitle"]]
+[[!template text="""broadcasts are done. It took seconds to be""" start="00:03:10.720" video="qanda-uni" id="subtitle"]]
+[[!template text="""able to do that. Well,""" start="00:03:15.300" video="qanda-uni" id="subtitle"]]
+[[!template text="""and now I have years of practice because that""" start="00:03:16.980" video="qanda-uni" id="subtitle"]]
+[[!template text="""set up that you saw that I used to record""" start="00:03:20.320" video="qanda-uni" id="subtitle"]]
+[[!template text="""this video. I used for years during the""" start="00:03:22.740" video="qanda-uni" id="subtitle"]]
+[[!template text="""pandemic for 4 or 5 semesters to because my""" start="00:03:26.960" video="qanda-uni" id="subtitle"]]
+[[!template text="""courses are all have 2,""" start="00:03:32.180" video="qanda-uni" id="subtitle"]]
+[[!template text="""3, 400 students, except for the English""" start="00:03:33.760" video="qanda-uni" id="subtitle"]]
+[[!template text="""class, which has, you know,""" start="00:03:36.440" video="qanda-uni" id="subtitle"]]
+[[!template text="""30 students. And so during the pandemic,""" start="00:03:38.200" video="qanda-uni" id="subtitle"]]
+[[!template text="""and even after lockdowns were no longer""" start="00:03:41.200" video="qanda-uni" id="subtitle"]]
+[[!template text="""mandated, I taught online just because I""" start="00:03:44.040" video="qanda-uni" id="subtitle"]]
+[[!template text="""didn't want to have so many students in the""" start="00:03:46.160" video="qanda-uni" id="subtitle"]]
+[[!template text="""room at the same time.""" start="00:03:48.340" video="qanda-uni" id="subtitle"]]
+[[!template text="""So I've yeah, I'm it. I have a lot of""" start="00:03:49.600" video="qanda-uni" id="subtitle"]]
+[[!template text="""practice doing that.""" start="00:03:53.680" video="qanda-uni" id="subtitle"]]
+[[!template text="""[Speaker 0]: But it pays off because it looks so natural,""" start="00:03:56.120" video="qanda-uni" id="subtitle"]]
+[[!template text="""you know, it feels like it's the same thing""" start="00:03:58.300" video="qanda-uni" id="subtitle"]]
+[[!template text="""with weathercasters, you know,""" start="00:04:00.140" video="qanda-uni" id="subtitle"]]
+[[!template text="""it sounds very it looks very easy to do,""" start="00:04:01.520" video="qanda-uni" id="subtitle"]]
+[[!template text="""but it also takes quite a bit of practice.""" start="00:04:03.940" video="qanda-uni" id="subtitle"]]
+[[!template text="""1 of the things that you also need to""" start="00:04:07.020" video="qanda-uni" id="subtitle"]]
+[[!template text="""remember if you're using a chroma key that""" start="00:04:08.300" video="qanda-uni" id="subtitle"]]
+[[!template text="""James has explained is that you need to have""" start="00:04:10.160" video="qanda-uni" id="subtitle"]]
+[[!template text="""very good lighting, basically for the color""" start="00:04:11.880" video="qanda-uni" id="subtitle"]]
+[[!template text="""to pop out in the background and for your""" start="00:04:14.440" video="qanda-uni" id="subtitle"]]
+[[!template text="""body to be easily highlightable.""" start="00:04:16.320" video="qanda-uni" id="subtitle"]]
+[[!template text="""Okay, were you finished with this question?""" start="00:04:19.399" video="qanda-uni" id="subtitle"]]
+[[!template text="""[Speaker 1]: Yeah, let's take another 1.""" start="00:04:23.240" video="qanda-uni" id="subtitle"]]
+[[!template text="""[Speaker 0]: Sure. So how do you deal with video in Beam?""" start="00:04:25.640" video="qanda-uni" id="subtitle"]]
+[[!template text="""I found it so hard to do that.""" start="00:04:28.700" video="qanda-uni" id="subtitle"]]
+[[!template text="""PPT on the other end is easier to achieve.""" start="00:04:30.720" video="qanda-uni" id="subtitle"]]
+[[!template text="""[Speaker 1]: Yeah, so remember that the slides get""" start="00:04:36.380" video="qanda-uni" id="subtitle"]]
+[[!template text="""produced from Org Mode as PDFs.""" start="00:04:41.480" video="qanda-uni" id="subtitle"]]
+[[!template text="""Well, and in fact, I even before when I was""" start="00:04:47.540" video="qanda-uni" id="subtitle"]]
+[[!template text="""using other software to produce slides,""" start="00:04:50.080" video="qanda-uni" id="subtitle"]]
+[[!template text="""I produced them as PDFs,""" start="00:04:52.580" video="qanda-uni" id="subtitle"]]
+[[!template text="""precisely because I wanted to be able to mark""" start="00:04:54.720" video="qanda-uni" id="subtitle"]]
+[[!template text="""them up on on the screen with the stylus.""" start="00:04:56.840" video="qanda-uni" id="subtitle"]]
+[[!template text="""And so I don't do video in the slides.""" start="00:05:02.100" video="qanda-uni" id="subtitle"]]
+[[!template text="""I use OBS to switch from static slides that I""" start="00:05:06.140" video="qanda-uni" id="subtitle"]]
+[[!template text="""mark up with the stylus over to some kind of""" start="00:05:09.140" video="qanda-uni" id="subtitle"]]
+[[!template text="""video viewer and then back.""" start="00:05:12.840" video="qanda-uni" id="subtitle"]]
+[[!template text="""And again, that's how I can use Firefox.""" start="00:05:15.620" video="qanda-uni" id="subtitle"]]
+[[!template text="""I use OBS to switch between Firefox and video""" start="00:05:17.900" video="qanda-uni" id="subtitle"]]
+[[!template text="""and the Shornell plus plus program where I""" start="00:05:22.360" video="qanda-uni" id="subtitle"]]
+[[!template text="""can mark up slides. So those functionalities""" start="00:05:26.380" video="qanda-uni" id="subtitle"]]
+[[!template text="""are that's why I use different software and""" start="00:05:31.160" video="qanda-uni" id="subtitle"]]
+[[!template text="""pull it all together with OBS so that I can""" start="00:05:35.140" video="qanda-uni" id="subtitle"]]
+[[!template text="""have lots of functional flexibility.""" start="00:05:37.440" video="qanda-uni" id="subtitle"]]
+[[!template text="""[Speaker 0]: Great. Do you ever use things like""" start="00:05:44.660" video="qanda-uni" id="subtitle"]]
+[[!template text="""org-present and stay for the PowerPoint""" start="00:05:47.700" video="qanda-uni" id="subtitle"]]
+[[!template text="""slides? I'm not sure exactly how to read this""" start="00:05:51.060" video="qanda-uni" id="subtitle"]]
+[[!template text="""particular question but at least we can focus""" start="00:05:53.200" video="qanda-uni" id="subtitle"]]
+[[!template text="""on org-present. Are you familiar with what it""" start="00:05:54.860" video="qanda-uni" id="subtitle"]]
+[[!template text="""is?""" start="00:05:56.840" video="qanda-uni" id="subtitle"]]
+[[!template text="""[Speaker 1]: I have played around with org-present and""" start="00:05:58.080" video="qanda-uni" id="subtitle"]]
+[[!template text="""again I guess you could use org-present to""" start="00:06:02.380" video="qanda-uni" id="subtitle"]]
+[[!template text="""show images and to show headings as slides.""" start="00:06:07.640" video="qanda-uni" id="subtitle"]]
+[[!template text="""But again, because I'm it's such a crucial""" start="00:06:13.140" video="qanda-uni" id="subtitle"]]
+[[!template text="""functionality to be able to mark them up with""" start="00:06:18.100" video="qanda-uni" id="subtitle"]]
+[[!template text="""stylus. I didn't really show this very much,""" start="00:06:22.120" video="qanda-uni" id="subtitle"]]
+[[!template text="""but I also highlight things the way I would""" start="00:06:25.760" video="qanda-uni" id="subtitle"]]
+[[!template text="""highlight using a laser pointer on the""" start="00:06:27.780" video="qanda-uni" id="subtitle"]]
+[[!template text="""screen. And again, I don't see Emacs being""" start="00:06:30.080" video="qanda-uni" id="subtitle"]]
+[[!template text="""able to do that for another couple of""" start="00:06:36.300" video="qanda-uni" id="subtitle"]]
+[[!template text="""generations. So really the only thing I use""" start="00:06:38.560" video="qanda-uni" id="subtitle"]]
+[[!template text="""Emacs for during presentations is to narrow""" start="00:06:42.800" video="qanda-uni" id="subtitle"]]
+[[!template text="""headings that we can focus on particular text""" start="00:06:48.940" video="qanda-uni" id="subtitle"]]
+[[!template text="""excerpts.""" start="00:06:52.600" video="qanda-uni" id="subtitle"]]
+[[!template text="""[Speaker 0]: Right. Yeah. A lot of our presentation at""" start="00:06:55.680" video="qanda-uni" id="subtitle"]]
+[[!template text="""EmacsConf are usually,""" start="00:06:59.200" video="qanda-uni" id="subtitle"]]
+[[!template text="""especially the Org Mode ones are done with""" start="00:07:00.420" video="qanda-uni" id="subtitle"]]
+[[!template text="""OrgPresent. And. Sorry,""" start="00:07:02.260" video="qanda-uni" id="subtitle"]]
+[[!template text="""I had again someone talk to me in a year.""" start="00:07:06.740" video="qanda-uni" id="subtitle"]]
+[[!template text="""You know, the problem with EmacsConf is that""" start="00:07:09.240" video="qanda-uni" id="subtitle"]]
+[[!template text="""every year, you know, you have to relearn a""" start="00:07:11.680" video="qanda-uni" id="subtitle"]]
+[[!template text="""lot of skills. And by the time we finished by""" start="00:07:13.440" video="qanda-uni" id="subtitle"]]
+[[!template text="""Sunday evening we are masters of it and then""" start="00:07:16.780" video="qanda-uni" id="subtitle"]]
+[[!template text="""we forget everything by the time the next""" start="00:07:19.900" video="qanda-uni" id="subtitle"]]
+[[!template text="""year comes around. What I was going to say is""" start="00:07:21.820" video="qanda-uni" id="subtitle"]]
+[[!template text="""that org-present is often used by people""" start="00:07:24.280" video="qanda-uni" id="subtitle"]]
+[[!template text="""inside Emacs conf presenting about org-mode""" start="00:07:27.440" video="qanda-uni" id="subtitle"]]
+[[!template text="""but yeah whenever you need to do something a""" start="00:07:31.100" video="qanda-uni" id="subtitle"]]
+[[!template text="""little more visual, it gets a little more""" start="00:07:32.800" video="qanda-uni" id="subtitle"]]
+[[!template text="""complicated. Some people have tried to do""" start="00:07:34.340" video="qanda-uni" id="subtitle"]]
+[[!template text="""fancy stuff with SVG, which is probably the""" start="00:07:36.540" video="qanda-uni" id="subtitle"]]
+[[!template text="""path forward for this type of stuff.""" start="00:07:39.200" video="qanda-uni" id="subtitle"]]
+[[!template text="""But yeah, if you need to draw,""" start="00:07:41.400" video="qanda-uni" id="subtitle"]]
+[[!template text="""if you need to highlight,""" start="00:07:43.380" video="qanda-uni" id="subtitle"]]
+[[!template text="""it is pretty complicated.""" start="00:07:44.760" video="qanda-uni" id="subtitle"]]
+[[!template text="""Perhaps something that you might want to be""" start="00:07:46.820" video="qanda-uni" id="subtitle"]]
+[[!template text="""interested, James, in checking out is PDF""" start="00:07:48.340" video="qanda-uni" id="subtitle"]]
+[[!template text="""tools, which is a way to open up a PDF in""" start="00:07:50.940" video="qanda-uni" id="subtitle"]]
+[[!template text="""Emacs. And this allows you to have basic PDF""" start="00:07:56.040" video="qanda-uni" id="subtitle"]]
+[[!template text="""annotations, like putting a little bit of a""" start="00:07:59.440" video="qanda-uni" id="subtitle"]]
+[[!template text="""Nikon on it. Perhaps you've already played""" start="00:08:01.560" video="qanda-uni" id="subtitle"]]
+[[!template text="""with it.""" start="00:08:04.160" video="qanda-uni" id="subtitle"]]
+[[!template text="""[Speaker 1]: I have used that. PDF tools is an incredible""" start="00:08:06.260" video="qanda-uni" id="subtitle"]]
+[[!template text="""package but until it allows me to make a mark""" start="00:08:10.080" video="qanda-uni" id="subtitle"]]
+[[!template text="""on the screen that shows up in a video""" start="00:08:14.560" video="qanda-uni" id="subtitle"]]
+[[!template text="""compositor. It's not going to replace""" start="00:08:18.280" video="qanda-uni" id="subtitle"]]
+[[!template text="""Shortenel.""" start="00:08:21.420" video="qanda-uni" id="subtitle"]]
+[[!template text="""[Speaker 0]: Definitely. All right.""" start="00:08:23.240" video="qanda-uni" id="subtitle"]]
+[[!template text="""Moving on to the next question.""" start="00:08:24.600" video="qanda-uni" id="subtitle"]]
+[[!template text="""Is the triple-accolade syntax an Org Mode""" start="00:08:26.400" video="qanda-uni" id="subtitle"]]
+[[!template text="""core feature that I missed so far or did you""" start="00:08:28.900" video="qanda-uni" id="subtitle"]]
+[[!template text="""program that and thank you for the great""" start="00:08:31.360" video="qanda-uni" id="subtitle"]]
+[[!template text="""talk.""" start="00:08:33.120" video="qanda-uni" id="subtitle"]]
+[[!template text="""[Speaker 1]: Thank you very much. No,""" start="00:08:36.659" video="qanda-uni" id="subtitle"]]
+[[!template text="""it's just part of all of the export backends.""" start="00:08:38.360" video="qanda-uni" id="subtitle"]]
+[[!template text="""Actually, I think the way it works is it""" start="00:08:43.299" video="qanda-uni" id="subtitle"]]
+[[!template text="""precedes all of the export backends.""" start="00:08:45.060" video="qanda-uni" id="subtitle"]]
+[[!template text="""When you export, the first thing that happens""" start="00:08:47.040" video="qanda-uni" id="subtitle"]]
+[[!template text="""is expansion of macros.""" start="00:08:50.280" video="qanda-uni" id="subtitle"]]
+[[!template text="""And that's a built-in org mode feature.""" start="00:08:52.720" video="qanda-uni" id="subtitle"]]
+[[!template text="""It's definitely beyond my Emacs Lisp powers""" start="00:08:56.640" video="qanda-uni" id="subtitle"]]
+[[!template text="""to be able to have made something that""" start="00:08:59.690" video="qanda-uni" id="subtitle"]]
+[[!template text="""powerful. That's right.""" start="00:09:01.360" video="qanda-uni" id="subtitle"]]
+[[!template text="""I have come a long way.""" start="00:09:07.020" video="qanda-uni" id="subtitle"]]
+[[!template text="""[Speaker 0]: For now. You know, we always,""" start="00:09:02.640" video="qanda-uni" id="subtitle"]]
+[[!template text="""you know, most of the people who show up to""" start="00:09:11.720" video="qanda-uni" id="subtitle"]]
+[[!template text="""Max Conf. Especially talking about stuff that""" start="00:09:13.380" video="qanda-uni" id="subtitle"]]
+[[!template text="""has to do with presentations or what they do""" start="00:09:15.480" video="qanda-uni" id="subtitle"]]
+[[!template text="""in academia. You know,""" start="00:09:18.260" video="qanda-uni" id="subtitle"]]
+[[!template text="""they always say, oh, but,""" start="00:09:19.160" video="qanda-uni" id="subtitle"]]
+[[!template text="""you know, I couldn't have done all this,""" start="00:09:20.600" video="qanda-uni" id="subtitle"]]
+[[!template text="""you know, it's just far away.""" start="00:09:22.589" video="qanda-uni" id="subtitle"]]
+[[!template text="""And then they come back 1 year or 2 years""" start="00:09:24.260" video="qanda-uni" id="subtitle"]]
+[[!template text="""later and then, oh, I've made my entire""" start="00:09:26.320" video="qanda-uni" id="subtitle"]]
+[[!template text="""library for presentation and stuff like this.""" start="00:09:27.980" video="qanda-uni" id="subtitle"]]
+[[!template text="""So Be hopeful about what the future holds for""" start="00:09:29.680" video="qanda-uni" id="subtitle"]]
+[[!template text="""you in terms of coming up with crazy new""" start="00:09:32.980" video="qanda-uni" id="subtitle"]]
+[[!template text="""features for the entire ecosystem.""" start="00:09:34.960" video="qanda-uni" id="subtitle"]]
+[[!template text="""[Speaker 1]: Well, let me tell you,""" start="00:09:37.740" video="qanda-uni" id="subtitle"]]
+[[!template text="""since the pandemic, I have written,""" start="00:09:39.560" video="qanda-uni" id="subtitle"]]
+[[!template text="""I wrote my first major mode.""" start="00:09:42.980" video="qanda-uni" id="subtitle"]]
+[[!template text="""It's trivial, but it provides functionality""" start="00:09:44.760" video="qanda-uni" id="subtitle"]]
+[[!template text="""that is very useful to me and it's it's going""" start="00:09:47.220" video="qanda-uni" id="subtitle"]]
+[[!template text="""to sound like I'm just trying to butter""" start="00:09:52.660" video="qanda-uni" id="subtitle"]]
+[[!template text="""everyone up but seeing a lot of the names in""" start="00:09:54.380" video="qanda-uni" id="subtitle"]]
+[[!template text="""the IRC channel people who have taught me so""" start="00:09:57.260" video="qanda-uni" id="subtitle"]]
+[[!template text="""much on their YouTube channels and in their""" start="00:10:00.820" video="qanda-uni" id="subtitle"]]
+[[!template text="""blog posts and on Reddit and on Mastodon.""" start="00:10:05.220" video="qanda-uni" id="subtitle"]]
+[[!template text="""Without many of the people who are here today""" start="00:10:09.600" video="qanda-uni" id="subtitle"]]
+[[!template text="""watching my talk, it's very fun to have""" start="00:10:12.620" video="qanda-uni" id="subtitle"]]
+[[!template text="""people who have helped me learn so much about""" start="00:10:15.820" video="qanda-uni" id="subtitle"]]
+[[!template text="""Emacs. So thanks to all of you.""" start="00:10:18.160" video="qanda-uni" id="subtitle"]]
+[[!template text="""[Speaker 0]: Well, and yeah, and now you're becoming part""" start="00:10:21.580" video="qanda-uni" id="subtitle"]]
+[[!template text="""of this crew of people inspiring others to do""" start="00:10:24.140" video="qanda-uni" id="subtitle"]]
+[[!template text="""very much the same. So thank you for joining""" start="00:10:27.380" video="qanda-uni" id="subtitle"]]
+[[!template text="""[Speaker 1]: Thank you very much.""" start="00:10:31.460" video="qanda-uni" id="subtitle"]]
+[[!template text="""[Speaker 0]: the crew. Great. Moving on to the 2 last""" start="00:10:29.160" video="qanda-uni" id="subtitle"]]
+[[!template text="""questions and then we'll open up the mic to""" start="00:10:35.020" video="qanda-uni" id="subtitle"]]
+[[!template text="""other people on Big Blue Button.""" start="00:10:36.660" video="qanda-uni" id="subtitle"]]
+[[!template text="""What kind of comparative feedback are""" start="00:10:39.160" video="qanda-uni" id="subtitle"]]
+[[!template text="""students giving you regarding your approach?""" start="00:10:40.900" video="qanda-uni" id="subtitle"]]
+[[!template text="""[Speaker 1]: Oh, my gosh. Students were ready to during""" start="00:10:44.960" video="qanda-uni" id="subtitle"]]
+[[!template text="""the pandemic especially when most of the""" start="00:10:48.340" video="qanda-uni" id="subtitle"]]
+[[!template text="""courses were just being taught over zoom by""" start="00:10:53.040" video="qanda-uni" id="subtitle"]]
+[[!template text="""people sharing their screen.""" start="00:10:55.880" video="qanda-uni" id="subtitle"]]
+[[!template text="""[Speaker 0]: Just a second. Sorry. Sorry for the""" start="00:10:57.340" video="qanda-uni" id="subtitle"]]
+[[!template text="""interruption. Very rude interruption.""" start="00:10:58.660" video="qanda-uni" id="subtitle"]]
+[[!template text="""We've got the intro for the next talk playing""" start="00:10:59.800" video="qanda-uni" id="subtitle"]]
+[[!template text="""and I'm not sure what's going on.""" start="00:11:01.220" video="qanda-uni" id="subtitle"]]
+[[!template text="""Give me just a second.""" start="00:11:02.520" video="qanda-uni" id="subtitle"]]
+[[!template text="""Sasha.""" start="00:11:04.440" video="qanda-uni" id="subtitle"]]
+[[!template text="""[Speaker 1]: Okay.""" start="00:11:05.060" video="qanda-uni" id="subtitle"]]
+[[!template text="""Yeah, I think it's started.""" start="00:11:19.320" video="qanda-uni" id="subtitle"]]
+[[!template text="""Okay so yeah I think it's not a""" start="00:11:26.716" video="qanda-uni" id="subtitle"]]
+[[!template text="""[Speaker 0]: sure 1 I got the times wrong apparently""" start="00:11:34.860" video="qanda-uni" id="subtitle"]]
+[[!template text="""because of the little delay we had getting""" start="00:11:37.760" video="qanda-uni" id="subtitle"]]
+[[!template text="""the audio fixed up. The good news is that""" start="00:11:40.240" video="qanda-uni" id="subtitle"]]
+[[!template text="""we're still recording the talk right now and""" start="00:11:43.740" video="qanda-uni" id="subtitle"]]
+[[!template text="""we still have James around.""" start="00:11:45.880" video="qanda-uni" id="subtitle"]]
+[[!template text="""Obviously James you're no longer on being""" start="00:11:47.180" video="qanda-uni" id="subtitle"]]
+[[!template text="""broadcast on General but if you want to keep""" start="00:11:49.740" video="qanda-uni" id="subtitle"]]
+[[!template text="""answering questions or if you want to anyone""" start="00:11:53.040" video="qanda-uni" id="subtitle"]]
+[[!template text="""in the room right now wants to ask you""" start="00:11:55.800" video="qanda-uni" id="subtitle"]]
+[[!template text="""questions feel free to do so.""" start="00:11:57.340" video="qanda-uni" id="subtitle"]]
+[[!template text="""I'm going to need to hop off because I need""" start="00:11:59.440" video="qanda-uni" id="subtitle"]]
+[[!template text="""to get other things ready for the next talks""" start="00:12:01.060" video="qanda-uni" id="subtitle"]]
+[[!template text="""[Speaker 1]: But James, thank you so much.""" start="00:12:04.280" video="qanda-uni" id="subtitle"]]
+[[!template text="""[Speaker 0]: sadly. Right and so sorry I'm a little tense""" start="00:12:03.080" video="qanda-uni" id="subtitle"]]
+[[!template text="""obviously because I was not expecting this to""" start="00:12:10.020" video="qanda-uni" id="subtitle"]]
+[[!template text="""happen and that led to a very abrupt end to""" start="00:12:12.660" video="qanda-uni" id="subtitle"]]
+[[!template text="""this discussion but people afterwards on""" start="00:12:15.960" video="qanda-uni" id="subtitle"]]
+[[!template text="""emacsmo.org slash 2023 slash talks will be""" start="00:12:18.480" video="qanda-uni" id="subtitle"]]
+[[!template text="""able to find all the content here.""" start="00:12:21.980" video="qanda-uni" id="subtitle"]]
+[[!template text="""So I'll have to leave now.""" start="00:12:24.020" video="qanda-uni" id="subtitle"]]
+[[!template text="""Thank you so much James for doing the""" start="00:12:25.840" video="qanda-uni" id="subtitle"]]
+[[!template text="""difficult task of opening up EmacsConf and""" start="00:12:28.020" video="qanda-uni" id="subtitle"]]
+[[!template text="""I'll probably see you later.""" start="00:12:30.060" video="qanda-uni" id="subtitle"]]
+[[!template text="""[Speaker 1]: Thank you, Leo. Bye bye.""" start="00:12:32.780" video="qanda-uni" id="subtitle"]]
+[[!template text="""[Speaker 2]: On your journal program.""" start="00:12:52.020" video="qanda-uni" id="subtitle"]]
+[[!template text="""Yes. You are using the tablet as a monitor,""" start="00:12:58.360" video="qanda-uni" id="subtitle"]]
+[[!template text="""right? Touch screen monitor with that?""" start="00:13:03.520" video="qanda-uni" id="subtitle"]]
+[[!template text="""[Speaker 1]: That's exactly right. So it's a tablet so you""" start="00:13:06.480" video="qanda-uni" id="subtitle"]]
+[[!template text="""know I can. It has a touch screen and so.""" start="00:13:08.800" video="qanda-uni" id="subtitle"]]
+[[!template text="""So basically the functionality that that""" start="00:13:13.080" video="qanda-uni" id="subtitle"]]
+[[!template text="""program provides is to be able to just mark""" start="00:13:15.580" video="qanda-uni" id="subtitle"]]
+[[!template text="""up PDFs with a stylus,""" start="00:13:20.580" video="qanda-uni" id="subtitle"]]
+[[!template text="""you know, in the way that you would use any""" start="00:13:23.360" video="qanda-uni" id="subtitle"]]
+[[!template text="""other tablet. And to be able to take that""" start="00:13:25.280" video="qanda-uni" id="subtitle"]]
+[[!template text="""video signal and put it into another machine.""" start="00:13:30.600" video="qanda-uni" id="subtitle"]]
+[[!template text="""That was the that was the key.""" start="00:13:33.840" video="qanda-uni" id="subtitle"]]
+[[!template text="""That's the killer app.""" start="00:13:36.100" video="qanda-uni" id="subtitle"]]
+[[!template text="""[Speaker 2]: I've thought about grabbing 1 for the purpose""" start="00:13:39.340" video="qanda-uni" id="subtitle"]]
+[[!template text="""of like changing my laptop into a tablet to""" start="00:13:41.940" video="qanda-uni" id="subtitle"]]
+[[!template text="""read manga, browse the web and kind of""" start="00:13:45.460" video="qanda-uni" id="subtitle"]]
+[[!template text="""curious if it works well like as a wireless""" start="00:13:49.640" video="qanda-uni" id="subtitle"]]
+[[!template text="""monitor with a tablet or how well it like you""" start="00:13:52.300" video="qanda-uni" id="subtitle"]]
+[[!template text="""can use Emacs with it in a tablet mode or""" start="00:13:57.440" video="qanda-uni" id="subtitle"]]
+[[!template text="""were you just""" start="00:14:02.080" video="qanda-uni" id="subtitle"]]
+[[!template text="""[Speaker 1]: or you just use the tablet that I use is this""" start="00:14:03.820" video="qanda-uni" id="subtitle"]]
+[[!template text="""is it it's just a Microsoft Surface and so it""" start="00:14:10.800" video="qanda-uni" id="subtitle"]]
+[[!template text="""comes with a keyboard so you can take the""" start="00:14:14.340" video="qanda-uni" id="subtitle"]]
+[[!template text="""keyboard off. Yeah, but I use it.""" start="00:14:17.780" video="qanda-uni" id="subtitle"]]
+[[!template text="""I use it with the keyboard as well.""" start="00:14:20.940" video="qanda-uni" id="subtitle"]]
+[[!template text="""And I just.""" start="00:14:24.560" video="qanda-uni" id="subtitle"]]
+[[!template text="""[Speaker 2]: You're cutting off right now""" start="00:14:30.060" video="qanda-uni" id="subtitle"]]
+[[!template text="""[Speaker 1]: Audio Your audio is cutting off right now.""" start="00:14:53.880" video="qanda-uni" id="subtitle"]]
+[[!template text="""I bumped the mute button on the mic.""" start="00:15:32.680" video="qanda-uni" id="subtitle"]]
+[[!template text="""Yeah. So again, this is,""" start="00:15:36.820" video="qanda-uni" id="subtitle"]]
+[[!template text="""[Speaker 2]: is the 16 mute buttons you use.""" start="00:15:38.500" video="qanda-uni" id="subtitle"]]
+[[!template text="""[Speaker 1]: this It's just the surface pro 3 that I got""" start="00:15:38.300" video="qanda-uni" id="subtitle"]]
+[[!template text="""used and it runs Emacs.""" start="00:15:45.660" video="qanda-uni" id="subtitle"]]
+[[!template text="""I mean it runs. You know Linux really well.""" start="00:15:49.280" video="qanda-uni" id="subtitle"]]
+[[!template text="""And the trouble is that the hard drive you""" start="00:15:54.940" video="qanda-uni" id="subtitle"]]
+[[!template text="""know the SSE drive is small and the RAM is""" start="00:15:59.720" video="qanda-uni" id="subtitle"]]
+[[!template text="""small, but it works for the purposes.""" start="00:16:02.920" video="qanda-uni" id="subtitle"]]
+[[!template text="""Basically, if I had a couple thousand""" start="00:16:07.580" video="qanda-uni" id="subtitle"]]
+[[!template text="""dollars, I could probably buy a touchscreen""" start="00:16:10.080" video="qanda-uni" id="subtitle"]]
+[[!template text="""machine where I could run everything on it""" start="00:16:14.280" video="qanda-uni" id="subtitle"]]
+[[!template text="""and do the streaming and do the video capture""" start="00:16:17.680" video="qanda-uni" id="subtitle"]]
+[[!template text="""and do the PDF markup.""" start="00:16:21.380" video="qanda-uni" id="subtitle"]]
+[[!template text="""But since both of these are so,""" start="00:16:26.020" video="qanda-uni" id="subtitle"]]
+[[!template text="""the hardware that I use is so old and cheap""" start="00:16:28.860" video="qanda-uni" id="subtitle"]]
+[[!template text="""and weak I have to split it across 2""" start="00:16:31.980" video="qanda-uni" id="subtitle"]]
+[[!template text="""machines.""" start="00:16:33.800" video="qanda-uni" id="subtitle"]]
+[[!template text="""[Speaker 2]: There's also a beauty in making the stuff""" start="00:16:35.020" video="qanda-uni" id="subtitle"]]
+[[!template text="""having specific purposes for specific things""" start="00:16:37.660" video="qanda-uni" id="subtitle"]]
+[[!template text="""where it's just not. Yeah it's like I don't""" start="00:16:40.080" video="qanda-uni" id="subtitle"]]
+[[!template text="""want a smart TV that plays Netflix I want a""" start="00:16:46.020" video="qanda-uni" id="subtitle"]]
+[[!template text="""smart TV that has all the smarts that I turn""" start="00:16:50.140" video="qanda-uni" id="subtitle"]]
+[[!template text="""my smart TV into a TV monitor I don't want to""" start="00:16:53.860" video="qanda-uni" id="subtitle"]]
+[[!template text="""yeah""" start="00:16:58.780" video="qanda-uni" id="subtitle"]]
+[[!template text="""[Speaker 1]: I totally feel that ethic I totally I totally""" start="00:17:02.200" video="qanda-uni" id="subtitle"]]
+[[!template text="""feel that ethic. Oh, on""" start="00:17:08.659" video="qanda-uni" id="subtitle"]]
+[[!template text="""[Speaker 2]: the some other things like if you want you to""" start="00:17:11.760" video="qanda-uni" id="subtitle"]]
+[[!template text="""do highlighting in an org mode document.""" start="00:17:15.300" video="qanda-uni" id="subtitle"]]
+[[!template text="""You can use org web tools.""" start="00:17:17.300" video="qanda-uni" id="subtitle"]]
+[[!template text="""I wrote this in the notes,""" start="00:17:19.060" video="qanda-uni" id="subtitle"]]
+[[!template text="""but you can use org web tools to download a""" start="00:17:20.020" video="qanda-uni" id="subtitle"]]
+[[!template text="""web page and then you can use org remark to""" start="00:17:21.940" video="qanda-uni" id="subtitle"]]
+[[!template text="""start highlighting in the org mode web page""" start="00:17:25.400" video="qanda-uni" id="subtitle"]]
+[[!template text="""and then because an org mode document now you""" start="00:17:28.860" video="qanda-uni" id="subtitle"]]
+[[!template text="""can just edit it directly.""" start="00:17:30.860" video="qanda-uni" id="subtitle"]]
+[[!template text="""If you want other people to join in on an""" start="00:17:35.600" video="qanda-uni" id="subtitle"]]
+[[!template text="""Emacs session you could use a package like""" start="00:17:38.240" video="qanda-uni" id="subtitle"]]
+[[!template text="""what's it called? CRDT.EL""" start="00:17:40.680" video="qanda-uni" id="subtitle"]]
+[[!template text="""that will allow 2 people with 2 different""" start="00:17:47.020" video="qanda-uni" id="subtitle"]]
+[[!template text="""Emacs configurations to edit the same buffer.""" start="00:17:50.160" video="qanda-uni" id="subtitle"]]
+[[!template text="""And you have a host that can host a buffer""" start="00:17:54.140" video="qanda-uni" id="subtitle"]]
+[[!template text="""too. It works with, and they have 1 optional""" start="00:17:58.980" video="qanda-uni" id="subtitle"]]
+[[!template text="""extension for org mode that will synchronize""" start="00:18:06.000" video="qanda-uni" id="subtitle"]]
+[[!template text="""the folding of the org drawers.""" start="00:18:08.680" video="qanda-uni" id="subtitle"]]
+[[!template text="""[Speaker 1]: Interesting. I will look into that.""" start="00:18:12.320" video="qanda-uni" id="subtitle"]]
+[[!template text="""Like""" start="00:18:15.060" video="qanda-uni" id="subtitle"]]
+[[!template text="""[Speaker 2]: having I don't like if you want students like""" start="00:18:19.660" video="qanda-uni" id="subtitle"]]
+[[!template text="""you have each highlight line mode these are""" start="00:18:22.720" video="qanda-uni" id="subtitle"]]
+[[!template text="""just some ideas like you can have like""" start="00:18:25.740" video="qanda-uni" id="subtitle"]]
+[[!template text="""highlight line mode so people can easily see""" start="00:18:27.620" video="qanda-uni" id="subtitle"]]
+[[!template text="""which line you're on cursor tracking and then""" start="00:18:30.060" video="qanda-uni" id="subtitle"]]
+[[!template text="""you can have other people join in students or""" start="00:18:35.040" video="qanda-uni" id="subtitle"]]
+[[!template text="""[Speaker 1]: yeah that's just a possible idea.""" start="00:18:43.180" video="qanda-uni" id="subtitle"]]
+[[!template text="""Is there anyone else in the in the big blue""" start="00:18:45.300" video="qanda-uni" id="subtitle"]]
+[[!template text="""button room who has a question?""" start="00:18:49.680" video="qanda-uni" id="subtitle"]]
+[[!template text="""All right, I'm going to go over to the pad""" start="00:19:01.360" video="qanda-uni" id="subtitle"]]
+[[!template text="""and see if there are any pending questions I""" start="00:19:03.280" video="qanda-uni" id="subtitle"]]
+[[!template text="""can address. Thanks, Plasma Strike.""" start="00:19:05.280" video="qanda-uni" id="subtitle"]]
+[[!template text="""[Speaker 3]: Yep. Which could be PDF,""" start="00:19:27.500" video="qanda-uni" id="subtitle"]]
+[[!template text="""could be Markdown, could be OpenOffice,""" start="00:19:33.340" video="qanda-uni" id="subtitle"]]
+[[!template text="""could be a notebook format.""" start="00:19:38.560" video="qanda-uni" id="subtitle"]]
+[[!template text="""This methodology was conceived by Donald""" start="00:19:40.960" video="qanda-uni" id="subtitle"]]
+[[!template text="""Knuth in 1984. The main purpose of literal""" start="00:19:43.340" video="qanda-uni" id="subtitle"]]
+[[!template text="""programming is not only to make code or""" start="00:19:51.980" video="qanda-uni" id="subtitle"]]
+[[!template text="""documentation or output more manageable,""" start="00:19:54.700" video="qanda-uni" id="subtitle"]]
+[[!template text="""but to allow humans to create a data story to""" start="00:19:57.800" video="qanda-uni" id="subtitle"]]
+[[!template text="""be used from a single source.""" start="00:20:01.240" video="qanda-uni" id="subtitle"]]
+[[!template text="""What you see on the slide on the left-hand""" start="00:20:04.540" video="qanda-uni" id="subtitle"]]
+[[!template text="""side is the story and code inside an org-mod""" start="00:20:06.300" video="qanda-uni" id="subtitle"]]
+[[!template text="""file. The file starts with some""" start="00:20:09.400" video="qanda-uni" id="subtitle"]]
+[[!template text="""documentation, then you write back down this""" start="00:20:14.440" video="qanda-uni" id="subtitle"]]
+[[!template text="""code, and at the bottom you see the output""" start="00:20:18.420" video="qanda-uni" id="subtitle"]]
+[[!template text="""file, which is not shown in the slide itself.""" start="00:20:22.060" video="qanda-uni" id="subtitle"]]
+[[!template text="""In the middle you have the source code,""" start="00:20:26.800" video="qanda-uni" id="subtitle"]]
+[[!template text="""which is the result of tangling or opening a""" start="00:20:28.440" video="qanda-uni" id="subtitle"]]
+[[!template text="""buffer inside offload.""" start="00:20:33.980" video="qanda-uni" id="subtitle"]]
+[[!template text="""On the very right hand side we have a PDF,""" start="00:20:37.660" video="qanda-uni" id="subtitle"]]
+[[!template text="""actually this HTML, very same file that you""" start="00:20:42.580" video="qanda-uni" id="subtitle"]]
+[[!template text="""see in memory language.""" start="00:20:47.740" video="qanda-uni" id="subtitle"]]
+[[!template text="""So the humans look at some of this code and""" start="00:20:49.600" video="qanda-uni" id="subtitle"]]
+[[!template text="""the machines look at other parts of the code.""" start="00:20:53.080" video="qanda-uni" id="subtitle"]]
+[[!template text="""I actually did all my programming in the""" start="00:20:56.260" video="qanda-uni" id="subtitle"]]
+[[!template text="""literary world even in the early 1990s,""" start="00:20:58.320" video="qanda-uni" id="subtitle"]]
+[[!template text="""not using Org Mode, which didn't exist yet,""" start="00:21:00.920" video="qanda-uni" id="subtitle"]]
+[[!template text="""but using Norman Ramsey's Norep preprocessor.""" start="00:21:03.040" video="qanda-uni" id="subtitle"]]
+[[!template text="""They still use it inside the Org-Mode today.""" start="00:21:07.240" video="qanda-uni" id="subtitle"]]
+[[!template text="""This preprocessor, Norep,""" start="00:21:10.400" video="qanda-uni" id="subtitle"]]
+[[!template text="""allows you to tangle code from within an""" start="00:21:11.920" video="qanda-uni" id="subtitle"]]
+[[!template text="""Org-Mode file that is self-standing file,""" start="00:21:14.240" video="qanda-uni" id="subtitle"]]
+[[!template text="""much like Org-mode's edit functions,""" start="00:21:16.360" video="qanda-uni" id="subtitle"]]
+[[!template text="""which export code blocks into buffers in""" start="00:21:19.540" video="qanda-uni" id="subtitle"]]
+[[!template text="""whatever language the code blocks.""" start="00:21:21.900" video="qanda-uni" id="subtitle"]]
+[[!template text="""In data science, these interactive notebooks,""" start="00:21:25.940" video="qanda-uni" id="subtitle"]]
+[[!template text="""in 1 of the interpreted languages like Julia,""" start="00:21:29.640" video="qanda-uni" id="subtitle"]]
+[[!template text="""Python, or R dominating?""" start="00:21:32.776" video="qanda-uni" id="subtitle"]]
+[[!template text="""The basic technology is that of Jupyter""" start="00:21:34.680" video="qanda-uni" id="subtitle"]]
+[[!template text="""notebooks, which take their name from Julia,""" start="00:21:37.420" video="qanda-uni" id="subtitle"]]
+[[!template text="""Python, and R. And these notebooks use a""" start="00:21:39.860" video="qanda-uni" id="subtitle"]]
+[[!template text="""spruce-dark shell, for example,""" start="00:21:43.040" video="qanda-uni" id="subtitle"]]
+[[!template text="""IPython, and an option to add SQL cells.""" start="00:21:44.920" video="qanda-uni" id="subtitle"]]
+[[!template text="""All good inside Emacs has a large number of""" start="00:21:50.460" video="qanda-uni" id="subtitle"]]
+[[!template text="""advantages. Some of them are listed here over""" start="00:21:53.340" video="qanda-uni" id="subtitle"]]
+[[!template text="""these notebooks. 2 of these stand out""" start="00:21:56.800" video="qanda-uni" id="subtitle"]]
+[[!template text="""particularly. Different languages can be""" start="00:21:59.180" video="qanda-uni" id="subtitle"]]
+[[!template text="""mixed as shown in the image.""" start="00:22:02.860" video="qanda-uni" id="subtitle"]]
+[[!template text="""While in Jupyter notebooks,""" start="00:22:06.460" video="qanda-uni" id="subtitle"]]
+[[!template text="""a notebook is limited to running a kernel in""" start="00:22:07.920" video="qanda-uni" id="subtitle"]]
+[[!template text="""1 language only. The content of the notebook,""" start="00:22:10.900" video="qanda-uni" id="subtitle"]]
+[[!template text="""its document code or output part can be""" start="00:22:14.440" video="qanda-uni" id="subtitle"]]
+[[!template text="""exported in a variety of forms.""" start="00:22:16.980" video="qanda-uni" id="subtitle"]]
+
+</div>Questions or comments? Please e-mail [emacsconf-org-private@gnu.org](mailto:emacsconf-org-private@gnu.org?subject=Comment%20for%20EmacsConf%202023%20uni%3A%20Authoring%20and%20presenting%20university%20courses%20with%20Emacs%20and%20a%20full%20libre%20software%20stack)
<!-- End of emacsconf-publish-after-page -->
diff --git a/2023/info/uni-before.md b/2023/info/uni-before.md
index 263d72d6..2f625597 100644
--- a/2023/info/uni-before.md
+++ b/2023/info/uni-before.md
@@ -1,12 +1,35 @@
<!-- Automatically generated by emacsconf-publish-before-page -->
[[!toc ]]
-Format: 20-min talk followed by live web conference, IRC Q&A
-Discuss on IRC: [#emacsconf](https://chat.emacsconf.org/?join=emacsconf)
-Status: Waiting for video from speaker
+Format: 21-min talk ; Q&A: BigBlueButton conference room
+Status: Q&A to be extracted from the room recordings
+# Talk
+
+<div class="vid mainVideo"><video controls preload="none" id="mainVideo-uni"><source src="https://media.emacsconf.org/2023/emacsconf-2023-uni--authoring-and-presenting-university-courses-with-emacs-and-a-full-libre-software-stack--james-howell--main.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2023/captions/emacsconf-2023-uni--authoring-and-presenting-university-courses-with-emacs-and-a-full-libre-software-stack--james-howell--main.vtt" default />"""<track kind="chapters" label="Chapters" src="/2023/captions/emacsconf-2023-uni--authoring-and-presenting-university-courses-with-emacs-and-a-full-libre-software-stack--james-howell--main--chapters.vtt" /><p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video>[[!template id="chapters" vidid="mainVideo-uni" data="""
+00:00.000 Introduction
+01:12.440 Presenting
+01:47.820 Hardware
+04:46.610 Example setup
+05:30.520 Presentation software: flexibility in function
+07:05.950 Live demonstration
+07:59.850 OBS
+10:26.060 Animation
+10:55.790 Emacs
+11:42.260 Making slides and handouts with Org Mode
+13:22.680 Pedagogy first
+16:17.790 org-teach
+19:38.330 Blank slides
+19:50.050 Animations
+20:19.270 Conclusion
+
+"""]]<div></div>Duration: 20:53 minutes<div class="files resources"><ul><li><a href="https://pad.emacsconf.org/2023-uni">Open Etherpad</a></li><li><a href="https://bbb.emacsverse.org/playback/presentation/2.0/playback.html?meetingId=dfdd18fb34bc59b228ab37bc22b0e5ce3b96437b-1701525315024">Play recording from BigBlueButton</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-uni--authoring-and-presenting-university-courses-with-emacs-and-a-full-libre-software-stack--james-howell--intro.vtt">Download --intro.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-uni--authoring-and-presenting-university-courses-with-emacs-and-a-full-libre-software-stack--james-howell--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-uni--authoring-and-presenting-university-courses-with-emacs-and-a-full-libre-software-stack--james-howell--main--chapters.vtt">Download --main--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-uni--authoring-and-presenting-university-courses-with-emacs-and-a-full-libre-software-stack--james-howell--main.opus">Download --main.opus (12MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-uni--authoring-and-presenting-university-courses-with-emacs-and-a-full-libre-software-stack--james-howell--main.vtt">Download --main.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-uni--authoring-and-presenting-university-courses-with-emacs-and-a-full-libre-software-stack--james-howell--main.webm">Download --main.webm (283MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-uni--authoring-and-presenting-university-courses-with-emacs-and-a-full-libre-software-stack--james-howell--slides.pdf">Download --slides.pdf (26MB)</a></li><li><a href="https://toobnix.org/w/mAnNW7jnPq5qhUPH2dzVQf">View on Toobnix</a></li><li><a href="https://www.youtube.com/watch?v=cklJ58i-HUY">View on Youtube</a></li></ul></div></div>
+
+# Q&A
+
+<div class="vid qanda"><video controls preload="none" id="qanda-uni"><source src="https://media.emacsconf.org/2023/emacsconf-2023-uni--authoring-and-presenting-university-courses-with-emacs-and-a-full-libre-software-stack--james-howell--answers.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2023/captions/emacsconf-2023-uni--authoring-and-presenting-university-courses-with-emacs-and-a-full-libre-software-stack--james-howell--answers.vtt" default />"""<p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video><div>Listen to just the audio:<br /><audio controls preload="none" id="qanda-uni-audio" src="https://media.emacsconf.org/2023/emacsconf-2023-uni--authoring-and-presenting-university-courses-with-emacs-and-a-full-libre-software-stack--james-howell--answers.opus"></audio></div><div></div>Duration: 22:32 minutes<div class="files resources"><ul><li><a href="https://pad.emacsconf.org/2023-uni">Open Etherpad</a></li><li><a href="https://bbb.emacsverse.org/playback/presentation/2.0/playback.html?meetingId=dfdd18fb34bc59b228ab37bc22b0e5ce3b96437b-1701525315024">Play recording from BigBlueButton</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-uni--authoring-and-presenting-university-courses-with-emacs-and-a-full-libre-software-stack--james-howell--answers.json">Download --answers.json</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-uni--authoring-and-presenting-university-courses-with-emacs-and-a-full-libre-software-stack--james-howell--answers.opus">Download --answers.opus (14MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-uni--authoring-and-presenting-university-courses-with-emacs-and-a-full-libre-software-stack--james-howell--answers.vtt">Download --answers.vtt</a> (unedited)</li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-uni--authoring-and-presenting-university-courses-with-emacs-and-a-full-libre-software-stack--james-howell--answers.webm">Download --answers.webm (56MB)</a></li></ul></div></div>
# Description
<!-- End of emacsconf-publish-before-page --> \ No newline at end of file
diff --git a/2023/info/uni-nav.md b/2023/info/uni-nav.md
index d2c358b9..14adb722 100644
--- a/2023/info/uni-nav.md
+++ b/2023/info/uni-nav.md
@@ -2,6 +2,6 @@
<div class="talk-nav">
Back to the [[talks]]
Previous by track: <a href="/2023/talks/adventure">An Org-Mode based text adventure game for learning the basics of Emacs, inside Emacs, written in Emacs Lisp</a>
-Next by track: <a href="/2023/talks/table">Who needs Excel? Managing your students qualifications with org-table</a>
-Track: <span class="sched-track General">General</span>
+Next by track: <a href="/2023/talks/teaching">Teaching computer and data science with literate programming tools</a>
+Track: <span class="sched-track General">General</span> - <strong><a href="https://emacsconf.org/2023/watch/gen">Watch</a></strong>
</div>
diff --git a/2023/info/voice-after.md b/2023/info/voice-after.md
index f8bda391..136fafce 100644
--- a/2023/info/voice-after.md
+++ b/2023/info/voice-after.md
@@ -1,7 +1,1435 @@
<!-- Automatically generated by emacsconf-publish-after-page -->
-Questions or comments? Please e-mail [emacsconf-org-private@gnu.org](mailto:emacsconf-org-private@gnu.org?subject=Comment%20for%20EmacsConf%202022%20voice%3A%20Improving%20access%20to%20AI-assisted%20literate%20programming%20with%20voice%20control)
+<div class="transcript transcript-mainVideo"><a name="voice-mainVideo-transcript"></a><h1>Transcript</h1>
+
+
+<div class="transcript-heading">[[!template new="1" text="""Introduction""" start="00:00:00.000" video="mainVideo-voice" id="subtitle"]]</div>[[!template text="""Hi, I'm Blaine Mooers. I'm an associate professor""" start="00:00:00.000" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""of biochemistry at the University of Oklahoma""" start="00:00:04.360" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""Health Sciences Center in Oklahoma City.""" start="00:00:06.520" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""My lab studies the role of RNA structure in RNA editing.""" start="00:00:09.320" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""We use X-ray crystallography to study the structures""" start="00:00:12.960" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""of these RNAs. We spend a lot of time in the lab""" start="00:00:17.200" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""preparing our samples for structural studies,""" start="00:00:19.920" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""and then we also spend a lot of time at the computer""" start="00:00:22.720" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""analyzing the resulting data.""" start="00:00:26.720" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""I was seeking ways of using voice computing""" start="00:00:29.720" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""to try to enhance my productivity.""" start="00:00:33.040" video="mainVideo-voice" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Three activities in voice computing""" start="00:00:37.400" video="mainVideo-voice" id="subtitle"]]</div>[[!template text="""I divide voice computing into three activities,""" start="00:00:37.400" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""speech-to-text or dictation, speech-to-commands,""" start="00:00:41.320" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""and speech-to-code. I'll be talking about""" start="00:00:44.960" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""speech-to-text and speech-to-commands today""" start="00:00:47.640" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""because these are two activities""" start="00:00:50.160" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""that are probably most broadly applicable""" start="00:00:55.080" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""to the workflows of people attending this conference.""" start="00:00:57.320" video="mainVideo-voice" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Talk is not about ... and about ...""" start="00:01:02.560" video="mainVideo-voice" id="subtitle"]]</div>[[!template text="""This talk will not be about Emacspeak.""" start="00:01:02.560" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""This is a venerated program for converting text to speech.""" start="00:01:06.800" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""We're talking about the flow of information""" start="00:01:11.360" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""in the opposite direction, speech-to-text.""" start="00:01:13.320" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""We need an Emacs Listens. We don't have one,""" start="00:01:16.520" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""so I had to seek help from outside the Emacs world""" start="00:01:20.600" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""via the Voice In Plus. This runs in""" start="00:01:25.480" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""the Google Chrome web browser,""" start="00:01:30.640" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""and it's very good for speech-to-text""" start="00:01:33.640" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""and very easy to learn how to use.""" start="00:01:36.720" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""It also has some speech-to-commands.""" start="00:01:39.520" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""However, Talon Voice is much better""" start="00:01:42.000" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""with the speech-to-commands,""" start="00:01:44.800" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""and it's also great at speech-to-code.""" start="00:01:47.560" video="mainVideo-voice" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Motivations""" start="00:01:53.520" video="mainVideo-voice" id="subtitle"]]</div>[[!template text="""The motivations are, obviously, as I mentioned already,""" start="00:01:53.520" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""for improved productivity.""" start="00:01:57.240" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""So, if you're a fast typist""" start="00:01:59.160" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""who types faster than they can speak,""" start="00:02:00.400" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""then nonetheless you might still benefit""" start="00:02:05.200" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""from voice computing when you grow tired of""" start="00:02:07.080" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""using the keyboard. On the other hand,""" start="00:02:09.280" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""you might be a slow typist who talks faster""" start="00:02:12.200" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""than they can type.""" start="00:02:15.200" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""In this case, you're definitely going to""" start="00:02:17.520" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""benefit from dictation because you'll be able to""" start="00:02:19.760" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""encode more words in text documents in a given day.""" start="00:02:22.860" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""If you're a coder, then you may get a kick out of""" start="00:02:29.360" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""opening programs and websites and coding projects""" start="00:02:33.640" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""by using your voice.""" start="00:02:37.000" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""Then there are health-related reasons.""" start="00:02:39.280" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""You may have impaired use of your hands, eyes, or both""" start="00:02:41.720" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""due to accident or disease, or you may suffer from""" start="00:02:44.600" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""a repetitive stress injury. Many of us have this""" start="00:02:49.200" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""in a mild but chronic form of it.""" start="00:02:53.520" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""We can't take a three-month sabbatical from the keyboard""" start="00:02:55.760" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""without losing our jobs, so these injuries tend to persist.""" start="00:02:59.040" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""And then you may have learned""" start="00:03:05.520" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""that it's not good for your health to sit""" start="00:03:06.680" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""for prolonged periods of time""" start="00:03:09.960" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""with your staring at a computer screen.""" start="00:03:11.920" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""You can actually dictate to your computer from 20 feet away""" start="00:03:14.920" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""while looking out the window,""" start="00:03:21.800" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""thereby giving your lower body a break""" start="00:03:25.000" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""and your eyes a break.""" start="00:03:27.780" video="mainVideo-voice" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Data""" start="00:03:33.240" video="mainVideo-voice" id="subtitle"]]</div>[[!template text="""I'm not God, so I have to bring data.""" start="00:03:33.240" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""I have two data points here,""" start="00:03:35.640" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""the number of words that I wrote in June and July this year""" start="00:03:38.040" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""and in September and October.""" start="00:03:42.400" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""I adopted the use of voice computing""" start="00:03:45.160" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""in the middle of August. As you can see,""" start="00:03:49.520" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""I got an over three-fold increase in my output.""" start="00:03:53.920" video="mainVideo-voice" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Voice In in the Chrome Store""" start="00:03:58.680" video="mainVideo-voice" id="subtitle"]]</div>[[!template text="""So this is the Chrome store website for voice-in.""" start="00:03:58.680" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""It's only available for Google Chrome.""" start="00:04:07.120" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""You just hit the install button to install it.""" start="00:04:11.120" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""To configure it, you need to select a language.""" start="00:04:13.240" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""It has support for 40 languages""" start="00:04:16.640" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""and it supports about a dozen different dialects of English,""" start="00:04:19.560" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""including Australian.""" start="00:04:23.120" video="mainVideo-voice" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Works in web pages with text areas""" start="00:04:25.628" video="mainVideo-voice" id="subtitle"]]</div>[[!template text="""It works on web pages with text areas,""" start="00:04:25.628" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""so it works. I use it regularly""" start="00:04:29.960" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""on Overleaf and 750words.com,""" start="00:04:33.320" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""a distraction-free environment for writing.""" start="00:04:37.880" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""It also works in webmails. It works in Google.""" start="00:04:42.280" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""It works in Jupyter Lab, of course,""" start="00:04:46.780" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""because that runs in the browser.""" start="00:04:51.320" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""It also works in Jupyter Notebook and Colab Notebook.""" start="00:04:52.880" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""It should work in Cloudmacs.""" start="00:04:58.000" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""I've mapped option-L to opening Voice In""" start="00:05:01.320" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""when the cursor is on a web page that has a text area.""" start="00:05:04.160" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""So [the presence of a text area is] the main limiting factor.""" start="00:05:09.120" video="mainVideo-voice" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Built-in commands in Voice In Plus""" start="00:05:16.880" video="mainVideo-voice" id="subtitle"]]</div>[[!template text="""[Voice In] has a number of built-in commands.""" start="00:05:16.880" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""You can turn it off by saying &quot;stop dictation&quot;.""" start="00:05:19.160" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""It doesn't distinguish between""" start="00:05:24.880" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""a command mode and a dictation mode.""" start="00:05:26.120" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""It has undo command. You use the command""" start="00:05:28.800" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""&quot;copy that&quot; to copy a selection.""" start="00:05:33.600" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""The &quot;press&quot; commands are used in the browser.""" start="00:05:36.920" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""You [say] &quot;press enter&quot; to issue a command or [submit] text""" start="00:05:40.080" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""that has been written in a web form,""" start="00:05:44.840" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""and then &quot;press tab&quot; will open up the next tab""" start="00:05:50.320" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""in a web browser. The scroll up and down""" start="00:05:55.280" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""will allow you to navigate a web page.""" start="00:05:58.600" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""I've put together a quiz about these commands""" start="00:06:02.380" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""so that you can go through this quiz several times""" start="00:06:05.820" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""until you get at least 90 percent of them correct,""" start="00:06:09.560" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""90 percent of the questions correct.""" start="00:06:14.700" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""In order to boost your recall of the commands,""" start="00:06:16.680" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""I have a Python script that you can probably""" start="00:06:20.600" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""pound through the quiz with""" start="00:06:23.800" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""in less than a minute, once you know the commands.""" start="00:06:26.560" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""I also provide an Elisp version of this quiz,""" start="00:06:32.160" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""but it's a little slower to operate.""" start="00:06:35.600" video="mainVideo-voice" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Common errors made by Voice In""" start="00:06:41.740" video="mainVideo-voice" id="subtitle"]]</div>[[!template text="""These are some common errors""" start="00:06:41.740" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""that I've run into with Voice In.""" start="00:06:43.400" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""It likes to contract statements like &quot;I will&quot; into &quot;I'll&quot;.""" start="00:06:45.400" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""Contractions are not used in formal writing,""" start="00:06:50.320" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""and most of my writing is formal writing, so this annoys me.""" start="00:06:55.600" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""I will show you how I corrected for that problem.""" start="00:07:00.360" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""It also drops the first word in sentences quite often.""" start="00:07:04.760" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""This might be some speech issue that I have.""" start="00:07:10.040" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""It inserts the wrong word because it's not in the dictionary""" start="00:07:13.360" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""that was used to train it. So, for example,""" start="00:07:17.600" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""the word PyMOL is the name of a molecular graphics program""" start="00:07:22.620" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""that we use in our field. It doesn't recognize PyMOL.""" start="00:07:26.920" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""Instead, it substitutes in the word &quot;primal&quot;.""" start="00:07:31.640" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""Since I don't use &quot;primal&quot; very often,""" start="00:07:34.240" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""I've mapped the word &quot;primal&quot; to &quot;PyMOL&quot;""" start="00:07:38.400" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""in some custom commands I'll talk about in a minute.""" start="00:07:42.300" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""Then there's a problem that the commands that exist""" start="00:07:45.660" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""might get executed when you speak them when, in fact,""" start="00:07:50.440" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""you wanted to use the words in those commands""" start="00:07:54.440" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""during your dictation.""" start="00:07:58.840" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""So this is a problem, a pitfall of Voice In,""" start="00:08:01.440" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""in that it doesn't have a command mode""" start="00:08:07.120" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""that's separate from a dictation mode.""" start="00:08:08.920" video="mainVideo-voice" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Custom speech-to-text commands""" start="00:08:14.760" video="mainVideo-voice" id="subtitle"]]</div>[[!template text="""You can set up through a very easy-to-use GUI""" start="00:08:14.760" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""custom voice commands mapped to what you want inserted,""" start="00:08:20.320" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""so this is how misinterpreted words can be corrected.""" start="00:08:26.960" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""You just map the misinterpreted word to the intended word.""" start="00:08:32.400" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""You can also map the contractions to their expansions.""" start="00:08:35.760" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""I did this for 94 English contractions,""" start="00:08:42.840" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""and you can find these on GitHub.""" start="00:08:46.960" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""You can also insert acronyms and expand those acronyms.""" start="00:08:50.140" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""I apply the same approach to the first names of colleagues.""" start="00:08:56.080" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""I say &quot;expand Fred&quot;, for example,""" start="00:09:00.240" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""to get Fred's first and last name""" start="00:09:03.760" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""with the [correct] spelling of his very long German name.""" start="00:09:07.000" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""You can also insert other trivia like favorite URLs.""" start="00:09:12.600" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""You can insert LaTeX snippets.""" start="00:09:19.400" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""It handles correctly multi-line snippets.""" start="00:09:24.560" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""You just have to enclose them in double quotes.""" start="00:09:34.800" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""You can even insert BibTeX cite keys for references""" start="00:09:39.420" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""that you use frequently. All fields""" start="00:09:45.040" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""have certain key references for certain methods or topics.""" start="00:09:46.880" video="mainVideo-voice" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Custom speech-to-commands""" start="00:09:59.420" video="mainVideo-voice" id="subtitle"]]</div>[[!template text="""Then it has a set of commands that you can customize""" start="00:09:59.420" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""for the purpose of speech-to-commands""" start="00:10:05.080" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""to get the computer to do something""" start="00:10:08.200" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""like open up a specific website or save the current writing.""" start="00:10:09.680" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""In this case, we have &quot;press: command-s&quot;""" start="00:10:15.400" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""for saving current writing.""" start="00:10:23.541" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""You can change the language [with &quot;lang:&quot;],""" start="00:10:27.760" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""and you can change the case of the text [with &quot;case:&quot;].""" start="00:10:28.100" video="mainVideo-voice" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Introducing Talon Voice""" start="00:10:37.540" video="mainVideo-voice" id="subtitle"]]</div>[[!template text="""But the speech-to-command repertoire is quite limited""" start="00:10:37.540" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""in Voice In, so it's now time to pick up on Talon Voice.""" start="00:10:41.040" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""This is an open source project. It's free.""" start="00:10:49.760" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""It is highly configurable via TalonScript,""" start="00:10:54.120" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""which is a subset of Python.""" start="00:10:57.400" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""You can use either TalonScript or Python to configure it,""" start="00:10:58.960" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""but it's easier to code up your configuration""" start="00:11:03.040" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""in TalonScript.""" start="00:11:06.280" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""It has a Python interpreter embedded in it,""" start="00:11:08.400" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""so you don't have to mess around with installing""" start="00:11:10.760" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""yet another Python interpreter.""" start="00:11:13.000" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""It runs on all platforms, and it has a dictation mode""" start="00:11:14.560" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""that's separate from a command mode.""" start="00:11:21.520" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""You can activate it,""" start="00:11:24.600" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""and it'll be in a listening state asleep.""" start="00:11:25.600" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""You just bark out &quot;Talon Wake&quot; to start to wake it up,""" start="00:11:31.360" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""and &quot;Talon Sleep&quot; to have it go into a listening state.""" start="00:11:36.280" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""It has a very welcoming community""" start="00:11:43.800" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""in the Talon Slack channel.""" start="00:11:47.920" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""Then I need to point out that there's several packages""" start="00:11:50.920" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""that others have developed that run on top of Talon,""" start="00:11:56.400" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""but one of particular note is by Pokey Rule.""" start="00:11:59.200" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""He has on his website some really well-done videos""" start="00:12:03.080" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""that demonstrate how he uses Cursorless""" start="00:12:08.120" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""to move the cursor around using voice commands.""" start="00:12:11.480" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""This, however, runs on VS Code.""" start="00:12:17.240" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""At least that's the text editor""" start="00:12:20.560" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""for which he's primarily developing Cursorless.""" start="00:12:23.360" video="mainVideo-voice" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Talon GUI""" start="00:12:28.400" video="mainVideo-voice" id="subtitle"]]</div>[[!template text="""I followed the [install] protocol outlined by Tara Roys.""" start="00:12:28.400" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""She has a collection of tutorials""" start="00:12:35.520" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""on YouTube as well as on GitHub that are quite helpful.""" start="00:12:38.760" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""I followed her tutorial for installing""" start="00:12:44.600" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""Talon on macOS without any issues,""" start="00:12:49.480" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""but allow for half an hour to an hour""" start="00:12:51.360" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""to go through the process. When you're done,""" start="00:12:55.320" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""you'll have this Talon icon appear in the toolbar""" start="00:12:57.720" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""on the Mac. When it has this diagonal line across it,""" start="00:13:02.200" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""that means it's in the sleep state.""" start="00:13:06.120" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""So, this leads to cascading pull-down menus.""" start="00:13:09.540" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""This is it for the GUI.""" start="00:13:13.520" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""One of your first tasks is to select""" start="00:13:19.640" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""a language model that will be used to interpret""" start="00:13:26.520" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""the sounds that you generate as words.""" start="00:13:30.440" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""And the other kind of key feature is that there's a,""" start="00:13:35.180" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""under scripting, there's a view log pull-down""" start="00:13:38.960" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""that opens up a window displaying the log file.""" start="00:13:43.400" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""Whenever you make a change in a Talon configuration file,""" start="00:13:48.400" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""that change is implemented immediately.""" start="00:13:52.880" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""You do not have to restart Talon""" start="00:13:55.080" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""to get the change to take effect.""" start="00:13:57.600" video="mainVideo-voice" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Talon file with web scope""" start="00:14:02.540" video="mainVideo-voice" id="subtitle"]]</div>[[!template text="""This is an example of a Talon file.""" start="00:14:02.540" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""It has two components. It has a header above the dash that describes""" start="00:14:04.760" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""the scope of the commands contained below the dash.""" start="00:14:10.500" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""Each command is separated by a blank line.""" start="00:14:14.920" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""If a voice command is mapped to multiple actions,""" start="00:14:19.740" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""these are listed separately on indented lines""" start="00:14:24.240" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""below the first line.""" start="00:14:31.000" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""The words that are in square brackets are optional.""" start="00:14:33.600" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""So, I have mapped the word toggle voice in,""" start="00:14:39.420" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""or the phrase toggle voice in,""" start="00:14:44.320" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""to the keyboard shortcut Alt L""" start="00:14:46.320" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""in order to toggle on or off voice in.""" start="00:14:51.280" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""If I toggle voice in on,""" start="00:14:55.000" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""I need to immediately toggle off Talon,""" start="00:14:57.880" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""and this is done through this key command for Control T,""" start="00:15:01.760" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""which is mapped to speech toggle.""" start="00:15:09.080" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""Speech toggle. Then there are,""" start="00:15:11.080" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""there's a couple other examples.""" start="00:15:20.400" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""So, if there's no header present,""" start="00:15:24.080" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""it's an optional feature of Talon files,""" start="00:15:26.440" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""then the commands in the file will apply in all situations,""" start="00:15:29.600" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""in all modes.""" start="00:15:32.640" video="mainVideo-voice" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Terminals on remote and virtual machines""" start="00:15:34.015" video="mainVideo-voice" id="subtitle"]]</div>[[!template text="""Here we have two restrictions.""" start="00:15:34.015" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""These commands will only work""" start="00:15:36.960" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""when using the iTerm2 [ccc] terminal emulator for the Mac,""" start="00:15:38.960" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""and then only when the title of the window in iTerm2""" start="00:15:42.960" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""has this particular address,""" start="00:15:48.240" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""which is what appears when I've logged into""" start="00:15:52.440" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""the supercomputer at the University of Oklahoma.""" start="00:15:55.560" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""One of the commands in this file is checkjobs.""" start="00:16:00.060" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""It's mapped to an alias,""" start="00:16:03.480" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""a bash alias called cj for &quot;check jobs&quot;,""" start="00:16:05.540" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""which in turn is mapped to a script called checkjobs.sh""" start="00:16:10.920" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""that, when it's run, returns a listing""" start="00:16:17.080" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""of the pending and running jobs on the supercomputer""" start="00:16:20.400" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""in a format that I find pleasing.""" start="00:16:23.220" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""This `\n` after cj, the new line character,""" start="00:16:26.081" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""enters the command, so I don't have to do that""" start="00:16:34.560" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""as an additional step. Likewise,""" start="00:16:39.840" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""here's a similar setup for interacting with""" start="00:16:43.800" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""a Ubuntu virtual machine.""" start="00:16:46.800" video="mainVideo-voice" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Recommendations""" start="00:16:52.500" video="mainVideo-voice" id="subtitle"]]</div>[[!template text="""In terms of picking up voice computing,""" start="00:16:52.500" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""these are my recommendations.""" start="00:16:55.920" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""You're going to run into more errors""" start="00:16:57.480" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""than you may like initially,""" start="00:16:59.760" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""and so you need some patience in dealing with those.""" start="00:17:01.480" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""And also, it'll take you a while""" start="00:17:07.840" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""to get your head wrapped around Talon and how it works.""" start="00:17:09.920" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""You'll definitely want to use these custom commands""" start="00:17:16.800" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""to correct the errors or shortcomings""" start="00:17:19.440" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""of the language models. And you've seen how,""" start="00:17:21.480" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""by opening up projects by voice commands,""" start="00:17:26.920" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""you can reduce friction""" start="00:17:29.880" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""in terms of restarting work on a project.""" start="00:17:31.360" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""You've seen how Voice In is preferred""" start="00:17:36.660" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""for more accurate dictation.""" start="00:17:40.400" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""I think my error rate is about 1 to 2 percent.""" start="00:17:44.880" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""That is, 1 to 2 out of 100 words are incorrect""" start="00:17:48.080" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""versus Talon Voice where I think""" start="00:17:53.880" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""the error rate is closer to 5 percent.""" start="00:17:56.320" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""I have put together [a library of English] contractions""" start="00:18:00.840" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""[and their expansion] for Talon [too],""" start="00:18:03.508" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""and they can be found here on GitHub.""" start="00:18:04.881" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""And I also have [posted] a quiz of 600 questions""" start="00:18:07.480" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""about some basic Talon commands.""" start="00:18:12.960" video="mainVideo-voice" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Acknowledgements""" start="00:18:17.720" video="mainVideo-voice" id="subtitle"]]</div>[[!template text="""I'd like to thank the people who've helped me out""" start="00:18:17.720" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""on the Talon Slack channel""" start="00:18:21.000" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""and members of the Oklahoma Data Science Workshop""" start="00:18:22.160" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""where I gave an hour-long talk on this topic""" start="00:18:25.800" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""several weeks ago.""" start="00:18:29.880" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""I'd like to thank my friends""" start="00:18:30.960" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""at the Berlin and Austin Emacs Meetup""" start="00:18:34.160" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""and at the M-x research Slack channel.""" start="00:18:37.400" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""And I thank these grant funding agencies""" start="00:18:42.660" video="mainVideo-voice" id="subtitle"]]
+[[!template text="""for supporting my work. I'll be happy to take any questions.""" start="00:18:45.120" video="mainVideo-voice" id="subtitle"]]
+
+</div><div class="transcript transcript-qanda"><a name="voice-qanda-transcript"></a><h1>Q&A transcript (unedited)</h1>
+
+[[!template text="""[Speaker 0]: Dictation.""" start="00:00:00.480" video="qanda-voice" id="subtitle"]]
+[[!template text="""[Speaker 1]: Right. All right I think we are live now.""" start="00:00:06.020" video="qanda-voice" id="subtitle"]]
+[[!template text="""The stream is here. So folks if you would""" start="00:00:08.980" video="qanda-voice" id="subtitle"]]
+[[!template text="""please post your questions on the pad and""" start="00:00:11.320" video="qanda-voice" id="subtitle"]]
+[[!template text="""we'll take them up here.""" start="00:00:13.259" video="qanda-voice" id="subtitle"]]
+[[!template text="""[Speaker 0]: Boy so I don't have myself set up with the""" start="00:00:20.500" video="qanda-voice" id="subtitle"]]
+[[!template text="""[Speaker 1]: Oh, I can read the questions to you if you""" start="00:00:25.140" video="qanda-voice" id="subtitle"]]
+[[!template text="""[Speaker 0]: pad. That would be fantastic.""" start="00:00:26.939" video="qanda-voice" id="subtitle"]]
+[[!template text="""Thank you.""" start="00:00:27.900" video="qanda-voice" id="subtitle"]]
+[[!template text="""[Speaker 1]: would prefer that. Sure.""" start="00:00:28.779" video="qanda-voice" id="subtitle"]]
+[[!template text="""Thanks.""" start="00:00:29.220" video="qanda-voice" id="subtitle"]]
+[[!template text="""[Speaker 0]: Well, for the purpose of breaking the ice a""" start="00:00:58.380" video="qanda-voice" id="subtitle"]]
+[[!template text="""little bit, I can provide a live""" start="00:01:01.400" video="qanda-voice" id="subtitle"]]
+[[!template text="""demonstration of the use of this Voice In""" start="00:01:03.840" video="qanda-voice" id="subtitle"]]
+[[!template text="""plugin for Google Chrome.""" start="00:01:06.300" video="qanda-voice" id="subtitle"]]
+[[!template text="""So I have, let's see, say new sentence.""" start="00:01:11.080" video="qanda-voice" id="subtitle"]]
+[[!template text="""I'm on a website that is called 750 words.""" start="00:01:20.400" video="qanda-voice" id="subtitle"]]
+[[!template text="""It provides a text area where without any""" start="00:01:25.080" video="qanda-voice" id="subtitle"]]
+[[!template text="""other distracting icons for the purpose of""" start="00:01:30.580" video="qanda-voice" id="subtitle"]]
+[[!template text="""writing and I'm using it for the purpose of""" start="00:01:34.040" video="qanda-voice" id="subtitle"]]
+[[!template text="""capturing my words that I'm dictating and I""" start="00:01:38.680" video="qanda-voice" id="subtitle"]]
+[[!template text="""have enabled the Voice In plugin by hitting""" start="00:01:42.979" video="qanda-voice" id="subtitle"]]
+[[!template text="""the option L command. New sentence.""" start="00:01:48.280" video="qanda-voice" id="subtitle"]]
+[[!template text="""So it interpreted that command new sentence""" start="00:01:54.479" video="qanda-voice" id="subtitle"]]
+[[!template text="""even though I didn't pronounce it correctly,""" start="00:01:56.260" video="qanda-voice" id="subtitle"]]
+[[!template text="""which is a pretty good demonstration of its""" start="00:01:59.440" video="qanda-voice" id="subtitle"]]
+[[!template text="""accuracy. New sentence.""" start="00:02:00.920" video="qanda-voice" id="subtitle"]]
+[[!template text="""Oops, that didn't work.""" start="00:02:06.420" video="qanda-voice" id="subtitle"]]
+[[!template text="""Undo. New sentence. So new sentence is a""" start="00:02:15.040" video="qanda-voice" id="subtitle"]]
+[[!template text="""combination of 2 commands,""" start="00:02:16.040" video="qanda-voice" id="subtitle"]]
+[[!template text="""period and new line. So I've found it more""" start="00:02:23.820" video="qanda-voice" id="subtitle"]]
+[[!template text="""convenient just to say new sentence than""" start="00:02:25.840" video="qanda-voice" id="subtitle"]]
+[[!template text="""having to say period and new line.""" start="00:02:28.440" video="qanda-voice" id="subtitle"]]
+[[!template text="""You can see that it's able to keep up with""" start="00:02:33.900" video="qanda-voice" id="subtitle"]]
+[[!template text="""most of my speech, and it has to interpret""" start="00:02:41.840" video="qanda-voice" id="subtitle"]]
+[[!template text="""the sounds that I'm making and convert those""" start="00:02:44.760" video="qanda-voice" id="subtitle"]]
+[[!template text="""into words, so there's always going to be a""" start="00:02:47.600" video="qanda-voice" id="subtitle"]]
+[[!template text="""lag. New sentence. But I've found that I can""" start="00:02:59.580" video="qanda-voice" id="subtitle"]]
+[[!template text="""generate about 2,000, up to 2,000""" start="00:03:02.720" video="qanda-voice" id="subtitle"]]
+[[!template text="""words an hour as I gather my thoughts and""" start="00:03:07.040" video="qanda-voice" id="subtitle"]]
+[[!template text="""talk in my rather slow fashion of speaking.""" start="00:03:10.960" video="qanda-voice" id="subtitle"]]
+[[!template text="""New sentence, if you're a really fast""" start="00:03:15.860" video="qanda-voice" id="subtitle"]]
+[[!template text="""speaker, it might have trouble keeping up.""" start="00:03:18.560" video="qanda-voice" id="subtitle"]]
+[[!template text="""New sentence. I like to write When I'm using""" start="00:03:30.860" video="qanda-voice" id="subtitle"]]
+[[!template text="""the keyboard with 1 sentence per line,""" start="00:03:34.360" video="qanda-voice" id="subtitle"]]
+[[!template text="""so that when I copy my text and paste it into""" start="00:03:38.520" video="qanda-voice" id="subtitle"]]
+[[!template text="""Emacs, for example, I can resort the""" start="00:03:43.680" video="qanda-voice" id="subtitle"]]
+[[!template text="""sentences very easily by just selecting 1""" start="00:03:47.300" video="qanda-voice" id="subtitle"]]
+[[!template text="""line at a time. I like to keep the sentences""" start="00:03:50.600" video="qanda-voice" id="subtitle"]]
+[[!template text="""unwrapped in that fashion because that""" start="00:03:53.480" video="qanda-voice" id="subtitle"]]
+[[!template text="""greatly eases the rewriting phase.""" start="00:03:56.320" video="qanda-voice" id="subtitle"]]
+[[!template text="""And I'm almost have sort of a hybrid reverse""" start="00:04:01.120" video="qanda-voice" id="subtitle"]]
+[[!template text="""outlining approach by doing that.""" start="00:04:03.160" video="qanda-voice" id="subtitle"]]
+[[!template text="""New sentence. Looks like I have gotten ahead""" start="00:04:14.340" video="qanda-voice" id="subtitle"]]
+[[!template text="""of it a bit and it has not kept up.""" start="00:04:18.079" video="qanda-voice" id="subtitle"]]
+[[!template text="""But generally, it does keep up pretty well.""" start="00:04:21.560" video="qanda-voice" id="subtitle"]]
+[[!template text="""[Speaker 1]: Nice. Thanks for the demo.""" start="00:04:26.180" video="qanda-voice" id="subtitle"]]
+[[!template text="""Let's see. I think we have.""" start="00:04:30.380" video="qanda-voice" id="subtitle"]]
+[[!template text="""Yeah, sorry.""" start="00:04:31.480" video="qanda-voice" id="subtitle"]]
+[[!template text="""[Speaker 0]: You're welcome. Go ahead.""" start="00:04:33.520" video="qanda-voice" id="subtitle"]]
+[[!template text="""You can see that it has this EN means English""" start="00:04:42.380" video="qanda-voice" id="subtitle"]]
+[[!template text="""and then dash US. There's actually about 40""" start="00:04:46.880" video="qanda-voice" id="subtitle"]]
+[[!template text="""languages that it supports,""" start="00:04:48.000" video="qanda-voice" id="subtitle"]]
+[[!template text="""including several variants of German and""" start="00:04:52.280" video="qanda-voice" id="subtitle"]]
+[[!template text="""about a dozen English dialects.""" start="00:04:54.640" video="qanda-voice" id="subtitle"]]
+[[!template text="""[Speaker 1]: Nice. Let's see, I think we have some""" start="00:05:05.200" video="qanda-voice" id="subtitle"]]
+[[!template text="""comments and questions trickling in.""" start="00:05:06.860" video="qanda-voice" id="subtitle"]]
+[[!template text="""So someone is saying that there is a text to""" start="00:05:11.160" video="qanda-voice" id="subtitle"]]
+[[!template text="""command application or utility called Clipia,""" start="00:05:14.700" video="qanda-voice" id="subtitle"]]
+[[!template text="""C-L-I-P-I-A, that they think is awesome.""" start="00:05:19.395" video="qanda-voice" id="subtitle"]]
+[[!template text="""Clipia that they think is awesome.""" start="00:05:19.860" video="qanda-voice" id="subtitle"]]
+[[!template text="""And someone else is also saying that Sox,""" start="00:05:24.960" video="qanda-voice" id="subtitle"]]
+[[!template text="""S-O-X is another good alternative.""" start="00:05:27.180" video="qanda-voice" id="subtitle"]]
+[[!template text="""[Speaker 0]: I've not explored those yet.""" start="00:05:34.560" video="qanda-voice" id="subtitle"]]
+[[!template text="""So thank you very much for the suggestions.""" start="00:05:36.740" video="qanda-voice" id="subtitle"]]
+[[!template text="""[Speaker 1]: So I'll... I just dropped a link to the pad""" start="00:05:42.700" video="qanda-voice" id="subtitle"]]
+[[!template text="""page here in the chat and on the big blue""" start="00:05:45.360" video="qanda-voice" id="subtitle"]]
+[[!template text="""button if you'd like to open that up as well.""" start="00:05:47.320" video="qanda-voice" id="subtitle"]]
+[[!template text="""But I'll continue reading the comments and""" start="00:05:50.280" video="qanda-voice" id="subtitle"]]
+[[!template text="""questions. So the first question,""" start="00:05:54.340" video="qanda-voice" id="subtitle"]]
+[[!template text="""I guess, is that could you comment on how""" start="00:05:56.420" video="qanda-voice" id="subtitle"]]
+[[!template text="""speaking versus typing affects your logic or""" start="00:06:01.800" video="qanda-voice" id="subtitle"]]
+[[!template text="""the content, quote unquote,""" start="00:06:03.260" video="qanda-voice" id="subtitle"]]
+[[!template text="""that you write?""" start="00:06:05.020" video="qanda-voice" id="subtitle"]]
+[[!template text="""[Speaker 0]: I find that this is like the difference""" start="00:06:10.320" video="qanda-voice" id="subtitle"]]
+[[!template text="""between writing your thoughts down on a blank""" start="00:06:15.600" video="qanda-voice" id="subtitle"]]
+[[!template text="""piece of printer paper versus paper bound""" start="00:06:18.640" video="qanda-voice" id="subtitle"]]
+[[!template text="""with a leather notebook.""" start="00:06:21.100" video="qanda-voice" id="subtitle"]]
+[[!template text="""I don't think there's any real difference.""" start="00:06:24.300" video="qanda-voice" id="subtitle"]]
+[[!template text="""I know that some people believe there is a""" start="00:06:27.980" video="qanda-voice" id="subtitle"]]
+[[!template text="""solid certain difference,""" start="00:06:29.540" video="qanda-voice" id="subtitle"]]
+[[!template text="""But this is for the purpose,""" start="00:06:32.580" video="qanda-voice" id="subtitle"]]
+[[!template text="""I'm using this for the purpose of generating""" start="00:06:34.540" video="qanda-voice" id="subtitle"]]
+[[!template text="""the first draft because my skills with using""" start="00:06:40.340" video="qanda-voice" id="subtitle"]]
+[[!template text="""my voice to edit my text is still not very""" start="00:06:44.160" video="qanda-voice" id="subtitle"]]
+[[!template text="""well developed. I'm still more efficient""" start="00:06:46.240" video="qanda-voice" id="subtitle"]]
+[[!template text="""using the keyboard for that stage.""" start="00:06:49.120" video="qanda-voice" id="subtitle"]]
+[[!template text="""So the hardest part about writing generally""" start="00:06:52.200" video="qanda-voice" id="subtitle"]]
+[[!template text="""is getting the first crappy draft written.""" start="00:06:55.160" video="qanda-voice" id="subtitle"]]
+[[!template text="""And so I have found that dictation is""" start="00:07:00.040" video="qanda-voice" id="subtitle"]]
+[[!template text="""perfectly fine for that phase.""" start="00:07:01.480" video="qanda-voice" id="subtitle"]]
+[[!template text="""And I find it actually very conducive for""" start="00:07:07.060" video="qanda-voice" id="subtitle"]]
+[[!template text="""just getting the text out.""" start="00:07:09.480" video="qanda-voice" id="subtitle"]]
+[[!template text="""The biggest problem that most of us have is""" start="00:07:13.500" video="qanda-voice" id="subtitle"]]
+[[!template text="""applying our internal editor.""" start="00:07:15.080" video="qanda-voice" id="subtitle"]]
+[[!template text="""And that inhibits us from generating words in""" start="00:07:20.280" video="qanda-voice" id="subtitle"]]
+[[!template text="""a free-flowing fashion.""" start="00:07:21.600" video="qanda-voice" id="subtitle"]]
+[[!template text="""So I generally do my generative writing.""" start="00:07:26.000" video="qanda-voice" id="subtitle"]]
+[[!template text="""So actually I divide my writing into 2""" start="00:07:28.740" video="qanda-voice" id="subtitle"]]
+[[!template text="""categories, generative writing,""" start="00:07:30.240" video="qanda-voice" id="subtitle"]]
+[[!template text="""generating the first crappy draft,""" start="00:07:32.320" video="qanda-voice" id="subtitle"]]
+[[!template text="""and then rewriting. Rewriting is probably 80,""" start="00:07:35.920" video="qanda-voice" id="subtitle"]]
+[[!template text="""90% of writing where you go back and rework""" start="00:07:38.520" video="qanda-voice" id="subtitle"]]
+[[!template text="""the order of the sentences,""" start="00:07:40.600" video="qanda-voice" id="subtitle"]]
+[[!template text="""order of paragraphs, the order of words in a""" start="00:07:43.840" video="qanda-voice" id="subtitle"]]
+[[!template text="""sentence and so forth.""" start="00:07:44.700" video="qanda-voice" id="subtitle"]]
+[[!template text="""The really hard work. That's best done later""" start="00:07:47.540" video="qanda-voice" id="subtitle"]]
+[[!template text="""in the day when I'm more awake.""" start="00:07:49.740" video="qanda-voice" id="subtitle"]]
+[[!template text="""I do my general writing first thing in the""" start="00:07:52.880" video="qanda-voice" id="subtitle"]]
+[[!template text="""morning when I feel horrible.""" start="00:07:55.320" video="qanda-voice" id="subtitle"]]
+[[!template text="""I'm not very alert. That's when my internal""" start="00:07:59.440" video="qanda-voice" id="subtitle"]]
+[[!template text="""editor is not very awake and I can get more""" start="00:08:03.340" video="qanda-voice" id="subtitle"]]
+[[!template text="""words out, more words past that gatekeeper.""" start="00:08:05.760" video="qanda-voice" id="subtitle"]]
+[[!template text="""And so I can do this sitting down,""" start="00:08:09.280" video="qanda-voice" id="subtitle"]]
+[[!template text="""I can do this standing up,""" start="00:08:10.640" video="qanda-voice" id="subtitle"]]
+[[!template text="""I can do this 20 feet away from my computer""" start="00:08:12.800" video="qanda-voice" id="subtitle"]]
+[[!template text="""looking out the window to give my eyes a""" start="00:08:15.440" video="qanda-voice" id="subtitle"]]
+[[!template text="""break. So I find it's actually very enjoyable""" start="00:08:19.540" video="qanda-voice" id="subtitle"]]
+[[!template text="""to use it in this fashion.""" start="00:08:21.440" video="qanda-voice" id="subtitle"]]
+[[!template text="""And the downside is that I wind up generating""" start="00:08:29.640" video="qanda-voice" id="subtitle"]]
+[[!template text="""3 times as much text, and that makes for 3""" start="00:08:32.720" video="qanda-voice" id="subtitle"]]
+[[!template text="""times as much work when it comes to rewriting""" start="00:08:35.140" video="qanda-voice" id="subtitle"]]
+[[!template text="""the text. And that means I'm using the""" start="00:08:39.780" video="qanda-voice" id="subtitle"]]
+[[!template text="""keyboard a lot later on in the day and I""" start="00:08:45.040" video="qanda-voice" id="subtitle"]]
+[[!template text="""haven't made any progress on recovering from""" start="00:08:47.720" video="qanda-voice" id="subtitle"]]
+[[!template text="""my own repetitive stress injury.""" start="00:08:49.760" video="qanda-voice" id="subtitle"]]
+[[!template text="""I hope that I will add the use of voice""" start="00:08:56.880" video="qanda-voice" id="subtitle"]]
+[[!template text="""commands, speech to commands,""" start="00:08:59.720" video="qanda-voice" id="subtitle"]]
+[[!template text="""for editing the text in the future.""" start="00:09:02.800" video="qanda-voice" id="subtitle"]]
+[[!template text="""And I'll eventually give my hands more of a""" start="00:09:06.880" video="qanda-voice" id="subtitle"]]
+[[!template text="""break.""" start="00:09:07.040" video="qanda-voice" id="subtitle"]]
+[[!template text="""[Speaker 1]: Right. Thanks. Yeah, that sounds like a nice""" start="00:09:12.280" video="qanda-voice" id="subtitle"]]
+[[!template text="""flow of sort of being able to get your words""" start="00:09:15.360" video="qanda-voice" id="subtitle"]]
+[[!template text="""out while your internal editor is still not""" start="00:09:18.740" video="qanda-voice" id="subtitle"]]
+[[!template text="""inhibiting things. And then later in the day""" start="00:09:21.220" video="qanda-voice" id="subtitle"]]
+[[!template text="""or days, get back to the actual rewriting and""" start="00:09:25.320" video="qanda-voice" id="subtitle"]]
+[[!template text="""editing.""" start="00:09:25.520" video="qanda-voice" id="subtitle"]]
+[[!template text="""[Speaker 0]: Cool. So this allows you to actually separate""" start="00:09:31.320" video="qanda-voice" id="subtitle"]]
+[[!template text="""those 2 activities, not only by time.""" start="00:09:33.640" video="qanda-voice" id="subtitle"]]
+[[!template text="""So many professional writers will spend""" start="00:09:36.840" video="qanda-voice" id="subtitle"]]
+[[!template text="""several hours in the morning doing the""" start="00:09:39.000" video="qanda-voice" id="subtitle"]]
+[[!template text="""generative part and then they'll spend the""" start="00:09:41.040" video="qanda-voice" id="subtitle"]]
+[[!template text="""rest of the day rewriting.""" start="00:09:41.920" video="qanda-voice" id="subtitle"]]
+[[!template text="""So they have separated those 2 activities""" start="00:09:46.000" video="qanda-voice" id="subtitle"]]
+[[!template text="""temporally. What most people actually do is,""" start="00:09:49.340" video="qanda-voice" id="subtitle"]]
+[[!template text="""you know, they do the generative part and""" start="00:09:51.540" video="qanda-voice" id="subtitle"]]
+[[!template text="""then they write 1 sentence and they apply""" start="00:09:53.300" video="qanda-voice" id="subtitle"]]
+[[!template text="""that internal editor right away because they""" start="00:09:55.460" video="qanda-voice" id="subtitle"]]
+[[!template text="""want to write the first draft in a perfect,""" start="00:09:57.720" video="qanda-voice" id="subtitle"]]
+[[!template text="""as a perfect version as the final draft And""" start="00:10:02.400" video="qanda-voice" id="subtitle"]]
+[[!template text="""that slows them down dramatically.""" start="00:10:03.840" video="qanda-voice" id="subtitle"]]
+[[!template text="""But this also allows you to separate these 2""" start="00:10:08.160" video="qanda-voice" id="subtitle"]]
+[[!template text="""activities in terms of modality.""" start="00:10:10.320" video="qanda-voice" id="subtitle"]]
+[[!template text="""You're going to do the generative writing by""" start="00:10:13.940" video="qanda-voice" id="subtitle"]]
+[[!template text="""voice and the rewriting by keyboard.""" start="00:10:16.560" video="qanda-voice" id="subtitle"]]
+[[!template text="""So I think this is 1 way that many people can""" start="00:10:22.200" video="qanda-voice" id="subtitle"]]
+[[!template text="""get into using speech to text in a productive""" start="00:10:26.040" video="qanda-voice" id="subtitle"]]
+[[!template text="""way.""" start="00:10:26.640" video="qanda-voice" id="subtitle"]]
+[[!template text="""[Speaker 1]: Nice. Yeah, that sounds great.""" start="00:10:30.480" video="qanda-voice" id="subtitle"]]
+[[!template text="""Let's see. I think we have about 3 or 4""" start="00:10:33.940" video="qanda-voice" id="subtitle"]]
+[[!template text="""minutes live. So I think we have time for at""" start="00:10:37.840" video="qanda-voice" id="subtitle"]]
+[[!template text="""least another question.""" start="00:10:38.560" video="qanda-voice" id="subtitle"]]
+[[!template text="""Have you tried the chat GPT voice chat""" start="00:10:41.920" video="qanda-voice" id="subtitle"]]
+[[!template text="""interface? And if so, how has been your""" start="00:10:44.540" video="qanda-voice" id="subtitle"]]
+[[!template text="""experience of it? As someone experienced with""" start="00:10:47.020" video="qanda-voice" id="subtitle"]]
+[[!template text="""voice control, interested to hear your""" start="00:10:48.640" video="qanda-voice" id="subtitle"]]
+[[!template text="""thoughts, performance relative to the free""" start="00:10:51.940" video="qanda-voice" id="subtitle"]]
+[[!template text="""software tools in particular?""" start="00:10:52.960" video="qanda-voice" id="subtitle"]]
+[[!template text="""[Speaker 0]: I don't have much experience with that""" start="00:10:57.180" video="qanda-voice" id="subtitle"]]
+[[!template text="""particular software. I have used Whisper a""" start="00:11:01.320" video="qanda-voice" id="subtitle"]]
+[[!template text="""little bit. And so that's related.""" start="00:11:03.400" video="qanda-voice" id="subtitle"]]
+[[!template text="""And of course you have this problem of lag so""" start="00:11:10.260" video="qanda-voice" id="subtitle"]]
+[[!template text="""I find that it's a whisper is good for""" start="00:11:12.800" video="qanda-voice" id="subtitle"]]
+[[!template text="""spitting out a sentence you know maybe for a""" start="00:11:16.380" video="qanda-voice" id="subtitle"]]
+[[!template text="""doc string in a programming file.""" start="00:11:20.160" video="qanda-voice" id="subtitle"]]
+[[!template text="""But I find that it's very prone to""" start="00:11:26.060" video="qanda-voice" id="subtitle"]]
+[[!template text="""hallucinations. And I find myself spending""" start="00:11:30.060" video="qanda-voice" id="subtitle"]]
+[[!template text="""half my time deleting the hallucinations,""" start="00:11:32.720" video="qanda-voice" id="subtitle"]]
+[[!template text="""I feel like the net gain is diminished as a""" start="00:11:38.700" video="qanda-voice" id="subtitle"]]
+[[!template text="""result. There's not much of a net gain in""" start="00:11:41.580" video="qanda-voice" id="subtitle"]]
+[[!template text="""terms of what I'm getting out of it.""" start="00:11:43.340" video="qanda-voice" id="subtitle"]]
+[[!template text="""Whereas I really appreciate the high level of""" start="00:11:45.800" video="qanda-voice" id="subtitle"]]
+[[!template text="""accuracy that I'm getting from voice-in.""" start="00:11:48.780" video="qanda-voice" id="subtitle"]]
+[[!template text="""I would use Talon Voice for dictation,""" start="00:11:53.400" video="qanda-voice" id="subtitle"]]
+[[!template text="""but at this point, there's a significant""" start="00:11:56.680" video="qanda-voice" id="subtitle"]]
+[[!template text="""difference between the level of accuracy of""" start="00:12:00.440" video="qanda-voice" id="subtitle"]]
+[[!template text="""voice-in versus Talon voice.""" start="00:12:02.040" video="qanda-voice" id="subtitle"]]
+[[!template text="""It's large enough of a difference that I'll""" start="00:12:06.260" video="qanda-voice" id="subtitle"]]
+[[!template text="""probably use voice-in for a while until I can""" start="00:12:08.860" video="qanda-voice" id="subtitle"]]
+[[!template text="""figure out how to get town voice to generate""" start="00:12:12.700" video="qanda-voice" id="subtitle"]]
+[[!template text="""more accurate text.""" start="00:12:15.080" video="qanda-voice" id="subtitle"]]
+[[!template text="""[Speaker 1]: Cool. Thank you. I think we have at least""" start="00:12:25.400" video="qanda-voice" id="subtitle"]]
+[[!template text="""another 2 or 3 minutes.""" start="00:12:26.580" video="qanda-voice" id="subtitle"]]
+[[!template text="""So if folks have any other questions Please""" start="00:12:29.100" video="qanda-voice" id="subtitle"]]
+[[!template text="""feel free to post them on the pad and I'll""" start="00:12:31.080" video="qanda-voice" id="subtitle"]]
+[[!template text="""check IRC now as well.""" start="00:12:32.560" video="qanda-voice" id="subtitle"]]
+[[!template text="""Right, so I see 1 question on IRC asking,""" start="00:12:44.340" video="qanda-voice" id="subtitle"]]
+[[!template text="""Are any of these voice command slash""" start="00:12:47.080" video="qanda-voice" id="subtitle"]]
+[[!template text="""dictating dictation tools free Libre""" start="00:12:49.600" video="qanda-voice" id="subtitle"]]
+[[!template text="""software? They cannot find that information""" start="00:12:52.260" video="qanda-voice" id="subtitle"]]
+[[!template text="""Which I think is part of it.""" start="00:12:54.840" video="qanda-voice" id="subtitle"]]
+[[!template text="""You just mentioned""" start="00:12:55.320" video="qanda-voice" id="subtitle"]]
+[[!template text="""[Speaker 0]: the voice in software.""" start="00:12:57.280" video="qanda-voice" id="subtitle"]]
+[[!template text="""There's It's a freemium so The answer is no""" start="00:13:03.260" video="qanda-voice" id="subtitle"]]
+[[!template text="""To be able to add the commands,""" start="00:13:05.640" video="qanda-voice" id="subtitle"]]
+[[!template text="""the custom commands, you have to pay $48 a""" start="00:13:09.000" video="qanda-voice" id="subtitle"]]
+[[!template text="""year. The Talon Voice software is free.""" start="00:13:12.040" video="qanda-voice" id="subtitle"]]
+[[!template text="""And the only limitation there is access to""" start="00:13:20.080" video="qanda-voice" id="subtitle"]]
+[[!template text="""the language model. If you want to get the""" start="00:13:23.560" video="qanda-voice" id="subtitle"]]
+[[!template text="""beta version, you need to subscribe to""" start="00:13:26.720" video="qanda-voice" id="subtitle"]]
+[[!template text="""Patreon to help support the developer.""" start="00:13:30.820" video="qanda-voice" id="subtitle"]]
+[[!template text="""And I found, I did do that and I really""" start="00:13:36.180" video="qanda-voice" id="subtitle"]]
+[[!template text="""didn't find much of an improvement.""" start="00:13:37.400" video="qanda-voice" id="subtitle"]]
+[[!template text="""So I really don't intend to do that in the""" start="00:13:43.620" video="qanda-voice" id="subtitle"]]
+[[!template text="""future. But otherwise,""" start="00:13:47.100" video="qanda-voice" id="subtitle"]]
+[[!template text="""Town Voice, everything is open and free,""" start="00:13:50.680" video="qanda-voice" id="subtitle"]]
+[[!template text="""and the Slack community is incredibly""" start="00:13:54.380" video="qanda-voice" id="subtitle"]]
+[[!template text="""welcoming. The parallels with the Emacs""" start="00:13:58.340" video="qanda-voice" id="subtitle"]]
+[[!template text="""community are pretty striking.""" start="00:14:00.060" video="qanda-voice" id="subtitle"]]
+[[!template text="""[Speaker 1]: Excellent, thank you. Okay,""" start="00:14:09.520" video="qanda-voice" id="subtitle"]]
+[[!template text="""I think we have about another minute on the""" start="00:14:11.800" video="qanda-voice" id="subtitle"]]
+[[!template text="""live stream, but I believe the big blue""" start="00:14:13.780" video="qanda-voice" id="subtitle"]]
+[[!template text="""button room here is open and will be open,""" start="00:14:16.560" video="qanda-voice" id="subtitle"]]
+[[!template text="""So if folks want to join,""" start="00:14:19.860" video="qanda-voice" id="subtitle"]]
+[[!template text="""if Blaine maybe has a couple of extra""" start="00:14:21.840" video="qanda-voice" id="subtitle"]]
+[[!template text="""minutes. Awesome. Yeah,""" start="00:14:24.680" video="qanda-voice" id="subtitle"]]
+[[!template text="""then you're welcome to join and chat with""" start="00:14:26.580" video="qanda-voice" id="subtitle"]]
+[[!template text="""Blaine and ask any further questions or just""" start="00:14:28.980" video="qanda-voice" id="subtitle"]]
+[[!template text="""do general chatting. Chatting.""" start="00:14:30.060" video="qanda-voice" id="subtitle"]]
+[[!template text="""[Speaker 0]: So I see a question. How good is Talon""" start="00:14:44.020" video="qanda-voice" id="subtitle"]]
+[[!template text="""compared to Whisper? So with Talon,""" start="00:14:53.040" video="qanda-voice" id="subtitle"]]
+[[!template text="""I find that the first part of the sentence""" start="00:14:55.380" video="qanda-voice" id="subtitle"]]
+[[!template text="""will be fairly accurate and then when I'm""" start="00:15:00.620" video="qanda-voice" id="subtitle"]]
+[[!template text="""doing dictation And then towards the end,""" start="00:15:03.480" video="qanda-voice" id="subtitle"]]
+[[!template text="""the errors start to accumulate.""" start="00:15:05.640" video="qanda-voice" id="subtitle"]]
+[[!template text="""So in general, I think it's error rate is""" start="00:15:09.520" video="qanda-voice" id="subtitle"]]
+[[!template text="""about 5 words out of a hundred or so will be""" start="00:15:12.880" video="qanda-voice" id="subtitle"]]
+[[!template text="""wrong. And whisper, Whisper is wonderful""" start="00:15:17.560" video="qanda-voice" id="subtitle"]]
+[[!template text="""because it will insert punctuation for you.""" start="00:15:21.000" video="qanda-voice" id="subtitle"]]
+[[!template text="""But I guess its errors are longer and that""" start="00:15:26.120" video="qanda-voice" id="subtitle"]]
+[[!template text="""it'll hallucinate full sentences for you.""" start="00:15:28.740" video="qanda-voice" id="subtitle"]]
+[[!template text="""So they both have significant error rates.""" start="00:15:35.460" video="qanda-voice" id="subtitle"]]
+[[!template text="""They're just different kinds of errors.""" start="00:15:37.280" video="qanda-voice" id="subtitle"]]
+[[!template text="""[Speaker 1]: Interesting.""" start="00:15:42.340" video="qanda-voice" id="subtitle"]]
+[[!template text="""[Speaker 0]: Hopefully both will improve over time.""" start="00:15:49.000" video="qanda-voice" id="subtitle"]]
+[[!template text="""Right.""" start="00:15:50.740" video="qanda-voice" id="subtitle"]]
+[[!template text="""Let's see. There's a question.""" start="00:16:04.620" video="qanda-voice" id="subtitle"]]
+[[!template text="""Are the green block the author for this talk?""" start="00:16:09.060" video="qanda-voice" id="subtitle"]]
+[[!template text="""Not sure what that question means.""" start="00:16:13.380" video="qanda-voice" id="subtitle"]]
+[[!template text="""[Speaker 1]: Well, there is a green block of text that's I""" start="00:16:19.180" video="qanda-voice" id="subtitle"]]
+[[!template text="""think being generated from voice to text,""" start="00:16:22.540" video="qanda-voice" id="subtitle"]]
+[[!template text="""speech to text. At the top of the pad,""" start="00:16:25.560" video="qanda-voice" id="subtitle"]]
+[[!template text="""I think that's the question.""" start="00:16:26.500" video="qanda-voice" id="subtitle"]]
+[[!template text="""[Speaker 0]: So I have this Voicens software operating on""" start="00:16:40.060" video="qanda-voice" id="subtitle"]]
+[[!template text="""this GitHub, on this 750words.com""" start="00:16:43.080" video="qanda-voice" id="subtitle"]]
+[[!template text="""site where I do my generative writing at the""" start="00:16:51.960" video="qanda-voice" id="subtitle"]]
+[[!template text="""start of the day. And it just provides a text""" start="00:16:57.340" video="qanda-voice" id="subtitle"]]
+[[!template text="""area that's free of distractions.""" start="00:16:59.600" video="qanda-voice" id="subtitle"]]
+[[!template text="""And you can see the text that's being""" start="00:17:03.220" video="qanda-voice" id="subtitle"]]
+[[!template text="""recorded as I talk. I haven't been saying the""" start="00:17:08.440" video="qanda-voice" id="subtitle"]]
+[[!template text="""command new sentence, so there isn't any""" start="00:17:12.440" video="qanda-voice" id="subtitle"]]
+[[!template text="""punctuation over our discourse.""" start="00:17:15.980" video="qanda-voice" id="subtitle"]]
+[[!template text="""1 thing that I do at the start of the day is""" start="00:17:24.380" video="qanda-voice" id="subtitle"]]
+[[!template text="""I like to write in LaTeX.""" start="00:17:27.440" video="qanda-voice" id="subtitle"]]
+[[!template text="""Ultimately, that's how I store my writing.""" start="00:17:33.600" video="qanda-voice" id="subtitle"]]
+[[!template text="""So new sentence, new sentence.""" start="00:17:37.500" video="qanda-voice" id="subtitle"]]
+[[!template text="""See, insert start day.""" start="00:17:51.680" video="qanda-voice" id="subtitle"]]
+[[!template text="""So This is an example of a chunk of LaTeX""" start="00:17:58.960" video="qanda-voice" id="subtitle"]]
+[[!template text="""code. So I have some reflections on,""" start="00:18:02.620" video="qanda-voice" id="subtitle"]]
+[[!template text="""you know, what did I wake up this morning?""" start="00:18:04.640" video="qanda-voice" id="subtitle"]]
+[[!template text="""And how do I feel? I have reflections on the""" start="00:18:08.000" video="qanda-voice" id="subtitle"]]
+[[!template text="""prior day in terms of what did I get done""" start="00:18:10.680" video="qanda-voice" id="subtitle"]]
+[[!template text="""yesterday? Do I remember what I did""" start="00:18:12.240" video="qanda-voice" id="subtitle"]]
+[[!template text="""yesterday? What happened last night?""" start="00:18:14.140" video="qanda-voice" id="subtitle"]]
+[[!template text="""Focus of today. What's to be done today?""" start="00:18:16.940" video="qanda-voice" id="subtitle"]]
+[[!template text="""And so on. So I actually,""" start="00:18:23.180" video="qanda-voice" id="subtitle"]]
+[[!template text="""I think I have more down here.""" start="00:18:24.840" video="qanda-voice" id="subtitle"]]
+[[!template text="""Then I've set up these lists so that I can""" start="00:18:31.420" video="qanda-voice" id="subtitle"]]
+[[!template text="""expand them easily. If I say item,""" start="00:18:33.760" video="qanda-voice" id="subtitle"]]
+[[!template text="""then the cursor shows up at the start of an""" start="00:18:40.720" video="qanda-voice" id="subtitle"]]
+[[!template text="""item. And I have it coded so that that new""" start="00:18:45.600" video="qanda-voice" id="subtitle"]]
+[[!template text="""phrase that I speak will start with a capital""" start="00:18:48.700" video="qanda-voice" id="subtitle"]]
+[[!template text="""letter. As you can see,""" start="00:18:52.480" video="qanda-voice" id="subtitle"]]
+[[!template text="""so capitalize the word and.""" start="00:18:54.520" video="qanda-voice" id="subtitle"]]
+[[!template text="""So in spite of its rather limited command""" start="00:19:02.860" video="qanda-voice" id="subtitle"]]
+[[!template text="""syntax, There's some, it's enough to get""" start="00:19:06.000" video="qanda-voice" id="subtitle"]]
+[[!template text="""started and maybe in the future,""" start="00:19:08.000" video="qanda-voice" id="subtitle"]]
+[[!template text="""they'll add more features.""" start="00:19:09.360" video="qanda-voice" id="subtitle"]]
+[[!template text="""[Speaker 1]: Cool, that's neat.""" start="00:19:14.540" video="qanda-voice" id="subtitle"]]
+[[!template text="""[Speaker 0]: So I think this is very helpful for,""" start="00:19:21.440" video="qanda-voice" id="subtitle"]]
+[[!template text="""you know, doing things like expanding the""" start="00:19:28.840" video="qanda-voice" id="subtitle"]]
+[[!template text="""names of people. So you can do set up""" start="00:19:32.780" video="qanda-voice" id="subtitle"]]
+[[!template text="""commands like expand the name of a colleague""" start="00:19:36.100" video="qanda-voice" id="subtitle"]]
+[[!template text="""to go from their first name to their full""" start="00:19:40.520" video="qanda-voice" id="subtitle"]]
+[[!template text="""name with a proper spelling of their last""" start="00:19:42.900" video="qanda-voice" id="subtitle"]]
+[[!template text="""name, which, you know,""" start="00:19:45.240" video="qanda-voice" id="subtitle"]]
+[[!template text="""you can wind up spending a lot of time trying""" start="00:19:47.420" video="qanda-voice" id="subtitle"]]
+[[!template text="""to look that up. And so this voice in with""" start="00:19:53.400" video="qanda-voice" id="subtitle"]]
+[[!template text="""the custom commands enables you to store hard""" start="00:19:57.560" video="qanda-voice" id="subtitle"]]
+[[!template text="""to remember information like that.""" start="00:19:59.540" video="qanda-voice" id="subtitle"]]
+[[!template text="""[Speaker 1]: Great. I see another question.""" start="00:20:08.040" video="qanda-voice" id="subtitle"]]
+[[!template text="""How good is Talon compared to Whisper?""" start="00:20:11.140" video="qanda-voice" id="subtitle"]]
+[[!template text="""I think you might have answered that already,""" start="00:20:13.140" video="qanda-voice" id="subtitle"]]
+[[!template text="""at least partially, but...""" start="00:20:14.380" video="qanda-voice" id="subtitle"]]
+[[!template text="""[Speaker 0]: Right, yeah. I talked about how it seems that""" start="00:20:19.860" video="qanda-voice" id="subtitle"]]
+[[!template text="""Whisperer will carry out hallucinations,""" start="00:20:22.580" video="qanda-voice" id="subtitle"]]
+[[!template text="""so it will generate long tracks of error,""" start="00:20:26.280" video="qanda-voice" id="subtitle"]]
+[[!template text="""whereas Talon will tend to generate more""" start="00:20:30.340" video="qanda-voice" id="subtitle"]]
+[[!template text="""errors towards the ends of sentences,""" start="00:20:31.960" video="qanda-voice" id="subtitle"]]
+[[!template text="""in my experience. And the errors are""" start="00:20:36.820" video="qanda-voice" id="subtitle"]]
+[[!template text="""generally shorter in extent.""" start="00:20:37.960" video="qanda-voice" id="subtitle"]]
+[[!template text="""It doesn't hallucinate for long tracks.""" start="00:20:42.180" video="qanda-voice" id="subtitle"]]
+[[!template text="""[Speaker 1]: Great. Okay, I think that's all the questions""" start="00:20:50.660" video="qanda-voice" id="subtitle"]]
+[[!template text="""that we have on the pad.""" start="00:20:51.760" video="qanda-voice" id="subtitle"]]
+[[!template text="""If folks want to join here on Big Blue Button""" start="00:20:54.720" video="qanda-voice" id="subtitle"]]
+[[!template text="""for a few minutes and chat with Blaine,""" start="00:20:56.680" video="qanda-voice" id="subtitle"]]
+[[!template text="""that also works. Let's see,""" start="00:21:00.260" video="qanda-voice" id="subtitle"]]
+[[!template text="""I'm probably going to have to drop in a few""" start="00:21:02.080" video="qanda-voice" id="subtitle"]]
+[[!template text="""minutes to catch the next speaker.""" start="00:21:03.900" video="qanda-voice" id="subtitle"]]
+[[!template text="""But many thanks, Blaine,""" start="00:21:07.860" video="qanda-voice" id="subtitle"]]
+[[!template text="""for a great talk and for the interesting""" start="00:21:09.520" video="qanda-voice" id="subtitle"]]
+[[!template text="""demos and the question and answer.""" start="00:21:11.180" video="qanda-voice" id="subtitle"]]
+[[!template text="""[Speaker 0]: Thank you very much for hosting this.""" start="00:21:14.700" video="qanda-voice" id="subtitle"]]
+[[!template text="""[Speaker 1]: I appreciate it. glad to have you.""" start="00:21:16.640" video="qanda-voice" id="subtitle"]]
+[[!template text="""[Speaker 0]: Cheers, Yeah, this is really amazing to hold""" start="00:21:25.680" video="qanda-voice" id="subtitle"]]
+[[!template text="""this conference with people from all around""" start="00:21:28.740" video="qanda-voice" id="subtitle"]]
+[[!template text="""the world connected together through web""" start="00:21:34.660" video="qanda-voice" id="subtitle"]]
+[[!template text="""browsers.""" start="00:21:34.940" video="qanda-voice" id="subtitle"]]
+[[!template text="""[Speaker 1]: Yeah, it's very neat what technology can do""" start="00:21:41.020" video="qanda-voice" id="subtitle"]]
+[[!template text="""if and when it's working correctly.""" start="00:21:42.400" video="qanda-voice" id="subtitle"]]
+[[!template text="""[Speaker 0]: I know it can be a little frustrating at""" start="00:21:47.680" video="qanda-voice" id="subtitle"]]
+[[!template text="""times, but when it's working,""" start="00:21:48.760" video="qanda-voice" id="subtitle"]]
+[[!template text="""it's wonderful. Yep.""" start="00:21:54.740" video="qanda-voice" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Start of section to review""" start="00:21:59.540" video="qanda-voice" id="subtitle"]]</div>[[!template text="""[Speaker 2]: Good purpose of computers is all the""" start="00:21:59.540" video="qanda-voice" id="subtitle"]]
+[[!template text="""computers run the same code,""" start="00:22:01.100" video="qanda-voice" id="subtitle"]]
+[[!template text="""so that people, you know,""" start="00:22:03.460" video="qanda-voice" id="subtitle"]]
+[[!template text="""a lot of people work on the same thing and""" start="00:22:05.740" video="qanda-voice" id="subtitle"]]
+[[!template text="""build upon each other's works.""" start="00:22:08.360" video="qanda-voice" id="subtitle"]]
+[[!template text="""For journaling I found 1 good compromise""" start="00:22:16.460" video="qanda-voice" id="subtitle"]]
+[[!template text="""between editing and stream-of-thought""" start="00:22:18.204" video="qanda-voice" id="subtitle"]]
+[[!template text="""journaling. 1 good compromise between editing""" start="00:22:19.548" video="qanda-voice" id="subtitle"]]
+[[!template text="""and stream of thought journaling.""" start="00:22:20.680" video="qanda-voice" id="subtitle"]]
+[[!template text="""1 good compromise between editing and being""" start="00:22:23.940" video="qanda-voice" id="subtitle"]]
+[[!template text="""able to do it again and just kind of helps me""" start="00:22:26.980" video="qanda-voice" id="subtitle"]]
+[[!template text="""do my thoughts even when I do it is when you""" start="00:22:31.160" video="qanda-voice" id="subtitle"]]
+[[!template text="""do org mode and you have the bullets it kind""" start="00:22:33.180" video="qanda-voice" id="subtitle"]]
+[[!template text="""of allows you to naturally chart your""" start="00:22:35.280" video="qanda-voice" id="subtitle"]]
+[[!template text="""thoughts in a way that's really easy to edit""" start="00:22:38.800" video="qanda-voice" id="subtitle"]]
+[[!template text="""reorder I saw you kind of did that with your""" start="00:22:41.880" video="qanda-voice" id="subtitle"]]
+[[!template text="""mac la tech macro where you said item and it""" start="00:22:47.160" video="qanda-voice" id="subtitle"]]
+[[!template text="""would put you down to the next item.""" start="00:22:48.680" video="qanda-voice" id="subtitle"]]
+[[!template text="""Does... How much do you do stuff like that?""" start="00:22:56.500" video="qanda-voice" id="subtitle"]]
+[[!template text="""How much do you do stuff like that where you""" start="00:23:00.720" video="qanda-voice" id="subtitle"]]
+[[!template text="""use like org mode headings and then you""" start="00:23:04.700" video="qanda-voice" id="subtitle"]]
+[[!template text="""reorder them because like I did that with""" start="00:23:07.000" video="qanda-voice" id="subtitle"]]
+[[!template text="""also the K outline from HyperBolt package for""" start="00:23:10.080" video="qanda-voice" id="subtitle"]]
+[[!template text="""the for Emacs org mode later on after the""" start="00:23:15.140" video="qanda-voice" id="subtitle"]]
+[[!template text="""[Speaker 0]: stream. Yes. So I could actually set this up""" start="00:23:21.880" video="qanda-voice" id="subtitle"]]
+[[!template text="""so I have a lot of snippets for Org Mode.""" start="00:23:26.800" video="qanda-voice" id="subtitle"]]
+[[!template text="""I could have Org Mode version of my insert""" start="00:23:30.720" video="qanda-voice" id="subtitle"]]
+[[!template text="""start day snippet and carry things out in org""" start="00:23:34.600" video="qanda-voice" id="subtitle"]]
+[[!template text="""mode. So I use org mode from time to time.""" start="00:23:39.920" video="qanda-voice" id="subtitle"]]
+[[!template text="""I often use it for the purpose of writing""" start="00:23:43.480" video="qanda-voice" id="subtitle"]]
+[[!template text="""readme files for projects to outline the""" start="00:23:47.780" video="qanda-voice" id="subtitle"]]
+[[!template text="""purpose of the project,""" start="00:23:48.700" video="qanda-voice" id="subtitle"]]
+[[!template text="""and say for a director that contains a coding""" start="00:23:54.900" video="qanda-voice" id="subtitle"]]
+[[!template text="""project. And I think this would,""" start="00:24:01.620" video="qanda-voice" id="subtitle"]]
+[[!template text="""so the main limitation of VoiceIn is it only""" start="00:24:07.300" video="qanda-voice" id="subtitle"]]
+[[!template text="""works in a web page and you have to have an""" start="00:24:10.600" video="qanda-voice" id="subtitle"]]
+[[!template text="""Internet connection, whereas Talon voice is""" start="00:24:14.180" video="qanda-voice" id="subtitle"]]
+[[!template text="""perfect for something like org mode in that""" start="00:24:17.220" video="qanda-voice" id="subtitle"]]
+[[!template text="""you don't need an internet connection and it""" start="00:24:20.200" video="qanda-voice" id="subtitle"]]
+[[!template text="""will operate anywhere that you can place a""" start="00:24:22.940" video="qanda-voice" id="subtitle"]]
+[[!template text="""cursor. I haven't found a place where it""" start="00:24:24.840" video="qanda-voice" id="subtitle"]]
+[[!template text="""doesn't work. It's amazing.""" start="00:24:26.760" video="qanda-voice" id="subtitle"]]
+[[!template text="""So as you saw my talk,""" start="00:24:28.860" video="qanda-voice" id="subtitle"]]
+[[!template text="""perhaps You can run it in a terminal or a""" start="00:24:35.400" video="qanda-voice" id="subtitle"]]
+[[!template text="""remote computer. You can run it in a virtual""" start="00:24:38.320" video="qanda-voice" id="subtitle"]]
+[[!template text="""[Speaker 2]: Oh yeah, it's definitely.""" start="00:24:44.120" video="qanda-voice" id="subtitle"]]
+[[!template text="""[Speaker 0]: machine. If you can put your cursor there,""" start="00:24:45.760" video="qanda-voice" id="subtitle"]]
+[[!template text="""it will work. And so as you might imagine,""" start="00:24:50.820" video="qanda-voice" id="subtitle"]]
+[[!template text="""if you use bash aliases,""" start="00:24:52.720" video="qanda-voice" id="subtitle"]]
+[[!template text="""I've worked for, 1 of the first things I did""" start="00:24:55.920" video="qanda-voice" id="subtitle"]]
+[[!template text="""was map Talend commands to bash aliases so""" start="00:25:00.720" video="qanda-voice" id="subtitle"]]
+[[!template text="""that I can do all kinds of crazy things""" start="00:25:02.800" video="qanda-voice" id="subtitle"]]
+[[!template text="""inside of the terminal.""" start="00:25:04.200" video="qanda-voice" id="subtitle"]]
+[[!template text="""And there are, you know,""" start="00:25:12.040" video="qanda-voice" id="subtitle"]]
+[[!template text="""there's some support already for using Talon""" start="00:25:15.260" video="qanda-voice" id="subtitle"]]
+[[!template text="""in Emacs. There's some Emacs functionality""" start="00:25:20.280" video="qanda-voice" id="subtitle"]]
+[[!template text="""that's built into Talon.""" start="00:25:21.960" video="qanda-voice" id="subtitle"]]
+[[!template text="""So when you are in Emacs,""" start="00:25:25.160" video="qanda-voice" id="subtitle"]]
+[[!template text="""there's some features that are automatically""" start="00:25:27.100" video="qanda-voice" id="subtitle"]]
+[[!template text="""available. And then others have developed or""" start="00:25:30.520" video="qanda-voice" id="subtitle"]]
+[[!template text="""are developing packages,""" start="00:25:32.320" video="qanda-voice" id="subtitle"]]
+[[!template text="""which I don't think are available yet in""" start="00:25:34.920" video="qanda-voice" id="subtitle"]]
+[[!template text="""ELPA. There's 1 that does the font locking or""" start="00:25:40.240" video="qanda-voice" id="subtitle"]]
+[[!template text="""syntax highlighting of Talon files,""" start="00:25:42.780" video="qanda-voice" id="subtitle"]]
+[[!template text="""and another that adds some additional""" start="00:25:46.240" video="qanda-voice" id="subtitle"]]
+[[!template text="""functionality that I'm regrettably not yet""" start="00:25:50.380" video="qanda-voice" id="subtitle"]]
+[[!template text="""familiar with.""" start="00:25:51.440" video="qanda-voice" id="subtitle"]]
+[[!template text="""[Speaker 2]: Well, as an example with like how the""" start="00:25:55.680" video="qanda-voice" id="subtitle"]]
+[[!template text="""sharding of the thoughts,""" start="00:25:56.760" video="qanda-voice" id="subtitle"]]
+[[!template text="""like let's say, oh, how has my day went?""" start="00:25:59.800" video="qanda-voice" id="subtitle"]]
+[[!template text="""It's went good for reasons 123,""" start="00:26:01.980" video="qanda-voice" id="subtitle"]]
+[[!template text="""and bad for reasons ABC.""" start="00:26:04.860" video="qanda-voice" id="subtitle"]]
+[[!template text="""And then later on, I might think,""" start="00:26:07.828" video="qanda-voice" id="subtitle"]]
+[[!template text="""oh, there's an, I also,""" start="00:26:08.460" video="qanda-voice" id="subtitle"]]
+[[!template text="""my day went good for reasons 456,""" start="00:26:10.520" video="qanda-voice" id="subtitle"]]
+[[!template text="""then you, I can, then you jump up.""" start="00:26:14.540" video="qanda-voice" id="subtitle"]]
+[[!template text="""And so the, like I found like,""" start="00:26:18.520" video="qanda-voice" id="subtitle"]]
+[[!template text="""yeah, the org mode subheadings,""" start="00:26:19.760" video="qanda-voice" id="subtitle"]]
+[[!template text="""because you're able to jump around,""" start="00:26:21.980" video="qanda-voice" id="subtitle"]]
+[[!template text="""easily reorder them after the fact,""" start="00:26:25.040" video="qanda-voice" id="subtitle"]]
+[[!template text="""the very streamlined approach to the stream""" start="00:26:32.520" video="qanda-voice" id="subtitle"]]
+[[!template text="""of thought and the editing.""" start="00:26:33.620" video="qanda-voice" id="subtitle"]]
+[[!template text="""[Speaker 0]: That's right, extremely powerful.""" start="00:26:38.800" video="qanda-voice" id="subtitle"]]
+[[!template text="""[Speaker 2]: And even with the stream of thought,""" start="00:26:41.200" video="qanda-voice" id="subtitle"]]
+[[!template text="""just because like, even when you're editing""" start="00:26:44.060" video="qanda-voice" id="subtitle"]]
+[[!template text="""that in real time, like,""" start="00:26:45.200" video="qanda-voice" id="subtitle"]]
+[[!template text="""oh, wait a minute, I thought of another""" start="00:26:47.320" video="qanda-voice" id="subtitle"]]
+[[!template text="""reason that my day went good,""" start="00:26:48.960" video="qanda-voice" id="subtitle"]]
+[[!template text="""even though I was talking about how it was""" start="00:26:50.640" video="qanda-voice" id="subtitle"]]
+[[!template text="""going bad now. So you jump up.""" start="00:26:52.760" video="qanda-voice" id="subtitle"]]
+[[!template text="""And then you do that. And then you have it.""" start="00:26:55.680" video="qanda-voice" id="subtitle"]]
+[[!template text="""You easily summarize your thoughts and""" start="00:26:59.540" video="qanda-voice" id="subtitle"]]
+[[!template text="""whatnot.""" start="00:27:00.060" video="qanda-voice" id="subtitle"]]
+[[!template text="""[Speaker 0]: That's right. And I think org mode is really""" start="00:27:07.200" video="qanda-voice" id="subtitle"]]
+[[!template text="""ideal for that kind of interact.""" start="00:27:11.680" video="qanda-voice" id="subtitle"]]
+[[!template text="""So yeah, I see your point in terms of that""" start="00:27:15.240" video="qanda-voice" id="subtitle"]]
+[[!template text="""sort of a blend of generative writing and""" start="00:27:18.760" video="qanda-voice" id="subtitle"]]
+[[!template text="""editing. And it's also kind of parallel to""" start="00:27:23.440" video="qanda-voice" id="subtitle"]]
+[[!template text="""mind mapping. I use this mind mapping""" start="00:27:27.240" video="qanda-voice" id="subtitle"]]
+[[!template text="""software called iThoughtsX where I'll""" start="00:27:32.660" video="qanda-voice" id="subtitle"]]
+[[!template text="""generate all these children items,""" start="00:27:36.760" video="qanda-voice" id="subtitle"]]
+[[!template text="""and then I'll drag them around and resort""" start="00:27:40.040" video="qanda-voice" id="subtitle"]]
+[[!template text="""them. And they can have children of their own""" start="00:27:46.680" video="qanda-voice" id="subtitle"]]
+[[!template text="""and grandchildren and so on,""" start="00:27:48.940" video="qanda-voice" id="subtitle"]]
+[[!template text="""in terms of the levels of the nodes.""" start="00:27:50.800" video="qanda-voice" id="subtitle"]]
+[[!template text="""And it's pretty much the same sort of thing""" start="00:27:54.920" video="qanda-voice" id="subtitle"]]
+[[!template text="""with a nested hierarchy that you can have""" start="00:27:57.560" video="qanda-voice" id="subtitle"]]
+[[!template text="""with org mode. I think having several""" start="00:28:02.660" video="qanda-voice" id="subtitle"]]
+[[!template text="""alternate modes or modalities of playing with""" start="00:28:09.900" video="qanda-voice" id="subtitle"]]
+[[!template text="""thoughts is useful. So sometimes I'll hit a""" start="00:28:13.100" video="qanda-voice" id="subtitle"]]
+[[!template text="""wall and we're just not really generating""" start="00:28:17.180" video="qanda-voice" id="subtitle"]]
+[[!template text="""anything in a text mode.""" start="00:28:21.260" video="qanda-voice" id="subtitle"]]
+[[!template text="""But if I switch to using the mind mapping,""" start="00:28:25.000" video="qanda-voice" id="subtitle"]]
+[[!template text="""just seeing it arranged with the connecting""" start="00:28:30.040" video="qanda-voice" id="subtitle"]]
+[[!template text="""lines plays on a different part of the brain,""" start="00:28:34.920" video="qanda-voice" id="subtitle"]]
+[[!template text="""I think, and it can be incredibly""" start="00:28:37.640" video="qanda-voice" id="subtitle"]]
+[[!template text="""stimulatory. It can stimulate a lot of new""" start="00:28:40.600" video="qanda-voice" id="subtitle"]]
+[[!template text="""[Speaker 2]: That's something that I haven't messed around""" start="00:28:43.480" video="qanda-voice" id="subtitle"]]
+[[!template text="""too much with is the mind mapping software,""" start="00:28:45.400" video="qanda-voice" id="subtitle"]]
+[[!template text="""but...""" start="00:28:45.980" video="qanda-voice" id="subtitle"]]
+[[!template text="""[Speaker 0]: thoughts. Because the closest thing that we""" start="00:28:51.600" video="qanda-voice" id="subtitle"]]
+[[!template text="""have to it in Emacs is Orgrimm in the in""" start="00:28:56.400" video="qanda-voice" id="subtitle"]]
+[[!template text="""terms of like the 3D visualization of with""" start="00:29:00.860" video="qanda-voice" id="subtitle"]]
+[[!template text="""Orgrimm GUI or""" start="00:29:03.720" video="qanda-voice" id="subtitle"]]
+[[!template text="""[Speaker 2]: UI. As well as being able to generate SVG""" start="00:29:10.120" video="qanda-voice" id="subtitle"]]
+[[!template text="""diagrams and stuff like that,""" start="00:29:12.800" video="qanda-voice" id="subtitle"]]
+[[!template text="""I think those 2 things would allow you stuff""" start="00:29:16.980" video="qanda-voice" id="subtitle"]]
+[[!template text="""like Orgrimm or denote And then the diagrams""" start="00:29:20.240" video="qanda-voice" id="subtitle"]]
+[[!template text="""would be the good ways of doing that in""" start="00:29:23.160" video="qanda-voice" id="subtitle"]]
+[[!template text="""Emacs, but they don't have the mind map""" start="00:29:25.200" video="qanda-voice" id="subtitle"]]
+[[!template text="""programs as well.""" start="00:29:27.160" video="qanda-voice" id="subtitle"]]
+[[!template text="""[Speaker 0]: They're not as well developed.""" start="00:29:30.140" video="qanda-voice" id="subtitle"]]
+[[!template text="""There are a couple mind mapping packages,""" start="00:29:32.740" video="qanda-voice" id="subtitle"]]
+[[!template text="""but they're not as advanced.""" start="00:29:37.200" video="qanda-voice" id="subtitle"]]
+[[!template text="""[Speaker 2]: The best ones were JavaScript web page that""" start="00:29:41.920" video="qanda-voice" id="subtitle"]]
+[[!template text="""it that Emacs interacted with.""" start="00:29:43.840" video="qanda-voice" id="subtitle"]]
+[[!template text="""Very well. And so they kind of,""" start="00:29:46.180" video="qanda-voice" id="subtitle"]]
+[[!template text="""you know, worked around and had a little.""" start="00:29:49.120" video="qanda-voice" id="subtitle"]]
+[[!template text="""Integration with the 2.""" start="00:29:51.620" video="qanda-voice" id="subtitle"]]
+[[!template text="""So when you be jumping around your.""" start="00:29:53.420" video="qanda-voice" id="subtitle"]]
+[[!template text="""When you'd be clicking on the web page it""" start="00:29:56.200" video="qanda-voice" id="subtitle"]]
+[[!template text="""would be pointing you to different places and""" start="00:29:59.300" video="qanda-voice" id="subtitle"]]
+[[!template text="""buffers okay like those are those the There's""" start="00:30:07.060" video="qanda-voice" id="subtitle"]]
+[[!template text="""an like org-roam node program where it kind""" start="00:30:11.480" video="qanda-voice" id="subtitle"]]
+[[!template text="""of shows the looks like a mind map.""" start="00:30:13.360" video="qanda-voice" id="subtitle"]]
+[[!template text="""You can click and drag them a little bit,""" start="00:30:17.820" video="qanda-voice" id="subtitle"]]
+[[!template text="""so it's a little interactive.""" start="00:30:18.680" video="qanda-voice" id="subtitle"]]
+[[!template text="""[Speaker 0]: Yeah, I'm not familiar with that.""" start="00:30:27.980" video="qanda-voice" id="subtitle"]]
+[[!template text="""I'll have to look into that.""" start="00:30:30.160" video="qanda-voice" id="subtitle"]]
+[[!template text="""That sounds very interesting.""" start="00:30:32.240" video="qanda-voice" id="subtitle"]]
+[[!template text="""[Speaker 2]: I found that I didn't know better,""" start="00:30:36.820" video="qanda-voice" id="subtitle"]]
+[[!template text="""though, than Org-ROM, so it doesn't.""" start="00:30:38.560" video="qanda-voice" id="subtitle"]]
+[[!template text="""[Speaker 0]: Why is that?""" start="00:30:43.320" video="qanda-voice" id="subtitle"]]
+[[!template text="""[Speaker 2]: Well, 1 of the things I'm,""" start="00:30:47.080" video="qanda-voice" id="subtitle"]]
+[[!template text="""I want to be able to, I don't like the""" start="00:30:51.600" video="qanda-voice" id="subtitle"]]
+[[!template text="""feeling of being trapped inside org-mode""" start="00:30:53.200" video="qanda-voice" id="subtitle"]]
+[[!template text="""documents. Like I want to be able to write,""" start="00:30:56.040" video="qanda-voice" id="subtitle"]]
+[[!template text="""even though I don't really use Markdown and I""" start="00:30:58.940" video="qanda-voice" id="subtitle"]]
+[[!template text="""like org-mode better than that.""" start="00:31:00.800" video="qanda-voice" id="subtitle"]]
+[[!template text="""Like for instance, I also use the Koutline""" start="00:31:02.720" video="qanda-voice" id="subtitle"]]
+[[!template text="""from the Hyperbole package.""" start="00:31:04.280" video="qanda-voice" id="subtitle"]]
+[[!template text="""That's what my I got a talk on the stream of""" start="00:31:08.160" video="qanda-voice" id="subtitle"]]
+[[!template text="""thought journaling for with Koutline and I""" start="00:31:12.620" video="qanda-voice" id="subtitle"]]
+[[!template text="""was like, I just don't like the feeling of""" start="00:31:14.060" video="qanda-voice" id="subtitle"]]
+[[!template text="""being tracked in 1 document and denote has""" start="00:31:18.480" video="qanda-voice" id="subtitle"]]
+[[!template text="""the ability to it renames the file so you get""" start="00:31:21.300" video="qanda-voice" id="subtitle"]]
+[[!template text="""keywords in like a PDF file so you can take""" start="00:31:26.020" video="qanda-voice" id="subtitle"]]
+[[!template text="""so you can link to that with your notes""" start="00:31:28.100" video="qanda-voice" id="subtitle"]]
+[[!template text="""without it all disappearing because it's not""" start="00:31:30.540" video="qanda-voice" id="subtitle"]]
+[[!template text="""an org mode document. Plus the ability of""" start="00:31:36.340" video="qanda-voice" id="subtitle"]]
+[[!template text="""having it run on multiple computers or with""" start="00:31:38.520" video="qanda-voice" id="subtitle"]]
+[[!template text="""multiple people, the database kind of gets""" start="00:31:42.660" video="qanda-voice" id="subtitle"]]
+[[!template text="""screwed up when you try running it under sync""" start="00:31:46.480" video="qanda-voice" id="subtitle"]]
+[[!template text="""thing. Sync. More fragile.""" start="00:31:50.500" video="qanda-voice" id="subtitle"]]
+[[!template text="""[Speaker 0]: Very interesting. Yeah.""" start="00:31:56.000" video="qanda-voice" id="subtitle"]]
+[[!template text="""How far are you? So are you a regular""" start="00:32:03.260" video="qanda-voice" id="subtitle"]]
+[[!template text="""practitioner of the Zettelkasten approach?""" start="00:32:06.480" video="qanda-voice" id="subtitle"]]
+[[!template text="""[Speaker 2]: Trying to be. Incrementally improving it.""" start="00:32:12.180" video="qanda-voice" id="subtitle"]]
+[[!template text="""I partly work too much like testing out the""" start="00:32:16.780" video="qanda-voice" id="subtitle"]]
+[[!template text="""org-roam versus the notes to use it too much.""" start="00:32:20.760" video="qanda-voice" id="subtitle"]]
+[[!template text="""So part of it is I just tweak with it too""" start="00:32:23.300" video="qanda-voice" id="subtitle"]]
+[[!template text="""much before using it and then.""" start="00:32:24.800" video="qanda-voice" id="subtitle"]]
+[[!template text="""[Speaker 0]: Oh, it's so fun to tweak it.""" start="00:32:28.740" video="qanda-voice" id="subtitle"]]
+[[!template text="""[Speaker 2]: I think mostly it's as I have these tools,""" start="00:32:32.580" video="qanda-voice" id="subtitle"]]
+[[!template text="""I know where they are.""" start="00:32:33.640" video="qanda-voice" id="subtitle"]]
+[[!template text="""So whenever I do need them,""" start="00:32:35.760" video="qanda-voice" id="subtitle"]]
+[[!template text="""I can use them, even though I don't always""" start="00:32:37.680" video="qanda-voice" id="subtitle"]]
+[[!template text="""use them.""" start="00:32:38.440" video="qanda-voice" id="subtitle"]]
+[[!template text="""[Speaker 0]: So I have about a thousand notes in my org""" start="00:32:43.680" video="qanda-voice" id="subtitle"]]
+[[!template text="""room. Zettelkasten. I've actually,""" start="00:32:47.720" video="qanda-voice" id="subtitle"]]
+[[!template text="""it's kind of cool that you can export it and""" start="00:32:50.140" video="qanda-voice" id="subtitle"]]
+[[!template text="""move it into other programs.""" start="00:32:51.460" video="qanda-voice" id="subtitle"]]
+[[!template text="""I have moved it to Obsidian and played with""" start="00:32:56.320" video="qanda-voice" id="subtitle"]]
+[[!template text="""it in Obsidian for a while,""" start="00:32:57.720" video="qanda-voice" id="subtitle"]]
+[[!template text="""maybe added to it in Obsidian,""" start="00:32:59.820" video="qanda-voice" id="subtitle"]]
+[[!template text="""moved it back to Orgrim.""" start="00:33:01.480" video="qanda-voice" id="subtitle"]]
+[[!template text="""But I'm not convinced.""" start="00:33:07.080" video="qanda-voice" id="subtitle"]]
+[[!template text="""I mean, that I think that Nicholas Luhmann""" start="00:33:10.680" video="qanda-voice" id="subtitle"]]
+[[!template text="""was very successful with it because he spent""" start="00:33:13.360" video="qanda-voice" id="subtitle"]]
+[[!template text="""5 hours a day or whatever working with it.""" start="00:33:15.920" video="qanda-voice" id="subtitle"]]
+[[!template text="""And I think I would have to do,""" start="00:33:18.560" video="qanda-voice" id="subtitle"]]
+[[!template text="""put in a similar amount of effort to get this""" start="00:33:21.180" video="qanda-voice" id="subtitle"]]
+[[!template text="""kind of benefits that he gained from it.""" start="00:33:23.600" video="qanda-voice" id="subtitle"]]
+[[!template text="""I'm waiting for somebody to do a scientific""" start="00:33:26.480" video="qanda-voice" id="subtitle"]]
+[[!template text="""study, controlled trials to see,""" start="00:33:29.200" video="qanda-voice" id="subtitle"]]
+[[!template text="""to prove whether there's a real benefit.""" start="00:33:31.720" video="qanda-voice" id="subtitle"]]
+[[!template text="""[Speaker 2]: Oh, yeah. So with the Zettelkasten,""" start="00:33:37.900" video="qanda-voice" id="subtitle"]]
+[[!template text="""one of the things where you have the 1 for the""" start="00:33:41.120" video="qanda-voice" id="subtitle"]]
+[[!template text="""sections, and then the 1.1,""" start="00:33:42.180" video="qanda-voice" id="subtitle"]]
+[[!template text="""or you know how the notes that it does that's""" start="00:33:47.160" video="qanda-voice" id="subtitle"]]
+[[!template text="""different. The denote,""" start="00:33:48.740" video="qanda-voice" id="subtitle"]]
+[[!template text="""it has the ability to use a hierarchy manage,""" start="00:33:52.880" video="qanda-voice" id="subtitle"]]
+[[!template text="""which Org-ROM does everything it can to""" start="00:33:55.480" video="qanda-voice" id="subtitle"]]
+[[!template text="""eliminate. But you can use them both in""" start="00:33:57.380" video="qanda-voice" id="subtitle"]]
+[[!template text="""tandem. They call it signatures.""" start="00:33:59.140" video="qanda-voice" id="subtitle"]]
+[[!template text="""And to me, 1 of the cool features of denote""" start="00:34:04.820" video="qanda-voice" id="subtitle"]]
+[[!template text="""would be being able to use like the""" start="00:34:06.820" video="qanda-voice" id="subtitle"]]
+[[!template text="""signatures for the things that make sense.""" start="00:34:09.780" video="qanda-voice" id="subtitle"]]
+[[!template text="""Like 1 of the ideas is if you don't exactly""" start="00:34:13.440" video="qanda-voice" id="subtitle"]]
+[[!template text="""know where this is, but you know,""" start="00:34:14.960" video="qanda-voice" id="subtitle"]]
+[[!template text="""it goes to the section,""" start="00:34:15.920" video="qanda-voice" id="subtitle"]]
+[[!template text="""you can just use the signature.""" start="00:34:17.060" video="qanda-voice" id="subtitle"]]
+[[!template text="""Maybe don't even have too much of a file""" start="00:34:19.760" video="qanda-voice" id="subtitle"]]
+[[!template text="""name. Like oh, this is just another thought""" start="00:34:22.679" video="qanda-voice" id="subtitle"]]
+[[!template text="""on, well you wouldn't use it for this,""" start="00:34:28.199" video="qanda-voice" id="subtitle"]]
+[[!template text="""but like my day went good for reasons 1,""" start="00:34:30.360" video="qanda-voice" id="subtitle"]]
+[[!template text="""2, 3, 4, 5, and you could just use the denote""" start="00:34:33.040" video="qanda-voice" id="subtitle"]]
+[[!template text="""signature to do 1, 2, 3,""" start="00:34:34.639" video="qanda-voice" id="subtitle"]]
+[[!template text="""4, 5, just as you have new ideas on like a""" start="00:34:37.659" video="qanda-voice" id="subtitle"]]
+[[!template text="""subject, or like cars are cars are not this""" start="00:34:41.840" video="qanda-voice" id="subtitle"]]
+[[!template text="""car is nice because of reasons XYZ,""" start="00:34:43.659" video="qanda-voice" id="subtitle"]]
+[[!template text="""or these types of four-wheelers are nice""" start="00:34:46.920" video="qanda-voice" id="subtitle"]]
+[[!template text="""because of XYZ. And you could just keep on""" start="00:34:48.940" video="qanda-voice" id="subtitle"]]
+[[!template text="""doing that rather than having to get a new""" start="00:34:50.760" video="qanda-voice" id="subtitle"]]
+[[!template text="""name for each 1 of those files.""" start="00:34:52.120" video="qanda-voice" id="subtitle"]]
+[[!template text="""Or you could choose not to have it,""" start="00:34:55.280" video="qanda-voice" id="subtitle"]]
+[[!template text="""but the ability to have it optionally in,""" start="00:34:57.780" video="qanda-voice" id="subtitle"]]
+[[!template text="""to me, sounds like a really nice combo.""" start="00:35:01.020" video="qanda-voice" id="subtitle"]]
+[[!template text="""Because then you""" start="00:35:03.000" video="qanda-voice" id="subtitle"]]
+[[!template text="""[Speaker 0]: could read. I agree. Yeah,""" start="00:35:06.140" video="qanda-voice" id="subtitle"]]
+[[!template text="""I've actually imposed a hierarchy in my""" start="00:35:08.800" video="qanda-voice" id="subtitle"]]
+[[!template text="""Zettelkasten and Orgrim.""" start="00:35:10.320" video="qanda-voice" id="subtitle"]]
+[[!template text="""I just, I can't imagine having random ideas.""" start="00:35:17.680" video="qanda-voice" id="subtitle"]]
+[[!template text="""They need some kind of structure.""" start="00:35:21.200" video="qanda-voice" id="subtitle"]]
+[[!template text="""Always have some kind of parent node to""" start="00:35:27.500" video="qanda-voice" id="subtitle"]]
+[[!template text="""attach them to.""" start="00:35:28.420" video="qanda-voice" id="subtitle"]]
+[[!template text="""[Speaker 2]: With the workflow I'm trying to develop with""" start="00:35:32.740" video="qanda-voice" id="subtitle"]]
+[[!template text="""it, part of it is I'm just trying to optimize""" start="00:35:34.440" video="qanda-voice" id="subtitle"]]
+[[!template text="""the workflow before it feels really,""" start="00:35:36.820" video="qanda-voice" id="subtitle"]]
+[[!template text="""really, really good, and I don't want to""" start="00:35:38.480" video="qanda-voice" id="subtitle"]]
+[[!template text="""tweak with it, or I don't know.""" start="00:35:39.720" video="qanda-voice" id="subtitle"]]
+[[!template text="""Or maybe I don't always need the tool,""" start="00:35:42.480" video="qanda-voice" id="subtitle"]]
+[[!template text="""but some of the distinctions it seems like""" start="00:35:45.780" video="qanda-voice" id="subtitle"]]
+[[!template text="""that I want is, I want a daily journal For""" start="00:35:52.400" video="qanda-voice" id="subtitle"]]
+[[!template text="""your stream of thoughts,""" start="00:35:53.100" video="qanda-voice" id="subtitle"]]
+[[!template text="""then I want a separate 1 for your to do list""" start="00:35:56.000" video="qanda-voice" id="subtitle"]]
+[[!template text="""because what you like.""" start="00:35:57.980" video="qanda-voice" id="subtitle"]]
+[[!template text="""You want very different properties for each""" start="00:36:01.240" video="qanda-voice" id="subtitle"]]
+[[!template text="""of those. Like for to-do lists,""" start="00:36:03.040" video="qanda-voice" id="subtitle"]]
+[[!template text="""you want hierarchical,""" start="00:36:04.820" video="qanda-voice" id="subtitle"]]
+[[!template text="""limited. But if you have more than 3 priority""" start="00:36:11.260" video="qanda-voice" id="subtitle"]]
+[[!template text="""items, you don't have a priority item and""" start="00:36:13.660" video="qanda-voice" id="subtitle"]]
+[[!template text="""it's not a good to-do list.""" start="00:36:14.820" video="qanda-voice" id="subtitle"]]
+[[!template text="""It's just unordered thoughts.""" start="00:36:18.480" video="qanda-voice" id="subtitle"]]
+[[!template text="""[Speaker 0]: it's a wishful list, because you won't get""" start="00:36:23.480" video="qanda-voice" id="subtitle"]]
+[[!template text="""most of those things done beyond the first 3.""" start="00:36:26.000" video="qanda-voice" id="subtitle"]]
+[[!template text="""[Speaker 2]: You're trying to- So And then when you're""" start="00:36:28.180" video="qanda-voice" id="subtitle"]]
+[[!template text="""trying to do the other stuff,""" start="00:36:30.600" video="qanda-voice" id="subtitle"]]
+[[!template text="""the stream of thoughts,""" start="00:36:31.980" video="qanda-voice" id="subtitle"]]
+[[!template text="""all that stuff I probably don't want to go""" start="00:36:34.640" video="qanda-voice" id="subtitle"]]
+[[!template text="""straight into like my Zettelkasten because""" start="00:36:36.720" video="qanda-voice" id="subtitle"]]
+[[!template text="""some of those problems,""" start="00:36:37.440" video="qanda-voice" id="subtitle"]]
+[[!template text="""like it's noisy, it might be redundant,""" start="00:36:42.660" video="qanda-voice" id="subtitle"]]
+[[!template text="""you don't know how it fits into it because""" start="00:36:45.300" video="qanda-voice" id="subtitle"]]
+[[!template text="""you haven't done that processing on it.""" start="00:36:46.920" video="qanda-voice" id="subtitle"]]
+[[!template text="""This hasn't been refined.""" start="00:36:47.960" video="qanda-voice" id="subtitle"]]
+[[!template text="""So, like, you don't want to refine it.""" start="00:36:53.000" video="qanda-voice" id="subtitle"]]
+[[!template text="""Like, I find that spell checking is""" start="00:36:54.960" video="qanda-voice" id="subtitle"]]
+[[!template text="""detrimental to me. I don't want spell""" start="00:36:56.680" video="qanda-voice" id="subtitle"]]
+[[!template text="""checking. I don't want spell checking.""" start="00:36:58.520" video="qanda-voice" id="subtitle"]]
+[[!template text="""I don't want syntax highlighting.""" start="00:37:00.200" video="qanda-voice" id="subtitle"]]
+[[!template text="""I just want to talk or to just write.""" start="00:37:04.040" video="qanda-voice" id="subtitle"]]
+[[!template text="""If I have mistakes, I can turn on that later,""" start="00:37:07.020" video="qanda-voice" id="subtitle"]]
+[[!template text="""do it. Because otherwise,""" start="00:37:08.800" video="qanda-voice" id="subtitle"]]
+[[!template text="""it will distract me and makes that process""" start="00:37:13.340" video="qanda-voice" id="subtitle"]]
+[[!template text="""[Speaker 0]: Yep, yep, definitely interferes with the""" start="00:37:20.140" video="qanda-voice" id="subtitle"]]
+[[!template text="""flow.""" start="00:37:20.280" video="qanda-voice" id="subtitle"]]
+[[!template text="""[Speaker 2]: worse. So yeah, when you're so yeah when""" start="00:37:24.840" video="qanda-voice" id="subtitle"]]
+[[!template text="""you're doing the getting things done like""" start="00:37:28.080" video="qanda-voice" id="subtitle"]]
+[[!template text="""that's why I want them would be want would""" start="00:37:30.040" video="qanda-voice" id="subtitle"]]
+[[!template text="""want them in separate files is that you want""" start="00:37:32.360" video="qanda-voice" id="subtitle"]]
+[[!template text="""them like ordered, numbered lists,""" start="00:37:34.160" video="qanda-voice" id="subtitle"]]
+[[!template text="""smaller. And then with the other,""" start="00:37:38.980" video="qanda-voice" id="subtitle"]]
+[[!template text="""with the stream of thought,""" start="00:37:40.440" video="qanda-voice" id="subtitle"]]
+[[!template text="""with journaling, you'd want it just""" start="00:37:42.340" video="qanda-voice" id="subtitle"]]
+[[!template text="""unordered. Thoughts land wherever they may.""" start="00:37:45.240" video="qanda-voice" id="subtitle"]]
+[[!template text="""Maybe not even like machine-generated""" start="00:37:49.140" video="qanda-voice" id="subtitle"]]
+[[!template text="""timestamps, So you don't even have to worry""" start="00:37:51.400" video="qanda-voice" id="subtitle"]]
+[[!template text="""about the names of it,""" start="00:37:52.440" video="qanda-voice" id="subtitle"]]
+[[!template text="""as an example. So yeah,""" start="00:37:55.080" video="qanda-voice" id="subtitle"]]
+[[!template text="""very different properties for what you want""" start="00:37:56.960" video="qanda-voice" id="subtitle"]]
+[[!template text="""for both of those modalities.""" start="00:37:58.260" video="qanda-voice" id="subtitle"]]
+[[!template text="""[Speaker 0]: So you saw, perhaps, in that snippet that I""" start="00:38:06.340" video="qanda-voice" id="subtitle"]]
+[[!template text="""had that at, you know,""" start="00:38:07.860" video="qanda-voice" id="subtitle"]]
+[[!template text="""working on my to-do list at the start of the""" start="00:38:10.440" video="qanda-voice" id="subtitle"]]
+[[!template text="""day, but in a certain sense that is not ideal""" start="00:38:13.080" video="qanda-voice" id="subtitle"]]
+[[!template text="""time. I really haven't optimized the timing""" start="00:38:20.320" video="qanda-voice" id="subtitle"]]
+[[!template text="""of assembly of the to-do list,""" start="00:38:22.640" video="qanda-voice" id="subtitle"]]
+[[!template text="""I think, in retrospect.""" start="00:38:24.020" video="qanda-voice" id="subtitle"]]
+[[!template text="""It's just by lifelong habit.""" start="00:38:27.540" video="qanda-voice" id="subtitle"]]
+[[!template text="""I do that at the beginning of the day,""" start="00:38:29.060" video="qanda-voice" id="subtitle"]]
+[[!template text="""but probably would be better to do it at""" start="00:38:32.860" video="qanda-voice" id="subtitle"]]
+[[!template text="""night or the night before.""" start="00:38:34.360" video="qanda-voice" id="subtitle"]]
+[[!template text="""And so you sort of prime your brain to go,""" start="00:38:38.000" video="qanda-voice" id="subtitle"]]
+[[!template text="""just get up and go, go after those items.""" start="00:38:41.180" video="qanda-voice" id="subtitle"]]
+[[!template text="""You were, you maybe you want to revise the""" start="00:38:46.360" video="qanda-voice" id="subtitle"]]
+[[!template text="""items a little bit after sleeping on it,""" start="00:38:49.120" video="qanda-voice" id="subtitle"]]
+[[!template text="""but after your subconscious has worked on""" start="00:38:52.360" video="qanda-voice" id="subtitle"]]
+[[!template text="""those items. Do you have a daily routine that""" start="00:38:57.500" video="qanda-voice" id="subtitle"]]
+[[!template text="""you follow in terms of generating those kind""" start="00:38:59.680" video="qanda-voice" id="subtitle"]]
+[[!template text="""of lists?""" start="00:39:00.020" video="qanda-voice" id="subtitle"]]
+[[!template text="""[Speaker 2]: No. As I said, mostly I just got scaffolding""" start="00:39:05.660" video="qanda-voice" id="subtitle"]]
+[[!template text="""for this stuff when I want to do it.""" start="00:39:08.040" video="qanda-voice" id="subtitle"]]
+[[!template text="""I enjoy building the scaffolding and I know""" start="00:39:10.520" video="qanda-voice" id="subtitle"]]
+[[!template text="""where the tools are when I need it.""" start="00:39:12.340" video="qanda-voice" id="subtitle"]]
+[[!template text="""And I start using them when I need it,""" start="00:39:14.540" video="qanda-voice" id="subtitle"]]
+[[!template text="""but I don't have it too consistent.""" start="00:39:17.040" video="qanda-voice" id="subtitle"]]
+[[!template text="""[Speaker 0]: So OK, so you've looked so far at denote and""" start="00:39:29.720" video="qanda-voice" id="subtitle"]]
+[[!template text="""org-roam, and you're using k-outline.""" start="00:39:35.300" video="qanda-voice" id="subtitle"]]
+[[!template text="""And are there other tools that you've""" start="00:39:39.520" video="qanda-voice" id="subtitle"]]
+[[!template text="""explored?""" start="00:39:39.840" video="qanda-voice" id="subtitle"]]
+[[!template text="""[Speaker 2]: I've tried using whisper.el""" start="00:39:44.380" video="qanda-voice" id="subtitle"]]
+[[!template text="""and nerd dictation to do What your talk was""" start="00:39:50.720" video="qanda-voice" id="subtitle"]]
+[[!template text="""about? Speaking speech to text to see how""" start="00:39:53.560" video="qanda-voice" id="subtitle"]]
+[[!template text="""that changes Because it does change what you""" start="00:39:56.720" video="qanda-voice" id="subtitle"]]
+[[!template text="""think What you write down when you speak it""" start="00:40:01.020" video="qanda-voice" id="subtitle"]]
+[[!template text="""rather than write it. Same thing as when""" start="00:40:05.080" video="qanda-voice" id="subtitle"]]
+[[!template text="""you're thinking about when you eliminate the""" start="00:40:07.420" video="qanda-voice" id="subtitle"]]
+[[!template text="""editing, it changes the way you write.""" start="00:40:08.940" video="qanda-voice" id="subtitle"]]
+[[!template text="""When you have the spell checking,""" start="00:40:11.900" video="qanda-voice" id="subtitle"]]
+[[!template text="""it changes the way you write to a much""" start="00:40:14.100" video="qanda-voice" id="subtitle"]]
+[[!template text="""smaller degree. But that's the stuff I really""" start="00:40:20.280" video="qanda-voice" id="subtitle"]]
+[[!template text="""haven't gotten working as well,""" start="00:40:23.560" video="qanda-voice" id="subtitle"]]
+[[!template text="""or underdeveloped.""" start="00:40:25.120" video="qanda-voice" id="subtitle"]]
+[[!template text="""[Speaker 0]: So the dictated text winds up,""" start="00:40:30.160" video="qanda-voice" id="subtitle"]]
+[[!template text="""I'll move it in. Often I move it into on""" start="00:40:37.740" video="qanda-voice" id="subtitle"]]
+[[!template text="""Overleaf, this website for a lot of tech""" start="00:40:40.920" video="qanda-voice" id="subtitle"]]
+[[!template text="""documents. I have a plug-in for Rightful,""" start="00:40:44.080" video="qanda-voice" id="subtitle"]]
+[[!template text="""And I use that to clean up my word choices""" start="00:40:50.520" video="qanda-voice" id="subtitle"]]
+[[!template text="""and some grammar. And I use Grammarly.""" start="00:40:56.160" video="qanda-voice" id="subtitle"]]
+[[!template text="""I'll copy and paste. It just depends on the""" start="00:41:00.920" video="qanda-voice" id="subtitle"]]
+[[!template text="""nature of the writing,""" start="00:41:01.680" video="qanda-voice" id="subtitle"]]
+[[!template text="""how serious it is, how polished it has to be.""" start="00:41:05.720" video="qanda-voice" id="subtitle"]]
+[[!template text="""If I, if it's really vital,""" start="00:41:12.620" video="qanda-voice" id="subtitle"]]
+[[!template text="""like for a grant application or something,""" start="00:41:14.440" video="qanda-voice" id="subtitle"]]
+[[!template text="""I'll paste that into Grammarly and work on""" start="00:41:16.880" video="qanda-voice" id="subtitle"]]
+[[!template text="""trying to get the writing level to the lowest""" start="00:41:22.160" video="qanda-voice" id="subtitle"]]
+[[!template text="""possible grade level to make it as clear as""" start="00:41:26.100" video="qanda-voice" id="subtitle"]]
+[[!template text="""possible to as wide of an audience as""" start="00:41:30.040" video="qanda-voice" id="subtitle"]]
+[[!template text="""possible. 1 of the things I kind""" start="00:41:34.740" video="qanda-voice" id="subtitle"]]
+[[!template text="""[Speaker 2]: of wish with all the spell checking grammarly""" start="00:41:38.000" video="qanda-voice" id="subtitle"]]
+[[!template text="""is I kind of wish you could say,""" start="00:41:40.440" video="qanda-voice" id="subtitle"]]
+[[!template text="""hey, what would the subtle cast in person""" start="00:41:48.620" video="qanda-voice" id="subtitle"]]
+[[!template text="""think of what I wrote who what would einstein""" start="00:41:52.120" video="qanda-voice" id="subtitle"]]
+[[!template text="""think of what I wrote because rather than""" start="00:41:54.200" video="qanda-voice" id="subtitle"]]
+[[!template text="""just trying to make 1 uniform way of talking""" start="00:41:57.340" video="qanda-voice" id="subtitle"]]
+[[!template text="""it's like people talk differently and that's""" start="00:41:59.960" video="qanda-voice" id="subtitle"]]
+[[!template text="""an advantage and I can't I really wish like""" start="00:42:04.080" video="qanda-voice" id="subtitle"]]
+[[!template text="""you maybe these GPT programs could do well.""" start="00:42:07.440" video="qanda-voice" id="subtitle"]]
+[[!template text="""I really wish it could help you with the""" start="00:42:10.840" video="qanda-voice" id="subtitle"]]
+[[!template text="""grammar, that maybe give you thoughts on what""" start="00:42:16.160" video="qanda-voice" id="subtitle"]]
+[[!template text="""your notes are. What does this person think""" start="00:42:18.460" video="qanda-voice" id="subtitle"]]
+[[!template text="""of your thoughts? What does this person think""" start="00:42:20.220" video="qanda-voice" id="subtitle"]]
+[[!template text="""of your thoughts? Well,""" start="00:42:20.457" video="qanda-voice" id="subtitle"]]
+[[!template text="""does this person think of your thoughts?""" start="00:42:20.640" video="qanda-voice" id="subtitle"]]
+[[!template text="""Well, does this person think of your""" start="00:42:22.280" video="qanda-voice" id="subtitle"]]
+[[!template text="""thoughts?""" start="00:42:22.540" video="qanda-voice" id="subtitle"]]
+[[!template text="""[Speaker 0]: That's true. Yeah, I could probably do that""" start="00:42:27.720" video="qanda-voice" id="subtitle"]]
+[[!template text="""even through chat GDP now.""" start="00:42:31.560" video="qanda-voice" id="subtitle"]]
+[[!template text="""I haven't spent time trying that out.""" start="00:42:35.140" video="qanda-voice" id="subtitle"]]
+[[!template text="""But I bet that capabilities are already.""" start="00:42:39.820" video="qanda-voice" id="subtitle"]]
+[[!template text="""It would be nice if it was like built in to""" start="00:42:44.340" video="qanda-voice" id="subtitle"]]
+[[!template text="""Emacs, right? It's a package.""" start="00:42:46.240" video="qanda-voice" id="subtitle"]]
+[[!template text="""Yeah. That'd be very cool.""" start="00:42:49.020" video="qanda-voice" id="subtitle"]]
+[[!template text="""[Speaker 2]: Grammarly have some sort of,""" start="00:42:52.260" video="qanda-voice" id="subtitle"]]
+[[!template text="""like, the grammar where they help you the way""" start="00:42:55.040" video="qanda-voice" id="subtitle"]]
+[[!template text="""you write. Like, for instance,""" start="00:42:57.660" video="qanda-voice" id="subtitle"]]
+[[!template text="""removing redundant words.""" start="00:42:59.080" video="qanda-voice" id="subtitle"]]
+[[!template text="""And Yeah, it's supposed to be like beyond""" start="00:43:02.720" video="qanda-voice" id="subtitle"]]
+[[!template text="""just spell checking, right?""" start="00:43:04.820" video="qanda-voice" id="subtitle"]]
+[[!template text="""[Speaker 0]: Right. So, and there's actually a Grammarly""" start="00:43:08.240" video="qanda-voice" id="subtitle"]]
+[[!template text="""package for Emacs, and you get some of the""" start="00:43:13.300" video="qanda-voice" id="subtitle"]]
+[[!template text="""functionality out of it.""" start="00:43:14.540" video="qanda-voice" id="subtitle"]]
+[[!template text="""I've paid for the subscription to get the""" start="00:43:17.420" video="qanda-voice" id="subtitle"]]
+[[!template text="""advanced features, but I've maybe I don't""" start="00:43:21.240" video="qanda-voice" id="subtitle"]]
+[[!template text="""have my configuration set up correctly.""" start="00:43:23.300" video="qanda-voice" id="subtitle"]]
+[[!template text="""I just found it was easier to copy and paste""" start="00:43:27.280" video="qanda-voice" id="subtitle"]]
+[[!template text="""a paragraph at a time into the desktop""" start="00:43:31.780" video="qanda-voice" id="subtitle"]]
+[[!template text="""application and it will go through and find""" start="00:43:36.460" video="qanda-voice" id="subtitle"]]
+[[!template text="""those redundancies, junk English.""" start="00:43:38.900" video="qanda-voice" id="subtitle"]]
+[[!template text="""[Speaker 2]: It would be really interesting trying to have""" start="00:43:48.080" video="qanda-voice" id="subtitle"]]
+[[!template text="""1 of these That was my problem with a lot of""" start="00:43:52.640" video="qanda-voice" id="subtitle"]]
+[[!template text="""the grammarly type Programs is I'm I want""" start="00:43:55.840" video="qanda-voice" id="subtitle"]]
+[[!template text="""something that would do that like be real""" start="00:43:57.620" video="qanda-voice" id="subtitle"]]
+[[!template text="""interesting seeing 1 that's like an old""" start="00:43:59.720" video="qanda-voice" id="subtitle"]]
+[[!template text="""English type thing or like Lumen person where""" start="00:44:03.840" video="qanda-voice" id="subtitle"]]
+[[!template text="""it's just like how does this person write and""" start="00:44:06.540" video="qanda-voice" id="subtitle"]]
+[[!template text="""Because it would be it would spit out""" start="00:44:09.960" video="qanda-voice" id="subtitle"]]
+[[!template text="""something a lot different.""" start="00:44:11.160" video="qanda-voice" id="subtitle"]]
+[[!template text="""Just different. Like, yeah,""" start="00:44:13.440" video="qanda-voice" id="subtitle"]]
+[[!template text="""you put different people.""" start="00:44:14.440" video="qanda-voice" id="subtitle"]]
+[[!template text="""[Speaker 0]: Most definitely, yes. They would have a""" start="00:44:17.760" video="qanda-voice" id="subtitle"]]
+[[!template text="""completely different thinking and writing""" start="00:44:20.280" video="qanda-voice" id="subtitle"]]
+[[!template text="""style. And so the purpose of doing that would""" start="00:44:28.740" video="qanda-voice" id="subtitle"]]
+[[!template text="""be to stimulate A new way of thinking or""" start="00:44:34.300" video="qanda-voice" id="subtitle"]]
+[[!template text="""writing I guess on your part""" start="00:44:36.340" video="qanda-voice" id="subtitle"]]
+[[!template text="""[Speaker 2]: the purpose of writing is to communicate It""" start="00:44:40.600" video="qanda-voice" id="subtitle"]]
+[[!template text="""and writing you know 1 of the targets for""" start="00:44:43.540" video="qanda-voice" id="subtitle"]]
+[[!template text="""that could be yourself so it's like I'd much""" start="00:44:47.020" video="qanda-voice" id="subtitle"]]
+[[!template text="""rather have a comprehensible sentence than a""" start="00:44:50.380" video="qanda-voice" id="subtitle"]]
+[[!template text="""truly correct 1. 1 of those is far more""" start="00:44:57.500" video="qanda-voice" id="subtitle"]]
+[[!template text="""valuable and far more correct English or""" start="00:45:00.780" video="qanda-voice" id="subtitle"]]
+[[!template text="""[Speaker 0]: Yeah, one's more effective at communicating""" start="00:45:06.560" video="qanda-voice" id="subtitle"]]
+[[!template text="""to yourself. Yes.""" start="00:45:08.860" video="qanda-voice" id="subtitle"]]
+[[!template text="""[Speaker 2]: language. Well, one's using the tool,""" start="00:45:11.320" video="qanda-voice" id="subtitle"]]
+[[!template text="""one's the other you're trying to be used by""" start="00:45:15.300" video="qanda-voice" id="subtitle"]]
+[[!template text="""the tool. And they're not the same thing.""" start="00:45:19.080" video="qanda-voice" id="subtitle"]]
+[[!template text="""[Speaker 0]: That's true. Well, I view myself as being""" start="00:45:29.780" video="qanda-voice" id="subtitle"]]
+[[!template text="""responsible for my writing and being the""" start="00:45:35.140" video="qanda-voice" id="subtitle"]]
+[[!template text="""final judge of it and as a scientist I have""" start="00:45:40.200" video="qanda-voice" id="subtitle"]]
+[[!template text="""to my mantra is it's got to be clear and then""" start="00:45:49.060" video="qanda-voice" id="subtitle"]]
+[[!template text="""precise and then concise in that order.""" start="00:45:52.600" video="qanda-voice" id="subtitle"]]
+[[!template text="""And I claim that, you know,""" start="00:45:56.580" video="qanda-voice" id="subtitle"]]
+[[!template text="""that's the order with which I go through""" start="00:45:58.440" video="qanda-voice" id="subtitle"]]
+[[!template text="""doing revisions. Clarity is,""" start="00:46:01.500" video="qanda-voice" id="subtitle"]]
+[[!template text="""you know, if it's not clear,""" start="00:46:02.500" video="qanda-voice" id="subtitle"]]
+[[!template text="""it's useless. It's got to be clear to me,""" start="00:46:05.420" video="qanda-voice" id="subtitle"]]
+[[!template text="""but it's got to be clear to a lot of people""" start="00:46:08.240" video="qanda-voice" id="subtitle"]]
+[[!template text="""for whom English is not a first language.""" start="00:46:10.920" video="qanda-voice" id="subtitle"]]
+[[!template text="""And then after that, I got to worry about""" start="00:46:15.520" video="qanda-voice" id="subtitle"]]
+[[!template text="""precision and then conciseness,""" start="00:46:19.020" video="qanda-voice" id="subtitle"]]
+[[!template text="""but those can't be done at the expense of""" start="00:46:24.140" video="qanda-voice" id="subtitle"]]
+[[!template text="""clarity. So it's quite a battle.""" start="00:46:27.720" video="qanda-voice" id="subtitle"]]
+[[!template text="""[Speaker 2]: That goes back on the to-do list,""" start="00:46:32.320" video="qanda-voice" id="subtitle"]]
+[[!template text="""where it's like if you have more than 3 items""" start="00:46:35.440" video="qanda-voice" id="subtitle"]]
+[[!template text="""like here the purpose of doing that is to""" start="00:46:39.480" video="qanda-voice" id="subtitle"]]
+[[!template text="""help or grant of a to-do list is help is to""" start="00:46:43.080" video="qanda-voice" id="subtitle"]]
+[[!template text="""Have you help choose what you're going to do""" start="00:46:45.480" video="qanda-voice" id="subtitle"]]
+[[!template text="""for the day. Which is why if you have more""" start="00:46:47.680" video="qanda-voice" id="subtitle"]]
+[[!template text="""than 3 items, if you have 50 items on there,""" start="00:46:50.660" video="qanda-voice" id="subtitle"]]
+[[!template text="""you're not going to get 50 of those items""" start="00:46:52.860" video="qanda-voice" id="subtitle"]]
+[[!template text="""done. So maybe you pick the easiest ones to""" start="00:46:55.920" video="qanda-voice" id="subtitle"]]
+[[!template text="""do, not necessarily the ones that you want or""" start="00:46:58.620" video="qanda-voice" id="subtitle"]]
+[[!template text="""need to be done. So it's like the process of""" start="00:47:03.340" video="qanda-voice" id="subtitle"]]
+[[!template text="""choosing those, like, I don't know,""" start="00:47:06.200" video="qanda-voice" id="subtitle"]]
+[[!template text="""like I found that a very good rules,""" start="00:47:07.640" video="qanda-voice" id="subtitle"]]
+[[!template text="""like up to 3 priority items if you,""" start="00:47:10.800" video="qanda-voice" id="subtitle"]]
+[[!template text="""and then also when you look back and you see""" start="00:47:13.260" video="qanda-voice" id="subtitle"]]
+[[!template text="""that you did those 3 items,""" start="00:47:14.440" video="qanda-voice" id="subtitle"]]
+[[!template text="""Who cares about this? I'd rather get those 3""" start="00:47:18.460" video="qanda-voice" id="subtitle"]]
+[[!template text="""items done than any number of secondary""" start="00:47:20.080" video="qanda-voice" id="subtitle"]]
+[[!template text="""tasks.""" start="00:47:20.640" video="qanda-voice" id="subtitle"]]
+[[!template text="""[Speaker 0]: Yes, I, yeah, you're very,""" start="00:47:26.320" video="qanda-voice" id="subtitle"]]
+[[!template text="""very right about that.""" start="00:47:28.440" video="qanda-voice" id="subtitle"]]
+[[!template text="""I don't, I used to, you know,""" start="00:47:32.380" video="qanda-voice" id="subtitle"]]
+[[!template text="""use a pattern of assigning letters.""" start="00:47:36.400" video="qanda-voice" id="subtitle"]]
+[[!template text="""And so you have like, you know,""" start="00:47:39.440" video="qanda-voice" id="subtitle"]]
+[[!template text="""based on like a hierarchy of,""" start="00:47:41.280" video="qanda-voice" id="subtitle"]]
+[[!template text="""you've got the urgent and important,""" start="00:47:43.340" video="qanda-voice" id="subtitle"]]
+[[!template text="""of course, that you got to deal with those.""" start="00:47:47.300" video="qanda-voice" id="subtitle"]]
+[[!template text="""And then the next thing down is the important""" start="00:47:50.280" video="qanda-voice" id="subtitle"]]
+[[!template text="""and so on. But I tend to just generate these""" start="00:48:00.060" video="qanda-voice" id="subtitle"]]
+[[!template text="""terribly long lists that most of those items""" start="00:48:03.600" video="qanda-voice" id="subtitle"]]
+[[!template text="""would go on what is known as a grass catchers""" start="00:48:06.260" video="qanda-voice" id="subtitle"]]
+[[!template text="""list of things that you may get to someday,""" start="00:48:09.180" video="qanda-voice" id="subtitle"]]
+[[!template text="""but there's no way you can get to them today.""" start="00:48:11.780" video="qanda-voice" id="subtitle"]]
+[[!template text="""But I feel compelled, I need to capture them.""" start="00:48:16.120" video="qanda-voice" id="subtitle"]]
+[[!template text="""I may want to do them eventually.""" start="00:48:18.260" video="qanda-voice" id="subtitle"]]
+[[!template text="""They wind up on my list.""" start="00:48:20.920" video="qanda-voice" id="subtitle"]]
+[[!template text="""[Speaker 2]: Oh yeah, my idea on that is like with a""" start="00:48:24.660" video="qanda-voice" id="subtitle"]]
+[[!template text="""Zettelkasten where you have the day thoughts""" start="00:48:26.480" video="qanda-voice" id="subtitle"]]
+[[!template text="""and the day journal, then you have your""" start="00:48:29.380" video="qanda-voice" id="subtitle"]]
+[[!template text="""Zettelkasten which I don't think should have""" start="00:48:31.800" video="qanda-voice" id="subtitle"]]
+[[!template text="""too close of a connection because one's a lot""" start="00:48:34.740" video="qanda-voice" id="subtitle"]]
+[[!template text="""more, what's the word?""" start="00:48:37.940" video="qanda-voice" id="subtitle"]]
+[[!template text="""[Speaker 0]: It's a knowledge base.""" start="00:48:40.080" video="qanda-voice" id="subtitle"]]
+[[!template text="""[Speaker 2]: Optimized. Yes, one's more processed.""" start="00:48:43.940" video="qanda-voice" id="subtitle"]]
+[[!template text="""Yeah, that's the word.""" start="00:48:45.280" video="qanda-voice" id="subtitle"]]
+[[!template text="""Yeah, one's actually much more processed.""" start="00:48:47.040" video="qanda-voice" id="subtitle"]]
+[[!template text="""The other is you don't want that process""" start="00:48:50.220" video="qanda-voice" id="subtitle"]]
+[[!template text="""because you want it to flow from your head""" start="00:48:52.840" video="qanda-voice" id="subtitle"]]
+[[!template text="""with as little friction as possible.""" start="00:48:54.480" video="qanda-voice" id="subtitle"]]
+[[!template text="""The other 1 you want to be processed so that""" start="00:48:59.440" video="qanda-voice" id="subtitle"]]
+[[!template text="""when you look it up and stuff like that's""" start="00:49:01.800" video="qanda-voice" id="subtitle"]]
+[[!template text="""more efficient Same thing with your to-do""" start="00:49:04.840" video="qanda-voice" id="subtitle"]]
+[[!template text="""things. So like oh, yeah,""" start="00:49:06.380" video="qanda-voice" id="subtitle"]]
+[[!template text="""I guess there's 1 more Category like I""" start="00:49:09.440" video="qanda-voice" id="subtitle"]]
+[[!template text="""thought I found my 3 favorite way rather than""" start="00:49:11.780" video="qanda-voice" id="subtitle"]]
+[[!template text="""like priority 123 is primary tasks which""" start="00:49:15.720" video="qanda-voice" id="subtitle"]]
+[[!template text="""basically generally goes up to 3,""" start="00:49:17.960" video="qanda-voice" id="subtitle"]]
+[[!template text="""secondary tasks, and then I like to have a""" start="00:49:20.380" video="qanda-voice" id="subtitle"]]
+[[!template text="""third category, unplanned tasks,""" start="00:49:22.540" video="qanda-voice" id="subtitle"]]
+[[!template text="""and I just have those wrote down in a heading""" start="00:49:25.840" video="qanda-voice" id="subtitle"]]
+[[!template text="""in an org mode file, and then I put the tasks""" start="00:49:28.520" video="qanda-voice" id="subtitle"]]
+[[!template text="""in there, rather than using the agenda,""" start="00:49:32.160" video="qanda-voice" id="subtitle"]]
+[[!template text="""like too much, I don't know,""" start="00:49:33.800" video="qanda-voice" id="subtitle"]]
+[[!template text="""just I found that that was my favorite way of""" start="00:49:40.240" video="qanda-voice" id="subtitle"]]
+[[!template text="""doing it and then you have like another file""" start="00:49:43.480" video="qanda-voice" id="subtitle"]]
+[[!template text="""that would just be your dump of anything you""" start="00:49:47.840" video="qanda-voice" id="subtitle"]]
+[[!template text="""want to do and that would be like that you""" start="00:49:51.440" video="qanda-voice" id="subtitle"]]
+[[!template text="""could pull from to get your day or I guess""" start="00:49:57.040" video="qanda-voice" id="subtitle"]]
+[[!template text="""something that's actually better than a day""" start="00:49:59.240" video="qanda-voice" id="subtitle"]]
+[[!template text="""is doing it all by a week at a time I found""" start="00:50:01.560" video="qanda-voice" id="subtitle"]]
+[[!template text="""that that's actually a lot nicer because""" start="00:50:03.160" video="qanda-voice" id="subtitle"]]
+[[!template text="""thinking about what you do in a week seems""" start="00:50:06.600" video="qanda-voice" id="subtitle"]]
+[[!template text="""like a nicer unit, where you have a week,""" start="00:50:09.480" video="qanda-voice" id="subtitle"]]
+[[!template text="""then you have your day,""" start="00:50:10.520" video="qanda-voice" id="subtitle"]]
+[[!template text="""and then you have the 3 categories of""" start="00:50:13.360" video="qanda-voice" id="subtitle"]]
+[[!template text="""priority, secondary, and unplanned.""" start="00:50:16.500" video="qanda-voice" id="subtitle"]]
+[[!template text="""At least that's been my favorite iteration on""" start="00:50:20.860" video="qanda-voice" id="subtitle"]]
+[[!template text="""[Speaker 0]: thought process workflow.""" start="00:50:30.840" video="qanda-voice" id="subtitle"]]
+[[!template text="""[Speaker 2]: the week of the to-do I had""" start="00:50:31.500" video="qanda-voice" id="subtitle"]]
+[[!template text="""[Speaker 0]: a colleague that was very effective at""" start="00:50:33.820" video="qanda-voice" id="subtitle"]]
+[[!template text="""planning on a weekly basis and he would just""" start="00:50:37.280" video="qanda-voice" id="subtitle"]]
+[[!template text="""get his weekly list of things to get done and""" start="00:50:41.580" video="qanda-voice" id="subtitle"]]
+[[!template text="""he was very good at pounding through that""" start="00:50:43.640" video="qanda-voice" id="subtitle"]]
+[[!template text="""list and getting them done.""" start="00:50:45.380" video="qanda-voice" id="subtitle"]]
+[[!template text="""I have been too much of a day-oriented person""" start="00:50:49.400" video="qanda-voice" id="subtitle"]]
+[[!template text="""and a week-oriented person to adapt his""" start="00:50:54.020" video="qanda-voice" id="subtitle"]]
+[[!template text="""approach, but I've been considering that too.""" start="00:50:56.760" video="qanda-voice" id="subtitle"]]
+[[!template text="""I think what I don't do enough of is pulling""" start="00:51:03.080" video="qanda-voice" id="subtitle"]]
+[[!template text="""back to the month level,""" start="00:51:05.640" video="qanda-voice" id="subtitle"]]
+[[!template text="""semester level, year level,""" start="00:51:08.100" video="qanda-voice" id="subtitle"]]
+[[!template text="""5 year level, 10 year level.""" start="00:51:10.900" video="qanda-voice" id="subtitle"]]
+[[!template text="""And...""" start="00:51:11.880" video="qanda-voice" id="subtitle"]]
+[[!template text="""[Speaker 2]: That's the advantage of finding it by a week""" start="00:51:16.000" video="qanda-voice" id="subtitle"]]
+[[!template text="""is like you can have like so you'd have your""" start="00:51:17.960" video="qanda-voice" id="subtitle"]]
+[[!template text="""week and then maybe you have like 1 section""" start="00:51:20.060" video="qanda-voice" id="subtitle"]]
+[[!template text="""after Friday or last day of the week and this""" start="00:51:24.440" video="qanda-voice" id="subtitle"]]
+[[!template text="""is like your this is just your like staging""" start="00:51:27.660" video="qanda-voice" id="subtitle"]]
+[[!template text="""so this is where you stage all the tasks and""" start="00:51:30.300" video="qanda-voice" id="subtitle"]]
+[[!template text="""then what like you can just stay in your""" start="00:51:32.560" video="qanda-voice" id="subtitle"]]
+[[!template text="""staging write them all down and then use alt""" start="00:51:37.020" video="qanda-voice" id="subtitle"]]
+[[!template text="""and your arrow keys to quickly reorder all of""" start="00:51:39.860" video="qanda-voice" id="subtitle"]]
+[[!template text="""them in the week and then when you're looking""" start="00:51:43.340" video="qanda-voice" id="subtitle"]]
+[[!template text="""at 1 day and you're just looking at ordering""" start="00:51:45.800" video="qanda-voice" id="subtitle"]]
+[[!template text="""everything well it makes a lot of sense when""" start="00:51:48.820" video="qanda-voice" id="subtitle"]]
+[[!template text="""you just say, I don't really want to do that.""" start="00:51:51.720" video="qanda-voice" id="subtitle"]]
+[[!template text="""Like I want this done this week.""" start="00:51:53.160" video="qanda-voice" id="subtitle"]]
+[[!template text="""I don't necessarily want it done on this day.""" start="00:51:56.260" video="qanda-voice" id="subtitle"]]
+[[!template text="""So it just, that's why I found that the week""" start="00:51:58.520" video="qanda-voice" id="subtitle"]]
+[[!template text="""approach works a lot nicer even.""" start="00:52:00.280" video="qanda-voice" id="subtitle"]]
+[[!template text="""[Speaker 0]: of a staging time you like schedule some time""" start="00:52:09.920" video="qanda-voice" id="subtitle"]]
+[[!template text="""in your week to do the staging.""" start="00:52:11.880" video="qanda-voice" id="subtitle"]]
+[[!template text="""[Speaker 2]: Yeah. Is that way The staging is more of just""" start="00:52:14.620" video="qanda-voice" id="subtitle"]]
+[[!template text="""like, these are the things I would like to""" start="00:52:16.840" video="qanda-voice" id="subtitle"]]
+[[!template text="""get done. And then when you schedule it,""" start="00:52:19.440" video="qanda-voice" id="subtitle"]]
+[[!template text="""then you kind of schedule it by just using""" start="00:52:23.360" video="qanda-voice" id="subtitle"]]
+[[!template text="""the Alt-Left key, the Alt-Arrow keys to just,""" start="00:52:26.240" video="qanda-voice" id="subtitle"]]
+[[!template text="""oh, I want this done. It looks like this""" start="00:52:28.380" video="qanda-voice" id="subtitle"]]
+[[!template text="""would work really good on this day.""" start="00:52:29.860" video="qanda-voice" id="subtitle"]]
+[[!template text="""This 1 looks like it would work on this day.""" start="00:52:31.620" video="qanda-voice" id="subtitle"]]
+[[!template text="""[Speaker 0]: A, you still utilize org agenda?""" start="00:52:38.800" video="qanda-voice" id="subtitle"]]
+[[!template text="""[Speaker 2]: I try to, I don't know,""" start="00:52:45.140" video="qanda-voice" id="subtitle"]]
+[[!template text="""I found that it works at least better without""" start="00:52:49.120" video="qanda-voice" id="subtitle"]]
+[[!template text="""it. Yeah, that's fine.""" start="00:52:52.120" video="qanda-voice" id="subtitle"]]
+[[!template text="""Because that way I also get a log of""" start="00:52:54.020" video="qanda-voice" id="subtitle"]]
+[[!template text="""everything I've done, which I can't find a""" start="00:53:00.020" video="qanda-voice" id="subtitle"]]
+[[!template text="""way that, it seems easier to just make new""" start="00:53:03.240" video="qanda-voice" id="subtitle"]]
+[[!template text="""files for it. And rather than,""" start="00:53:06.380" video="qanda-voice" id="subtitle"]]
+[[!template text="""like you could use it with Org Agenda,""" start="00:53:08.160" video="qanda-voice" id="subtitle"]]
+[[!template text="""but like 1 of the things that you want is""" start="00:53:11.540" video="qanda-voice" id="subtitle"]]
+[[!template text="""with it is to look back at it,""" start="00:53:14.040" video="qanda-voice" id="subtitle"]]
+[[!template text="""reflect. And so like if you have the,""" start="00:53:18.380" video="qanda-voice" id="subtitle"]]
+[[!template text="""if you have, if you open up the file with 2""" start="00:53:23.360" video="qanda-voice" id="subtitle"]]
+[[!template text="""levels or 3 levels of headings to where you""" start="00:53:25.580" video="qanda-voice" id="subtitle"]]
+[[!template text="""just see the priority task,""" start="00:53:26.780" video="qanda-voice" id="subtitle"]]
+[[!template text="""you can get a very nice overview of saying,""" start="00:53:29.800" video="qanda-voice" id="subtitle"]]
+[[!template text="""I did my priority task this day.""" start="00:53:33.860" video="qanda-voice" id="subtitle"]]
+[[!template text="""So you get the numbers next to the things.""" start="00:53:38.760" video="qanda-voice" id="subtitle"]]
+[[!template text="""And so you can easily just say,""" start="00:53:40.200" video="qanda-voice" id="subtitle"]]
+[[!template text="""I've done this. I mean,""" start="00:53:41.820" video="qanda-voice" id="subtitle"]]
+[[!template text="""it would be nice if I could figure out a way""" start="00:53:43.360" video="qanda-voice" id="subtitle"]]
+[[!template text="""of doing agenda to give me percentages.""" start="00:53:45.240" video="qanda-voice" id="subtitle"]]
+[[!template text="""But I haven't figured that out.""" start="00:53:50.680" video="qanda-voice" id="subtitle"]]
+[[!template text="""Seeing the granular level,""" start="00:53:54.280" video="qanda-voice" id="subtitle"]]
+[[!template text="""I can easily scan that with my eyes.""" start="00:53:57.100" video="qanda-voice" id="subtitle"]]
+[[!template text="""So I just did it by hand rather than the""" start="00:53:59.720" video="qanda-voice" id="subtitle"]]
+[[!template text="""agenda.""" start="00:53:59.900" video="qanda-voice" id="subtitle"]]
+[[!template text="""[Speaker 0]: Yeah, I've, I've tried to use agenda a few""" start="00:54:06.420" video="qanda-voice" id="subtitle"]]
+[[!template text="""times and pretty seriously,""" start="00:54:10.400" video="qanda-voice" id="subtitle"]]
+[[!template text="""but I keep bouncing off it.""" start="00:54:14.800" video="qanda-voice" id="subtitle"]]
+[[!template text="""I think I get too many things built in or""" start="00:54:17.920" video="qanda-voice" id="subtitle"]]
+[[!template text="""scheduled and I just don't get to them.""" start="00:54:21.200" video="qanda-voice" id="subtitle"]]
+[[!template text="""I feel bad about it and I wind up abandoning""" start="00:54:26.000" video="qanda-voice" id="subtitle"]]
+[[!template text="""it. So that's 1 area where there's probably""" start="00:54:31.220" video="qanda-voice" id="subtitle"]]
+[[!template text="""some potential for optimizing and making that""" start="00:54:34.820" video="qanda-voice" id="subtitle"]]
+[[!template text="""work better. There's a lot of customizing you""" start="00:54:40.260" video="qanda-voice" id="subtitle"]]
+[[!template text="""can do with Agenda. It's amazing.""" start="00:54:42.280" video="qanda-voice" id="subtitle"]]
+[[!template text="""[Speaker 2]: For me, it was though,""" start="00:54:44.540" video="qanda-voice" id="subtitle"]]
+[[!template text="""I wanted there to be a separation between the""" start="00:54:48.480" video="qanda-voice" id="subtitle"]]
+[[!template text="""daily to-do lists and like your grab bag""" start="00:54:52.120" video="qanda-voice" id="subtitle"]]
+[[!template text="""which I think agenda works a lot better for a""" start="00:54:54.480" video="qanda-voice" id="subtitle"]]
+[[!template text="""grab bag. I want a nice way of looking back""" start="00:54:58.040" video="qanda-voice" id="subtitle"]]
+[[!template text="""at my to-do daily to-do logs.""" start="00:55:01.560" video="qanda-voice" id="subtitle"]]
+[[!template text="""So I kind of want them to be separated,""" start="00:55:05.980" video="qanda-voice" id="subtitle"]]
+[[!template text="""so I just did them separate.""" start="00:55:08.480" video="qanda-voice" id="subtitle"]]
+[[!template text="""With the agenda, I could never figure out""" start="00:55:12.540" video="qanda-voice" id="subtitle"]]
+[[!template text="""exactly how I want that to work,""" start="00:55:14.060" video="qanda-voice" id="subtitle"]]
+[[!template text="""how the files would look,""" start="00:55:15.620" video="qanda-voice" id="subtitle"]]
+[[!template text="""and how all the Emacs settings would interact""" start="00:55:18.580" video="qanda-voice" id="subtitle"]]
+[[!template text="""with it. I mean, I'm sure I could,""" start="00:55:21.300" video="qanda-voice" id="subtitle"]]
+[[!template text="""but that's why I opted for weekly files.""" start="00:55:28.780" video="qanda-voice" id="subtitle"]]
+[[!template text="""Or at least That's my most refined idea on""" start="00:55:34.960" video="qanda-voice" id="subtitle"]]
+[[!template text="""the process.""" start="00:55:35.280" video="qanda-voice" id="subtitle"]]
+[[!template text="""[Speaker 0]: That's a good idea. So I've taken my approach""" start="00:55:41.000" video="qanda-voice" id="subtitle"]]
+[[!template text="""is a little different that I'm generating""" start="00:55:43.940" video="qanda-voice" id="subtitle"]]
+[[!template text="""this text on a daily basis and popping it""" start="00:55:46.760" video="qanda-voice" id="subtitle"]]
+[[!template text="""into this to 1 document file per day and a""" start="00:55:52.660" video="qanda-voice" id="subtitle"]]
+[[!template text="""like a diary on Overleaf as a big so it winds""" start="00:55:59.020" video="qanda-voice" id="subtitle"]]
+[[!template text="""[Speaker 2]: sections""" start="00:56:01.950" video="qanda-voice" id="subtitle"]]
+[[!template text="""[Speaker 0]: up being 365 and where every month is a""" start="00:56:05.440" video="qanda-voice" id="subtitle"]]
+[[!template text="""chapter and it's compiled quickly enough even""" start="00:56:11.400" video="qanda-voice" id="subtitle"]]
+[[!template text="""though it's often up to 1,000""" start="00:56:13.100" video="qanda-voice" id="subtitle"]]
+[[!template text="""pages long by the end of the year.""" start="00:56:14.780" video="qanda-voice" id="subtitle"]]
+[[!template text="""And I have all these, of course,""" start="00:56:17.220" video="qanda-voice" id="subtitle"]]
+[[!template text="""with the PDF, I can search through it.""" start="00:56:19.240" video="qanda-voice" id="subtitle"]]
+[[!template text="""So that's not as you can't do the kind of""" start="00:56:22.540" video="qanda-voice" id="subtitle"]]
+[[!template text="""really sophisticated searching that you can""" start="00:56:24.380" video="qanda-voice" id="subtitle"]]
+[[!template text="""do with Org Mode. But just doing that,""" start="00:56:29.340" video="qanda-voice" id="subtitle"]]
+[[!template text="""It sure has been very helpful in digging up""" start="00:56:33.620" video="qanda-voice" id="subtitle"]]
+[[!template text="""information, like the little protocols on how""" start="00:56:39.440" video="qanda-voice" id="subtitle"]]
+[[!template text="""I attack, accomplish a certain task that I""" start="00:56:42.960" video="qanda-voice" id="subtitle"]]
+[[!template text="""have to do a year later,""" start="00:56:45.420" video="qanda-voice" id="subtitle"]]
+[[!template text="""or to have a record of what I did on a""" start="00:56:50.440" video="qanda-voice" id="subtitle"]]
+[[!template text="""certain day and then somebody above me might""" start="00:56:54.220" video="qanda-voice" id="subtitle"]]
+[[!template text="""be trying to hold me to account what got""" start="00:56:57.100" video="qanda-voice" id="subtitle"]]
+[[!template text="""done. I can look that up pretty very quickly.""" start="00:56:59.580" video="qanda-voice" id="subtitle"]]
+[[!template text="""It's documented. I find that to be just any""" start="00:57:05.140" video="qanda-voice" id="subtitle"]]
+[[!template text="""kind of thorough documentation system is very""" start="00:57:09.520" video="qanda-voice" id="subtitle"]]
+[[!template text="""[Speaker 2]: I also mess with having it all in 1 file""" start="00:57:16.080" video="qanda-voice" id="subtitle"]]
+[[!template text="""rather than by a weak file.""" start="00:57:17.440" video="qanda-voice" id="subtitle"]]
+[[!template text="""[Speaker 0]: useful. And at least what I did.""" start="00:57:20.140" video="qanda-voice" id="subtitle"]]
+[[!template text="""I ran into trouble with,""" start="00:57:21.820" video="qanda-voice" id="subtitle"]]
+[[!template text="""like, once you get a lot of items,""" start="00:57:25.380" video="qanda-voice" id="subtitle"]]
+[[!template text="""like if you have 1,000""" start="00:57:27.040" video="qanda-voice" id="subtitle"]]
+[[!template text="""items, headings, I've had org files with""" start="00:57:30.580" video="qanda-voice" id="subtitle"]]
+[[!template text="""1,000 headings. It can be so hard to scroll""" start="00:57:33.680" video="qanda-voice" id="subtitle"]]
+[[!template text="""through. Maybe it's some limitations I'm run""" start="00:57:38.960" video="qanda-voice" id="subtitle"]]
+[[!template text="""into with the Emacs being single threaded.""" start="00:57:42.240" video="qanda-voice" id="subtitle"]]
+[[!template text="""[Speaker 2]: At least with, yeah. Yeah.""" start="00:57:49.120" video="qanda-voice" id="subtitle"]]
+[[!template text="""It was like, that's 1 of the things is like,""" start="00:57:52.420" video="qanda-voice" id="subtitle"]]
+[[!template text="""how exactly do you want this,""" start="00:57:54.240" video="qanda-voice" id="subtitle"]]
+[[!template text="""the information structured because it can""" start="00:57:55.920" video="qanda-voice" id="subtitle"]]
+[[!template text="""change how it's retrieved.""" start="00:57:56.820" video="qanda-voice" id="subtitle"]]
+[[!template text="""[Speaker 0]: Ooh, most definitely. Most definitely.""" start="00:58:00.260" video="qanda-voice" id="subtitle"]]
+[[!template text="""[Speaker 2]: So as an example, when I was doing the daily""" start="00:58:08.200" video="qanda-voice" id="subtitle"]]
+[[!template text="""logs and I put it all in the date and then""" start="00:58:14.760" video="qanda-voice" id="subtitle"]]
+[[!template text="""the priority, secondary,""" start="00:58:15.700" video="qanda-voice" id="subtitle"]]
+[[!template text="""unplanned tasks, and then I had it stay at""" start="00:58:21.980" video="qanda-voice" id="subtitle"]]
+[[!template text="""that, get auto expanded by that level by""" start="00:58:24.940" video="qanda-voice" id="subtitle"]]
+[[!template text="""default so I didn't see the individual task""" start="00:58:27.280" video="qanda-voice" id="subtitle"]]
+[[!template text="""and you and then I had a but And then it""" start="00:58:30.720" video="qanda-voice" id="subtitle"]]
+[[!template text="""would say like I complete 205 or something""" start="00:58:33.120" video="qanda-voice" id="subtitle"]]
+[[!template text="""like that of secondary tasks.""" start="00:58:34.440" video="qanda-voice" id="subtitle"]]
+[[!template text="""And then just being able just to quickly scan""" start="00:58:38.000" video="qanda-voice" id="subtitle"]]
+[[!template text="""all the days and say, oh,""" start="00:58:39.740" video="qanda-voice" id="subtitle"]]
+[[!template text="""it just, the feedback you get from that is""" start="00:58:42.960" video="qanda-voice" id="subtitle"]]
+[[!template text="""worth a lot. And I don't think it's""" start="00:58:46.300" video="qanda-voice" id="subtitle"]]
+[[!template text="""something, it's not something I could think""" start="00:58:47.920" video="qanda-voice" id="subtitle"]]
+[[!template text="""of how you do an agenda.""" start="00:58:49.320" video="qanda-voice" id="subtitle"]]
+[[!template text="""Even though I got done in the text files just""" start="00:58:53.300" video="qanda-voice" id="subtitle"]]
+[[!template text="""because you get that doesn't expand all the""" start="00:58:57.260" video="qanda-voice" id="subtitle"]]
+[[!template text="""way so you so you can quickly just see on""" start="00:58:59.580" video="qanda-voice" id="subtitle"]]
+[[!template text="""this day I did this well on this day I did""" start="00:59:01.940" video="qanda-voice" id="subtitle"]]
+[[!template text="""this well all within and 4 lines per day.""" start="00:59:05.800" video="qanda-voice" id="subtitle"]]
+[[!template text="""So it's not, that doesn't,""" start="00:59:11.040" video="qanda-voice" id="subtitle"]]
+[[!template text="""that's not very visually verbose.""" start="00:59:12.920" video="qanda-voice" id="subtitle"]]
+[[!template text="""Probably about as visually verbose as you""" start="00:59:16.920" video="qanda-voice" id="subtitle"]]
+[[!template text="""want it. They're not super long.""" start="00:59:18.640" video="qanda-voice" id="subtitle"]]
+[[!template text="""You easily see the 2 of 3 and stuff like that""" start="00:59:23.000" video="qanda-voice" id="subtitle"]]
+[[!template text="""that you get done so you can quickly and say,""" start="00:59:24.920" video="qanda-voice" id="subtitle"]]
+[[!template text="""oh well, these are the days where I got my""" start="00:59:29.380" video="qanda-voice" id="subtitle"]]
+[[!template text="""primary tasks done or this week,""" start="00:59:31.300" video="qanda-voice" id="subtitle"]]
+[[!template text="""and this day I didn't do it well and you""" start="00:59:36.340" video="qanda-voice" id="subtitle"]]
+[[!template text="""could helps you correlate like your feelings""" start="00:59:38.300" video="qanda-voice" id="subtitle"]]
+[[!template text="""with your to-do lists and journals and""" start="00:59:42.440" video="qanda-voice" id="subtitle"]]
+[[!template text="""whatnot.""" start="00:59:42.620" video="qanda-voice" id="subtitle"]]
+[[!template text="""[Speaker 0]: Yeah I think that's very powerful.""" start="00:59:48.940" video="qanda-voice" id="subtitle"]]
+[[!template text="""Because it's summarizing capability.""" start="00:59:53.300" video="qanda-voice" id="subtitle"]]
+[[!template text="""It allows you to, you know,""" start="00:59:57.560" video="qanda-voice" id="subtitle"]]
+[[!template text="""pull back and get an overview.""" start="01:00:00.656" video="qanda-voice" id="subtitle"]]
+[[!template text="""Get an overview.""" start="01:00:01.040" video="qanda-voice" id="subtitle"]]
+[[!template text="""[Speaker 2]: And yeah, as I said, it's like the feedback""" start="01:00:07.580" video="qanda-voice" id="subtitle"]]
+[[!template text="""from that almost when I did that,""" start="01:00:10.600" video="qanda-voice" id="subtitle"]]
+[[!template text="""it feels like half the reason or should be""" start="01:00:12.620" video="qanda-voice" id="subtitle"]]
+[[!template text="""like half the reason is and it's something""" start="01:00:14.580" video="qanda-voice" id="subtitle"]]
+[[!template text="""that I don't if you use the agenda as it is,""" start="01:00:19.120" video="qanda-voice" id="subtitle"]]
+[[!template text="""you wouldn't, I don't know how you would get""" start="01:00:21.220" video="qanda-voice" id="subtitle"]]
+[[!template text="""it, like saying, like looking at the week by""" start="01:00:23.160" video="qanda-voice" id="subtitle"]]
+[[!template text="""week basis, breakdowns,""" start="01:00:25.080" video="qanda-voice" id="subtitle"]]
+[[!template text="""you might be able to get like percentages,""" start="01:00:27.120" video="qanda-voice" id="subtitle"]]
+[[!template text="""which would be nice. Like I did this well,""" start="01:00:30.400" video="qanda-voice" id="subtitle"]]
+[[!template text="""or like habit, I don't,""" start="01:00:33.700" video="qanda-voice" id="subtitle"]]
+[[!template text="""there might be things that could offer you""" start="01:00:35.640" video="qanda-voice" id="subtitle"]]
+[[!template text="""but. Yeah,""" start="01:00:39.700" video="qanda-voice" id="subtitle"]]
+[[!template text="""[Speaker 0]: so I'm pretty obsessed about tracking effort""" start="01:00:46.780" video="qanda-voice" id="subtitle"]]
+[[!template text="""on various kinds of projects,""" start="01:00:48.560" video="qanda-voice" id="subtitle"]]
+[[!template text="""or various kinds of activities,""" start="01:00:52.020" video="qanda-voice" id="subtitle"]]
+[[!template text="""and to get some feedback in that regard.""" start="01:00:57.880" video="qanda-voice" id="subtitle"]]
+[[!template text="""And then you, but you got the,""" start="01:00:59.500" video="qanda-voice" id="subtitle"]]
+[[!template text="""So I define a project as anything that""" start="01:01:02.040" video="qanda-voice" id="subtitle"]]
+[[!template text="""requires work at different points in time,""" start="01:01:06.300" video="qanda-voice" id="subtitle"]]
+[[!template text="""more than 1""" start="01:01:07.040" video="qanda-voice" id="subtitle"]]
+[[!template text="""[Speaker 2]: time. I'll email you my org mode template""" start="01:01:15.300" video="qanda-voice" id="subtitle"]]
+[[!template text="""that I made that demonstrates that.""" start="01:01:17.560" video="qanda-voice" id="subtitle"]]
+[[!template text="""I don't know if you, do you have your email""" start="01:01:22.200" video="qanda-voice" id="subtitle"]]
+[[!template text="""in your talk notes or anything?""" start="01:01:24.520" video="qanda-voice" id="subtitle"]]
+[[!template text="""[Speaker 0]: Okay. I think I should have it on the first""" start="01:01:29.380" video="qanda-voice" id="subtitle"]]
+[[!template text="""slide. There should be my email address.""" start="01:01:31.560" video="qanda-voice" id="subtitle"]]
+[[!template text="""I can add it to my talk notes.""" start="01:01:40.560" video="qanda-voice" id="subtitle"]]
+[[!template text="""[Speaker 2]: Okay. Would you want me to show it to you at""" start="01:01:46.920" video="qanda-voice" id="subtitle"]]
+[[!template text="""[Speaker 0]: that'd be great.""" start="01:01:48.940" video="qanda-voice" id="subtitle"]]
+[[!template text="""[Speaker 2]: all? Sure, All right, let's see.""" start="01:01:52.600" video="qanda-voice" id="subtitle"]]
+[[!template text="""I'm going to share screen button,""" start="01:02:20.842" video="qanda-voice" id="subtitle"]]
+[[!template text="""right? There's a share screen button,""" start="01:02:21.220" video="qanda-voice" id="subtitle"]]
+[[!template text="""right?""" start="01:02:21.520" video="qanda-voice" id="subtitle"]]
+[[!template text="""[Speaker 0]: Yeah, so, let's see.""" start="01:02:26.160" video="qanda-voice" id="subtitle"]]
+[[!template text="""[Speaker 2]: Yeah, I'm all. That's the right button.""" start="01:02:59.243" video="qanda-voice" id="subtitle"]]
+[[!template text="""Can you not share the screen on this?""" start="01:03:04.640" video="qanda-voice" id="subtitle"]]
+[[!template text="""[Speaker 0]: I have something going here.""" start="01:03:08.860" video="qanda-voice" id="subtitle"]]
+[[!template text="""Let's see. I have, I see some stuff on here.""" start="01:03:13.900" video="qanda-voice" id="subtitle"]]
+[[!template text="""Wonder if I'm still active.""" start="01:03:18.160" video="qanda-voice" id="subtitle"]]
+[[!template text="""It shows share screen.""" start="01:03:21.180" video="qanda-voice" id="subtitle"]]
+[[!template text="""Cancel.""" start="01:03:22.280" video="qanda-voice" id="subtitle"]]
+[[!template text="""[Speaker 2]: Maybe they just did it through OBS.""" start="01:03:28.260" video="qanda-voice" id="subtitle"]]
+[[!template text="""[Speaker 0]: Maybe I only have permission to share.""" start="01:03:47.280" video="qanda-voice" id="subtitle"]]
+[[!template text="""I can put my email address in the chat.""" start="01:03:53.900" video="qanda-voice" id="subtitle"]]
+[[!template text="""[Speaker 2]: I guess I'll just email it to you,""" start="01:03:59.440" video="qanda-voice" id="subtitle"]]
+[[!template text="""but Let's see. Yeah, I think the way that""" start="01:04:06.600" video="qanda-voice" id="subtitle"]]
+[[!template text="""they did it on the Any of the other videos if""" start="01:04:11.260" video="qanda-voice" id="subtitle"]]
+[[!template text="""they shared the screen they just shared the""" start="01:04:13.780" video="qanda-voice" id="subtitle"]]
+[[!template text="""webcam they just took over the webcam with""" start="01:04:17.440" video="qanda-voice" id="subtitle"]]
+[[!template text="""OBS and shared what they wanted with it.""" start="01:04:20.380" video="qanda-voice" id="subtitle"]]
+[[!template text="""[Speaker 0]: Oh, okay.""" start="01:04:22.760" video="qanda-voice" id="subtitle"]]
+[[!template text="""[Speaker 2]: At least I'm guessing.""" start="01:04:24.720" video="qanda-voice" id="subtitle"]]
+[[!template text="""Yeah, I'll give that to you.""" start="01:04:26.960" video="qanda-voice" id="subtitle"]]
+[[!template text="""Okay. I guess I'll let you go watch the rest""" start="01:04:31.080" video="qanda-voice" id="subtitle"]]
+[[!template text="""of the Emacs videos.""" start="01:04:32.240" video="qanda-voice" id="subtitle"]]
+[[!template text="""[Speaker 0]: This has been a great conversation.""" start="01:04:34.640" video="qanda-voice" id="subtitle"]]
+[[!template text="""Thank you very much. I appreciate your""" start="01:04:37.280" video="qanda-voice" id="subtitle"]]
+[[!template text="""willingness to share your thoughts on this""" start="01:04:39.620" video="qanda-voice" id="subtitle"]]
+[[!template text="""matter. This is vital,""" start="01:04:42.980" video="qanda-voice" id="subtitle"]]
+[[!template text="""time management. It's a kind of key aspect of""" start="01:04:48.260" video="qanda-voice" id="subtitle"]]
+[[!template text="""life.""" start="01:04:48.440" video="qanda-voice" id="subtitle"]]
+[[!template text="""[Speaker 2]: Oh yeah. The way the how the function.""" start="01:04:54.680" video="qanda-voice" id="subtitle"]]
+[[!template text="""Reasons to use emacs is to use the keyboard""" start="01:05:03.320" video="qanda-voice" id="subtitle"]]
+[[!template text="""is. It's not to speed you up.""" start="01:05:08.240" video="qanda-voice" id="subtitle"]]
+[[!template text="""Like, yeah, that's nice.""" start="01:05:09.520" video="qanda-voice" id="subtitle"]]
+[[!template text="""But it keeps you in the stream,""" start="01:05:12.280" video="qanda-voice" id="subtitle"]]
+[[!template text="""keeps you in the flow state and which then""" start="01:05:25.400" video="qanda-voice" id="subtitle"]]
+[[!template text="""just makes you think better and yeah and the""" start="01:05:32.780" video="qanda-voice" id="subtitle"]]
+[[!template text="""thing with that is you I have you I have no""" start="01:05:35.540" video="qanda-voice" id="subtitle"]]
+[[!template text="""idea what the limits of that would be.""" start="01:05:37.480" video="qanda-voice" id="subtitle"]]
+[[!template text="""Because you think, because yes,""" start="01:05:39.680" video="qanda-voice" id="subtitle"]]
+[[!template text="""it's not about beating up how many words you""" start="01:05:42.740" video="qanda-voice" id="subtitle"]]
+[[!template text="""say a minute. I mean that's nice and all,""" start="01:05:44.860" video="qanda-voice" id="subtitle"]]
+[[!template text="""But when you start doing that,""" start="01:05:46.680" video="qanda-voice" id="subtitle"]]
+[[!template text="""when you start removing all these friction""" start="01:05:48.340" video="qanda-voice" id="subtitle"]]
+[[!template text="""points, all of a sudden the number,""" start="01:05:52.500" video="qanda-voice" id="subtitle"]]
+[[!template text="""quality, and types of thoughts you get start""" start="01:05:57.800" video="qanda-voice" id="subtitle"]]
+[[!template text="""[Speaker 0]: That's right.""" start="01:06:01.620" video="qanda-voice" id="subtitle"]]
+[[!template text="""[Speaker 2]: increasing. Which is the goal.""" start="01:06:03.480" video="qanda-voice" id="subtitle"]]
+[[!template text="""[Speaker 0]: Okay. Well, thank you very much.""" start="01:06:14.960" video="qanda-voice" id="subtitle"]]
+[[!template text="""Enjoy the rest of the meeting.""" start="01:06:17.760" video="qanda-voice" id="subtitle"]]
+[[!template text="""[Speaker 2]: Will do.""" start="01:06:19.280" video="qanda-voice" id="subtitle"]]
+
+</div>Questions or comments? Please e-mail [emacsconf-org-private@gnu.org](mailto:emacsconf-org-private@gnu.org?subject=Comment%20for%20EmacsConf%202023%20voice%3A%20Enhancing%20productivity%20with%20voice%20computing)
<!-- End of emacsconf-publish-after-page -->
diff --git a/2023/info/voice-before.md b/2023/info/voice-before.md
index 376dee32..9ec5c829 100644
--- a/2023/info/voice-before.md
+++ b/2023/info/voice-before.md
@@ -1,12 +1,37 @@
<!-- Automatically generated by emacsconf-publish-before-page -->
[[!toc ]]
-Format: 20-min talk followed by live web conference Q&A
-Discuss on IRC: [#emacsconf](https://chat.emacsconf.org/?join=emacsconf)
-Status: Waiting for video from speaker
+Format: 19-min talk ; Q&A: BigBlueButton conference room
+Status: TO_INDEX_QA
+# Talk
+
+<div class="vid mainVideo"><video controls preload="none" id="mainVideo-voice"><source src="https://media.emacsconf.org/2023/emacsconf-2023-voice--enhancing-productivity-with-voice-computing--blaine-mooers--main.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2023/captions/emacsconf-2023-voice--enhancing-productivity-with-voice-computing--blaine-mooers--main.vtt" default />"""<track kind="chapters" label="Chapters" src="/2023/captions/emacsconf-2023-voice--enhancing-productivity-with-voice-computing--blaine-mooers--main--chapters.vtt" /><p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video>[[!template id="chapters" vidid="mainVideo-voice" data="""
+00:00.000 Introduction
+00:37.400 Three activities in voice computing
+01:02.560 Talk is not about ... and about ...
+01:53.520 Motivations
+03:33.240 Data
+03:58.680 Voice In in the Chrome Store
+04:25.628 Works in web pages with text areas
+05:16.880 Built-in commands in Voice In Plus
+06:41.740 Common errors made by Voice In
+08:14.760 Custom speech-to-text commands
+09:59.420 Custom speech-to-commands
+10:37.540 Introducing Talon Voice
+12:28.400 Talon GUI
+14:02.540 Talon file with web scope
+15:34.015 Terminals on remote and virtual machines
+16:52.500 Recommendations
+18:17.720 Acknowledgements
+
+"""]]<div></div>Duration: 18:49 minutes<div class="files resources"><ul><li><a href="https://pad.emacsconf.org/2023-voice">Open Etherpad</a></li><li><a href="https://bbb.emacsverse.org/playback/presentation/2.0/playback.html?meetingId=8ddd81ef601d78f7b9ac2093f3700a29b5595ff3-1701529315435">Play recording from BigBlueButton</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-voice--enhancing-productivity-with-voice-computing--blaine-mooers--intro.vtt">Download --intro.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-voice--enhancing-productivity-with-voice-computing--blaine-mooers--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-voice--enhancing-productivity-with-voice-computing--blaine-mooers--main--chapters.vtt">Download --main--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-voice--enhancing-productivity-with-voice-computing--blaine-mooers--main.opus">Download --main.opus (9MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-voice--enhancing-productivity-with-voice-computing--blaine-mooers--main.vtt">Download --main.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-voice--enhancing-productivity-with-voice-computing--blaine-mooers--main.webm">Download --main.webm (32MB)</a></li><li><a href="https://toobnix.org/w/vYHj7iSYhUbTxDv93NvzzY">View on Toobnix</a></li><li><a href="https://www.youtube.com/watch?v=Z7l1ImjXOWM">View on Youtube</a></li></ul></div></div>
+
+# Q&A
+
+<div class="vid qanda"><video controls preload="none" id="qanda-voice"><source src="https://media.emacsconf.org/2023/emacsconf-2023-voice--enhancing-productivity-with-voice-computing--blaine-mooers--answers.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2023/captions/emacsconf-2023-voice--enhancing-productivity-with-voice-computing--blaine-mooers--answers.vtt" default />"""<p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video><div>Listen to just the audio:<br /><audio controls preload="none" id="qanda-voice-audio" src="https://media.emacsconf.org/2023/emacsconf-2023-voice--enhancing-productivity-with-voice-computing--blaine-mooers--answers.opus"></audio></div><div></div>Duration: 1:07:47 minutes<div class="files resources"><ul><li><a href="https://pad.emacsconf.org/2023-voice">Open Etherpad</a></li><li><a href="https://bbb.emacsverse.org/playback/presentation/2.0/playback.html?meetingId=8ddd81ef601d78f7b9ac2093f3700a29b5595ff3-1701529315435">Play recording from BigBlueButton</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-voice--enhancing-productivity-with-voice-computing--blaine-mooers--answers.opus">Download --answers.opus (34MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-voice--enhancing-productivity-with-voice-computing--blaine-mooers--answers.vtt">Download --answers.vtt</a> (unedited)</li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-voice--enhancing-productivity-with-voice-computing--blaine-mooers--answers.webm">Download --answers.webm (205MB)</a></li></ul></div></div>
# Description
<!-- End of emacsconf-publish-before-page --> \ No newline at end of file
diff --git a/2023/info/voice-nav.md b/2023/info/voice-nav.md
index 9fedf97e..ff560e36 100644
--- a/2023/info/voice-nav.md
+++ b/2023/info/voice-nav.md
@@ -3,5 +3,5 @@
Back to the [[talks]]
Previous by track: <a href="/2023/talks/matplotllm">MatplotLLM, iterative natural language data visualization in org-babel</a>
Next by track: <a href="/2023/talks/llm">LLM clients in Emacs, functionality and standardization</a>
-Track: <span class="sched-track Development">Development</span>
+Track: <span class="sched-track Development">Development</span> - <strong><a href="https://emacsconf.org/2023/watch/dev">Watch</a></strong>
</div>
diff --git a/2023/info/web-after.md b/2023/info/web-after.md
index b1b99127..0e6730c2 100644
--- a/2023/info/web-after.md
+++ b/2023/info/web-after.md
@@ -1,7 +1,824 @@
<!-- Automatically generated by emacsconf-publish-after-page -->
-Questions or comments? Please e-mail [id@ypei.org](mailto:id@ypei.org?subject=Comment%20for%20EmacsConf%202022%20web%3A%20Emacs%20saves%20the%20Web)
+<div class="transcript transcript-mainVideo"><a name="web-mainVideo-transcript"></a><h1>Transcript</h1>
+
+
+<div class="transcript-heading">[[!template new="1" text="""Overview""" start="00:00:00.000" video="mainVideo-web" id="subtitle"]]</div>[[!template text="""Hello, I am Yuchen, and I will be talking about""" start="00:00:00.000" video="mainVideo-web" id="subtitle"]]
+[[!template text="""how Emacs may be used to save user freedom on the web.""" start="00:00:03.200" video="mainVideo-web" id="subtitle"]]
+[[!template text="""I will begin by describing the background issues,""" start="00:00:06.840" video="mainVideo-web" id="subtitle"]]
+[[!template text="""followed by solutions outside of Emacs.""" start="00:00:09.680" video="mainVideo-web" id="subtitle"]]
+[[!template text="""Then I will move into the main business of describing""" start="00:00:12.360" video="mainVideo-web" id="subtitle"]]
+[[!template text="""several ways to address the issues using Emacs,""" start="00:00:14.880" video="mainVideo-web" id="subtitle"]]
+[[!template text="""including free clients in Emacs, web browsers,""" start="00:00:17.800" video="mainVideo-web" id="subtitle"]]
+[[!template text="""also known as universal clients in Emacs,""" start="00:00:20.600" video="mainVideo-web" id="subtitle"]]
+[[!template text="""approaches using Emacs web server and Emacs web framework,""" start="00:00:23.400" video="mainVideo-web" id="subtitle"]]
+[[!template text="""which allows one to write an Emacs package""" start="00:00:27.120" video="mainVideo-web" id="subtitle"]]
+[[!template text="""and get a web app for free,""" start="00:00:29.320" video="mainVideo-web" id="subtitle"]]
+[[!template text="""as well as using Emacs as a Firefox extension.""" start="00:00:30.760" video="mainVideo-web" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Background problems""" start="00:00:35.680" video="mainVideo-web" id="subtitle"]]</div>[[!template text="""OK, let's now move on to""" start="00:00:35.680" video="mainVideo-web" id="subtitle"]]
+[[!template text="""the background issues for this topic.""" start="00:00:37.160" video="mainVideo-web" id="subtitle"]]
+[[!template text="""Many of you probably already know what is free software.""" start="00:00:39.560" video="mainVideo-web" id="subtitle"]]
+[[!template text="""It is software that respects four user freedoms,""" start="00:00:42.640" video="mainVideo-web" id="subtitle"]]
+[[!template text="""including freedom 0, which is the freedom to use,""" start="00:00:45.481" video="mainVideo-web" id="subtitle"]]
+[[!template text="""freedom 1 is the freedom to study and modify a program,""" start="00:00:49.000" video="mainVideo-web" id="subtitle"]]
+[[!template text="""freedom 2 is the freedom to""" start="00:00:52.279" video="mainVideo-web" id="subtitle"]]
+[[!template text="""distribute exact copies of a program,""" start="00:00:54.488" video="mainVideo-web" id="subtitle"]]
+[[!template text="""and freedom 3 is the freedom to distribute modified copies.""" start="00:00:57.240" video="mainVideo-web" id="subtitle"]]
+[[!template text="""Different environments have different norms""" start="00:01:01.680" video="mainVideo-web" id="subtitle"]]
+[[!template text="""with regards to user freedom.""" start="00:01:04.040" video="mainVideo-web" id="subtitle"]]
+[[!template text="""For example, GNU/Linux distributions""" start="00:01:06.820" video="mainVideo-web" id="subtitle"]]
+[[!template text="""default to free software,""" start="00:01:11.240" video="mainVideo-web" id="subtitle"]]
+[[!template text="""even though the official kernel Linux""" start="00:01:13.440" video="mainVideo-web" id="subtitle"]]
+[[!template text="""contains non-free code, like non-free firmware.""" start="00:01:15.520" video="mainVideo-web" id="subtitle"]]
+[[!template text="""What I mean is, people generally expect free software""" start="00:01:18.420" video="mainVideo-web" id="subtitle"]]
+[[!template text="""in these environments.""" start="00:01:23.060" video="mainVideo-web" id="subtitle"]]
+[[!template text="""There's plenty of free software""" start="00:01:25.760" video="mainVideo-web" id="subtitle"]]
+[[!template text="""built on other free software,""" start="00:01:27.360" video="mainVideo-web" id="subtitle"]]
+[[!template text="""so generally people can accomplish tasks""" start="00:01:29.040" video="mainVideo-web" id="subtitle"]]
+[[!template text="""using free software only.""" start="00:01:31.220" video="mainVideo-web" id="subtitle"]]
+[[!template text="""Emacs, by comparison, is even better.""" start="00:01:33.600" video="mainVideo-web" id="subtitle"]]
+[[!template text="""It has freedom built-in, as it is highly customizable""" start="00:01:37.280" video="mainVideo-web" id="subtitle"]]
+[[!template text="""with self-documenting configurations.""" start="00:01:41.220" video="mainVideo-web" id="subtitle"]]
+[[!template text="""When a Lisp form is evaluated by the user in Emacs,""" start="00:01:44.680" video="mainVideo-web" id="subtitle"]]
+[[!template text="""the change is instantly reflected in the environment.""" start="00:01:49.600" video="mainVideo-web" id="subtitle"]]
+[[!template text="""Thus, it converts users to hackers effortlessly.""" start="00:01:53.160" video="mainVideo-web" id="subtitle"]]
+[[!template text="""From writing setq statements,""" start="00:01:56.720" video="mainVideo-web" id="subtitle"]]
+[[!template text="""which is similar to configurations""" start="00:01:58.440" video="mainVideo-web" id="subtitle"]]
+[[!template text="""in the majority of other programs,""" start="00:02:00.640" video="mainVideo-web" id="subtitle"]]
+[[!template text="""to writing functions,""" start="00:02:01.960" video="mainVideo-web" id="subtitle"]]
+[[!template text="""which are building blocks of Elisp features,""" start="00:02:03.400" video="mainVideo-web" id="subtitle"]]
+[[!template text="""to writing features and publishing packages,""" start="00:02:05.440" video="mainVideo-web" id="subtitle"]]
+[[!template text="""it is a natural progression.""" start="00:02:08.140" video="mainVideo-web" id="subtitle"]]
+[[!template text="""In this sense, Emacs perhaps has""" start="00:02:10.099" video="mainVideo-web" id="subtitle"]]
+[[!template text="""the most gentle learning curve for hackers.""" start="00:02:15.040" video="mainVideo-web" id="subtitle"]]
+[[!template text="""On the other hand, the default license""" start="00:02:18.840" video="mainVideo-web" id="subtitle"]]
+[[!template text="""in the Emacs community""" start="00:02:21.100" video="mainVideo-web" id="subtitle"]]
+[[!template text="""is GNU General Public License version 3 or later,""" start="00:02:22.600" video="mainVideo-web" id="subtitle"]]
+[[!template text="""which is the best free software license""" start="00:02:26.200" video="mainVideo-web" id="subtitle"]]
+[[!template text="""apart from the Affero license.""" start="00:02:29.040" video="mainVideo-web" id="subtitle"]]
+[[!template text="""Now let's move on to web browsers,""" start="00:02:32.300" video="mainVideo-web" id="subtitle"]]
+[[!template text="""which by contrast does not default to freedom.""" start="00:02:35.020" video="mainVideo-web" id="subtitle"]]
+[[!template text="""For one thing, free software JavaScript projects""" start="00:02:39.240" video="mainVideo-web" id="subtitle"]]
+[[!template text="""default to Expat license,""" start="00:02:42.200" video="mainVideo-web" id="subtitle"]]
+[[!template text="""which is also commonly known as the MIT license,""" start="00:02:45.780" video="mainVideo-web" id="subtitle"]]
+[[!template text="""which is a lax permissive license that could be exploited""" start="00:02:49.400" video="mainVideo-web" id="subtitle"]]
+[[!template text="""as developers could write non-free derivatives""" start="00:02:53.280" video="mainVideo-web" id="subtitle"]]
+[[!template text="""and subjugate user freedom.""" start="00:02:55.920" video="mainVideo-web" id="subtitle"]]
+[[!template text="""This also contributes to the JavaScript trap.""" start="00:02:59.680" video="mainVideo-web" id="subtitle"]]
+[[!template text="""Most popular web browsers nowadays simply download and run""" start="00:03:03.160" video="mainVideo-web" id="subtitle"]]
+[[!template text="""any JavaScript code requested by the web page.""" start="00:03:06.720" video="mainVideo-web" id="subtitle"]]
+[[!template text="""Generally speaking, there are two camps on this issue.""" start="00:03:10.820" video="mainVideo-web" id="subtitle"]]
+[[!template text="""One side would say JavaScript is simply part of life,""" start="00:03:15.320" video="mainVideo-web" id="subtitle"]]
+[[!template text="""and an integral part of the so-called modern web.""" start="00:03:19.040" video="mainVideo-web" id="subtitle"]]
+[[!template text="""Just accept it, and there is no point in fighting it.""" start="00:03:22.040" video="mainVideo-web" id="subtitle"]]
+[[!template text="""Indeed, it can be frustrating when greeted by""" start="00:03:25.300" video="mainVideo-web" id="subtitle"]]
+[[!template text="""&quot;This page requires JavaScript and cookies to continue,&quot;""" start="00:03:28.388" video="mainVideo-web" id="subtitle"]]
+[[!template text="""or even a blank page when opening a web page""" start="00:03:31.800" video="mainVideo-web" id="subtitle"]]
+[[!template text="""while disabling JavaScript.""" start="00:03:34.720" video="mainVideo-web" id="subtitle"]]
+[[!template text="""The other camp takes a more principled position""" start="00:03:38.440" video="mainVideo-web" id="subtitle"]]
+[[!template text="""and says JavaScript is unnecessary.""" start="00:03:42.160" video="mainVideo-web" id="subtitle"]]
+[[!template text="""I mean, people use the web mainly for""" start="00:03:44.840" video="mainVideo-web" id="subtitle"]]
+[[!template text="""database-like operations""" start="00:03:47.280" video="mainVideo-web" id="subtitle"]]
+[[!template text="""to interact with data stored on other people's computers,""" start="00:03:48.520" video="mainVideo-web" id="subtitle"]]
+[[!template text="""like querying, creating, updating, deleting.""" start="00:03:51.680" video="mainVideo-web" id="subtitle"]]
+[[!template text="""I mean, 99% of the things happen in getting data,""" start="00:03:55.360" video="mainVideo-web" id="subtitle"]]
+[[!template text="""including reading news, watching videos,""" start="00:03:58.960" video="mainVideo-web" id="subtitle"]]
+[[!template text="""downloading images, etc.,""" start="00:04:01.240" video="mainVideo-web" id="subtitle"]]
+[[!template text="""and posting data, including publishing""" start="00:04:03.340" video="mainVideo-web" id="subtitle"]]
+[[!template text="""this sort of materials, publishing news comments, videos.""" start="00:04:06.080" video="mainVideo-web" id="subtitle"]]
+[[!template text="""Why does this need any programs""" start="00:04:10.480" video="mainVideo-web" id="subtitle"]]
+[[!template text="""to do funny computations, right?""" start="00:04:12.400" video="mainVideo-web" id="subtitle"]]
+[[!template text="""Modern web browsers are also a pain to use.""" start="00:04:16.200" video="mainVideo-web" id="subtitle"]]
+[[!template text="""They are the opposite to Emacs""" start="00:04:19.080" video="mainVideo-web" id="subtitle"]]
+[[!template text="""in terms of customization capabilities.""" start="00:04:21.080" video="mainVideo-web" id="subtitle"]]
+[[!template text="""Such problems on the client side""" start="00:04:26.760" video="mainVideo-web" id="subtitle"]]
+[[!template text="""is the main focus of this talk.""" start="00:04:29.360" video="mainVideo-web" id="subtitle"]]
+[[!template text="""On the server side, the issue is known as SaaSS,""" start="00:04:31.920" video="mainVideo-web" id="subtitle"]]
+[[!template text="""service as a software substitute.""" start="00:04:34.320" video="mainVideo-web" id="subtitle"]]
+[[!template text="""It is about doing computing for users""" start="00:04:38.760" video="mainVideo-web" id="subtitle"]]
+[[!template text="""on other people's computers,""" start="00:04:42.421" video="mainVideo-web" id="subtitle"]]
+[[!template text="""which the user has no visibility, let alone control.""" start="00:04:44.541" video="mainVideo-web" id="subtitle"]]
+[[!template text="""Examples include translation or photo editing""" start="00:04:48.440" video="mainVideo-web" id="subtitle"]]
+[[!template text="""in so-called web applications.""" start="00:04:51.941" video="mainVideo-web" id="subtitle"]]
+[[!template text="""Another example would be web applications""" start="00:04:55.360" video="mainVideo-web" id="subtitle"]]
+[[!template text="""make recommendations based on user data""" start="00:04:59.920" video="mainVideo-web" id="subtitle"]]
+[[!template text="""and suggest what the users read or watch next.""" start="00:05:02.160" video="mainVideo-web" id="subtitle"]]
+[[!template text="""On the one hand, SaaSS is an intractable problem""" start="00:05:05.960" video="mainVideo-web" id="subtitle"]]
+[[!template text="""because free software is all about user freedom""" start="00:05:09.960" video="mainVideo-web" id="subtitle"]]
+[[!template text="""on one's own computer,""" start="00:05:11.800" video="mainVideo-web" id="subtitle"]]
+[[!template text="""not someone else's computer.""" start="00:05:13.760" video="mainVideo-web" id="subtitle"]]
+[[!template text="""On the other hand, this is also a lesser problem""" start="00:05:16.080" video="mainVideo-web" id="subtitle"]]
+[[!template text="""because it has trivial solutions,""" start="00:05:18.880" video="mainVideo-web" id="subtitle"]]
+[[!template text="""which is self-hosting and keeping computations local.""" start="00:05:21.600" video="mainVideo-web" id="subtitle"]]
+[[!template text="""Wouldn't it be nice to use a photo editing web application,""" start="00:05:25.840" video="mainVideo-web" id="subtitle"]]
+[[!template text="""but without the web?""" start="00:05:28.680" video="mainVideo-web" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Solutions outside of Emacs""" start="00:05:31.940" video="mainVideo-web" id="subtitle"]]</div>[[!template text="""Right, now let's move on to solutions outside of Emacs""" start="00:05:31.940" video="mainVideo-web" id="subtitle"]]
+[[!template text="""that tackle these problems.""" start="00:05:36.401" video="mainVideo-web" id="subtitle"]]
+[[!template text="""There are generally two ways to fix this issue.""" start="00:05:39.040" video="mainVideo-web" id="subtitle"]]
+[[!template text="""One is blocking non-free JavaScript,""" start="00:05:42.960" video="mainVideo-web" id="subtitle"]]
+[[!template text="""and the other is substituting with free programs.""" start="00:05:45.400" video="mainVideo-web" id="subtitle"]]
+[[!template text="""Let's start with blocking.""" start="00:05:48.980" video="mainVideo-web" id="subtitle"]]
+[[!template text="""LibreJS, for example, is a Firefox extension""" start="00:05:50.440" video="mainVideo-web" id="subtitle"]]
+[[!template text="""blocking non-free, non-trivial JavaScript.""" start="00:05:54.860" video="mainVideo-web" id="subtitle"]]
+[[!template text="""It works by intercepting, filtering""" start="00:05:56.920" video="mainVideo-web" id="subtitle"]]
+[[!template text="""all requests for JavaScript,""" start="00:05:59.821" video="mainVideo-web" id="subtitle"]]
+[[!template text="""recognizing the ones that are trivial or free,""" start="00:06:01.760" video="mainVideo-web" id="subtitle"]]
+[[!template text="""and blocking the execution of the others.""" start="00:06:05.600" video="mainVideo-web" id="subtitle"]]
+[[!template text="""As an experiment, I logged the LibreJS output""" start="00:06:11.000" video="mainVideo-web" id="subtitle"]]
+[[!template text="""for about two weeks,""" start="00:06:13.880" video="mainVideo-web" id="subtitle"]]
+[[!template text="""and during which, of all the web pages I loaded,""" start="00:06:15.560" video="mainVideo-web" id="subtitle"]]
+[[!template text="""23 domains have at least some LibreJS-compliant scripts.""" start="00:06:19.740" video="mainVideo-web" id="subtitle"]]
+[[!template text="""That is not much, though I did use other means""" start="00:06:25.001" video="mainVideo-web" id="subtitle"]]
+[[!template text="""to reduce the scenarios""" start="00:06:28.680" video="mainVideo-web" id="subtitle"]]
+[[!template text="""where I need to load web pages with JavaScript in Firefox,""" start="00:06:30.920" video="mainVideo-web" id="subtitle"]]
+[[!template text="""like using a text browser like Lynx.""" start="00:06:35.400" video="mainVideo-web" id="subtitle"]]
+[[!template text="""Then there's also NoScript, which is like LibreJS,""" start="00:06:40.720" video="mainVideo-web" id="subtitle"]]
+[[!template text="""but it blocks all scripts, whether free or non-free,
+trivial or non-trivial.""" start="00:06:44.240" video="mainVideo-web" id="subtitle"]]
+[[!template text="""So the problem with blocking is that""" start="00:06:49.500" video="mainVideo-web" id="subtitle"]]
+[[!template text="""blocking with certain scripts and accepting others,""" start="00:06:54.360" video="mainVideo-web" id="subtitle"]]
+[[!template text="""there are like... I can think of two problems.""" start="00:06:57.560" video="mainVideo-web" id="subtitle"]]
+[[!template text="""One is that it does not help with Freedom 1,""" start="00:07:00.679" video="mainVideo-web" id="subtitle"]]
+[[!template text="""which is the freedom to allow users to modify a program""" start="00:07:02.879" video="mainVideo-web" id="subtitle"]]
+[[!template text="""and use it in place of the original program.""" start="00:07:07.960" video="mainVideo-web" id="subtitle"]]
+[[!template text="""And also it does not help""" start="00:07:13.080" video="mainVideo-web" id="subtitle"]]
+[[!template text="""when the non-free JavaScript is mandatory""" start="00:07:15.840" video="mainVideo-web" id="subtitle"]]
+[[!template text="""for the functioning of the web page.""" start="00:07:18.860" video="mainVideo-web" id="subtitle"]]
+[[!template text="""For example, some pages are blank""" start="00:07:20.720" video="mainVideo-web" id="subtitle"]]
+[[!template text="""when non-free JavaScript is not executed.""" start="00:07:22.840" video="mainVideo-web" id="subtitle"]]
+[[!template text="""So now let's move on to the substitution, the other method.""" start="00:07:27.080" video="mainVideo-web" id="subtitle"]]
+[[!template text="""Let's start with userscript.""" start="00:07:36.280" video="mainVideo-web" id="subtitle"]]
+[[!template text="""It is a script, it is a user-specified JavaScript""" start="00:07:38.920" video="mainVideo-web" id="subtitle"]]
+[[!template text="""injected to a web page.""" start="00:07:41.761" video="mainVideo-web" id="subtitle"]]
+[[!template text="""A typical example of userscript tool is GreaseMonkey.""" start="00:07:43.040" video="mainVideo-web" id="subtitle"]]
+[[!template text="""Another idea is a proxy that replaces scripts in place,""" start="00:07:48.481" video="mainVideo-web" id="subtitle"]]
+[[!template text="""that is, sending user-specified scripts""" start="00:07:53.160" video="mainVideo-web" id="subtitle"]]
+[[!template text="""as a response to requests for such scripts.""" start="00:07:55.919" video="mainVideo-web" id="subtitle"]]
+[[!template text="""So one example would be Haketilo, however you pronounce it.""" start="00:08:00.900" video="mainVideo-web" id="subtitle"]]
+[[!template text="""It's a tool that's built on top of mitmproxy.""" start="00:08:04.760" video="mainVideo-web" id="subtitle"]]
+[[!template text="""It is supposed to do this.""" start="00:08:09.620" video="mainVideo-web" id="subtitle"]]
+[[!template text="""I haven't used GreaseMonkey nor Haketilo""" start="00:08:11.720" video="mainVideo-web" id="subtitle"]]
+[[!template text="""for these purposes yet,""" start="00:08:14.600" video="mainVideo-web" id="subtitle"]]
+[[!template text="""so I can't say much about these options.""" start="00:08:16.600" video="mainVideo-web" id="subtitle"]]
+[[!template text="""So then there are also free clients""" start="00:08:20.780" video="mainVideo-web" id="subtitle"]]
+[[!template text="""which replace the whole frontend,""" start="00:08:24.360" video="mainVideo-web" id="subtitle"]]
+[[!template text="""instead of a script requested by web pages""" start="00:08:26.480" video="mainVideo-web" id="subtitle"]]
+[[!template text="""from the official web clients.""" start="00:08:30.661" video="mainVideo-web" id="subtitle"]]
+[[!template text="""People often refer to them as alternative frontend.""" start="00:08:32.500" video="mainVideo-web" id="subtitle"]]
+[[!template text="""YouTube is perhaps the best example""" start="00:08:37.360" video="mainVideo-web" id="subtitle"]]
+[[!template text="""as there are so many free clients,""" start="00:08:39.360" video="mainVideo-web" id="subtitle"]]
+[[!template text="""including Invidious for the web,""" start="00:08:41.280" video="mainVideo-web" id="subtitle"]]
+[[!template text="""youtube-dl and yt-dlp on the command line,""" start="00:08:43.622" video="mainVideo-web" id="subtitle"]]
+[[!template text="""MPV and VLC as GUI desktop, LibreTube""" start="00:08:46.240" video="mainVideo-web" id="subtitle"]]
+[[!template text="""and NewPipe for Android and so on.""" start="00:08:50.280" video="mainVideo-web" id="subtitle"]]
+[[!template text="""Youtube-dl and yt-dlp are especially versatile""" start="00:08:53.260" video="mainVideo-web" id="subtitle"]]
+[[!template text="""as they work with many video and audio sites""" start="00:08:56.760" video="mainVideo-web" id="subtitle"]]
+[[!template text="""with extractors written in Python,""" start="00:08:59.460" video="mainVideo-web" id="subtitle"]]
+[[!template text="""so people can add extractors like extensions.""" start="00:09:02.620" video="mainVideo-web" id="subtitle"]]
+[[!template text="""A similar tool would be woob,""" start="00:09:06.300" video="mainVideo-web" id="subtitle"]]
+[[!template text="""short for web outside of the browsers.""" start="00:09:09.422" video="mainVideo-web" id="subtitle"]]
+[[!template text="""It is a command-line and GUI program""" start="00:09:12.740" video="mainVideo-web" id="subtitle"]]
+[[!template text="""that interacts with many web services, even banks.""" start="00:09:16.920" video="mainVideo-web" id="subtitle"]]
+[[!template text="""And there are browser extensions""" start="00:09:23.200" video="mainVideo-web" id="subtitle"]]
+[[!template text="""that automatically redirect to these clients.""" start="00:09:25.840" video="mainVideo-web" id="subtitle"]]
+[[!template text="""For example, Redirector and Libredirect""" start="00:09:28.860" video="mainVideo-web" id="subtitle"]]
+[[!template text="""redirect to the free web clients.""" start="00:09:31.640" video="mainVideo-web" id="subtitle"]]
+[[!template text="""One could use OpenWith, another extension,""" start="00:09:35.200" video="mainVideo-web" id="subtitle"]]
+[[!template text="""to redirect to free non-web clients,""" start="00:09:39.700" video="mainVideo-web" id="subtitle"]]
+[[!template text="""for example by opening YouTube links with MPV.""" start="00:09:42.160" video="mainVideo-web" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Emacs solutions""" start="00:09:46.480" video="mainVideo-web" id="subtitle"]]</div>[[!template text="""Now let us move to Emacs-based solutions.""" start="00:09:46.480" video="mainVideo-web" id="subtitle"]]
+[[!template text="""They are based on the same ideas but using Emacs.""" start="00:09:51.000" video="mainVideo-web" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Free clients in Emacs""" start="00:09:54.600" video="mainVideo-web" id="subtitle"]]</div>[[!template text="""First, free clients in Emacs.""" start="00:09:54.600" video="mainVideo-web" id="subtitle"]]
+[[!template text="""Basically alternative frontends written in Elisp.""" start="00:09:57.480" video="mainVideo-web" id="subtitle"]]
+[[!template text="""There are several advantages.""" start="00:10:00.640" video="mainVideo-web" id="subtitle"]]
+[[!template text="""For example, integration with other Emacs tools,""" start="00:10:03.360" video="mainVideo-web" id="subtitle"]]
+[[!template text="""good for archiving, making use of Emacs libraries,""" start="00:10:06.200" video="mainVideo-web" id="subtitle"]]
+[[!template text="""extensibility, thanks to Emacs' own""" start="00:10:09.560" video="mainVideo-web" id="subtitle"]]
+[[!template text="""extensibility and customizability.""" start="00:10:12.489" video="mainVideo-web" id="subtitle"]]
+[[!template text="""Examples include mastodon.el for mastodon,""" start="00:10:15.000" video="mainVideo-web" id="subtitle"]]
+[[!template text="""or mastorg for viewing and archiving toots with org,""" start="00:10:18.620" video="mainVideo-web" id="subtitle"]]
+[[!template text="""sx for Stack Exchange, buildbot.el for buildbot, etc.""" start="00:10:22.680" video="mainVideo-web" id="subtitle"]]
+[[!template text="""Here's an example of mastorg displaying""" start="00:10:28.900" video="mainVideo-web" id="subtitle"]]
+[[!template text="""the hierarchy of a toot in org.""" start="00:10:31.901" video="mainVideo-web" id="subtitle"]]
+[[!template text="""Just wait. Right.""" start="00:10:34.520" video="mainVideo-web" id="subtitle"]]
+[[!template text="""So this is the toot itself, this is a first reply,""" start="00:10:39.920" video="mainVideo-web" id="subtitle"]]
+[[!template text="""this is a reply to the reply, and so on.""" start="00:10:44.000" video="mainVideo-web" id="subtitle"]]
+[[!template text="""And here is an example of""" start="00:10:48.480" video="mainVideo-web" id="subtitle"]]
+[[!template text="""opening a Stack Exchange link using sx.""" start="00:10:53.080" video="mainVideo-web" id="subtitle"]]
+[[!template text="""Let's check out the tag.""" start="00:11:05.720" video="mainVideo-web" id="subtitle"]]
+[[!template text="""So we can browse the Stack Exchange Emacs site
+with ease.""" start="00:11:11.120" video="mainVideo-web" id="subtitle"]]
+[[!template text="""The idea is quite simple.""" start="00:11:28.400" video="mainVideo-web" id="subtitle"]]
+[[!template text="""Just use APIs to get data and display it in Emacs,""" start="00:11:31.080" video="mainVideo-web" id="subtitle"]]
+[[!template text="""or just to scrape, like requesting HTML and processing it.""" start="00:11:35.720" video="mainVideo-web" id="subtitle"]]
+[[!template text="""An example of scraping is hnreader,""" start="00:11:40.820" video="mainVideo-web" id="subtitle"]]
+[[!template text="""which scrapes Hacker News web pages""" start="00:11:44.180" video="mainVideo-web" id="subtitle"]]
+[[!template text="""and renders them in Org buffers.""" start="00:11:47.299" video="mainVideo-web" id="subtitle"]]
+[[!template text="""Here's how hnreader fetches""" start="00:11:49.780" video="mainVideo-web" id="subtitle"]]
+[[!template text="""and displays the Hacker News front page.""" start="00:11:52.380" video="mainVideo-web" id="subtitle"]]
+[[!template text="""And one could go into the comments,""" start="00:11:58.520" video="mainVideo-web" id="subtitle"]]
+[[!template text="""which shows a similar hierarchy to mastorg's output.""" start="00:12:04.000" video="mainVideo-web" id="subtitle"]]
+[[!template text="""And of course, there are limitations for this method,""" start="00:12:14.360" video="mainVideo-web" id="subtitle"]]
+[[!template text="""which is not limited to Emacs.""" start="00:12:19.001" video="mainVideo-web" id="subtitle"]]
+[[!template text="""There are basically limitations""" start="00:12:22.540" video="mainVideo-web" id="subtitle"]]
+[[!template text="""to any ad hoc bespoke clients,""" start="00:12:24.522" video="mainVideo-web" id="subtitle"]]
+[[!template text="""which is catch-up games with remote server,""" start="00:12:28.420" video="mainVideo-web" id="subtitle"]]
+[[!template text="""which may change the API interface endpoints""" start="00:12:31.520" video="mainVideo-web" id="subtitle"]]
+[[!template text="""or even structure of the responses.""" start="00:12:34.560" video="mainVideo-web" id="subtitle"]]
+[[!template text="""This brings us to web browsers in Emacs.""" start="00:12:37.540" video="mainVideo-web" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Web browsers in Emacs""" start="00:12:43.021" video="mainVideo-web" id="subtitle"]]</div>[[!template text="""Web browsers are universal clients""" start="00:12:43.021" video="mainVideo-web" id="subtitle"]]
+[[!template text="""because all sites support browsers.""" start="00:12:45.160" video="mainVideo-web" id="subtitle"]]
+[[!template text="""So in a world of no JavaScript,""" start="00:12:47.200" video="mainVideo-web" id="subtitle"]]
+[[!template text="""there will be no need to write bespoke clients.""" start="00:12:48.920" video="mainVideo-web" id="subtitle"]]
+[[!template text="""In such a world,""" start="00:12:52.740" video="mainVideo-web" id="subtitle"]]
+[[!template text="""instead of using JavaScript code to fetch JSON,""" start="00:12:53.480" video="mainVideo-web" id="subtitle"]]
+[[!template text="""web developers make server do the heavy lifting""" start="00:12:56.740" video="mainVideo-web" id="subtitle"]]
+[[!template text="""and just send the complete HTML over.""" start="00:13:00.120" video="mainVideo-web" id="subtitle"]]
+[[!template text="""Okay, back to reality.""" start="00:13:02.860" video="mainVideo-web" id="subtitle"]]
+[[!template text="""EWW, the default Emacs browser,""" start="00:13:05.480" video="mainVideo-web" id="subtitle"]]
+[[!template text="""is what people refer to as a text browser,""" start="00:13:07.660" video="mainVideo-web" id="subtitle"]]
+[[!template text="""even though it is not text only and it supports images too.""" start="00:13:11.380" video="mainVideo-web" id="subtitle"]]
+[[!template text="""It is a good solid browser that supports forms, etc.""" start="00:13:16.900" video="mainVideo-web" id="subtitle"]]
+[[!template text="""The downside is that it does not support CSS,""" start="00:13:20.680" video="mainVideo-web" id="subtitle"]]
+[[!template text="""so the formatting could be a bit ugly sometimes.""" start="00:13:24.080" video="mainVideo-web" id="subtitle"]]
+[[!template text="""There are some other browsers in Emacs too,""" start="00:13:28.160" video="mainVideo-web" id="subtitle"]]
+[[!template text="""like emacs-w3m, which is backed by w3m,""" start="00:13:30.120" video="mainVideo-web" id="subtitle"]]
+[[!template text="""and Luwak, which is backed by Lynx.""" start="00:13:34.280" video="mainVideo-web" id="subtitle"]]
+[[!template text="""Sorry for the naming, by the way.""" start="00:13:36.440" video="mainVideo-web" id="subtitle"]]
+[[!template text="""They often consist of a backend""" start="00:13:39.100" video="mainVideo-web" id="subtitle"]]
+[[!template text="""that fetches URL and parses HTML.""" start="00:13:41.520" video="mainVideo-web" id="subtitle"]]
+[[!template text="""For example, the built-in URL package""" start="00:13:44.880" video="mainVideo-web" id="subtitle"]]
+[[!template text="""and the libxml2 binding in Emacs are decent enough.""" start="00:13:47.200" video="mainVideo-web" id="subtitle"]]
+[[!template text="""And the frontend that renders the HTML,""" start="00:13:50.600" video="mainVideo-web" id="subtitle"]]
+[[!template text="""like shr or lynx, etc.""" start="00:13:53.189" video="mainVideo-web" id="subtitle"]]
+[[!template text="""There is also an xwidget-webkit,""" start="00:13:56.699" video="mainVideo-web" id="subtitle"]]
+[[!template text="""but this browser executes JavaScript,""" start="00:14:04.740" video="mainVideo-web" id="subtitle"]]
+[[!template text="""so it does not really help in this case.""" start="00:14:07.760" video="mainVideo-web" id="subtitle"]]
+[[!template text="""Browser extensions on Emacs are effortless,""" start="00:14:10.540" video="mainVideo-web" id="subtitle"]]
+[[!template text="""as they can be written as Emacs packages.""" start="00:14:14.240" video="mainVideo-web" id="subtitle"]]
+[[!template text="""For example, one could easily write""" start="00:14:17.460" video="mainVideo-web" id="subtitle"]]
+[[!template text="""Elisp scripts with similar functionalities""" start="00:14:19.280" video="mainVideo-web" id="subtitle"]]
+[[!template text="""to libredirect and openwith""" start="00:14:21.960" video="mainVideo-web" id="subtitle"]]
+[[!template text="""to redirect links, to rewrite URLs,""" start="00:14:24.922" video="mainVideo-web" id="subtitle"]]
+[[!template text="""or to open, say, a YouTube URL with MPV,""" start="00:14:30.181" video="mainVideo-web" id="subtitle"]]
+[[!template text="""but with even more flexibility.""" start="00:14:37.061" video="mainVideo-web" id="subtitle"]]
+[[!template text="""For example, here's how one could""" start="00:14:39.800" video="mainVideo-web" id="subtitle"]]
+[[!template text="""transform a Zoom link to a dial-in number""" start="00:14:41.780" video="mainVideo-web" id="subtitle"]]
+[[!template text="""so that it is easier to join a Zoom meeting""" start="00:14:44.840" video="mainVideo-web" id="subtitle"]]
+[[!template text="""without running non-free JavaScript.""" start="00:14:47.480" video="mainVideo-web" id="subtitle"]]
+[[!template text="""This might still be bad for privacy,""" start="00:14:50.360" video="mainVideo-web" id="subtitle"]]
+[[!template text="""but at least it's good for freedom.""" start="00:14:53.040" video="mainVideo-web" id="subtitle"]]
+[[!template text="""As mentioned before,""" start="00:14:58.699" video="mainVideo-web" id="subtitle"]]
+[[!template text="""one shortcoming of these Emacs-based browsers,""" start="00:15:00.379" video="mainVideo-web" id="subtitle"]]
+[[!template text="""Emacs web browsers, is no support for CSS,""" start="00:15:03.920" video="mainVideo-web" id="subtitle"]]
+[[!template text="""so the formatting could leave a lot to be desired.""" start="00:15:08.080" video="mainVideo-web" id="subtitle"]]
+[[!template text="""Maybe someone would write""" start="00:15:11.320" video="mainVideo-web" id="subtitle"]]
+[[!template text="""an Emacs browser package backed by wkhtmltopdf,""" start="00:15:12.960" video="mainVideo-web" id="subtitle"]]
+[[!template text="""which, when opening a URL,""" start="00:15:17.160" video="mainVideo-web" id="subtitle"]]
+[[!template text="""it calls wkhtmltopdf to convert the web page to PDF""" start="00:15:20.640" video="mainVideo-web" id="subtitle"]]
+[[!template text="""and opens in, say, pdf-view-mode of the pdf-tools,""" start="00:15:26.480" video="mainVideo-web" id="subtitle"]]
+[[!template text="""thus containing formatting,""" start="00:15:29.640" video="mainVideo-web" id="subtitle"]]
+[[!template text="""and all the URL clicks resolve to the same actions.""" start="00:15:31.040" video="mainVideo-web" id="subtitle"]]
+[[!template text="""Also, wkhtmltopdf contains a flag that disables JavaScript.""" start="00:15:34.000" video="mainVideo-web" id="subtitle"]]
+[[!template text="""Another idea would be to use Firefox""" start="00:15:43.300" video="mainVideo-web" id="subtitle"]]
+[[!template text="""as a processor to fetch URLs.""" start="00:15:45.240" video="mainVideo-web" id="subtitle"]]
+[[!template text="""Maybe it can be used to pass back the HTML""" start="00:15:50.280" video="mainVideo-web" id="subtitle"]]
+[[!template text="""after executing free JavaScript,""" start="00:15:54.560" video="mainVideo-web" id="subtitle"]]
+[[!template text="""say, if Firefox has LibreJS installed.""" start="00:15:56.520" video="mainVideo-web" id="subtitle"]]
+[[!template text="""This requires Firefox to send back the DOM,""" start="00:16:01.440" video="mainVideo-web" id="subtitle"]]
+[[!template text="""which could be achieved using native messaging.""" start="00:16:05.040" video="mainVideo-web" id="subtitle"]]
+[[!template text="""More on that later.""" start="00:16:08.040" video="mainVideo-web" id="subtitle"]]
+[[!template text="""Alternatively, one could also write a Firefox extension""" start="00:16:09.720" video="mainVideo-web" id="subtitle"]]
+[[!template text="""that sends the DOM in an existing tab back to Emacs.""" start="00:16:14.240" video="mainVideo-web" id="subtitle"]]
+[[!template text="""But thinking more about it,""" start="00:16:17.640" video="mainVideo-web" id="subtitle"]]
+[[!template text="""I don't think this is actually a useful idea,""" start="00:16:20.080" video="mainVideo-web" id="subtitle"]]
+[[!template text="""because most of the sites that work under LibreJS""" start="00:16:23.059" video="mainVideo-web" id="subtitle"]]
+[[!template text="""also are useful when all JavaScript is blocked.""" start="00:16:27.139" video="mainVideo-web" id="subtitle"]]
+[[!template text="""So, this means these sites are viewable""" start="00:16:34.420" video="mainVideo-web" id="subtitle"]]
+[[!template text="""under EWW, Luwak, etc.""" start="00:16:37.040" video="mainVideo-web" id="subtitle"]]
+[[!template text="""And another issue is that""" start="00:16:42.160" video="mainVideo-web" id="subtitle"]]
+[[!template text="""this could also make running non-free JavaScript easier,""" start="00:16:43.640" video="mainVideo-web" id="subtitle"]]
+[[!template text="""which is harmful to user freedom.""" start="00:16:46.560" video="mainVideo-web" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""emacs-web-server - overview""" start="00:16:52.380" video="mainVideo-web" id="subtitle"]]</div>[[!template text="""OK, let's move on to the idea""" start="00:16:52.380" video="mainVideo-web" id="subtitle"]]
+[[!template text="""of running Emacs as a web server,""" start="00:16:54.240" video="mainVideo-web" id="subtitle"]]
+[[!template text="""so that Emacs client packages are web apps""" start="00:16:55.680" video="mainVideo-web" id="subtitle"]]
+[[!template text="""serving as alternative frontends.""" start="00:16:58.560" video="mainVideo-web" id="subtitle"]]
+[[!template text="""Why would we want to do this?""" start="00:17:00.320" video="mainVideo-web" id="subtitle"]]
+[[!template text="""Well, as much as one wants to be always in Emacs,""" start="00:17:02.240" video="mainVideo-web" id="subtitle"]]
+[[!template text="""it is not always feasible.""" start="00:17:06.080" video="mainVideo-web" id="subtitle"]]
+[[!template text="""For example, one may be on the go""" start="00:17:08.340" video="mainVideo-web" id="subtitle"]]
+[[!template text="""and needs to look up something on the phone.""" start="00:17:10.720" video="mainVideo-web" id="subtitle"]]
+[[!template text="""On the other hand, Emacs client packages""" start="00:17:12.520" video="mainVideo-web" id="subtitle"]]
+[[!template text="""are just alternative frontends""" start="00:17:14.880" video="mainVideo-web" id="subtitle"]]
+[[!template text="""but written in Elisp and run in Emacs.""" start="00:17:16.160" video="mainVideo-web" id="subtitle"]]
+[[!template text="""With the help of emacs-web-server package,""" start="00:17:18.120" video="mainVideo-web" id="subtitle"]]
+[[!template text="""we can access Emacs packages on the web.""" start="00:17:20.760" video="mainVideo-web" id="subtitle"]]
+[[!template text="""emacs-web-server package is not something new,""" start="00:17:23.580" video="mainVideo-web" id="subtitle"]]
+[[!template text="""but seems to be underused in the community somehow.""" start="00:17:26.440" video="mainVideo-web" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""emacs-web-server - hello emacs!""" start="00:17:30.380" video="mainVideo-web" id="subtitle"]]</div>[[!template text="""OK, let's start with a simple example called hello-emacs.""" start="00:17:30.380" video="mainVideo-web" id="subtitle"]]
+[[!template text="""It is pretty straightforward.""" start="00:17:33.360" video="mainVideo-web" id="subtitle"]]
+[[!template text="""Just require the web server feature""" start="00:17:35.240" video="mainVideo-web" id="subtitle"]]
+[[!template text="""and run ws-start to start a server process""" start="00:17:38.640" video="mainVideo-web" id="subtitle"]]
+[[!template text="""and send the string &quot;hello emacs&quot;""" start="00:17:41.000" video="mainVideo-web" id="subtitle"]]
+[[!template text="""to the process regardless of the request.""" start="00:17:43.360" video="mainVideo-web" id="subtitle"]]
+[[!template text="""As you can see, it is going to be available""" start="00:17:45.540" video="mainVideo-web" id="subtitle"]]
+[[!template text="""at port 9000 of localhost.""" start="00:17:48.480" video="mainVideo-web" id="subtitle"]]
+[[!template text="""Let's try it out.""" start="00:17:51.319" video="mainVideo-web" id="subtitle"]]
+[[!template text="""We need to first evaluate this code block.""" start="00:17:53.000" video="mainVideo-web" id="subtitle"]]
+[[!template text="""And it works.""" start="00:18:01.840" video="mainVideo-web" id="subtitle"]]
+[[!template text="""To stop a server, just run ws-stop on the web server object.""" start="00:18:03.940" video="mainVideo-web" id="subtitle"]]
+[[!template text="""Let's evaluate.""" start="00:18:10.840" video="mainVideo-web" id="subtitle"]]
+[[!template text="""Yep, it stopped.""" start="00:18:14.960" video="mainVideo-web" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""emacs-web-server - yolo""" start="00:18:17.580" video="mainVideo-web" id="subtitle"]]</div>[[!template text="""OK, now let's move on to something funny""" start="00:18:17.580" video="mainVideo-web" id="subtitle"]]
+[[!template text="""that you should never run on the public web.""" start="00:18:20.000" video="mainVideo-web" id="subtitle"]]
+[[!template text="""I call it yolo.el.""" start="00:18:22.220" video="mainVideo-web" id="subtitle"]]
+[[!template text="""It uses htmlize""" start="00:18:23.920" video="mainVideo-web" id="subtitle"]]
+[[!template text="""to make any Emacs buffer available on the web.""" start="00:18:25.360" video="mainVideo-web" id="subtitle"]]
+[[!template text="""Let's try it out.""" start="00:18:28.160" video="mainVideo-web" id="subtitle"]]
+[[!template text="""Just require the thing and start the server by yolo-start.""" start="00:18:29.000" video="mainVideo-web" id="subtitle"]]
+[[!template text="""And it's available at port 9999.""" start="00:18:33.000" video="mainVideo-web" id="subtitle"]]
+[[!template text="""By default, the root domain shows the splash screen""" start="00:18:38.120" video="mainVideo-web" id="subtitle"]]
+[[!template text="""which needs to be available.""" start="00:18:41.600" video="mainVideo-web" id="subtitle"]]
+[[!template text="""Running display-splash-screen ensures that,""" start="00:18:42.920" video="mainVideo-web" id="subtitle"]]
+[[!template text="""but here I've already run it.""" start="00:18:47.219" video="mainVideo-web" id="subtitle"]]
+[[!template text="""So let's have a look.""" start="00:18:48.939" video="mainVideo-web" id="subtitle"]]
+[[!template text="""And here we have the splash screen.""" start="00:18:54.560" video="mainVideo-web" id="subtitle"]]
+[[!template text="""Emacs tutorial and such.""" start="00:18:56.640" video="mainVideo-web" id="subtitle"]]
+[[!template text="""Unfortunately, none of these links work,""" start="00:19:00.240" video="mainVideo-web" id="subtitle"]]
+[[!template text="""which is something we will revisit later.""" start="00:19:05.480" video="mainVideo-web" id="subtitle"]]
+[[!template text="""So, to show an arbitrary buffer,""" start="00:19:10.000" video="mainVideo-web" id="subtitle"]]
+[[!template text="""just use the buffer name as a path.""" start="00:19:15.481" video="mainVideo-web" id="subtitle"]]
+[[!template text="""For example, the slide has the buffer named web.org,""" start="00:19:20.081" video="mainVideo-web" id="subtitle"]]
+[[!template text="""so we can display it.""" start="00:19:24.861" video="mainVideo-web" id="subtitle"]]
+[[!template text="""Let's try something fancier,""" start="00:19:34.581" video="mainVideo-web" id="subtitle"]]
+[[!template text="""like the man page of ffmpeg.""" start="00:19:36.941" video="mainVideo-web" id="subtitle"]]
+[[!template text="""So this is the man page of ffmpeg.""" start="00:19:40.880" video="mainVideo-web" id="subtitle"]]
+[[!template text="""And the buffer name is a bit more complicated.""" start="00:19:45.120" video="mainVideo-web" id="subtitle"]]
+[[!template text="""I have the URL available here.""" start="00:19:48.520" video="mainVideo-web" id="subtitle"]]
+[[!template text="""It's missing a star.""" start="00:19:59.140" video="mainVideo-web" id="subtitle"]]
+[[!template text="""It's pretty neat if you ask me.""" start="00:20:05.980" video="mainVideo-web" id="subtitle"]]
+[[!template text="""And, yeah, what else?""" start="00:20:12.560" video="mainVideo-web" id="subtitle"]]
+[[!template text="""Well, we can also browse EWW in Firefox.""" start="00:20:14.880" video="mainVideo-web" id="subtitle"]]
+[[!template text="""For example, let's check out gnu.org,""" start="00:20:22.700" video="mainVideo-web" id="subtitle"]]
+[[!template text="""and note that the buffer name is EWW with stars.""" start="00:20:30.600" video="mainVideo-web" id="subtitle"]]
+[[!template text="""So, ah, it works.""" start="00:20:39.080" video="mainVideo-web" id="subtitle"]]
+[[!template text="""And it has all the graphics even.""" start="00:20:41.979" video="mainVideo-web" id="subtitle"]]
+[[!template text="""Now, how about we do it the other way around?""" start="00:20:50.900" video="mainVideo-web" id="subtitle"]]
+[[!template text="""So we load the current slide web.org using this funny thing.""" start="00:20:55.640" video="mainVideo-web" id="subtitle"]]
+[[!template text="""And it works.""" start="00:21:10.780" video="mainVideo-web" id="subtitle"]]
+[[!template text="""Not as nice as the Org buffer, though.""" start="00:21:14.040" video="mainVideo-web" id="subtitle"]]
+[[!template text="""Right, and now that gives me some funny idea.""" start="00:21:19.940" video="mainVideo-web" id="subtitle"]]
+[[!template text="""So I'm a firm believer that memes are meant to be enjoyed""" start="00:21:27.440" video="mainVideo-web" id="subtitle"]]
+[[!template text="""in silence rather than read out loud.""" start="00:21:31.360" video="mainVideo-web" id="subtitle"]]
+[[!template text="""So I will jump straight to trying this idea,""" start="00:21:33.200" video="mainVideo-web" id="subtitle"]]
+[[!template text="""which is loading the EWW buffer URL with EWW itself.""" start="00:21:38.760" video="mainVideo-web" id="subtitle"]]
+[[!template text="""Loading, loading, loading.""" start="00:21:49.860" video="mainVideo-web" id="subtitle"]]
+[[!template text="""Spoiler alert, it never loads.""" start="00:21:53.840" video="mainVideo-web" id="subtitle"]]
+[[!template text="""So that concludes the demo.""" start="00:21:59.100" video="mainVideo-web" id="subtitle"]]
+[[!template text="""And so we can stop the server, web server, with `yolo-stop`.""" start="00:22:03.220" video="mainVideo-web" id="subtitle"]]
+[[!template text="""So one could extend yolo to serve arbitrary Emacs commands,""" start="00:22:06.440" video="mainVideo-web" id="subtitle"]]
+[[!template text="""making it even more dangerous.""" start="00:22:13.400" video="mainVideo-web" id="subtitle"]]
+[[!template text="""That is, for example, `localhost:9000/m-x/magit-status`""" start="00:22:15.440" video="mainVideo-web" id="subtitle"]]
+[[!template text="""would run `magit-status`""" start="00:22:26.119" video="mainVideo-web" id="subtitle"]]
+[[!template text="""and show the magit-status buffer in the web browser.""" start="00:22:27.820" video="mainVideo-web" id="subtitle"]]
+[[!template text="""Or localhost:9000/m-x/eww/""" start="00:22:34.500" video="mainVideo-web" id="subtitle"]]
+[[!template text="""any arbitrary URL to browse arbitrary URL""" start="00:22:43.120" video="mainVideo-web" id="subtitle"]]
+[[!template text="""with EWW inside of Firefox.""" start="00:22:46.760" video="mainVideo-web" id="subtitle"]]
+[[!template text="""It can serve as a way to block all JavaScript,""" start="00:22:50.820" video="mainVideo-web" id="subtitle"]]
+[[!template text="""because EWW does not support JavaScript.""" start="00:22:53.880" video="mainVideo-web" id="subtitle"]]
+[[!template text="""And enforce preferred colorscheme in Firefox,""" start="00:22:56.800" video="mainVideo-web" id="subtitle"]]
+[[!template text="""since htmlize, as you have noticed,""" start="00:23:00.080" video="mainVideo-web" id="subtitle"]]
+[[!template text="""faithfully reflects the theme used in Emacs.""" start="00:23:02.840" video="mainVideo-web" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""emacs-web-server - emacs web framework""" start="00:23:07.940" video="mainVideo-web" id="subtitle"]]</div>[[!template text="""Okay, so we know that yolo is unsafe""" start="00:23:07.940" video="mainVideo-web" id="subtitle"]]
+[[!template text="""and needs to be refined.""" start="00:23:10.339" video="mainVideo-web" id="subtitle"]]
+[[!template text="""In fact, we don't necessarily want""" start="00:23:11.540" video="mainVideo-web" id="subtitle"]]
+[[!template text="""to run Emacs on a web browser.""" start="00:23:13.440" video="mainVideo-web" id="subtitle"]]
+[[!template text="""After all, a modern web browser is""" start="00:23:15.600" video="mainVideo-web" id="subtitle"]]
+[[!template text="""something one has to fight all the time""" start="00:23:17.280" video="mainVideo-web" id="subtitle"]]
+[[!template text="""and should be avoided whenever possible.""" start="00:23:19.080" video="mainVideo-web" id="subtitle"]]
+[[!template text="""We want to instead be able to access things""" start="00:23:21.601" video="mainVideo-web" id="subtitle"]]
+[[!template text="""when forced to be in a web browser,""" start="00:23:24.480" video="mainVideo-web" id="subtitle"]]
+[[!template text="""in which case only the motivations""" start="00:23:26.460" video="mainVideo-web" id="subtitle"]]
+[[!template text="""of an alternative frontend apply.""" start="00:23:28.360" video="mainVideo-web" id="subtitle"]]
+[[!template text="""Moreover, the ideal situation is an Emacs web framework,""" start="00:23:31.300" video="mainVideo-web" id="subtitle"]]
+[[!template text="""a tool that automatically""" start="00:23:35.460" video="mainVideo-web" id="subtitle"]]
+[[!template text="""transforms Emacs packages to web apps,""" start="00:23:36.800" video="mainVideo-web" id="subtitle"]]
+[[!template text="""so that one does not need to write extra code""" start="00:23:39.200" video="mainVideo-web" id="subtitle"]]
+[[!template text="""to get a web app that does the same thing as the package.""" start="00:23:41.800" video="mainVideo-web" id="subtitle"]]
+[[!template text="""We also need all links in the web pages to work.""" start="00:23:45.560" video="mainVideo-web" id="subtitle"]]
+[[!template text="""As noted before, the links on the yolo Emacs splash screen""" start="00:23:49.100" video="mainVideo-web" id="subtitle"]]
+[[!template text="""do not work.""" start="00:23:52.400" video="mainVideo-web" id="subtitle"]]
+[[!template text="""So here's a proof-of-concept example. It's called bom.el.""" start="00:23:53.840" video="mainVideo-web" id="subtitle"]]
+[[!template text="""It gets some weather forecast data""" start="00:23:58.200" video="mainVideo-web" id="subtitle"]]
+[[!template text="""from the Australian Bureau of Meteorology""" start="00:24:00.120" video="mainVideo-web" id="subtitle"]]
+[[!template text="""and displays it in an org buffer.""" start="00:24:03.080" video="mainVideo-web" id="subtitle"]]
+[[!template text="""So let's try it out. One could do `M-x bom`,""" start="00:24:05.560" video="mainVideo-web" id="subtitle"]]
+[[!template text="""which shows an org buffer with links to each state.""" start="00:24:09.280" video="mainVideo-web" id="subtitle"]]
+[[!template text="""So based in Melbourne, naturally,""" start="00:24:15.220" video="mainVideo-web" id="subtitle"]]
+[[!template text="""I would like to find out the weather of Victoria.""" start="00:24:17.200" video="mainVideo-web" id="subtitle"]]
+[[!template text="""And yes, to execute this command. Wait, wait, wait. Right.""" start="00:24:21.840" video="mainVideo-web" id="subtitle"]]
+[[!template text="""And we are at a buffer that shows""" start="00:24:27.840" video="mainVideo-web" id="subtitle"]]
+[[!template text="""the weather forecast of the whole of Victoria""" start="00:24:33.460" video="mainVideo-web" id="subtitle"]]
+[[!template text="""in the hierarchy. Note that this back button""" start="00:24:36.120" video="mainVideo-web" id="subtitle"]]
+[[!template text="""takes you to the previous page.""" start="00:24:39.479" video="mainVideo-web" id="subtitle"]]
+[[!template text="""So here are the regions of Victoria.""" start="00:24:46.640" video="mainVideo-web" id="subtitle"]]
+[[!template text="""I think Melbourne is in Central.""" start="00:24:47.920" video="mainVideo-web" id="subtitle"]]
+[[!template text="""And yeah, it shows""" start="00:24:53.800" video="mainVideo-web" id="subtitle"]]
+[[!template text="""the seven-day weather forecast of Melbourne.""" start="00:24:54.720" video="mainVideo-web" id="subtitle"]]
+[[!template text="""You can also reach this page by running,""" start="00:24:57.260" video="mainVideo-web" id="subtitle"]]
+[[!template text="""let's see, directly `M-x bom-state`.""" start="00:25:00.360" video="mainVideo-web" id="subtitle"]]
+[[!template text="""Vic.""" start="00:25:08.600" video="mainVideo-web" id="subtitle"]]
+[[!template text="""OK. So this works.""" start="00:25:13.960" video="mainVideo-web" id="subtitle"]]
+[[!template text="""And this is bom as an Emacs package.""" start="00:25:18.400" video="mainVideo-web" id="subtitle"]]
+[[!template text="""Now let's check out bom as a web app""" start="00:25:21.380" video="mainVideo-web" id="subtitle"]]
+[[!template text="""transformed by Emacs web framework.""" start="00:25:23.981" video="mainVideo-web" id="subtitle"]]
+[[!template text="""So start the web server with bom-start.""" start="00:25:28.040" video="mainVideo-web" id="subtitle"]]
+[[!template text="""And let's try it out. It's at 9000 again.""" start="00:25:33.020" video="mainVideo-web" id="subtitle"]]
+[[!template text="""Oops. Invalid path. Oh, that's because""" start="00:25:39.560" video="mainVideo-web" id="subtitle"]]
+[[!template text="""it makes exactly one command to one path.""" start="00:25:42.360" video="mainVideo-web" id="subtitle"]]
+[[!template text="""So remember that we used the bom command""" start="00:25:46.120" video="mainVideo-web" id="subtitle"]]
+[[!template text="""to show the landing page.""" start="00:25:49.301" video="mainVideo-web" id="subtitle"]]
+[[!template text="""So here we need the bom in the path as well.""" start="00:25:50.720" video="mainVideo-web" id="subtitle"]]
+[[!template text="""And it shows the same landing page, except in HTML.""" start="00:25:54.440" video="mainVideo-web" id="subtitle"]]
+[[!template text="""Let's check out Victoria weather forecast as before.""" start="00:26:00.680" video="mainVideo-web" id="subtitle"]]
+[[!template text="""And it shows an HTML converted from the org buffer""" start="00:26:07.260" video="mainVideo-web" id="subtitle"]]
+[[!template text="""using ox export HTML, whatever.""" start="00:26:12.280" video="mainVideo-web" id="subtitle"]]
+[[!template text="""And you can see even the back button is here.""" start="00:26:17.560" video="mainVideo-web" id="subtitle"]]
+[[!template text="""That takes you to /bom.""" start="00:26:20.359" video="mainVideo-web" id="subtitle"]]
+[[!template text="""So let's have a look at Melbourne. Here it is.""" start="00:26:26.220" video="mainVideo-web" id="subtitle"]]
+[[!template text="""Hooray, it works.""" start="00:26:29.140" video="mainVideo-web" id="subtitle"]]
+[[!template text="""So, yeah, as usual,""" start="00:26:31.380" video="mainVideo-web" id="subtitle"]]
+[[!template text="""you can stop the web server with `M-x bom-stop`.""" start="00:26:33.960" video="mainVideo-web" id="subtitle"]]
+[[!template text="""Right. And alternatively,""" start="00:26:40.560" video="mainVideo-web" id="subtitle"]]
+[[!template text="""it can also be deployed directly in terminal""" start="00:26:43.760" video="mainVideo-web" id="subtitle"]]
+[[!template text="""in a dedicated Emacs daemon.""" start="00:26:48.500" video="mainVideo-web" id="subtitle"]]
+[[!template text="""So you can see that there's a one-one correspondence""" start="00:26:56.100" video="mainVideo-web" id="subtitle"]]
+[[!template text="""between the Emacs package interface and the web interface.""" start="00:26:58.280" video="mainVideo-web" id="subtitle"]]
+[[!template text="""And that implies some restrictions to the Emacs package""" start="00:27:03.100" video="mainVideo-web" id="subtitle"]]
+[[!template text="""for the Emacs web framework to be able to do its job. Right.""" start="00:27:06.040" video="mainVideo-web" id="subtitle"]]
+[[!template text="""For example, the package needs to have an Org interface""" start="00:27:09.160" video="mainVideo-web" id="subtitle"]]
+[[!template text="""and the links that trigger other commands""" start="00:27:13.440" video="mainVideo-web" id="subtitle"]]
+[[!template text="""need to be in Elisp links""" start="00:27:15.520" video="mainVideo-web" id="subtitle"]]
+[[!template text="""so that the Emacs web framework""" start="00:27:17.800" video="mainVideo-web" id="subtitle"]]
+[[!template text="""can translate it to web server URL path.""" start="00:27:20.760" video="mainVideo-web" id="subtitle"]]
+[[!template text="""Note that Emacs web server framework is not a real package.""" start="00:27:24.800" video="mainVideo-web" id="subtitle"]]
+[[!template text="""I wrote some functions in bom.el serving the purpose,""" start="00:27:28.920" video="mainVideo-web" id="subtitle"]]
+[[!template text="""and they should be separated out eventually""" start="00:27:33.340" video="mainVideo-web" id="subtitle"]]
+[[!template text="""without much trouble.""" start="00:27:35.720" video="mainVideo-web" id="subtitle"]]
+[[!template text="""One could get weather forecast""" start="00:27:37.760" video="mainVideo-web" id="subtitle"]]
+[[!template text="""without running JavaScript anyway,""" start="00:27:40.000" video="mainVideo-web" id="subtitle"]]
+[[!template text="""which makes bom.el less important""" start="00:27:42.220" video="mainVideo-web" id="subtitle"]]
+[[!template text="""as an alternative web client.""" start="00:27:45.200" video="mainVideo-web" id="subtitle"]]
+[[!template text="""Though it does provide, dare I say,""" start="00:27:48.320" video="mainVideo-web" id="subtitle"]]
+[[!template text="""a clean and minimal interface""" start="00:27:50.520" video="mainVideo-web" id="subtitle"]]
+[[!template text="""compared to common weather forecast web pages.""" start="00:27:52.480" video="mainVideo-web" id="subtitle"]]
+[[!template text="""Other more relevant use cases could be Mastodon,""" start="00:27:55.720" video="mainVideo-web" id="subtitle"]]
+[[!template text="""whose official web client requires JavaScript""" start="00:27:58.640" video="mainVideo-web" id="subtitle"]]
+[[!template text="""to display a post.""" start="00:28:01.320" video="mainVideo-web" id="subtitle"]]
+[[!template text="""The mastorg package that shows an Org hierarchy of toots""" start="00:28:03.480" video="mainVideo-web" id="subtitle"]]
+[[!template text="""rooted as a given toot could be a low-hanging fruit.""" start="00:28:08.560" video="mainVideo-web" id="subtitle"]]
+[[!template text="""The limitation of Org interface requirements""" start="00:28:12.179" video="mainVideo-web" id="subtitle"]]
+[[!template text="""can also be relaxed in further work,""" start="00:28:15.200" video="mainVideo-web" id="subtitle"]]
+[[!template text="""if one could extend Emacs web framework""" start="00:28:17.880" video="mainVideo-web" id="subtitle"]]
+[[!template text="""to translate back and forth between Emacs widgets,""" start="00:28:21.640" video="mainVideo-web" id="subtitle"]]
+[[!template text="""say, including buttons and web page widgets,""" start="00:28:24.200" video="mainVideo-web" id="subtitle"]]
+[[!template text="""including links.""" start="00:28:28.640" video="mainVideo-web" id="subtitle"]]
+[[!template text="""Another more far-fetched idea would be""" start="00:28:30.600" video="mainVideo-web" id="subtitle"]]
+[[!template text="""to translate to other types of interfaces,""" start="00:28:32.600" video="mainVideo-web" id="subtitle"]]
+[[!template text="""like GNU/Linux or Android GUI.""" start="00:28:35.800" video="mainVideo-web" id="subtitle"]]
+[[!template text="""How about animations? Say, M-x butterfly,""" start="00:28:44.020" video="mainVideo-web" id="subtitle"]]
+[[!template text="""or even web games from Emacs games?""" start="00:28:47.480" video="mainVideo-web" id="subtitle"]]
+[[!template text="""Possibilities are unlimited in this, as always, in Emacs.""" start="00:28:54.000" video="mainVideo-web" id="subtitle"]]
+[[!template text="""I also noticed some limitations""" start="00:29:00.100" video="mainVideo-web" id="subtitle"]]
+[[!template text="""when trying to actually host bom.el on the public web.""" start="00:29:03.160" video="mainVideo-web" id="subtitle"]]
+[[!template text="""Given the limited access to the Emacs server,""" start="00:29:07.440" video="mainVideo-web" id="subtitle"]]
+[[!template text="""I was comfortable enough to give bom.el a go""" start="00:29:13.540" video="mainVideo-web" id="subtitle"]]
+[[!template text="""to serve it on the public web.""" start="00:29:16.720" video="mainVideo-web" id="subtitle"]]
+[[!template text="""However, I immediately stopped""" start="00:29:18.800" video="mainVideo-web" id="subtitle"]]
+[[!template text="""after noticing how slow it is.""" start="00:29:20.560" video="mainVideo-web" id="subtitle"]]
+[[!template text="""It can take more than 30 seconds""" start="00:29:22.880" video="mainVideo-web" id="subtitle"]]
+[[!template text="""to load a page of weather forecast for a state.""" start="00:29:24.720" video="mainVideo-web" id="subtitle"]]
+[[!template text="""I am also not sure how many simultaneous connections""" start="00:29:27.840" video="mainVideo-web" id="subtitle"]]
+[[!template text="""it can handle.""" start="00:29:31.000" video="mainVideo-web" id="subtitle"]]
+[[!template text="""In any case, I think the package emacs-web-server""" start="00:29:32.380" video="mainVideo-web" id="subtitle"]]
+[[!template text="""could do with some performance enhancement.""" start="00:29:36.440" video="mainVideo-web" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Firefox with emacs for extensions""" start="00:29:40.420" video="mainVideo-web" id="subtitle"]]</div>[[!template text="""Right. Because of the time constraints,""" start="00:29:40.420" video="mainVideo-web" id="subtitle"]]
+[[!template text="""I will briefly touch one final idea,""" start="00:29:44.000" video="mainVideo-web" id="subtitle"]]
+[[!template text="""which is to use Emacs as a Firefox browser extension.""" start="00:29:45.760" video="mainVideo-web" id="subtitle"]]
+[[!template text="""We already have org-protocol,""" start="00:29:50.420" video="mainVideo-web" id="subtitle"]]
+[[!template text="""which allows Firefox to communicate""" start="00:29:52.900" video="mainVideo-web" id="subtitle"]]
+[[!template text="""with a running Emacs server""" start="00:29:54.440" video="mainVideo-web" id="subtitle"]]
+[[!template text="""by sending an org-protocol URL to the latter.""" start="00:29:55.920" video="mainVideo-web" id="subtitle"]]
+[[!template text="""It can be used not just for capturing or storing links,""" start="00:29:59.780" video="mainVideo-web" id="subtitle"]]
+[[!template text="""but to execute arbitrary code on any component of the URL.""" start="00:30:03.160" video="mainVideo-web" id="subtitle"]]
+[[!template text="""However, it is fire and forget,""" start="00:30:10.120" video="mainVideo-web" id="subtitle"]]
+[[!template text="""and Emacs cannot tell Firefox what to do.""" start="00:30:11.680" video="mainVideo-web" id="subtitle"]]
+[[!template text="""There may be a length restriction, too.""" start="00:30:16.480" video="mainVideo-web" id="subtitle"]]
+[[!template text="""For example, Firefox may not be able to send back""" start="00:30:17.920" video="mainVideo-web" id="subtitle"]]
+[[!template text="""the whole DOM.""" start="00:30:20.400" video="mainVideo-web" id="subtitle"]]
+[[!template text="""This claim needs to be verified, though.""" start="00:30:22.420" video="mainVideo-web" id="subtitle"]]
+[[!template text="""Native messaging is one solution to this problem.""" start="00:30:26.220" video="mainVideo-web" id="subtitle"]]
+[[!template text="""It is a two-way communication channel""" start="00:30:30.020" video="mainVideo-web" id="subtitle"]]
+[[!template text="""between a Firefox web extension and a local system process""" start="00:30:31.640" video="mainVideo-web" id="subtitle"]]
+[[!template text="""started by the web extension.""" start="00:30:35.320" video="mainVideo-web" id="subtitle"]]
+[[!template text="""The process could be an Emacs server,""" start="00:30:37.840" video="mainVideo-web" id="subtitle"]]
+[[!template text="""which would make Emacs effectively""" start="00:30:40.400" video="mainVideo-web" id="subtitle"]]
+[[!template text="""a Firefox web browser extension.""" start="00:30:42.400" video="mainVideo-web" id="subtitle"]]
+[[!template text="""In this case, Elisp would be the main extension language,""" start="00:30:48.680" video="mainVideo-web" id="subtitle"]]
+[[!template text="""rather than JavaScript.""" start="00:30:52.000" video="mainVideo-web" id="subtitle"]]
+[[!template text="""However, JavaScript is still needed at the Firefox end""" start="00:30:53.620" video="mainVideo-web" id="subtitle"]]
+[[!template text="""of the communication channel.""" start="00:30:56.160" video="mainVideo-web" id="subtitle"]]
+[[!template text="""As a simple example of this idea,""" start="00:30:59.320" video="mainVideo-web" id="subtitle"]]
+[[!template text="""Firefox could ask Emacs to redirect a URL""" start="00:31:01.160" video="mainVideo-web" id="subtitle"]]
+[[!template text="""by removing tracking and using alternative frontend, etc.""" start="00:31:04.440" video="mainVideo-web" id="subtitle"]]
+[[!template text="""However, I was not able to implement this""" start="00:31:08.320" video="mainVideo-web" id="subtitle"]]
+[[!template text="""due to some tricky business""" start="00:31:12.480" video="mainVideo-web" id="subtitle"]]
+[[!template text="""with enforcing synchronicity""" start="00:31:14.280" video="mainVideo-web" id="subtitle"]]
+[[!template text="""that allows the web extension""" start="00:31:15.640" video="mainVideo-web" id="subtitle"]]
+[[!template text="""to wait for responses from Emacs.""" start="00:31:17.120" video="mainVideo-web" id="subtitle"]]
+[[!template text="""Some further work, I suppose.""" start="00:31:20.200" video="mainVideo-web" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Thank you""" start="00:31:25.360" video="mainVideo-web" id="subtitle"]]</div>[[!template text="""That concludes my talk.""" start="00:31:25.360" video="mainVideo-web" id="subtitle"]]
+[[!template text="""Thank you for your attention.""" start="00:31:28.254" video="mainVideo-web" id="subtitle"]]
+
+</div>
+
+Captioner: ken
+
+<div class="transcript transcript-qanda"><a name="web-qanda-transcript"></a><h1>Q&A transcript (unedited)</h1>
+
+[[!template text="""[Speaker 0]: 2 seconds. And I think we are live.""" start="00:00:04.740" video="qanda-web" id="subtitle"]]
+[[!template text="""Hi Yuchen, how are you doing?""" start="00:00:05.980" video="qanda-web" id="subtitle"]]
+[[!template text="""[Speaker 1]: I'm gonna just walk off.""" start="00:00:08.720" video="qanda-web" id="subtitle"]]
+[[!template text="""I'm not sure if I... Yeah,""" start="00:00:10.840" video="qanda-web" id="subtitle"]]
+[[!template text="""I mean, brain not working well at this""" start="00:00:13.440" video="qanda-web" id="subtitle"]]
+[[!template text="""moment. How about you?""" start="00:00:14.660" video="qanda-web" id="subtitle"]]
+[[!template text="""[Speaker 2]: Well, mine is about to get fried because""" start="00:00:18.420" video="qanda-web" id="subtitle"]]
+[[!template text="""EmacsConf is a very taxing process and I can""" start="00:00:21.040" video="qanda-web" id="subtitle"]]
+[[!template text="""tell you we could have a race to know who's""" start="00:00:24.599" video="qanda-web" id="subtitle"]]
+[[!template text="""more more tired right now between you and""" start="00:00:26.720" video="qanda-web" id="subtitle"]]
+[[!template text="""myself but I guess we'll find out at the end""" start="00:00:29.480" video="qanda-web" id="subtitle"]]
+[[!template text="""[Speaker 1]: All right, sounds good.""" start="00:00:32.080" video="qanda-web" id="subtitle"]]
+[[!template text="""[Speaker 2]: of the Q&A. And thank you for...""" start="00:00:34.200" video="qanda-web" id="subtitle"]]
+[[!template text="""How late or how early I should say is it for""" start="00:00:37.760" video="qanda-web" id="subtitle"]]
+[[!template text="""you right now? It should be like 6am or""" start="00:00:39.480" video="qanda-web" id="subtitle"]]
+[[!template text="""[Speaker 1]: Thanks. It's 7.45 but I normally get up at""" start="00:00:43.860" video="qanda-web" id="subtitle"]]
+[[!template text="""like 8.30 or something.""" start="00:00:45.020" video="qanda-web" id="subtitle"]]
+[[!template text="""[Speaker 2]: something? Right, okay.""" start="00:00:46.560" video="qanda-web" id="subtitle"]]
+[[!template text="""Well, anyway, thank you for the sacrifice""" start="00:00:48.380" video="qanda-web" id="subtitle"]]
+[[!template text="""just to answer some of the questions.""" start="00:00:50.200" video="qanda-web" id="subtitle"]]
+[[!template text="""All right, so I'll be displaying the""" start="00:00:56.160" video="qanda-web" id="subtitle"]]
+[[!template text="""questions. I'll be, let me just maximize this""" start="00:00:59.180" video="qanda-web" id="subtitle"]]
+[[!template text="""on the stream so that people can read""" start="00:01:01.440" video="qanda-web" id="subtitle"]]
+[[!template text="""everything on my screen.""" start="00:01:02.280" video="qanda-web" id="subtitle"]]
+[[!template text="""So what I'm going to do,""" start="00:01:03.400" video="qanda-web" id="subtitle"]]
+[[!template text="""Yuchen, as usual, I'm going to start reading""" start="00:01:05.340" video="qanda-web" id="subtitle"]]
+[[!template text="""the questions on the pad.""" start="00:01:06.540" video="qanda-web" id="subtitle"]]
+[[!template text="""I'm going to ask Sasha to open the Q&A.""" start="00:01:12.160" video="qanda-web" id="subtitle"]]
+[[!template text="""Yes, it's already open.""" start="00:01:13.620" video="qanda-web" id="subtitle"]]
+[[!template text="""Cool. So if you want to join us,""" start="00:01:15.280" video="qanda-web" id="subtitle"]]
+[[!template text="""people, Feel free to click on the link on the""" start="00:01:19.360" video="qanda-web" id="subtitle"]]
+[[!template text="""talk or on IRC to join us on BBB and to ask""" start="00:01:21.820" video="qanda-web" id="subtitle"]]
+[[!template text="""your questions. Otherwise just leave them on""" start="00:01:23.440" video="qanda-web" id="subtitle"]]
+[[!template text="""the pad. Alright, Yuchen,""" start="00:01:24.320" video="qanda-web" id="subtitle"]]
+[[!template text="""starting with the first question.""" start="00:01:25.440" video="qanda-web" id="subtitle"]]
+[[!template text="""I like the idea of using org-mode to display""" start="00:01:28.260" video="qanda-web" id="subtitle"]]
+[[!template text="""data from the web. Are there many different""" start="00:01:30.300" video="qanda-web" id="subtitle"]]
+[[!template text="""packages that do not, I assume.""" start="00:01:33.220" video="qanda-web" id="subtitle"]]
+[[!template text="""I'm new to Emacs, so maybe this is obvious to""" start="00:01:35.560" video="qanda-web" id="subtitle"]]
+[[!template text="""everyone else.""" start="00:01:36.040" video="qanda-web" id="subtitle"]]
+[[!template text="""[Speaker 1]: Yeah, I think so. I mean...""" start="00:01:43.860" video="qanda-web" id="subtitle"]]
+[[!template text="""[Speaker 2]: Yeah, I think it's a little complicated to""" start="00:01:49.240" video="qanda-web" id="subtitle"]]
+[[!template text="""specify what is it to display data from the""" start="00:01:51.480" video="qanda-web" id="subtitle"]]
+[[!template text="""web. Just reading it like this,""" start="00:01:53.360" video="qanda-web" id="subtitle"]]
+[[!template text="""I'm reminded of Adam, Arthur Pappa,""" start="00:01:55.900" video="qanda-web" id="subtitle"]]
+[[!template text="""I mean, Code All Capture Web,""" start="00:01:58.260" video="qanda-web" id="subtitle"]]
+[[!template text="""which technically captures the web and allows""" start="00:02:00.860" video="qanda-web" id="subtitle"]]
+[[!template text="""you to embed it in the page,""" start="00:02:02.120" video="qanda-web" id="subtitle"]]
+[[!template text="""but is it really displaying data from the""" start="00:02:04.280" video="qanda-web" id="subtitle"]]
+[[!template text="""web? Are we implying live transmission?""" start="00:02:06.340" video="qanda-web" id="subtitle"]]
+[[!template text="""Do you see what I'm talking about?""" start="00:02:07.720" video="qanda-web" id="subtitle"]]
+[[!template text="""[Speaker 1]: Yeah, I suspect the question is asking,""" start="00:02:10.680" video="qanda-web" id="subtitle"]]
+[[!template text="""like, having Emacs as a client that's sort of""" start="00:02:17.040" video="qanda-web" id="subtitle"]]
+[[!template text="""getting data from the web and then displays""" start="00:02:19.740" video="qanda-web" id="subtitle"]]
+[[!template text="""in Emacs, like using API or using web script.""" start="00:02:25.120" video="qanda-web" id="subtitle"]]
+[[!template text="""So yeah, like the hreader package or a few""" start="00:02:35.220" video="qanda-web" id="subtitle"]]
+[[!template text="""packages mentioned in my talk.""" start="00:02:37.580" video="qanda-web" id="subtitle"]]
+[[!template text="""Yeah, that's a good question.""" start="00:02:39.920" video="qanda-web" id="subtitle"]]
+[[!template text="""I mean, I really don't know how many.""" start="00:02:46.220" video="qanda-web" id="subtitle"]]
+[[!template text="""So from my experience,""" start="00:02:48.060" video="qanda-web" id="subtitle"]]
+[[!template text="""maybe I use like 10, less than 10 packages""" start="00:02:55.960" video="qanda-web" id="subtitle"]]
+[[!template text="""that do these things. And among these""" start="00:03:01.220" video="qanda-web" id="subtitle"]]
+[[!template text="""packages, maybe it's half of them are org,""" start="00:03:03.840" video="qanda-web" id="subtitle"]]
+[[!template text="""[Speaker 2]: So you mean half of them are org-based?""" start="00:03:09.480" video="qanda-web" id="subtitle"]]
+[[!template text="""Is that what you said?""" start="00:03:10.840" video="qanda-web" id="subtitle"]]
+[[!template text="""[Speaker 1]: half of them don't. Yeah,""" start="00:03:11.840" video="qanda-web" id="subtitle"]]
+[[!template text="""but that's just based on the packages I use.""" start="00:03:16.920" video="qanda-web" id="subtitle"]]
+[[!template text="""I haven't done a survey about this.""" start="00:03:22.440" video="qanda-web" id="subtitle"]]
+[[!template text="""[Speaker 2]: I think it's okay, you don't need to have all""" start="00:03:25.520" video="qanda-web" id="subtitle"]]
+[[!template text="""the answers. I mean, you already demonstrate""" start="00:03:26.880" video="qanda-web" id="subtitle"]]
+[[!template text="""a lot of competence and you talk about all""" start="00:03:29.380" video="qanda-web" id="subtitle"]]
+[[!template text="""the things you approach with your particular""" start="00:03:31.100" video="qanda-web" id="subtitle"]]
+[[!template text="""setup, So you don't need to have all the""" start="00:03:33.040" video="qanda-web" id="subtitle"]]
+[[!template text="""answers. Okay. All right,""" start="00:03:36.040" video="qanda-web" id="subtitle"]]
+[[!template text="""moving on to the next question.""" start="00:03:37.160" video="qanda-web" id="subtitle"]]
+[[!template text="""Have you tried EAF, i.e.""" start="00:03:39.340" video="qanda-web" id="subtitle"]]
+[[!template text="""The Emacs application framework and its""" start="00:03:41.680" video="qanda-web" id="subtitle"]]
+[[!template text="""browser? If yes, what is your opinion about""" start="00:03:43.940" video="qanda-web" id="subtitle"]]
+[[!template text="""it?""" start="00:03:44.120" video="qanda-web" id="subtitle"]]
+[[!template text="""[Speaker 1]: Oh, I haven't tried it.""" start="00:03:47.520" video="qanda-web" id="subtitle"]]
+[[!template text="""I try to remember why I haven't tried it.""" start="00:03:53.760" video="qanda-web" id="subtitle"]]
+[[!template text="""It has a browser. I assume the browser""" start="00:04:03.520" video="qanda-web" id="subtitle"]]
+[[!template text="""executes JavaScript by default.""" start="00:04:06.840" video="qanda-web" id="subtitle"]]
+[[!template text="""I have to check. Emacs.daf""" start="00:04:12.320" video="qanda-web" id="subtitle"]]
+[[!template text="""slash daf browser.""" start="00:04:15.820" video="qanda-web" id="subtitle"]]
+[[!template text="""[Speaker 2]: It's also OK if you want to have a look later""" start="00:04:25.520" video="qanda-web" id="subtitle"]]
+[[!template text="""and you know whenever you want to report to""" start="00:04:27.380" video="qanda-web" id="subtitle"]]
+[[!template text="""the pad you know you write a little blurb""" start="00:04:28.940" video="qanda-web" id="subtitle"]]
+[[!template text="""[Speaker 1]: Yeah sure yeah so yeah I know about EAF but I""" start="00:04:34.700" video="qanda-web" id="subtitle"]]
+[[!template text="""haven't tried it.""" start="00:04:35.460" video="qanda-web" id="subtitle"]]
+[[!template text="""[Speaker 2]: about it. Okay well that's already an answer""" start="00:04:38.060" video="qanda-web" id="subtitle"]]
+[[!template text="""that's cool. We're gonna move on to a""" start="00:04:41.400" video="qanda-web" id="subtitle"]]
+[[!template text="""question that is a little bit off topic,""" start="00:04:42.720" video="qanda-web" id="subtitle"]]
+[[!template text="""but I've also been interested about your""" start="00:04:44.700" video="qanda-web" id="subtitle"]]
+[[!template text="""nickname on IRC. This is not really relevant""" start="00:04:47.420" video="qanda-web" id="subtitle"]]
+[[!template text="""to the talk, quoting the question,""" start="00:04:48.900" video="qanda-web" id="subtitle"]]
+[[!template text="""but I'm curious about your nickname.""" start="00:04:50.400" video="qanda-web" id="subtitle"]]
+[[!template text="""You have some connection to Norway.""" start="00:04:52.020" video="qanda-web" id="subtitle"]]
+[[!template text="""Your nick indicates an interest in the""" start="00:04:54.480" video="qanda-web" id="subtitle"]]
+[[!template text="""architectural style inspired by the""" start="00:04:56.040" video="qanda-web" id="subtitle"]]
+[[!template text="""decoration on Viking ships that was popular""" start="00:04:58.280" video="qanda-web" id="subtitle"]]
+[[!template text="""in the early 20th century because""" start="00:05:00.460" video="qanda-web" id="subtitle"]]
+[[!template text="""Dragonsteel, I assume in Norwegian,""" start="00:05:01.880" video="qanda-web" id="subtitle"]]
+[[!template text="""is Dragon style. Are you familiar with this?""" start="00:05:04.860" video="qanda-web" id="subtitle"]]
+[[!template text="""[Speaker 1]: Yeah, it's just my favorite architecture""" start="00:05:10.760" video="qanda-web" id="subtitle"]]
+[[!template text="""style, I think. I mean,""" start="00:05:15.560" video="qanda-web" id="subtitle"]]
+[[!template text="""I lived in Sweden for like 2,""" start="00:05:19.040" video="qanda-web" id="subtitle"]]
+[[!template text="""1 half years and yeah I went to Norway once""" start="00:05:25.900" video="qanda-web" id="subtitle"]]
+[[!template text="""and I saw like this church in Lofoten Island,""" start="00:05:32.520" video="qanda-web" id="subtitle"]]
+[[!template text="""[Speaker 0]: was amazing. In Luton Island,""" start="00:05:36.766" video="qanda-web" id="subtitle"]]
+[[!template text="""on Luton Island. Right.""" start="00:05:36.820" video="qanda-web" id="subtitle"]]
+[[!template text="""[Speaker 1]: on Lofoten Island. Yeah it Yeah,""" start="00:05:36.833" video="qanda-web" id="subtitle"]]
+[[!template text="""it was amazing. So, yeah,""" start="00:05:40.280" video="qanda-web" id="subtitle"]]
+[[!template text="""that's exactly why I chose that as my""" start="00:05:43.780" video="qanda-web" id="subtitle"]]
+[[!template text="""nickname, because it's my favorite""" start="00:05:46.520" video="qanda-web" id="subtitle"]]
+[[!template text="""architecture style.""" start="00:05:47.540" video="qanda-web" id="subtitle"]]
+[[!template text="""[Speaker 2]: Okay, well, that was a very astute remark by""" start="00:05:51.940" video="qanda-web" id="subtitle"]]
+[[!template text="""the viewers, so I hope you feel validated in""" start="00:05:54.760" video="qanda-web" id="subtitle"]]
+[[!template text="""[Speaker 0]: assumptions. Moving on""" start="00:05:58.480" video="qanda-web" id="subtitle"]]
+[[!template text="""[Speaker 2]: your to another question.""" start="00:05:58.980" video="qanda-web" id="subtitle"]]
+[[!template text="""Yuchen, do you have any thoughts about Nixed,""" start="00:06:01.960" video="qanda-web" id="subtitle"]]
+[[!template text="""about its name, its approach,""" start="00:06:03.880" video="qanda-web" id="subtitle"]]
+[[!template text="""its relevance? About Nixed,""" start="00:06:08.560" video="qanda-web" id="subtitle"]]
+[[!template text="""the browser, N-Y-X-T. Oh,""" start="00:06:11.500" video="qanda-web" id="subtitle"]]
+[[!template text="""Nixed.""" start="00:06:11.720" video="qanda-web" id="subtitle"]]
+[[!template text="""[Speaker 1]: About what? Yeah, I have tried it.""" start="00:06:17.220" video="qanda-web" id="subtitle"]]
+[[!template text="""Well, I mean, it's not Emacs.""" start="00:06:21.360" video="qanda-web" id="subtitle"]]
+[[!template text="""It's kind of similar. I think it tries to do""" start="00:06:26.140" video="qanda-web" id="subtitle"]]
+[[!template text="""something similar to Emacs,""" start="00:06:27.440" video="qanda-web" id="subtitle"]]
+[[!template text="""but The problem with Nix is that very early""" start="00:06:33.860" video="qanda-web" id="subtitle"]]
+[[!template text="""on I encountered an issue with keybinding.""" start="00:06:37.180" video="qanda-web" id="subtitle"]]
+[[!template text="""So the first thing I want to do is to make""" start="00:06:43.040" video="qanda-web" id="subtitle"]]
+[[!template text="""all its keybindings emax-y.""" start="00:06:44.300" video="qanda-web" id="subtitle"]]
+[[!template text="""So that's obviously...""" start="00:06:46.920" video="qanda-web" id="subtitle"]]
+[[!template text="""So what was the problem?""" start="00:06:51.200" video="qanda-web" id="subtitle"]]
+[[!template text="""So yeah, I couldn't even do that.""" start="00:06:53.040" video="qanda-web" id="subtitle"]]
+[[!template text="""I thought, I was expecting that it could...""" start="00:06:56.120" video="qanda-web" id="subtitle"]]
+[[!template text="""There shouldn't be any issues with setting up""" start="00:07:02.660" video="qanda-web" id="subtitle"]]
+[[!template text="""whatever key binding you want.""" start="00:07:03.960" video="qanda-web" id="subtitle"]]
+[[!template text="""So I, the, the issue was that when I tried to""" start="00:07:08.680" video="qanda-web" id="subtitle"]]
+[[!template text="""do when I tried to bind Ctrl S Ctrl R to the""" start="00:07:15.400" video="qanda-web" id="subtitle"]]
+[[!template text="""prompt going up and down,""" start="00:07:17.380" video="qanda-web" id="subtitle"]]
+[[!template text="""so I use I was I complete and I'm used to""" start="00:07:22.900" video="qanda-web" id="subtitle"]]
+[[!template text="""like the control S and control R to go,""" start="00:07:26.760" video="qanda-web" id="subtitle"]]
+[[!template text="""to cycle through the selections.""" start="00:07:28.980" video="qanda-web" id="subtitle"]]
+[[!template text="""And so I want it the same in next in its""" start="00:07:35.560" video="qanda-web" id="subtitle"]]
+[[!template text="""prompt like when, for example,""" start="00:07:38.460" video="qanda-web" id="subtitle"]]
+[[!template text="""typing a URL and get completion from history.""" start="00:07:43.620" video="qanda-web" id="subtitle"]]
+[[!template text="""But it has a conflict with the...""" start="00:07:48.900" video="qanda-web" id="subtitle"]]
+[[!template text="""And also, I try to bind the hint.""" start="00:07:55.680" video="qanda-web" id="subtitle"]]
+[[!template text="""So when I want to follow a link,""" start="00:08:00.440" video="qanda-web" id="subtitle"]]
+[[!template text="""So I press a hint key and then like all these""" start="00:08:05.800" video="qanda-web" id="subtitle"]]
+[[!template text="""links are highlighted with like little""" start="00:08:10.120" video="qanda-web" id="subtitle"]]
+[[!template text="""letters that I can like choose which 1 I want""" start="00:08:13.660" video="qanda-web" id="subtitle"]]
+[[!template text="""which link I want to follow.""" start="00:08:14.820" video="qanda-web" id="subtitle"]]
+[[!template text="""So I try to bind that 1 to J sort of like""" start="00:08:20.140" video="qanda-web" id="subtitle"]]
+[[!template text="""Control C, Control J, or mode.""" start="00:08:23.560" video="qanda-web" id="subtitle"]]
+[[!template text="""But apparently there's a conflict here.""" start="00:08:28.780" video="qanda-web" id="subtitle"]]
+[[!template text="""So when I do both these prompt mode binding""" start="00:08:33.320" video="qanda-web" id="subtitle"]]
+[[!template text="""and the document mode binding,""" start="00:08:36.260" video="qanda-web" id="subtitle"]]
+[[!template text="""Yeah, the prompt no longer works.""" start="00:08:39.960" video="qanda-web" id="subtitle"]]
+[[!template text="""And I reported the bug to Nixt.""" start="00:08:43.840" video="qanda-web" id="subtitle"]]
+[[!template text="""And yeah, and there was response but there""" start="00:08:50.500" video="qanda-web" id="subtitle"]]
+[[!template text="""are so many bugs there,""" start="00:08:52.580" video="qanda-web" id="subtitle"]]
+[[!template text="""and I don't think that bug is very high""" start="00:08:55.640" video="qanda-web" id="subtitle"]]
+[[!template text="""priority. So yeah, I basically stopped trying""" start="00:09:00.540" video="qanda-web" id="subtitle"]]
+[[!template text="""that because key mining is very important to""" start="00:09:03.500" video="qanda-web" id="subtitle"]]
+[[!template text="""[Speaker 2]: Right, but, sorry, please finish.""" start="00:09:07.600" video="qanda-web" id="subtitle"]]
+[[!template text="""[Speaker 1]: me. Yeah, so I mean, yeah,""" start="00:09:15.620" video="qanda-web" id="subtitle"]]
+[[!template text="""without key bindings I can't like,""" start="00:09:17.320" video="qanda-web" id="subtitle"]]
+[[!template text="""I won't. So, okay, I feel this is a very""" start="00:09:23.940" video="qanda-web" id="subtitle"]]
+[[!template text="""basic functionality. I'm kind of reluctant to""" start="00:09:29.280" video="qanda-web" id="subtitle"]]
+[[!template text="""[Speaker 2]: Without key bindings, they are.""" start="00:09:31.220" video="qanda-web" id="subtitle"]]
+[[!template text="""[Speaker 1]: continue trying what These are pieces.""" start="00:09:32.020" video="qanda-web" id="subtitle"]]
+[[!template text="""[Speaker 2]: It reminds me of 2 points.""" start="00:09:34.200" video="qanda-web" id="subtitle"]]
+[[!template text="""So yesterday with Stefan we were talking""" start="00:09:35.840" video="qanda-web" id="subtitle"]]
+[[!template text="""about sane defaults and when he was sleeping""" start="00:09:37.540" video="qanda-web" id="subtitle"]]
+[[!template text="""today we talked about it again with a""" start="00:09:39.440" video="qanda-web" id="subtitle"]]
+[[!template text="""speaker. We did the mentor talk.""" start="00:09:41.400" video="qanda-web" id="subtitle"]]
+[[!template text="""Feel free to re-watch it afterwards.""" start="00:09:43.020" video="qanda-web" id="subtitle"]]
+[[!template text="""But it's funny how, you know,""" start="00:09:48.320" video="qanda-web" id="subtitle"]]
+[[!template text="""regardless of how big the package actually""" start="00:09:50.920" video="qanda-web" id="subtitle"]]
+[[!template text="""is, they always provide some kind of sane""" start="00:09:54.520" video="qanda-web" id="subtitle"]]
+[[!template text="""default and with Nixed,""" start="00:09:55.640" video="qanda-web" id="subtitle"]]
+[[!template text="""obviously, it's built with a Vim mentality""" start="00:09:58.620" video="qanda-web" id="subtitle"]]
+[[!template text="""and modality of key bindings.""" start="00:10:02.020" video="qanda-web" id="subtitle"]]
+[[!template text="""And for us, we are more used to the Emacs way""" start="00:10:05.860" video="qanda-web" id="subtitle"]]
+[[!template text="""of doing things. It's a complete blocker.""" start="00:10:08.040" video="qanda-web" id="subtitle"]]
+[[!template text="""No matter how great the pieces of""" start="00:10:10.320" video="qanda-web" id="subtitle"]]
+[[!template text="""functionality behind Nixed are,""" start="00:10:12.280" video="qanda-web" id="subtitle"]]
+[[!template text="""just the fact that UX-wise we cannot get into""" start="00:10:15.060" video="qanda-web" id="subtitle"]]
+[[!template text="""it or we cannot have it behave nicely with""" start="00:10:18.220" video="qanda-web" id="subtitle"]]
+[[!template text="""what we do. It's a massive block that is""" start="00:10:20.280" video="qanda-web" id="subtitle"]]
+[[!template text="""preventing appropriation of such tools.""" start="00:10:22.040" video="qanda-web" id="subtitle"]]
+[[!template text="""So it might seem very basic to bounce a""" start="00:10:25.940" video="qanda-web" id="subtitle"]]
+[[!template text="""package at the level of key bindings but""" start="00:10:28.300" video="qanda-web" id="subtitle"]]
+[[!template text="""that's what we all do.""" start="00:10:29.620" video="qanda-web" id="subtitle"]]
+[[!template text="""[Speaker 1]: Yeah, I totally agree.""" start="00:10:32.800" video="qanda-web" id="subtitle"]]
+[[!template text="""[Speaker 2]: Right, if I can just interrupt,""" start="00:10:36.180" video="qanda-web" id="subtitle"]]
+[[!template text="""we have about 2 more minutes of questions and""" start="00:10:38.520" video="qanda-web" id="subtitle"]]
+[[!template text="""I see people are writing more questions.""" start="00:10:40.940" video="qanda-web" id="subtitle"]]
+[[!template text="""Did you want to add something,""" start="00:10:42.180" video="qanda-web" id="subtitle"]]
+[[!template text="""Yucheng? On what we're saying?""" start="00:10:43.780" video="qanda-web" id="subtitle"]]
+[[!template text="""[Speaker 1]: No, no, no, Let's continue.""" start="00:10:47.620" video="qanda-web" id="subtitle"]]
+[[!template text="""[Speaker 2]: had plenty of time. Okay,""" start="00:10:51.340" video="qanda-web" id="subtitle"]]
+[[!template text="""I'm going to ask you to be quick about this""" start="00:10:53.100" video="qanda-web" id="subtitle"]]
+[[!template text="""1. I'm going to read the question,""" start="00:10:53.860" video="qanda-web" id="subtitle"]]
+[[!template text="""which is slightly long,""" start="00:10:54.620" video="qanda-web" id="subtitle"]]
+[[!template text="""and you're going to have about 30 seconds to""" start="00:10:56.320" video="qanda-web" id="subtitle"]]
+[[!template text="""answer it. Do you feel capable of this?""" start="00:10:57.720" video="qanda-web" id="subtitle"]]
+[[!template text="""[Speaker 1]: I thought we Yeah, let's try it.""" start="00:10:59.860" video="qanda-web" id="subtitle"]]
+[[!template text="""[Speaker 2]: Let's try it. At least try it.""" start="00:11:02.860" video="qanda-web" id="subtitle"]]
+[[!template text="""Okay, so quoting, I find the JavaScript trap""" start="00:11:05.208" video="qanda-web" id="subtitle"]]
+[[!template text="""almost impossible to avoid since I like to""" start="00:11:06.680" video="qanda-web" id="subtitle"]]
+[[!template text="""buy used stuff online and use my online bank.""" start="00:11:10.360" video="qanda-web" id="subtitle"]]
+[[!template text="""How do you deal with a JavaScript trap?""" start="00:11:13.140" video="qanda-web" id="subtitle"]]
+[[!template text="""I use NoScript and compromise on a few things""" start="00:11:15.400" video="qanda-web" id="subtitle"]]
+[[!template text="""I really feel I cannot live without.""" start="00:11:16.760" video="qanda-web" id="subtitle"]]
+[[!template text="""EWW is nice for a lot of things,""" start="00:11:19.080" video="qanda-web" id="subtitle"]]
+[[!template text="""especially with R for less noise,""" start="00:11:21.260" video="qanda-web" id="subtitle"]]
+[[!template text="""but I need Firefox for those GS and trapped""" start="00:11:23.760" video="qanda-web" id="subtitle"]]
+[[!template text="""pages. So do you have a quick answer to this?""" start="00:11:25.760" video="qanda-web" id="subtitle"]]
+[[!template text="""[Speaker 1]: Yeah, I don't have a good answer,""" start="00:11:29.500" video="qanda-web" id="subtitle"]]
+[[!template text="""but I have a quick answer.""" start="00:11:30.640" video="qanda-web" id="subtitle"]]
+[[!template text="""So I use VPN and like a more,""" start="00:11:38.140" video="qanda-web" id="subtitle"]]
+[[!template text="""what do you call it, move out the Swedish VPN""" start="00:11:41.680" video="qanda-web" id="subtitle"]]
+[[!template text="""browser, move out browser.""" start="00:11:43.480" video="qanda-web" id="subtitle"]]
+[[!template text="""Yeah, so I unfortunately I have to use""" start="00:11:48.960" video="qanda-web" id="subtitle"]]
+[[!template text="""JavaScript in these cases as well,""" start="00:11:50.660" video="qanda-web" id="subtitle"]]
+[[!template text="""but I try to minimize the use of these""" start="00:11:53.800" video="qanda-web" id="subtitle"]]
+[[!template text="""things.""" start="00:11:54.020" video="qanda-web" id="subtitle"]]
+[[!template text="""[Speaker 2]: How long do you think it will take for us to""" start="00:11:56.920" video="qanda-web" id="subtitle"]]
+[[!template text="""save the world with Emacs,""" start="00:11:58.140" video="qanda-web" id="subtitle"]]
+[[!template text="""or save the web at least?""" start="00:11:59.340" video="qanda-web" id="subtitle"]]
+[[!template text="""5 years, 10 years, maybe a little less than""" start="00:12:01.360" video="qanda-web" id="subtitle"]]
+[[!template text="""this?""" start="00:12:01.560" video="qanda-web" id="subtitle"]]
+[[!template text="""[Speaker 1]: Well I think it's, unfortunately it's""" start="00:12:06.600" video="qanda-web" id="subtitle"]]
+[[!template text="""probably independent of Emacs,""" start="00:12:08.300" video="qanda-web" id="subtitle"]]
+[[!template text="""like it will only be saved when,""" start="00:12:12.180" video="qanda-web" id="subtitle"]]
+[[!template text="""like it's saved on like the normal,""" start="00:12:14.860" video="qanda-web" id="subtitle"]]
+[[!template text="""the more popular browsers like Firefox.""" start="00:12:18.960" video="qanda-web" id="subtitle"]]
+[[!template text="""I have no clue how long it will take for,""" start="00:12:23.680" video="qanda-web" id="subtitle"]]
+[[!template text="""I don't know, for example,""" start="00:12:25.120" video="qanda-web" id="subtitle"]]
+[[!template text="""Tala to pick up so that you can buy things""" start="00:12:28.660" video="qanda-web" id="subtitle"]]
+[[!template text="""without running JavaScript.""" start="00:12:30.020" video="qanda-web" id="subtitle"]]
+[[!template text="""[Speaker 2]: Right. Well, I guess we'll have to cross our""" start="00:12:33.220" video="qanda-web" id="subtitle"]]
+[[!template text="""fingers then for Firefox to save the world.""" start="00:12:35.380" video="qanda-web" id="subtitle"]]
+[[!template text="""All right Yuchen, we're about out of time,""" start="00:12:37.260" video="qanda-web" id="subtitle"]]
+[[!template text="""we're moving on to the next talk in 20""" start="00:12:38.800" video="qanda-web" id="subtitle"]]
+[[!template text="""seconds. Thank you so much for your""" start="00:12:40.200" video="qanda-web" id="subtitle"]]
+[[!template text="""presentation and for waking up early and""" start="00:12:41.940" video="qanda-web" id="subtitle"]]
+[[!template text="""answering the question,""" start="00:12:42.540" video="qanda-web" id="subtitle"]]
+[[!template text="""and I can tell you, you were very alert and""" start="00:12:44.820" video="qanda-web" id="subtitle"]]
+[[!template text="""definitely more energetic than I was.""" start="00:12:47.020" video="qanda-web" id="subtitle"]]
+[[!template text="""All right, see you later.""" start="00:12:52.600" video="qanda-web" id="subtitle"]]
+[[!template text="""[Speaker 1]: Thank you. See you.""" start="00:12:53.940" video="qanda-web" id="subtitle"]]
+[[!template text="""[Speaker 2]: Bye. And we go to the next talk right now.""" start="00:12:58.400" video="qanda-web" id="subtitle"]]
+[[!template text="""[Speaker 0]: You are currently""" start="00:13:02.620" video="qanda-web" id="subtitle"]]
+[[!template text="""you""" start="00:13:15.260" video="qanda-web" id="subtitle"]]
+
+</div>Questions or comments? Please e-mail [id@ypei.org](mailto:id@ypei.org?subject=Comment%20for%20EmacsConf%202023%20web%3A%20Emacs%20saves%20the%20Web%20%28maybe%29)
<!-- End of emacsconf-publish-after-page -->
diff --git a/2023/info/web-before.md b/2023/info/web-before.md
index 443e415e..0ee755f0 100644
--- a/2023/info/web-before.md
+++ b/2023/info/web-before.md
@@ -1,12 +1,32 @@
<!-- Automatically generated by emacsconf-publish-before-page -->
[[!toc ]]
-Format: 40-min talk followed by live Q&A
-Discuss on IRC: [#emacsconf](https://chat.emacsconf.org/?join=emacsconf)
-Status: Waiting for video from speaker
+Format: 32-min talk ; Q&A: BigBlueButton conference room
+Status: Q&A to be extracted from the room recordings
+# Talk
+
+<div class="vid mainVideo"><video controls preload="none" id="mainVideo-web"><source src="https://media.emacsconf.org/2023/emacsconf-2023-web--emacs-saves-the-web-maybe--yuchen-pei--main.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2023/captions/emacsconf-2023-web--emacs-saves-the-web-maybe--yuchen-pei--main.vtt" default />"""<track kind="chapters" label="Chapters" src="/2023/captions/emacsconf-2023-web--emacs-saves-the-web-maybe--yuchen-pei--main--chapters.vtt" /><p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video>[[!template id="chapters" vidid="mainVideo-web" data="""
+00:00.000 Overview
+00:35.680 Background problems
+05:31.940 Solutions outside of Emacs
+09:46.480 Emacs solutions
+09:54.600 Free clients in Emacs
+12:43.021 Web browsers in Emacs
+16:52.380 emacs-web-server - overview
+17:30.380 emacs-web-server - hello emacs!
+18:17.580 emacs-web-server - yolo
+23:07.940 emacs-web-server - emacs web framework
+29:40.420 Firefox with emacs for extensions
+31:25.360 Thank you
+
+"""]]<div></div>Duration: 31:33 minutes<div class="files resources"><ul><li><a href="https://pad.emacsconf.org/2023-web">Open Etherpad</a></li><li><a href="https://bbb.emacsverse.org/playback/presentation/2.0/playback.html?meetingId=feab521f1b6a6f4d2cef232eecd969786ddf81c1-1701634708093">Play recording from BigBlueButton</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-web--emacs-saves-the-web-maybe--yuchen-pei--intro.vtt">Download --intro.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-web--emacs-saves-the-web-maybe--yuchen-pei--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-web--emacs-saves-the-web-maybe--yuchen-pei--main--chapters.vtt">Download --main--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-web--emacs-saves-the-web-maybe--yuchen-pei--main.opus">Download --main.opus (17MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-web--emacs-saves-the-web-maybe--yuchen-pei--main.vtt">Download --main.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-web--emacs-saves-the-web-maybe--yuchen-pei--main.webm">Download --main.webm (53MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-web--emacs-saves-the-web-maybe--yuchen-pei.org">Download .org</a></li><li><a href="https://toobnix.org/w/fvzGU4cQQ2meZVKNGEHMht">View on Toobnix</a></li><li><a href="https://www.youtube.com/watch?v=kqOZwsylo48">View on Youtube</a></li></ul></div></div>
+
+# Q&A
+
+<div class="vid qanda"><video controls preload="none" id="qanda-web"><source src="https://media.emacsconf.org/2023/emacsconf-2023-web--emacs-saves-the-web-maybe--yuchen-pei--answers.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2023/captions/emacsconf-2023-web--emacs-saves-the-web-maybe--yuchen-pei--answers.vtt" default />"""<p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video><div>Listen to just the audio:<br /><audio controls preload="none" id="qanda-web-audio" src="https://media.emacsconf.org/2023/emacsconf-2023-web--emacs-saves-the-web-maybe--yuchen-pei--answers.opus"></audio></div><div></div>Duration: 15:53 minutes<div class="files resources"><ul><li><a href="https://pad.emacsconf.org/2023-web">Open Etherpad</a></li><li><a href="https://bbb.emacsverse.org/playback/presentation/2.0/playback.html?meetingId=feab521f1b6a6f4d2cef232eecd969786ddf81c1-1701634708093">Play recording from BigBlueButton</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-web--emacs-saves-the-web-maybe--yuchen-pei--answers.json">Download --answers.json</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-web--emacs-saves-the-web-maybe--yuchen-pei--answers.opus">Download --answers.opus (7.6MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-web--emacs-saves-the-web-maybe--yuchen-pei--answers.vtt">Download --answers.vtt</a> (unedited)</li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-web--emacs-saves-the-web-maybe--yuchen-pei--answers.webm">Download --answers.webm (18MB)</a></li></ul></div></div>
# Description
<!-- End of emacsconf-publish-before-page --> \ No newline at end of file
diff --git a/2023/info/web-nav.md b/2023/info/web-nav.md
index 4aeb6483..34119aef 100644
--- a/2023/info/web-nav.md
+++ b/2023/info/web-nav.md
@@ -1,7 +1,7 @@
<div class="talk-nav">
Back to the [[talks]]
-Previous by track: <a href="/2023/talks/hn">The many ways to browse Hacker News from Emacs</a>
+Previous by track: <a href="/2023/talks/mentor">Mentoring VS-Coders as an Emacsian (or How to show not tell people about the wonders of Emacs)</a>
Next by track: <a href="/2023/talks/sharing">Sharing Emacs is Caring Emacs: Emacs education and why I embraced video</a>
-Track: <span class="sched-track General">General</span>
+Track: <span class="sched-track General">General</span> - <strong><a href="https://emacsconf.org/2023/watch/gen">Watch</a></strong>
</div>
diff --git a/2023/info/windows-after.md b/2023/info/windows-after.md
index 8c4835ce..f4ce987e 100644
--- a/2023/info/windows-after.md
+++ b/2023/info/windows-after.md
@@ -1,7 +1,1258 @@
<!-- Automatically generated by emacsconf-publish-after-page -->
-Questions or comments? Please e-mail [corwin@bru.st](mailto:corwin@bru.st?subject=Comment%20for%20EmacsConf%202022%20windows%3A%20Windows%20into%20Freedom)
+<div class="transcript transcript-mainVideo"><a name="windows-mainVideo-transcript"></a><h1>Transcript (unedited)</h1>
+
+[[!template text="""Oh, wow, how exciting. Well, maybe I should share something then. Um, well, thank you very much and welcome to uh""" start="00:00:00.000" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Welcome to my talk i'm a little distracted here""" start="00:00:11.440" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""I had a friend who came over and just brought me a whole bunch of peanut butter cups homemade peanut butter cups""" start="00:00:13.760" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Maybe i'll show those off. Uh""" start="00:00:20.080" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""later""" start="00:00:22.320" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Okay, what okay here, uh, put it right there""" start="00:00:23.360" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""All good stuff""" start="00:00:30.960" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Okay, so i'm going to uh get over to my planned uh stuff i'm sharing here""" start="00:00:33.920" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""hopefully""" start="00:00:41.340" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Uh, and and we'll jump jump right in because i'm gonna need as much time as I can possibly have today""" start="00:00:42.880" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""thanks so much for uh joining me for emacs conference and for""" start="00:00:49.440" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""especially for""" start="00:00:54.620" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""um""" start="00:00:56.480" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""all of you who who participated, you know in the discussions contributing talks and""" start="00:00:57.600" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""um, you know, uh, you know, including running the copy the the and it's just so much fun to be here, um""" start="00:01:03.520" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""I guess while i'm standing here and and saying stuff that's that i'm gonna have to""" start="00:01:11.040" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""transcribe because I didn't uh prepare a""" start="00:01:16.620" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""recorded version""" start="00:01:20.560" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Uh, I had a lot of trouble trimming this down so I can solve that problem by just talking a lot at the beginning""" start="00:01:22.080" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""about other stuff, um""" start="00:01:28.960" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""So in addition to the thanks I just want to say thanks also to the""" start="00:01:33.200" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Folks on the development list that helped me kind of come up to speed on this. I won't make a big list here. But""" start="00:01:37.120" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""um""" start="00:01:43.760" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""And and for all that i've learned from my previous conferences""" start="00:01:45.120" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""It's just I can't stress enough what a great opportunity volunteering for""" start="00:01:48.640" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""uh free software related things are""" start="00:01:53.520" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Uh as a way to get involved people will just totally teach you how to be helpful and i'm loving it""" start="00:01:55.920" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Sasha can you please maximize?""" start="00:02:00.720" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Hold on""" start="00:02:02.880" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""I can preview the stream, but it's not super easy right now""" start="00:02:14.160" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""I got all my screens kind of dedicated to other stuff""" start="00:02:17.760" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""so should I pause for a second before I get into the slides because there's""" start="00:02:20.400" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""There they'll be hard to see if i'm not full screen""" start="00:02:24.960" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Yeah, yeah, okay, well i'll keep ad-libbing then because I just have a million, uh things I can say, um""" start="00:02:28.640" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Uh, so, uh, let me just quickly talk, uh things that aren't in here. Um,""" start="00:02:37.520" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""I'm going to mention the mysis2.org and the that project which provides a port""" start="00:02:43.840" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""of the GNU""" start="00:02:51.360" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Of uh glibc and a lot of GNU""" start="00:02:53.440" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""and other free software""" start="00:02:58.640" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""um, so""" start="00:03:01.280" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Uh, I don't pushing a room to uh a dvd room to stefan""" start="00:03:03.280" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""All right, so i'm gonna take mumble out of my uh, pardon me folks just gonna take mumble out of my speakers here""" start="00:03:12.080" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Okay""" start="00:03:19.620" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Okay, in fact we'll take the speakers out of play entirely and i'll just switch to some headphones""" start="00:03:22.820" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""All right, so""" start="00:03:33.620" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Gorman you're good to go""" start="00:03:35.140" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Perfect. What an amazing amount of time. All right. So thanks a lot. Uh today i've got a jam-packed talk""" start="00:03:36.820" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Um, i've i've done my best to make""" start="00:03:43.860" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""To make this not too overwhelming, but overall we're going to try to try to actually build""" start="00:03:46.820" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Um emacs while we're talking today and we might actually build several emacs""" start="00:03:52.900" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Uh, so let's take a look at that real quick""" start="00:03:58.100" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Um, so over here we have a screen where I am""" start="00:04:00.420" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Just once a minute looking. Uh""" start="00:04:05.700" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Indirectly at whether there have been any pushes, uh upstream to either the emacs 29 or emacs 30 branches""" start="00:04:09.120" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""so i've""" start="00:04:17.540" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Arranged for us to sort of keep an eye on that""" start="00:04:19.280" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Um while we talk and you know, maybe that's that's one thing that we'll do and then additionally we'll probably""" start="00:04:22.820" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Fire up a shell. This is the mysis 2 environment that I talked about before""" start="00:04:30.660" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""And we'll probably create some directories and things""" start="00:04:36.660" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""But before we get into all that let's let's give some some context. I've been doing my best to try to""" start="00:04:40.020" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Uh, make sure all this information is on the emacs wiki as well""" start="00:04:47.060" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""So, uh, sorry, as I said, I got a little caught off guard. So i'm moving my foot pedals""" start="00:04:51.060" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""To the float back to the floor here""" start="00:04:56.820" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""And I should be able to advance slides here. All right, so""" start="00:05:00.340" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""um""" start="00:05:05.700" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""I kind of provided some special definitions for things i'm going to kind of level set with those""" start="00:05:07.860" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""the uh""" start="00:05:14.740" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Um when I say a binary release i'm talking about some some i'm talking about emacs for windows as""" start="00:05:17.460" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Just ready to run out of its folder or in whatever similar form""" start="00:05:25.060" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""The when I say a build i'm talking about kind of a process of doing that""" start="00:05:30.340" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Um when emacs.get of course, that's the upstream hosted by gnu savannah""" start="00:05:36.420" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""The emacs release is a tarball created from that the sources""" start="00:05:41.620" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""For um emacs are going to be one of those two things""" start="00:05:48.580" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Um very specifically so i'm not going to talk about patches patching there's some implications there perhaps we'll get into it""" start="00:05:54.740" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""uh""" start="00:06:02.660" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""So a snapshot is when I build from anything other than a release source""" start="00:06:03.620" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""uh a tarball""" start="00:06:09.860" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""um, just if I if I say that i'm talking specifically""" start="00:06:11.860" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""about the uh, the xz""" start="00:06:16.340" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Version of the file as as a technical point""" start="00:06:18.980" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Um, so that may come up. All right, nothing else I think up my sleeve. Um""" start="00:06:22.900" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""the""" start="00:06:29.780" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Uh as as a key data point it's worth understanding that there's a file called configure ac""" start="00:06:30.820" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""It's going to be processed, uh as part of autoconf. We we initially access that when we run""" start="00:06:37.540" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Um autogen as you'll see in a little bit""" start="00:06:44.500" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""um""" start="00:06:48.180" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""The but before but um, so the autogen script will generally consider this. Uh, so in a release build""" start="00:06:49.380" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Um, this has been thought about kind of for us as part of um making the tarball""" start="00:06:57.220" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""um the configure dot a""" start="00:07:03.300" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""ac""" start="00:07:05.860" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""um""" start="00:07:07.300" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Yeah, I think I pretty much covered covered this so""" start="00:07:08.580" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Um those those that kind of partially built status that's a might be another phrase that you hear me use""" start="00:07:12.420" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""so this""" start="00:07:19.540" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Slide unpacks that a little more""" start="00:07:20.900" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Um""" start="00:07:24.900" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""So it can be a little confusing to understand what exactly?""" start="00:07:26.420" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""the you know, what is it, you know, how stable is emacs depending on what I have so that I got a""" start="00:07:30.580" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""It's kind of a set of rules of thumb here right first I want the highest, uh, you know dot""" start="00:07:36.980" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Uh dot release value that I can get assuming that that's higher than one""" start="00:07:43.780" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""If it's if it were to only be one, let's say my choices were 29.1 and 30.1""" start="00:07:49.620" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""I would take 30.1""" start="00:07:56.340" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""um""" start="00:07:58.340" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""because that's that's weird, but um""" start="00:07:59.220" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""What you'll normally see is you might see a 28.2""" start="00:08:02.260" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""You might see a 29.1""" start="00:08:06.100" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""So here I think 28.2 has got the most most most stable""" start="00:08:08.820" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""um""" start="00:08:15.540" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""set, uh the""" start="00:08:16.580" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""uh, or set of release binaries""" start="00:08:18.740" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""the""" start="00:08:21.540" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""29.1 will will have a little more features, but will tend to be more stable""" start="00:08:23.040" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""than""" start="00:08:28.340" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Any lower point releases for 29""" start="00:08:29.380" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Uh, certainly than any release candidates for 29, which might even have new features""" start="00:08:32.920" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Um, but are mostly going to just be patches so they're going to become the most stable""" start="00:08:38.200" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""thing here""" start="00:08:43.320" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""and especially if they they have a""" start="00:08:44.840" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""You know if this this is not""" start="00:08:48.120" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Uh, if this were to be 29.2 release candidate one as well looking forward to seeing""" start="00:08:50.200" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""um""" start="00:08:56.680" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""the""" start="00:08:57.960" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""30.0.50""" start="00:09:00.180" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""um""" start="00:09:02.280" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""And and in between this this pre-test here, we're talking about kind of developer land. Um, so""" start="00:09:03.240" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Um, the expectation is that you know what you're doing that applies to windows users""" start="00:09:10.680" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Uh just as much if you are building anything in the snapshot range any of that is going to be in this""" start="00:09:14.920" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""30.0.50 currently that'll change when""" start="00:09:21.220" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""the""" start="00:09:24.680" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""when the""" start="00:09:25.880" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""30 30 an emacs 30 release tags, uh, or release branches come""" start="00:09:27.080" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Okay, so""" start="00:09:34.120" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Let's talk about the local um, there's not much to know about what I have going on""" start="00:09:37.480" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""except that I have my my paths mess messed with so""" start="00:09:43.640" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Um, if if that that were to come up if you're wondering how why does this?""" start="00:09:48.840" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Uh in in sys command work that's that's probably the way place where you notice it""" start="00:09:52.840" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Uh, I am using windows 10. I haven't tried windows 11""" start="00:09:58.600" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Uh as mentioned my sys2 is critical to all this""" start="00:10:02.120" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""There's one script in particular that will error out if you try to do anything other than use my sys's""" start="00:10:06.200" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""My sys's shell and in fact my sys owns""" start="00:10:11.720" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Or provides three shells and of them that script is designed to work with a specific one of them as we'll come to""" start="00:10:14.920" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""I don't talk about installing the dependencies, but just as as kind of some kind of help. Um,""" start="00:10:23.160" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""You can search using this formula and install""" start="00:10:31.000" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Using this formula good luck with those, you know grep commands""" start="00:10:37.000" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""And sys is the tool for building the self-installing self-extracting installer or uh executable self-installer""" start="00:10:43.640" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Um, the script for that is provided along with the emac source""" start="00:10:51.820" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Um, and i've provided a helpful link to the main page for the project download link on the left. It is not""" start="00:10:56.780" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""It's kind of scare where the way that this link appears, but I have clicked it and it's working for me""" start="00:11:05.180" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Automation does uh, we'll we have some time we'll be looking at this at a minimum""" start="00:11:14.200" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""I wanted to mention that what I do on my local what you're seeing in the crawler, I hope""" start="00:11:19.340" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""uh represents a""" start="00:11:25.260" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""uh""" start="00:11:27.740" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""A simple sleep loop, uh, and we'll we'll look into that if we have time""" start="00:11:30.700" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Um, I do have a little but I do use like a cron job and so on to clean up some hosting that I pay for""" start="00:11:36.540" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Um where i've got where I where I kind of self-host""" start="00:11:44.380" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""some uh snapshots""" start="00:11:48.300" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""more stuff than I feel comfortable uploading to""" start="00:11:50.700" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""uh, to gnu""" start="00:11:54.220" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""The um""" start="00:11:57.820" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""You know, I never said, uh, my name is corwin bruce for the last couple of years i've been the volunteer making""" start="00:12:01.740" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Uh making the snapshots the quote-unquote official binaries, uh for windows of the""" start="00:12:08.220" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""um""" start="00:12:15.580" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Of of emacs for windows. So that's that's all the different versions. Uh help is always welcome with that""" start="00:12:17.100" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""I'd be very happy to teach you in more depth. This video is""" start="00:12:23.180" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""You know kind of my drop dead file. Uh, I don't have specific plans. Uh, if somebody's like hey get out of the way""" start="00:12:27.100" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""This is the one thing I think I can do""" start="00:12:33.500" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Um, hey, that's real relatable""" start="00:12:35.660" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Okay, um, so I haven't tried uh, the I haven't tried a lot of fun things that I won't talk about""" start="00:12:39.100" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""um, the uh, the rest of this talk is going to get into the nitty-gritty as I said, um""" start="00:12:46.940" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""If we can't convince emacs to start building over on that screen, we'll be opening it up here on the center stage""" start="00:12:52.860" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""um""" start="00:12:59.500" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Uh, this begins and there's there's there's there's great insight here too on the wiki, uh""" start="00:13:01.900" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""With picking an ftp source for any official release""" start="00:13:08.300" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""That is for a stable product. Please visit""" start="00:13:12.780" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Um ftp.gnu.org""" start="00:13:16.460" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Otherwise, you'll want to switch that ftp dot at the beginning to alpha dot and take a pre-test""" start="00:13:19.020" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Uh, or any snapshot or otherwise then they're not published there""" start="00:13:25.020" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""The uh next""" start="00:13:30.140" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""uh, you know""" start="00:13:32.540" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""i'm gonna you have some examples in here that assume that you're doing a release build that you're doing 29.1, but""" start="00:13:34.620" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""um, i'm glancing out of the the right side of my face at the""" start="00:13:41.820" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Chat on the optance anybody in there wants to direct me at a particular""" start="00:13:48.060" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Um, we can make some other we can build something""" start="00:13:53.180" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Else if you want to see a snapshot build more mention that um the examples that you're going to see here""" start="00:13:56.540" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""That I will without other direction cut and paste""" start="00:14:03.500" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""um""" start="00:14:07.260" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Are all based on a release bill""" start="00:14:09.100" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""so""" start="00:14:12.380" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Um, and so, uh, we'll use the uh, I mentioned that there are several shells provided by mysis2""" start="00:14:14.620" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""To the min-gw64""" start="00:14:22.160" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Shell is the one that we mostly need""" start="00:14:25.520" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Um, I tested all of this as well with the min-gw32 shell""" start="00:14:28.880" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""um""" start="00:14:34.240" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""So that that should work and and see mix binaries that that work for me""" start="00:14:35.680" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Uh""" start="00:14:44.080" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""I as I mentioned, I don't get into the details of installing all your prerequisites""" start="00:14:46.000" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""I found that doing it in a headfirst manner wasn't uh,""" start="00:14:50.720" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Wasn't difficult and I also found that there's a number of tutorials. I didn't want to pick one to link here""" start="00:14:54.640" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Um there uh""" start="00:15:03.280" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Here are uh, okay, so""" start="00:15:06.160" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Our general formula for building emacs irrespective of windows""" start="00:15:10.240" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""looks like""" start="00:15:15.520" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Does the configure script exist if not run autogen?""" start="00:15:16.800" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""from a windows build standpoint""" start="00:15:21.280" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""This is if i'm not running a release that release build call the autogen script""" start="00:15:23.920" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Right and this would be in the directory where we want to pack this i'll demonstrate""" start="00:15:31.040" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""within""" start="00:15:35.200" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""three minutes if uh""" start="00:15:37.040" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""If one if nobody's pushed upstream to emacs""" start="00:15:39.600" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""um""" start="00:15:42.800" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""so, uh the configure, uh, and""" start="00:15:44.000" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""configure options""" start="00:15:48.080" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""are uh""" start="00:15:50.320" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Uh the configure, you know if the configure sorry if the configure script exists then""" start="00:15:53.600" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Uh doesn't doesn't exist. So the only reason so in my process I will always execute that step because I clean everything""" start="00:15:58.800" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""after every build, um in all my contexts""" start="00:16:06.480" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""um, however, if you were you know had a""" start="00:16:10.820" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Checkout of emacs dot get and you are building it at several releases""" start="00:16:14.320" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Then maybe you've got a configure script and then you'll want to know""" start="00:16:19.300" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""um the you know""" start="00:16:22.740" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Whether you have to bootstrap and the typical complexities, but otherwise you might be able to skip that in in the abstract""" start="00:16:24.580" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""um""" start="00:16:32.820" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Is that right or is it is""" start="00:16:36.100" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Make uh, so and if the make file doesn't exist make install. I know i'm""" start="00:16:38.420" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Looking at that and i'm questioning whether it's correct. Sorry about that""" start="00:16:43.380" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Um in any case, uh, so autogen configure make install is our recipe autogen""" start="00:16:48.020" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Creates the configure script configure creates the make file the make file""" start="00:16:55.060" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Um in the case of windows, I almost always want the install""" start="00:17:00.020" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Uh and to specify some location where the installed emacs will land this is""" start="00:17:04.840" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""where""" start="00:17:10.440" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""all of the recipes for packaging emacs""" start="00:17:11.320" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""go""" start="00:17:14.680" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""and if I were""" start="00:17:15.720" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""You know using this as a movie to upgrade I personally would do that by""" start="00:17:18.600" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""by specifying an install path quote unquote on top of""" start="00:17:23.080" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Uh a main installation. I don't do that. I update shortcuts manually based on what specifically I want to try""" start="00:17:27.240" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Uh in an effort to to to notice, uh interesting patches and confirm they work on windows""" start="00:17:34.120" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Which mostly they do there's not a lot of code in my experience that is""" start="00:17:41.240" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Windows specific and very very little around the build process""" start="00:17:46.200" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""All right""" start="00:17:50.360" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Huge rabbit hole zone and I still have a minute before I have to kick off the first part of our demo""" start="00:17:51.400" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""so""" start="00:18:00.120" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Let's let's keep keep diving in""" start="00:18:01.240" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""um""" start="00:18:04.200" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""The those specific part windows specific parts beside the dot exe extension that we're going to find slammed onto all of our familiar""" start="00:18:05.240" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Uh executables. We're also going to have emacs client w""" start="00:18:14.040" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Which is a wrapper that hides?""" start="00:18:18.360" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""um how hard it is to get""" start="00:18:22.760" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Uh to take it""" start="00:18:25.160" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""How bad the abstraction is between the window management layer and the gooey?""" start="00:18:27.640" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""And then all the different parts on windows essentially it wants to create a shell window if we just double click emacs.exe""" start="00:18:32.440" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""So emacs client w""" start="00:18:39.480" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Uh and run emacs are going to solve that problem""" start="00:18:41.640" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""um""" start="00:18:45.160" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Wrapping emacs and emacs client respectively""" start="00:18:46.680" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""And""" start="00:18:51.640" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Just uh""" start="00:18:53.400" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""All right, so let's let's go ahead and do something i'll i'm going to take away the ticker here for a minute""" start="00:18:56.520" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""And what you're not seeing is off stage. I am""" start="00:19:02.520" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Killing that so we don't get builds in parallel""" start="00:19:07.400" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Um""" start="00:19:11.480" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""So, um""" start="00:19:15.960" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""So at this point i'm going to open up a shell and i'm going to start talking just a little bit about""" start="00:19:17.480" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""My local build environment, which we haven't gotten into in fact just to make that even easier""" start="00:19:22.360" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""let's um""" start="00:19:28.520" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Let's just take a look at it a little bit probably the easiest spot""" start="00:19:31.160" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Is""" start="00:19:37.560" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Here""" start="00:19:40.280" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""All right, so here we have the familiar windows my computer interface""" start="00:19:47.720" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""I have the g drive and the h drive""" start="00:19:52.600" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""four terabyte drives""" start="00:19:56.840" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""um dedicated to""" start="00:20:00.040" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""my""" start="00:20:02.440" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""um, really overblown emacs build process""" start="00:20:03.720" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Um, this just lets me be super lazy. There's no reason you need any massive amount of storage to do any of this""" start="00:20:08.200" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Um inside here and now i'll actually switch you back to the other screen""" start="00:20:15.800" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""um""" start="00:20:21.960" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""We'll we'll find""" start="00:20:24.040" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Oops""" start="00:20:35.880" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Sorry about that""" start="00:20:38.600" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""It didn't take the time to label that one""" start="00:20:40.680" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Label that one""" start="00:20:42.680" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Um, so here you can see the primary output that""" start="00:20:44.600" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""That i'm looking at through this automated process""" start="00:20:49.400" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""I come along I look at the bug reports or maybe i'm just restarting my computer and choosing what emacs""" start="00:20:52.600" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""version at random and then in that case, I look at this modified date and I say""" start="00:20:58.840" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""um my config that I""" start="00:21:03.480" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""You know that i'm playing with right now is all set for emacs 30""" start="00:21:05.880" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Or i'm testing them both and i'm relaunching both of these right""" start="00:21:09.320" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""So for me that starts by diving into the install folder going into the bin folder""" start="00:21:13.240" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Which looks exactly the way my automation leaves it. I then come in to run the run emacs""" start="00:21:18.200" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""And I create a shortcut""" start="00:21:25.000" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""um""" start="00:21:27.480" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""To it""" start="00:21:29.640" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""so""" start="00:21:30.760" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""I'm a keyboard person. So that's usually done like this""" start="00:21:31.960" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""And then I just know that the context menu is going to come up in the right place so i'll come up and""" start="00:21:36.760" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""um""" start="00:21:42.840" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Possibly change the change the shortcut, right?""" start="00:21:44.900" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""If I don't mess with it""" start="00:21:53.080" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Um""" start="00:21:56.680" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""So here's where i'll add my minus q if that's kind of where my world is at or it kind of depends on what i'm doing""" start="00:21:57.640" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""With these which varies week to week""" start="00:22:03.880" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Um, so restarting my emacs, uh involves doing the same thing going to my desktop""" start="00:22:07.480" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""And where you'll find a number of emac shortcuts""" start="00:22:12.600" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""and""" start="00:22:17.000" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Um updating the shortcut in the same manner""" start="00:22:20.680" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Actually, maybe we'll just let's go back there and just show it. So if we look at for example my erc""" start="00:22:23.960" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""You can see it's going to be pointing at one of these""" start="00:22:33.880" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""clones, and then it's gonna""" start="00:22:37.400" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Maybe tell me that I want it wants to be full screen. No, not currently and then it might uh,""" start="00:22:39.720" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Have some stuff in there about auto loading a config and what connections i'm going to some commands i've defined to start connections""" start="00:22:45.560" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""So""" start="00:22:53.340" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""All right, and sorry I got a phone call I was checking it wasn't in an order the organ the other organizers giving me the hook""" start="00:23:00.620" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""So, um, all right, so that's that's probably enough on the local system. Let's get back to""" start="00:23:08.700" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""To to building emacs and now it hopefully makes a certain amount of sense when I say we're gonna wander over to the h drive""" start="00:23:15.580" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""and recreate the structure that""" start="00:23:22.620" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""both""" start="00:23:25.660" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""My process sort of assumes and the scripts you'll find in the admin nt""" start="00:23:27.180" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Uh build disk folder in source""" start="00:23:34.300" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Used to assume those scripts are in need of some love and in just a little bit i'll be mentioning a build""" start="00:23:38.940" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""uh""" start="00:23:45.420" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""a uh""" start="00:23:46.940" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""A a particular bug that you might want to pay attention to if you're interested in making a self installer""" start="00:23:47.900" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""all right, so""" start="00:23:54.780" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""um""" start="00:23:57.020" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""We're going to create""" start="00:23:58.140" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Uh an emacs build directory""" start="00:24:01.260" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""And we've got a handy git clone stage git clone command stage for ourself that would work""" start="00:24:08.460" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""um""" start="00:24:16.380" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Do not currently see anybody lobbying for that. So instead we will run the rather faster""" start="00:24:19.420" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Uh w get command""" start="00:24:28.140" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""On savannah, which is not pasted in here. Nice. Let's see if I can freehand it not gonna do it""" start="00:24:30.940" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""uh""" start="00:24:37.820" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Um""" start="00:24:45.500" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Beg your pardon i'm grabbing a url from the internet""" start="00:24:51.980" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Uh, okay. Yeah, I can't I can't honestly I can't freehand it whatever""" start="00:25:00.060" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Sorry, I uh""" start="00:25:06.060" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""I didn't have that bookmarked and all handy like I thought I did""" start="00:25:07.660" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Um, so we'll just say ftp.gnu""" start="00:25:12.060" video="mainVideo-windows" id="subtitle"]]
+[[!template text=""".org""" start="00:25:15.260" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Uh, what is it pub emacs emacs-29.1""" start="00:25:17.900" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Uh""" start="00:25:26.460" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Hmm""" start="00:25:34.860" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""I""" start="00:25:36.860" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Didn't""" start="00:25:40.700" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Really think i'd have this command sitting around it makes me want to scrap the whole demo i'm not gonna lie""" start="00:25:43.100" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Okay, how am I doing your time?""" start="00:25:48.940" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Um, I think at least 15 minutes. Um, but in the command that you were freehanding should the pub be gnu instead""" start="00:25:51.820" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Oh, thanks""" start="00:25:59.100" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""I'm, sorry""" start="00:26:01.100" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""There we go, thank you. All right, and then we'll""" start="00:26:07.420" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""And i'm not sure I provided commands for this either""" start="00:26:17.820" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""But it is trivially easy to do and while that happens we'll get to move on a few slides""" start="00:26:22.940" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Um""" start="00:26:29.820" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""The configure script i'm not talking about in a lot of detail""" start="00:26:31.820" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""But I do want to mention that the gnu binaries are provided with native""" start="00:26:35.740" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Uh compilation enabled that's the feature that uses gcc""" start="00:26:41.820" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""lib gcc get on windows if available that looks gcc get will be used""" start="00:26:46.620" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Um, but when but if if emacs has that feature then it will take by compile""" start="00:26:53.740" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""native code and""" start="00:27:01.420" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""asynchronously""" start="00:27:04.040" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Compile that as needed""" start="00:27:05.100" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""uh with the ahead of time feature""" start="00:27:07.340" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""We're going to do as much of that ahead of time and for folks that are consuming the windows binary""" start="00:27:09.660" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""The thinking goes that they might not have mysys too. They might not have""" start="00:27:14.860" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Gcc jet they might be""" start="00:27:19.740" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Happy that they're enabled""" start="00:27:22.140" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""In a you know a lot of time run emacs on their local environments""" start="00:27:24.140" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""At all""" start="00:27:30.460" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""You know in a maybe a lockdown at a corporate context""" start="00:27:31.580" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""so""" start="00:27:35.420" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""aside""" start="00:27:36.460" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""that""" start="00:27:37.660" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""There's your first glimpse at the configure""" start="00:27:38.860" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Program that we're going to run in a moment. In fact, i'm going to go as far as""" start="00:27:42.140" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Putting it on the clipboard""" start="00:27:47.020" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""um""" start="00:27:49.100" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Really just looking at this the aot flag""" start="00:27:50.540" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""It's the one i'd call attention to but it's worth understanding that windows doesn't provide a dbus capability""" start="00:27:53.340" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""So windows native program isn't gonna be able to depend on dbus. We're gonna""" start="00:27:58.700" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""We're gonna explicitly ask that that be left out. I think that's actually optional. It's documentation""" start="00:28:03.500" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""I think the configure program is smart enough to know that we don't want dbus""" start="00:28:09.260" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""on windows""" start="00:28:13.660" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Um, otherwise we tend to compile with things. Um, there there's missing documentation. We could say the uh,""" start="00:28:15.100" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""all of the libraries are treated in the way I mentioned in that""" start="00:28:23.340" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Jpeg support will be available as long as""" start="00:28:27.900" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Jpeg is is available in our environment and configure script certainly notices that""" start="00:28:32.060" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Um, the new provided binaries are provided with minus o2 and that's also my default personally on windows. Um,""" start="00:28:37.500" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""However, and i'm going to skip this since I mentioned it""" start="00:28:45.580" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""um mentioned""" start="00:28:49.260" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""uh, and uh""" start="00:28:51.260" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Um""" start="00:28:54.620" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""So I guess i'll say um, you can um say with""" start="00:28:56.460" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""the""" start="00:29:01.420" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""It's worth knowing that you if you're not one reason that that you're building might be because you want to turn off native""" start="00:29:02.300" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Compilation for whatever reason if you have load juices you get it, but don't want emacs to use it""" start="00:29:08.920" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Uh, especially as that default looks like it could be changing with emacs 30""" start="00:29:14.700" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""um""" start="00:29:19.420" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""the uh""" start="00:29:20.540" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""the debug configuration, um, this is this is the uh, kind of""" start="00:29:22.060" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Uh, what what i'm currently using this on commentary. Uh, i've seen on the emacs development list""" start="00:29:27.740" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Um""" start="00:29:34.060" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""All right, let's check on our checkout and see if we can't get a build running""" start="00:29:40.620" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Um, this is a release build so I won't be starting with""" start="00:29:44.620" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Uh, so we'll start by hopping into its directory""" start="00:29:49.260" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""And we um we have""" start="00:29:53.980" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Uh""" start="00:29:59.020" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""But not""" start="00:30:05.020" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Okay, so that tells us we're gonna run""" start="00:30:11.260" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Our configure program""" start="00:30:15.660" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""But we don't need to run uh config ic""" start="00:30:18.540" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""So""" start="00:30:23.260" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""So let's get that going and""" start="00:30:31.340" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""uh""" start="00:30:34.060" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Hopefully that's showing through just enough to be fun not too much to be distracting""" start="00:30:36.060" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Um the uh the unoptimized""" start="00:30:46.540" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Um, please report issues if your emacs is crashing, uh to the emacs development list not to me personally""" start="00:30:52.140" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Um, although you are of course welcome to copy me""" start="00:30:59.100" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Um, if you especially i'm subscribed to that list so I get all the mail so I don't mind being copied""" start="00:31:02.700" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""uh, and""" start="00:31:09.100" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""as well""" start="00:31:11.020" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""if you think it's""" start="00:31:12.380" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""uh""" start="00:31:13.740" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""You know related to packaging that actually makes sense""" start="00:31:15.100" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Or windows related even and uh, it can be tested with an extra snapchat that should be uploaded to the gnu alpha side""" start="00:31:18.060" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""I could look at that if I have time""" start="00:31:25.100" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Okay""" start="00:31:27.820" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""That is with the configure script to make file for""" start="00:31:29.340" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Emacs is really really complicated if time permits which i'm, you know now confident it will not""" start="00:31:32.200" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""We will look at a makefile that I tried writing that orchestrates this whole process that i'm talking about""" start="00:31:39.900" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Um as uh, let's see, so the build uh build process I run my builds with""" start="00:31:47.180" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Uh explicitly specifying the max cpu, uh""" start="00:31:54.380" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""with minus j""" start="00:31:59.340" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""But minus b1 to get the full build, uh full login to your recipes. That is probably the magic thing""" start="00:32:01.180" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""that um""" start="00:32:09.100" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""shouldn't to understand with uh""" start="00:32:10.620" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Or that uh that that uh that i'm glad that I know, uh as i'm trying to write my automations""" start="00:32:15.980" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""um""" start="00:32:24.700" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Uh the um""" start="00:32:26.940" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""So I call that out here the binary, uh releases""" start="00:32:29.820" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Okay. So in this section, we're going to start to get into what are all those files""" start="00:32:35.020" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""And there's a bug report related to that that I didn't get into here. So""" start="00:32:39.500" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Um, that's kind of to the point about the less said about this the better""" start="00:32:43.580" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""That's my explanation for stepping through some of these slides. Uh, of course""" start="00:32:47.660" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Share them all um""" start="00:32:52.380" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Hopefully by the time that this video is published""" start="00:32:55.820" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""I mentioned it. Um, I may have mentioned already freshly installed but uh fully installed""" start="00:33:01.180" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""uh this the the key distinction here is that uh emacs is""" start="00:33:07.660" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Distributed in the binary form for windows with some dll files that actually come from the mysis 2""" start="00:33:13.400" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Project there's an implication there to gcc that I definitely want to get to it talking about""" start="00:33:21.000" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Um, so freshly installed means""" start="00:33:28.060" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""We haven't copied those binaries from the mysis 2""" start="00:33:31.340" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""uh installation""" start="00:33:35.340" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""into the emacs""" start="00:33:37.180" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""uh installation""" start="00:33:39.480" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""uh, and then""" start="00:33:41.260" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""When we re-archive that local emacs installation, that's how we're going to create the full zip""" start="00:33:43.020" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""So hopefully that actually is a pretty good summary of what all those files are""" start="00:33:48.620" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Um, but there are readme files on the ftp. They do a pretty good job""" start="00:33:53.660" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""If you can dig enough to find one and my apologies for uh tardiness getting a new version on that posted""" start="00:33:59.020" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""um""" start="00:34:07.260" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""the emacs""" start="00:34:09.180" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Uh, so those dependencies, uh are listed within the emacs itself and as we'll just talk about in a moment""" start="00:34:10.620" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""There's a way""" start="00:34:17.020" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""uh that we can use we can access that""" start="00:34:18.300" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""When we collect them in order to meet the gcc requirement that is essentially""" start="00:34:22.220" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""to include""" start="00:34:27.660" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Um include the sources for the for those binaries the things that were compiled against""" start="00:34:29.660" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""um""" start="00:34:36.460" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""The uh, so so here we go, we're we're into the build process""" start="00:34:39.100" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Let's just take a look and see if configure it got done it sure did""" start="00:34:42.700" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""and now we can see a table of""" start="00:34:46.540" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Hopefully good, but good and bad news""" start="00:34:49.080" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""um in potential""" start="00:34:51.900" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""um where we're learning that we're using the pdumper strategy and any number of other things that we might be""" start="00:34:53.580" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Messing with as our motivation for for building ourselves on emacs""" start="00:34:59.180" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""again, this table represents""" start="00:35:04.860" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""uh what you'll what""" start="00:35:07.340" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""What what it looks like for me when i'm building for the gnu distributed binaries""" start="00:35:10.060" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""All right, so um""" start="00:35:17.900" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Kind of moving moving as quickly as I can here""" start="00:35:20.780" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""I'm at 40 after I believe that's the five minute mark""" start="00:35:24.540" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""so""" start="00:35:28.780" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Um having just succeeded in in configuring emacs. I don't think we're going to build it. Uh""" start="00:35:29.660" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""I don't think we're going to actually get to running make install""" start="00:35:35.100" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Um, but I have it sitting here on my keyboard or clipboard assuming that we will right?""" start="00:35:39.900" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""No""" start="00:35:49.100" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Oh, wow""" start="00:35:50.460" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""I think i've managed to confuse this. All right, so for me that looks simply like""" start="00:35:52.780" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""uh make""" start="00:35:57.660" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""v equals one""" start="00:35:59.740" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Uh install, uh prefix equals""" start="00:36:01.740" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""uh""" start="00:36:10.700" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""And we can at least get it kicked off""" start="00:36:18.380" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""And that that command is just uh""" start="00:36:22.860" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Just is no no different than I showed on the slide where I where I gave it""" start="00:36:26.620" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Uh, I wasn't planning to stop and explain it. I was just planning to paste it in""" start="00:36:31.020" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""so""" start="00:36:35.500" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""So so again recapping the rest of the process here and maybe actually making it if you can believe it or not""" start="00:36:36.700" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""through the rest of these slides, um""" start="00:36:42.300" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""We to to create the full set of binaries. We're going to need a no dependent no depth archive. That's without the mysys2""" start="00:36:45.180" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""To uh deal provided dlls just the things that we compile as part of making emacs""" start="00:36:52.400" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""um""" start="00:36:59.520" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""The uh, the build depth zip script is uh provided with the source distribution is your tool""" start="00:37:02.400" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""for uh meeting the gpl requirements ride source as mentioned before""" start="00:37:10.240" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Um, there is a second bug that I did, uh include some more information on in my notes already""" start="00:37:14.880" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""um that uh""" start="00:37:22.240" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""That gets into the details of this other feature I alluded to""" start="00:37:24.800" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Um, i'll just skip into that""" start="00:37:28.640" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""um""" start="00:37:31.200" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""we can with with uh""" start="00:37:32.560" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""With a an appropriate version of that which you may need a patch""" start="00:37:35.440" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""uh to""" start="00:37:41.040" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""To have you can list out the dependencies""" start="00:37:42.560" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""And and that version as well can consider the dependencies of the emacs binary versus the hard-coded list""" start="00:37:45.540" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""You might find depending on when you look at this file in the source tree""" start="00:37:51.060" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""The different um""" start="00:37:56.980" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""so""" start="00:37:59.060" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""I also have a hack here that uh works around the absolute requirement to run this with the mysys2""" start="00:38:00.020" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""And not the mingw64""" start="00:38:07.060" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""64""" start="00:38:09.060" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Script""" start="00:38:14.340" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Um""" start="00:38:17.460" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Once we've made that zip file that contain that's that's our installed emacs without the dlls provided by mysys2""" start="00:38:18.500" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""We'll then unpack the dependencies that were created by that python script. We just talked about from the emacs source tree""" start="00:38:28.420" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""So at that point once those are unpacked we can now make what's called the full""" start="00:38:36.020" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Installer or sometimes I might call it the unqualified installer because it's just going to be called emacs29.1.zip""" start="00:38:41.600" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Um and that uh that file which which creates the archive""" start="00:38:51.060" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""That""" start="00:38:58.580" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""that that file is exactly the same plus the""" start="00:38:59.780" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Uh, the dependencies that we unzipped in the bin folder of the installed emacs""" start="00:39:03.780" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""the""" start="00:39:09.700" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Executable self-installer, which I would love to have more time to talk about I gave a few pointers here on the hard part of running""" start="00:39:10.720" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""it most importantly""" start="00:39:17.460" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""If i've installed in any kind of funny looking name, I end up renaming it to like emacs-29.1""" start="00:39:19.940" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Or emacs-29. or 30.0.50 or whatever and I just rename that installed""" start="00:39:26.840" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Emacs folder and then I go to the root of wherever I created that the parent directory above it""" start="00:39:33.880" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""And that's where I make my copy of the emacs nsi""" start="00:39:40.360" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""um the the nsis script""" start="00:39:44.120" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""and uh""" start="00:39:47.560" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""That's also where I""" start="00:39:49.400" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""And then uh, then from that parent directory I execute uh making sys uh here I as mentioned""" start="00:39:51.960" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""um""" start="00:39:59.800" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""I I can get away with this because I have it on my path and it's my recollection""" start="00:40:00.920" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""I think I tested this and couldn't reproduce the problem. So I didn't document it here, but i've had some problems with running this when""" start="00:40:05.240" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""uh""" start="00:40:12.040" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""When nsis wasn't on my path""" start="00:40:13.160" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""The uh, the the final step here""" start="00:40:16.920" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""And the last the gpl requirement is to include all the sources""" start="00:40:20.440" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Except when i'm doing a release build I always do this""" start="00:40:25.780" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Um, and that's the new practice when making snapchat binaries is to go ahead and include the sources""" start="00:40:30.200" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Even though we might have the specific revision number""" start="00:40:36.280" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Um, our thinking is we want absolute clarity""" start="00:40:39.400" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""that that somebody""" start="00:40:44.120" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Uh can say okay this binary did this thing from the source for it i'm gonna go take that into my own open source""" start="00:40:45.480" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""yeah, maybe they would the jerks them into my own open source project and""" start="00:40:53.160" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""um""" start="00:40:57.880" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Off, you know off they go, uh, and that needs to be possible""" start="00:40:59.480" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""um""" start="00:41:04.840" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""so, um""" start="00:41:06.520" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Beyond that the rest of this is is really detailed that you find covered in the gnu maintainers manual""" start="00:41:07.960" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Um, this is the the current set of windows binaries that um, it's busily working on""" start="00:41:14.280" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""creating a like for like a""" start="00:41:20.760" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Mirror to behind the scenes here is called a 29.1 underscore two""" start="00:41:23.400" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""um, and I have a lot of""" start="00:41:30.280" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Automation available on this site. So at this point i'm just I think i'm only""" start="00:41:32.900" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""minute 40 seconds over i'm""" start="00:41:38.520" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""gonna""" start="00:41:41.080" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""invite my""" start="00:41:42.120" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Co-organizers back onto the call or any volunteers that want to jump in and anybody if there's people on the bbb""" start="00:41:44.360" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""I'd be happy to take questions if there aren't""" start="00:41:50.280" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""um, I have a screen full of""" start="00:41:53.640" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""The automation stuff ready to go as a kind of a second ring in my circus today""" start="00:41:57.240" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""So if you're still with me, thanks a lot for joining me, and I really enjoyed this talk""" start="00:42:03.320" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Uh, if this is where we're going to close it out. I don't know where we're at for schedule today""" start="00:42:07.480" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Um, thanks a lot for a great talk corwin""" start="00:42:13.080" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Um in terms of like schedule, yeah, you went over a little bit for the official like, um""" start="00:42:16.760" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""schedule or time of your talk, but I think""" start="00:42:22.120" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""We actually have maybe like six or seven more minutes. Um here on stream""" start="00:42:24.760" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""For um questions and such if folks have questions or if you want to like quickly maybe show one or two more things""" start="00:42:29.800" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""um""" start="00:42:36.200" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""But I think the hard stuff is about like""" start="00:42:37.080" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Maybe 10 minutes ish for now and then we'll have to rush over to um""" start="00:42:39.480" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""for the closing remarks, so""" start="00:42:43.320" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Well, that sounds awesome""" start="00:42:48.120" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Okay, so i'm looking at the the dev chat, uh, I see a comment on cross compiling the emacs""" start="00:42:51.320" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""But i'm sorry, i'm looking at irc primarily, but uh, feel free to jump in if you're on bbb with me or""" start="00:42:58.440" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Uh, uh, if if you put something on the pad i'm sure""" start="00:43:05.320" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""I will see it between the two of us""" start="00:43:09.400" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Uh over here""" start="00:43:13.160" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Okay, so cross compiling emacs for serenity. I haven't tried really any cross compiling. I think that would be very interesting""" start="00:43:14.840" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""I would most likely focus on""" start="00:43:21.160" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Doing exactly what I do on a gnu system completely ditching""" start="00:43:23.720" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""um""" start="00:43:29.320" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""So I guess with my my remaining time rather than walking through code""" start="00:43:30.280" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Um for my automation which can be another talk if in fact there's an interest in that""" start="00:43:35.160" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""um""" start="00:43:40.200" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""I want to I guess say a couple words about the non-free operating system""" start="00:43:41.240" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""That i'm using here. I did my best to use no""" start="00:43:46.200" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""non-free software other than""" start="00:43:50.660" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""the""" start="00:43:53.640" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Uh the operating system""" start="00:43:55.400" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""That is the context for this talk in preparing this talk for you""" start="00:43:57.720" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""I personally have a lot more""" start="00:44:02.120" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Uh time and energy I have to say invested in proprietary tools for doing a lot of the things that""" start="00:44:06.520" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""That go into this so I really respect the work of people that pull that off. Um""" start="00:44:14.920" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""I'm, sorry, I didn't get my pre-recorded stuff. Uh kind of in order for everybody, but I just want to stress like""" start="00:44:20.200" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Uh, it is all absolutely possible and just hats off to everybody that that used uh entirely free software to get their""" start="00:44:28.280" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Get their recordings done in time""" start="00:44:36.200" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""um, and what you did see""" start="00:44:38.680" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Unless it was provided by the operating system in my presentation today was all""" start="00:44:41.640" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Uh free software with the debatable exception of nsys which styles itself""" start="00:44:46.040" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""as open source""" start="00:44:51.720" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""maybe for uh marketing reasons""" start="00:44:53.320" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Uh in any case, uh, certainly we can get out of the source""" start="00:44:57.480" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Thanks for the note corinne, it's good to know that uh""" start="00:45:08.120" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Building or uh, yeah doing the build of emacs for windows on windows can be done using only free software""" start="00:45:11.320" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Yeah, absolutely""" start="00:45:19.880" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Probably the right closing note, right?""" start="00:45:23.480" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""um, I just uh, thanks again to the organizers for bearing with me and like every time I was like you guys i'm""" start="00:45:26.120" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Terrible at this. They're just like no you're doing fine. Keep going. You did a great job live last time""" start="00:45:32.520" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""You can do it live, you know and and saying all the right things to just uh, encourage me to come back""" start="00:45:37.000" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""This year and everywhere""" start="00:45:44.840" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Well, as I said before we were very lucky to have you and the rest of the team of course as well and""" start="00:45:49.720" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""um goes without saying but all the speakers and all the audience the participants as well, so""" start="00:45:54.760" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Um""" start="00:46:08.360" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""So, uh, are we we're still live over here that you know, you know me i'm the mike hog that I am I can't resist""" start="00:46:09.720" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""um throwing throwing up another screen here and uh,""" start="00:46:17.800" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""In fact, let's go ahead and go back to our to our crawler, right?""" start="00:46:22.280" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""And i'll bring back our build if it finishes and maybe we'll show making the installer as well, um""" start="00:46:30.840" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""But I have the cpu count turned down a little bit here""" start="00:46:39.480" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Note I didn't specify minus j here""" start="00:46:44.200" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""um, so""" start="00:46:47.400" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Over here is my automation, uh in case you do want to take a look""" start="00:46:49.480" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""I can at least provide the orientation of what you're looking at scrape log is probably my first thing. I want to show off""" start="00:46:52.920" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""um, it's not beautiful, but this works, uh, pretty well for me to""" start="00:46:59.800" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Get a sense if something might have changed in terms of how many warnings or errors are happening""" start="00:47:06.280" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""When I build emacs, so I have this awful automation going on and I frequently want to answer the question""" start="00:47:13.080" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""You know, what's the change rate in uh warnings or what have you?""" start="00:47:19.260" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""So this kind of gives me a count""" start="00:47:24.140" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""of that""" start="00:47:26.460" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""um""" start="00:47:28.220" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""so from there, uh""" start="00:47:29.820" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Crude ci is the script. We're we're watching run in the other pane""" start="00:47:32.460" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""um, you can""" start="00:47:37.980" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""see it's uh""" start="00:47:39.900" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Just starting to do its thing again""" start="00:47:42.780" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""And uh""" start="00:47:48.860" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""The make file I mentioned this is a top-down rewrite of everything else that i've done it has some bugs right now""" start="00:47:51.420" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""um the uh""" start="00:48:00.300" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""the""" start="00:48:03.660" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Build distribution is the main script that I use for my personal builds""" start="00:48:04.460" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""This is what is run by the crude ci script""" start="00:48:10.140" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Uh, it has a fun tie-in to this""" start="00:48:13.820" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Uh web interface here""" start="00:48:16.700" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Um where we can you don't need the port number when you go to it. That's just if i'm going to post""" start="00:48:19.340" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""um the""" start="00:48:25.260" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Uh""" start="00:48:28.380" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Blah blah blah blah this this script is really long and complicated and probably needs some diving into but you can see that""" start="00:48:31.100" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Um, one of the complexities I have to deal with is that i'm going to need a something in the format of an emacs dash""" start="00:48:38.540" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""version for strategic""" start="00:48:44.860" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""um nsys reasons so""" start="00:48:47.100" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""uh""" start="00:48:50.140" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""It takes care of kind of every complexity and stuff that I mentioned today in some respects""" start="00:48:51.900" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Um, as does the make file build release""" start="00:48:57.020" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""is""" start="00:49:00.780" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""um another fairly useful""" start="00:49:01.660" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Incarnation of this this is just focused on the release process and this does work""" start="00:49:05.240" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""for example to create the""" start="00:49:12.060" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""the""" start="00:49:14.380" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""You know like I like well I could""" start="00:49:15.420" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Like uh for like files as far as I can tell so what are currently posted for emacs 29.1""" start="00:49:17.980" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""and the release candidate""" start="00:49:24.860" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""um""" start="00:49:27.660" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""So i'll probably use that next time and if it's still like for like i'll probably post the ones that came from this""" start="00:49:28.860" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""um""" start="00:49:35.580" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Uh building a tree sitter I make some dlls there if you're looking for hints on how to get going or just simply""" start="00:49:37.340" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""A huge long list of git repositories that make grammars you can use""" start="00:49:45.580" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""That is here as well""" start="00:49:50.780" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""um, finally I mentioned I have a""" start="00:49:53.580" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Um, I have a a website where I publish my own personal snapshots that I make""" start="00:49:58.300" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""That folder full of install directories, but all of the usual""" start="00:50:04.540" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""GNU style binary distributables including the source code and the source code for the dependencies""" start="00:50:08.360" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""um""" start="00:50:14.860" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""the""" start="00:50:15.980" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""uh""" start="00:50:17.820" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""So this program is another one of those""" start="00:50:20.460" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Complicated find commands and therefore potentially the most useful thing in here to take to you""" start="00:50:24.300" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Um, and here i'm deleting binaries older than 17 years""" start="00:50:29.340" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""uh everything except""" start="00:50:34.220" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""the uh""" start="00:50:36.220" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""No deps file and the sources of it. You'll find on my website""" start="00:50:37.500" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Currently those indefinitely i'll probably roll out""" start="00:50:41.580" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""120 days or something""" start="00:50:44.760" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""um for those eventually""" start="00:50:47.020" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Oh, uh, I can talk about this one even um the uh""" start="00:50:53.580" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""The""" start="00:50:57.740" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""So here you'll see the two branches that i'm tracking the job of this script""" start="00:50:58.700" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Is this runs on the website? I call it with a like a remote rsync""" start="00:51:02.780" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""uh type""" start="00:51:07.740" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Uh, or an ssh remote ssh command""" start="00:51:08.620" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""um""" start="00:51:12.060" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""And right after the rsync r syncing up any new emacs that I built""" start="00:51:13.740" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""and""" start="00:51:19.020" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""uh, it's""" start="00:51:20.540" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Uh, its job is to update my fancy directory indexing so let's look at corwin's website""" start="00:51:23.180" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Here's my emacs 29 folder""" start="00:51:31.580" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""We have about two more minutes corwin""" start="00:51:44.780" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Yeah, it'll take that entire two minutes to uh, load this directory because I am""" start="00:51:47.420" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Because I have not yet ever pruned any of these dang binaries""" start="00:51:52.940" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""So every version of uh emacs 29 that i've ever made for myself is probably here""" start="00:51:56.380" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""nice""" start="00:52:02.540" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Uh, I strongly recommend that you bookmark this folder if you're using these for something and you always want the latest""" start="00:52:03.580" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Um, so here this particular, uh latest 29 emacs 29 latest or simply replace the 29 with 30 to get those""" start="00:52:09.980" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""uh""" start="00:52:18.220" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""alas""" start="00:52:19.080" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""No, no such luck for tree setter""" start="00:52:20.140" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""but if we look at""" start="00:52:23.180" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""that""" start="00:52:25.740" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Live this long without making a typo now look at me""" start="00:52:36.380" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Okay""" start="00:52:40.220" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Oh""" start="00:52:44.780" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""So here, um""" start="00:52:51.500" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""You know, we can see the iconification and so on even in the tree sitter folder""" start="00:52:53.180" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""this is all i'm talking about about the fanciness that's set up by that other script that""" start="00:52:57.180" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""i'm showing over here and run after each time I run the upload it just""" start="00:53:02.380" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Looks to see if anything's new and add some lines to the dot htaccess file""" start="00:53:07.900" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Um""" start="00:53:15.900" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""I'm, particularly proud of this one. I'm not going to lie. Um, linking out to each each""" start="00:53:17.180" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""project that we're using letting us know the commit version and then""" start="00:53:23.500" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""For the dlls quick link out to the log and the signature file for this dll""" start="00:53:28.300" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""um""" start="00:53:34.140" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""I find that a lot just a lot""" start="00:53:37.020" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""More readable""" start="00:53:40.540" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""than uh""" start="00:53:42.220" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Listing them all out individually and i'd love to do something like that on the new site""" start="00:53:44.060" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""So i'm""" start="00:53:51.180" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""I think we've got to be out of time by now. I've just got to say hey, thanks again for having me""" start="00:53:52.220" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Uh for those that uh watch the talk either live or after the conference""" start="00:53:56.780" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""uh appreciate everyone's support to get me to the point where i'm able to""" start="00:54:02.460" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Uh to do this this this cool volunteer task""" start="00:54:06.540" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Uh, which is fun and easy to do and reach out to me if you're interested in helping with it""" start="00:54:10.380" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Well, awesome, thanks a lot for the awesome talk corbin and uh, of course as a fellow core core organizer""" start="00:54:19.020" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""For our for all that you do, um in and around emacs conf and of course for uh, can we max as well? It's much appreciated""" start="00:54:26.060" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Big big words from coming from you my friend""" start="00:54:36.140" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Um, thanks for the kind words""" start="00:54:41.740" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Cheers my pleasure. All right, and with that I think we're gonna uh wrap up the dev track here and we'll be""" start="00:54:45.020" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""With you again shortly in a few minutes on the gen stream the gen track for the closing remarks for today""" start="00:54:52.300" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Um only for today because we're gonna be back tomorrow again as well""" start="00:54:58.620" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""So don't go anywhere and uh, see you on the gen track in a bit""" start="00:55:02.460" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""So""" start="00:55:05.760" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Oh my god, I did it we got done within the time you're my hero""" start="00:55:28.080" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""um, and thank you so much for just keeping me honest there and uh""" start="00:55:31.840" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Like helping me keep my eye on the time and such""" start="00:55:36.720" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""You have to look at the recording and see whether you feel like doing it again""" start="00:55:50.880" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""I'm sorry. I had my sound screwed up and i'm sorry if I talked over somebody I couldn't hear anything on mumble until this very""" start="00:55:56.160" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""moment""" start="00:56:01.360" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Oh, uh because he used your webcam for it, um, like as a like a virtual webcam thingy""" start="00:56:03.520" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""It was low res especially when things are changing as you were""" start="00:56:09.520" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""scrolling around""" start="00:56:13.520" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""So we'll see what kind of recording we can recover from it and then you can decide whether you maybe want to clean it up""" start="00:56:15.120" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""with like""" start="00:56:20.720" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""screenshots and""" start="00:56:22.080" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""I recorded on this end too. We shouldn't have that problem with my recording. Thank you. Thank you. Thank you""" start="00:56:24.240" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""I think we're still live on the dev stream""" start="00:56:29.360" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Someone could uh, thanks. Oh, yes""" start="00:56:34.240" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Because uh, i'll set it to rebroadcast""" start="00:56:38.880" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Yeah, I I love doing that for the closing remarks that's""" start="00:56:45.520" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""a fine tradition""" start="00:56:49.680" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Or it's a tradition now because i'm pretty sure this means we've done it twice""" start="00:56:52.000" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""I""" start="00:56:55.440" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Once heard that, you know, uh as a fan""" start="00:57:02.560" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Meaning like a fannish is a term of endearment for a science fiction fan to another we say we're we're fans or things""" start="00:57:05.680" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""We do our fannish and a fannish tradition then is if you do it three times, it's tradition""" start="00:57:11.680" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""But um, we're on a budget here. So""" start="00:57:18.000" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Nope""" start="00:57:22.880" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""All right, I think we should um head over to mumble and talk on mumble""" start="00:57:25.920" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Um and decide and see like which big blue button room we're going to be in for closing""" start="00:57:30.080" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Okay, so we're clear on bbb here""" start="00:57:35.200" video="mainVideo-windows" id="subtitle"]]
+[[!template text="""Yep, I think so""" start="00:57:37.760" video="mainVideo-windows" id="subtitle"]]
+
+</div><div class="transcript transcript-qanda"><a name="windows-qanda-transcript"></a><h1>Q&A transcript (unedited)</h1>
+
+[[!template text="""Oh, wow, how exciting. Well, maybe I should share something then. Um, well, thank you very much and""" start="00:00:00.000" video="qanda-windows" id="subtitle"]]
+[[!template text="""welcome to, uh, uh, welcome to my talk. I'm a little distracted here. I had a friend who came""" start="00:00:06.880" video="qanda-windows" id="subtitle"]]
+[[!template text="""over and just brought me a whole bunch of peanut butter cups, homemade peanut butter cups. Maybe""" start="00:00:14.800" video="qanda-windows" id="subtitle"]]
+[[!template text="""I'll show those off, uh, later. What? Okay. Here, uh, put it right there.""" start="00:00:20.320" video="qanda-windows" id="subtitle"]]
+[[!template text="""Okay. So I'm going to, uh, get over to my plan, uh, stuff I'm sharing here, hopefully.""" start="00:00:33.840" video="qanda-windows" id="subtitle"]]
+[[!template text="""Uh, and, and we'll jump, jump right in because I'm going to need as much time as I can possibly""" start="00:00:42.800" video="qanda-windows" id="subtitle"]]
+[[!template text="""have today. Thanks so much for, uh, joining me for Emacs conference and for, especially for,""" start="00:00:48.640" video="qanda-windows" id="subtitle"]]
+[[!template text="""um, all of you who, who, who participated, you know, in the discussions, contributing talks and,""" start="00:00:56.400" video="qanda-windows" id="subtitle"]]
+[[!template text="""um, you know, uh, you know, including running the, the, the, and it's just so much fun to be here.""" start="00:01:03.520" video="qanda-windows" id="subtitle"]]
+[[!template text="""Um, I guess while I'm standing here and, and saying stuff that's, that I'm going to have to""" start="00:01:09.600" video="qanda-windows" id="subtitle"]]
+[[!template text="""transcribe, cause I didn't, uh, prepare a recorded version. Uh, I had a lot of trouble""" start="00:01:16.320" video="qanda-windows" id="subtitle"]]
+[[!template text="""trimming this down so I can solve that problem by just talking a lot at the beginning, uh,""" start="00:01:23.280" video="qanda-windows" id="subtitle"]]
+[[!template text="""about other stuff. Um, so in addition to the thanks, I just want to say thanks also to the""" start="00:01:28.880" video="qanda-windows" id="subtitle"]]
+[[!template text="""folks on the development list that helped me kind of come up to speed on this. I won't make a big""" start="00:01:37.120" video="qanda-windows" id="subtitle"]]
+[[!template text="""list here, but, um, and, and, and for all that I've learned from my previous conferences, it's""" start="00:01:41.920" video="qanda-windows" id="subtitle"]]
+[[!template text="""just, I can't stress enough what a great opportunity volunteering for, uh, free software related things""" start="00:01:48.880" video="qanda-windows" id="subtitle"]]
+[[!template text="""are, uh, as a way to get involved. People will just totally teach you how to be helpful and I'm""" start="00:01:55.200" video="qanda-windows" id="subtitle"]]
+[[!template text="""loving it. I can preview the stream, but it's not super easy right now. I got all my screens""" start="00:02:00.080" video="qanda-windows" id="subtitle"]]
+[[!template text="""kind of dedicated to other stuff. So should I pause for a second before I get into the slides?""" start="00:02:18.800" video="qanda-windows" id="subtitle"]]
+[[!template text="""Cause that's, they're, they'll be hard to see if I'm not full screen.""" start="00:02:23.680" video="qanda-windows" id="subtitle"]]
+[[!template text="""Yeah, that would be nice. Okay. Well, I'll keep ad libbing then cause I just have a million,""" start="00:02:29.440" video="qanda-windows" id="subtitle"]]
+[[!template text="""uh, things I can say. Um, uh, so, uh, let me just quickly talk, uh, things that aren't in here.""" start="00:02:34.240" video="qanda-windows" id="subtitle"]]
+[[!template text="""Um, I'm going to mention the mysis2.org and the, that project, which provides a port""" start="00:02:42.960" video="qanda-windows" id="subtitle"]]
+[[!template text="""of, uh, the GNU, uh, uh, glibc and a lot of GNU and, uh, uh, their free software. Um, so, uh,""" start="00:02:51.280" video="qanda-windows" id="subtitle"]]
+[[!template text="""I don't...""" start="00:03:03.520" video="qanda-windows" id="subtitle"]]
+[[!template text="""All right, I'm switching a room to, uh, a DVD room to Stefan.""" start="00:03:03.840" video="qanda-windows" id="subtitle"]]
+[[!template text="""All right. So I'm going to take mumble out of my, uh, pardon me, folks.""" start="00:03:12.080" video="qanda-windows" id="subtitle"]]
+[[!template text="""It's going to take mumble out of my speakers here.""" start="00:03:16.080" video="qanda-windows" id="subtitle"]]
+[[!template text="""Okay. We'll take the speakers out of play entirely and I'll just switch to some headphones.""" start="00:03:22.800" video="qanda-windows" id="subtitle"]]
+[[!template text="""All right. So...""" start="00:03:33.600" video="qanda-windows" id="subtitle"]]
+[[!template text="""Perfect. What an amazing amount of time. All right. So thanks a lot. Uh, today I've got a jam""" start="00:03:36.720" video="qanda-windows" id="subtitle"]]
+[[!template text="""packed talk. Um, I've, I've done my best to make, to make this not too overwhelming,""" start="00:03:42.400" video="qanda-windows" id="subtitle"]]
+[[!template text="""but overall we're going to try to try to actually build, um, Emacs while we're talking today.""" start="00:03:48.720" video="qanda-windows" id="subtitle"]]
+[[!template text="""And we might actually build several Emacs. Uh, so let's take a look at that real quick.""" start="00:03:55.040" video="qanda-windows" id="subtitle"]]
+[[!template text="""Um, so over here we have a screen where I am just once a minute looking, uh,""" start="00:04:00.400" video="qanda-windows" id="subtitle"]]
+[[!template text="""uh, indirectly at whether there have been any pushes, uh, upstream to either the Emacs 29 or""" start="00:04:08.480" video="qanda-windows" id="subtitle"]]
+[[!template text="""Emacs 30 branches. So I've arranged for us to sort of keep an eye on that, um, while we talk.""" start="00:04:15.360" video="qanda-windows" id="subtitle"]]
+[[!template text="""And, you know, maybe that's, that's one thing that we'll do. And then additionally, we'll probably""" start="00:04:24.320" video="qanda-windows" id="subtitle"]]
+[[!template text="""fire up a shell. This is the MySys2 environment that I talked about before,""" start="00:04:30.640" video="qanda-windows" id="subtitle"]]
+[[!template text="""and we'll probably create some directories and things. But before we get into all that, let's,""" start="00:04:36.640" video="qanda-windows" id="subtitle"]]
+[[!template text="""let's give some, some context. Uh, I've been doing my best to try to, uh, make sure all this""" start="00:04:42.160" video="qanda-windows" id="subtitle"]]
+[[!template text="""information is on the Emacs wiki as well. So, uh, sorry, as I said, I got a little caught off guard.""" start="00:04:48.080" video="qanda-windows" id="subtitle"]]
+[[!template text="""So I'm moving my foot pedals to the floor, back to the floor here. And I should be able to advance""" start="00:04:54.240" video="qanda-windows" id="subtitle"]]
+[[!template text="""slides here. All right. So, um, I kind of provided some special definitions for things. I'm going to""" start="00:05:02.640" video="qanda-windows" id="subtitle"]]
+[[!template text="""kind of level set with those. The, uh, um, when I say a binary release, I'm talking about some,""" start="00:05:11.760" video="qanda-windows" id="subtitle"]]
+[[!template text="""some, uh, I'm talking about Emacs for Windows as, uh, just ready to run out of its folder or""" start="00:05:21.680" video="qanda-windows" id="subtitle"]]
+[[!template text="""in whatever similar form. The, when I say a build, I'm talking about kind of a process of doing that.""" start="00:05:28.080" video="qanda-windows" id="subtitle"]]
+[[!template text="""Um, when Emacs.get, of course, that's the upstream hosted by GNU Savannah.""" start="00:05:36.400" video="qanda-windows" id="subtitle"]]
+[[!template text="""The Emacs release is, is a tarball created from that. The sources for, um, Emacs are going to be""" start="00:05:41.600" video="qanda-windows" id="subtitle"]]
+[[!template text="""one of those two things, um, very specifically. So I'm not going to talk about patches patching.""" start="00:05:51.680" video="qanda-windows" id="subtitle"]]
+[[!template text="""There's some implications there. Perhaps we'll get into it. Uh, so a snapshot is when I build""" start="00:05:58.480" video="qanda-windows" id="subtitle"]]
+[[!template text="""from anything other than a release source, uh, a tarball. Um, just if I, if I say that I'm talking""" start="00:06:06.720" video="qanda-windows" id="subtitle"]]
+[[!template text="""specifically about the, uh, the XZ version of the file as, as a technical point. Um,""" start="00:06:14.880" video="qanda-windows" id="subtitle"]]
+[[!template text="""so that may come up. All right. Nothing else I think up my sleeve. Um, the, uh, as, as a key""" start="00:06:23.600" video="qanda-windows" id="subtitle"]]
+[[!template text="""data point, it's worth understanding that there's a file called configure AC. It's going to be""" start="00:06:32.480" video="qanda-windows" id="subtitle"]]
+[[!template text="""processed, uh, as part of auto-conf. We, we initially access that when we run, um, auto-gen""" start="00:06:38.320" video="qanda-windows" id="subtitle"]]
+[[!template text="""as you'll see in a little bit. Um, the, but before, but, uh, so the auto-gen script will""" start="00:06:46.160" video="qanda-windows" id="subtitle"]]
+[[!template text="""generally consider this, uh, so in a release build, um, this has been thought about kind of for us as""" start="00:06:52.720" video="qanda-windows" id="subtitle"]]
+[[!template text="""part of, um, making the tarball. Um, the configure.ac, um, yeah, I think I pretty much covered,""" start="00:07:00.240" video="qanda-windows" id="subtitle"]]
+[[!template text="""covered this. So, um, those, those that kind of partially built status, that's a,""" start="00:07:10.480" video="qanda-windows" id="subtitle"]]
+[[!template text="""might be another phrase that you hear me use. So this slide unpacks that a little more.""" start="00:07:16.880" video="qanda-windows" id="subtitle"]]
+[[!template text="""Um, so it can be a little confusing to understand what exactly the, you know, what is it, you know,""" start="00:07:22.880" video="qanda-windows" id="subtitle"]]
+[[!template text="""how stable is Emacs depending on what I have. So the, I got a kind of set of rules of thumb here,""" start="00:07:29.520" video="qanda-windows" id="subtitle"]]
+[[!template text="""right? First I want the highest, uh, you know, dot, uh, dot release value that I can get,""" start="00:07:36.160" video="qanda-windows" id="subtitle"]]
+[[!template text="""assuming that that's higher than one. If it's, if it were to only be one, let's say,""" start="00:07:43.680" video="qanda-windows" id="subtitle"]]
+[[!template text="""if it were to only be one, let's say my choices were 29.1 and 30.1, I would take 30.1. Um,""" start="00:07:50.160" video="qanda-windows" id="subtitle"]]
+[[!template text="""cause that's, that's weird. But, um, what you'll normally see is you might see a 28.2,""" start="00:07:59.200" video="qanda-windows" id="subtitle"]]
+[[!template text="""you might see a 29.1. So here I think 28.2 is got the most, most, most stable, um,""" start="00:08:06.080" video="qanda-windows" id="subtitle"]]
+[[!template text="""set, uh, the, uh, or set of release binaries. The 29.1 will, will have a little more features,""" start="00:08:16.560" video="qanda-windows" id="subtitle"]]
+[[!template text="""but will tend to be more stable than, uh, any, uh, lower point releases for 29, uh, certainly""" start="00:08:26.160" video="qanda-windows" id="subtitle"]]
+[[!template text="""than any release candidates for 29, which might even have new features, um, but are mostly going""" start="00:08:33.680" video="qanda-windows" id="subtitle"]]
+[[!template text="""to just be packages. So they're going to become the most stable thing here. And especially if""" start="00:08:39.600" video="qanda-windows" id="subtitle"]]
+[[!template text="""they, they, they have a, you know, if this, this is not, uh, if this were to be 29.2 release""" start="00:08:46.000" video="qanda-windows" id="subtitle"]]
+[[!template text="""candidate one as well, looking forward to seeing, um, the, uh, 30.50. Um, and, and in between this,""" start="00:08:53.600" video="qanda-windows" id="subtitle"]]
+[[!template text="""this pretest here, we're talking about kind of developer land. Um, so, um, the expectation is""" start="00:09:04.960" video="qanda-windows" id="subtitle"]]
+[[!template text="""that, you know, what you're doing that applies to windows users, uh, just as much if you are""" start="00:09:11.840" video="qanda-windows" id="subtitle"]]
+[[!template text="""building anything in the snapshot range, any of that is going to be in this 30.0.50. Currently""" start="00:09:16.560" video="qanda-windows" id="subtitle"]]
+[[!template text="""that'll change when the, uh, when the 30, 30, uh, an Emacs 30 release tags, uh, or release branches""" start="00:09:22.960" video="qanda-windows" id="subtitle"]]
+[[!template text="""come. Okay. So let's talk about the local. Um, there's not much to know about what I have going""" start="00:09:32.240" video="qanda-windows" id="subtitle"]]
+[[!template text="""on, except that I have my, my paths mess messed with. So, um, if, if that, that were to come up,""" start="00:09:42.880" video="qanda-windows" id="subtitle"]]
+[[!template text="""if you're wondering how, why does this, uh, and insist command work, that's probably the place""" start="00:09:51.200" video="qanda-windows" id="subtitle"]]
+[[!template text="""where you'd notice it. Uh, I am using windows 10. I haven't tried windows 11, uh, as mentioned,""" start="00:09:57.120" video="qanda-windows" id="subtitle"]]
+[[!template text="""mysis2 is critical to all this. There's one script in particular that will error out if you try to do""" start="00:10:03.760" video="qanda-windows" id="subtitle"]]
+[[!template text="""anything other than use mysis's, mysis's shell. And in fact, mysis owns or provides three shells""" start="00:10:09.520" video="qanda-windows" id="subtitle"]]
+[[!template text="""and of them, that script is designed to work with a specific one of them as, as we'll come to.""" start="00:10:16.560" video="qanda-windows" id="subtitle"]]
+[[!template text="""Uh, I don't talk about installing the dependencies, but just as, as kind of some kind of help,""" start="00:10:22.720" video="qanda-windows" id="subtitle"]]
+[[!template text="""um, you can search using this formula and install, uh, using this formula.""" start="00:10:29.680" video="qanda-windows" id="subtitle"]]
+[[!template text="""Good luck with those, you know, grep commands.""" start="00:10:38.480" video="qanda-windows" id="subtitle"]]
+[[!template text="""And this is the tool for building the self-installing self-extracting installer or, uh,""" start="00:10:43.520" video="qanda-windows" id="subtitle"]]
+[[!template text="""executable self-installer. Um, the script for that is provided along with the Emacs source.""" start="00:10:49.520" video="qanda-windows" id="subtitle"]]
+[[!template text="""Um, and I've provided a helpful link to the main page for the project download link on the left.""" start="00:10:56.720" video="qanda-windows" id="subtitle"]]
+[[!template text="""It is not, um, it's kind of scare where the way that this link appears, but I have clicked it and""" start="00:11:03.280" video="qanda-windows" id="subtitle"]]
+[[!template text="""it's working for me. Automation does, uh, we'll, we have some time we'll be looking at this at a""" start="00:11:09.680" video="qanda-windows" id="subtitle"]]
+[[!template text="""minimum. I wanted to mention that what I do on my local, what you're seeing in the crawler, I hope,""" start="00:11:18.960" video="qanda-windows" id="subtitle"]]
+[[!template text="""uh, represents a, uh, a simple sleep loop. Uh, and we'll, we'll look into that if we have time.""" start="00:11:25.280" video="qanda-windows" id="subtitle"]]
+[[!template text="""Um, I do have a little bit, I do use like a cron job and so on to clean up some hosting that,""" start="00:11:36.560" video="qanda-windows" id="subtitle"]]
+[[!template text="""that I pay for, um, where I've got, where I, where I kind of self host some, uh, snapshots,""" start="00:11:42.960" video="qanda-windows" id="subtitle"]]
+[[!template text="""more stuff than I feel comfortable uploading to, uh, to GNU. The, um,""" start="00:11:50.720" video="qanda-windows" id="subtitle"]]
+[[!template text="""you know, I never said, uh, my name is Corwin Brust. For the last couple of years, I've been""" start="00:12:01.760" video="qanda-windows" id="subtitle"]]
+[[!template text="""the volunteer making, uh, um, making the snapshots, the quote unquote, official binaries,""" start="00:12:06.480" video="qanda-windows" id="subtitle"]]
+[[!template text="""uh, for windows of the, um, of, of Emacs for windows. So that's, that's all the different""" start="00:12:12.480" video="qanda-windows" id="subtitle"]]
+[[!template text="""versions. Uh, help is always welcome with that. I'd be very happy to teach you in more depth.""" start="00:12:20.560" video="qanda-windows" id="subtitle"]]
+[[!template text="""This video is, you know, kind of my drop dead file. Uh, I don't have specific plans. Uh, if""" start="00:12:25.680" video="qanda-windows" id="subtitle"]]
+[[!template text="""somebody's like, Hey, get out of the way, this is the one thing I think I can do. Um, Hey,""" start="00:12:31.920" video="qanda-windows" id="subtitle"]]
+[[!template text="""that's real relatable. Okay. Um, so I haven't tried, uh, the, I haven't tried a lot of fun""" start="00:12:36.480" video="qanda-windows" id="subtitle"]]
+[[!template text="""things that I won't talk about. Um, the, uh, the rest of this talk is going to get into the""" start="00:12:44.640" video="qanda-windows" id="subtitle"]]
+[[!template text="""nitty gritty. As I said, um, if we can't convince Emacs to start building over on that screen,""" start="00:12:50.400" video="qanda-windows" id="subtitle"]]
+[[!template text="""we'll be opening it up here on the center stage. Um, uh, this begins and there's, there's, there's,""" start="00:12:56.560" video="qanda-windows" id="subtitle"]]
+[[!template text="""there's great insight here too, on the wiki, uh, with picking an FTP source for any official""" start="00:13:05.120" video="qanda-windows" id="subtitle"]]
+[[!template text="""release that is for a stable product, please visit, um, ftp.gnu.org. Otherwise you'll want""" start="00:13:11.520" video="qanda-windows" id="subtitle"]]
+[[!template text="""to switch that FTP dot at the beginning to alpha dot and take a pretest, uh, or any snapshot or""" start="00:13:19.760" video="qanda-windows" id="subtitle"]]
+[[!template text="""otherwise, then publish there the, uh, next, uh, you know, I'm gonna, you have some examples in""" start="00:13:27.280" video="qanda-windows" id="subtitle"]]
+[[!template text="""here that assume that you're doing a release bill that you're doing $29 one, but, um, I am glancing""" start="00:13:36.640" video="qanda-windows" id="subtitle"]]
+[[!template text="""out of the, the right side of my face at the chat on the opt-ins. Anybody in there wants to direct""" start="00:13:43.520" video="qanda-windows" id="subtitle"]]
+[[!template text="""me at a particular, um, we can make some other, we can build something else. If you want to see""" start="00:13:51.440" video="qanda-windows" id="subtitle"]]
+[[!template text="""a snapshot build more mentioned that, um, the examples that you're going to see here that I""" start="00:13:57.840" video="qanda-windows" id="subtitle"]]
+[[!template text="""will, without other direction, cut and paste, um, are all, uh, based on the release bill. So,""" start="00:14:03.840" video="qanda-windows" id="subtitle"]]
+[[!template text="""um, so, uh, we'll use the, uh, I mentioned that there are several shells provided by MySys2.""" start="00:14:14.640" video="qanda-windows" id="subtitle"]]
+[[!template text="""The MinGW64 shell is the one that we mostly need. Um, I tested all of this as well with the MinGW32""" start="00:14:22.960" video="qanda-windows" id="subtitle"]]
+[[!template text="""shell. Um, so that, that should work and, and see mix binaries that, that, that work for me.""" start="00:14:33.120" video="qanda-windows" id="subtitle"]]
+[[!template text="""Uh, I, as I mentioned, I don't get into the details of installing all your prerequisites.""" start="00:14:44.080" video="qanda-windows" id="subtitle"]]
+[[!template text="""I found that doing it in a headfirst manner wasn't, uh, wasn't difficult. And I also found""" start="00:14:50.720" video="qanda-windows" id="subtitle"]]
+[[!template text="""that there's a number of tutorials. I didn't want to pick one to link here.""" start="00:14:56.560" video="qanda-windows" id="subtitle"]]
+[[!template text="""Um, there, uh, here, uh, okay. So our general formula for building Emacs, irrespective of""" start="00:15:01.040" video="qanda-windows" id="subtitle"]]
+[[!template text="""Windows, looks like, does the configure script exist if not run autogen? From a Windows build""" start="00:15:10.800" video="qanda-windows" id="subtitle"]]
+[[!template text="""standpoint, this is, if I'm not running a release, release build, call the autogen script.""" start="00:15:19.600" video="qanda-windows" id="subtitle"]]
+[[!template text="""Right. And this would be in the directory where we want to pack this. I'll demonstrate""" start="00:15:27.840" video="qanda-windows" id="subtitle"]]
+[[!template text="""within three minutes if, uh, if one, if nobody's pushed upstream to Emacs. Um, so, uh, the configure,""" start="00:15:32.080" video="qanda-windows" id="subtitle"]]
+[[!template text="""uh, and, uh, configure options are, uh, uh, the, the configure, you know, if the configure, sorry,""" start="00:15:42.640" video="qanda-windows" id="subtitle"]]
+[[!template text="""the configure script exists, then, uh, it doesn't, doesn't exist. So the only reason,""" start="00:15:54.240" video="qanda-windows" id="subtitle"]]
+[[!template text="""so in my process, I will always execute that step because I clean everything after every build,""" start="00:16:01.520" video="qanda-windows" id="subtitle"]]
+[[!template text="""um, in all my contexts. Um, however, if you were, you know, had a, a checkout of emacs.get""" start="00:16:07.920" video="qanda-windows" id="subtitle"]]
+[[!template text="""and you are building it at several releases, then maybe you've got a configure script and then you""" start="00:16:16.880" video="qanda-windows" id="subtitle"]]
+[[!template text="""all want to know, um, the, you know, whether you have to bootstrap and the typical complexities,""" start="00:16:21.440" video="qanda-windows" id="subtitle"]]
+[[!template text="""but otherwise you might be able to skip that in, in, in the abstract. Um,""" start="00:16:27.600" video="qanda-windows" id="subtitle"]]
+[[!template text="""is that right? Or is it, is it the make, uh, so, and if they make file doesn't exist,""" start="00:16:36.080" video="qanda-windows" id="subtitle"]]
+[[!template text="""make install. I know I'm looking at that in question whether it's correct. Sorry about that.""" start="00:16:41.520" video="qanda-windows" id="subtitle"]]
+[[!template text="""Um, in any case, uh, so auto-gen configure make install is our recipe. Auto-gen creates the""" start="00:16:46.640" video="qanda-windows" id="subtitle"]]
+[[!template text="""configure script, configure creates the make file, the make file. Um, in the case of windows,""" start="00:16:55.600" video="qanda-windows" id="subtitle"]]
+[[!template text="""I almost always want the install, uh, and to specify some location where the installed emacs""" start="00:17:01.840" video="qanda-windows" id="subtitle"]]
+[[!template text="""will land. This is where all of the recipes for packaging emacs go. And if I were, uh, you know,""" start="00:17:08.080" video="qanda-windows" id="subtitle"]]
+[[!template text="""using this as a movie to upgrade, I personally would do that by, by specifying an install path,""" start="00:17:19.120" video="qanda-windows" id="subtitle"]]
+[[!template text="""quote unquote, on top of, uh, a main installation. I don't do that. I update shortcuts mainly based""" start="00:17:24.640" video="qanda-windows" id="subtitle"]]
+[[!template text="""on what specifically I want to try, uh, in an effort to, to, to, to notice, uh, interesting""" start="00:17:31.520" video="qanda-windows" id="subtitle"]]
+[[!template text="""patches and confirm they work on windows, which mostly they do. There's not a lot of code in my""" start="00:17:37.600" video="qanda-windows" id="subtitle"]]
+[[!template text="""experience that is, uh, windows specific and very, very little around the build process.""" start="00:17:44.400" video="qanda-windows" id="subtitle"]]
+[[!template text="""All right. Huge rabbit hole zone. And I still have a minute before I have to, uh, kick off""" start="00:17:50.320" video="qanda-windows" id="subtitle"]]
+[[!template text="""the first part of our demo. So let's, let's keep, keep diving in, um, the, those specific part""" start="00:17:57.440" video="qanda-windows" id="subtitle"]]
+[[!template text="""windows specific parts beside the dot exe extension that we're going to find slammed""" start="00:18:07.120" video="qanda-windows" id="subtitle"]]
+[[!template text="""onto all of our familiar, uh, executables. We're also going to have emacs client W,""" start="00:18:11.920" video="qanda-windows" id="subtitle"]]
+[[!template text="""which is a wrapper that hides, um, how hard it is to get, uh, to, to, to get it,""" start="00:18:18.400" video="qanda-windows" id="subtitle"]]
+[[!template text="""how bad the abstraction is between the window management layer and the GUI,""" start="00:18:27.600" video="qanda-windows" id="subtitle"]]
+[[!template text="""and then all the different parts on windows. Essentially, it wants to create a shell window.""" start="00:18:32.400" video="qanda-windows" id="subtitle"]]
+[[!template text="""If we just double click emacs dot exe. So emacs client W, uh, and run emacs,""" start="00:18:37.040" video="qanda-windows" id="subtitle"]]
+[[!template text="""they're going to solve that problem. Um, uh, wrapping emacs and emacs client respectively.""" start="00:18:42.960" video="qanda-windows" id="subtitle"]]
+[[!template text="""And, um, just, uh, all right. So let's, let's go ahead and do something. I'll, I'm going to""" start="00:18:51.600" video="qanda-windows" id="subtitle"]]
+[[!template text="""take away the ticker here for a minute. And what you're not seeing is off stage. I am killing that""" start="00:19:00.320" video="qanda-windows" id="subtitle"]]
+[[!template text="""so we don't get built in parallel. Um, so, um, so at this point I'm going to open up a shell and""" start="00:19:08.080" video="qanda-windows" id="subtitle"]]
+[[!template text="""I'm going to start talking just a little bit about my local build environment, which we haven't""" start="00:19:19.680" video="qanda-windows" id="subtitle"]]
+[[!template text="""gotten into. In fact, just to make that even easier, let's, um, let's just take a look at it""" start="00:19:24.240" video="qanda-windows" id="subtitle"]]
+[[!template text="""a little bit. Probably the easiest spot is here.""" start="00:19:32.640" video="qanda-windows" id="subtitle"]]
+[[!template text="""All right. So here we have the familiar windows, my computer interface. I have the G drive and the""" start="00:19:47.680" video="qanda-windows" id="subtitle"]]
+[[!template text="""H drive, four terabyte drives, um, dedicated to my, um, really overblown emacs build process.""" start="00:19:55.680" video="qanda-windows" id="subtitle"]]
+[[!template text="""Um, this just lets me be super lazy. There's no reason you need any massive amount of storage""" start="00:20:08.160" video="qanda-windows" id="subtitle"]]
+[[!template text="""to do any of this. Um, inside here, and now I'll actually switch you back to the other screen.""" start="00:20:14.000" video="qanda-windows" id="subtitle"]]
+[[!template text="""Um, we'll, we'll find,""" start="00:20:23.040" video="qanda-windows" id="subtitle"]]
+[[!template text="""oops, sorry about that. I didn't take the time to label that one. Um, so here you can see""" start="00:20:37.280" video="qanda-windows" id="subtitle"]]
+[[!template text="""the primary output that I'm looking at through this automated process. I come along, I look at""" start="00:20:46.480" video="qanda-windows" id="subtitle"]]
+[[!template text="""the bug reports, or maybe I'm just restarting my computer and choosing what emacs version at random.""" start="00:20:53.760" video="qanda-windows" id="subtitle"]]
+[[!template text="""And then in that case, I look at this modified date and I say, um, my config that I, you know,""" start="00:20:59.840" video="qanda-windows" id="subtitle"]]
+[[!template text="""that I'm playing with right now is all set for emacs 30, or I'm testing the both and I'm""" start="00:21:06.240" video="qanda-windows" id="subtitle"]]
+[[!template text="""relaunching both of these. Right. So for me, that starts by diving into the install folder,""" start="00:21:11.120" video="qanda-windows" id="subtitle"]]
+[[!template text="""going into the bin folder, which looks exactly the way my automation leaves it. I then come in""" start="00:21:16.400" video="qanda-windows" id="subtitle"]]
+[[!template text="""to run the run emacs and I create a shortcut, um, to it. So I'm a keyboard person. So that's""" start="00:21:22.720" video="qanda-windows" id="subtitle"]]
+[[!template text="""usually done like this. And then I just know that the context menu is going to come up in the right""" start="00:21:34.320" video="qanda-windows" id="subtitle"]]
+[[!template text="""place. So I'll come up and, um, possibly change the, change the shortcut, right.""" start="00:21:40.400" video="qanda-windows" id="subtitle"]]
+[[!template text="""If I don't mess with it. Um, so here's where I'll add my minus Q, if that's kind of where""" start="00:21:53.120" video="qanda-windows" id="subtitle"]]
+[[!template text="""my world was at, or it kind of depends on what I'm doing with these, which varies week to week.""" start="00:22:01.280" video="qanda-windows" id="subtitle"]]
+[[!template text="""Um, so restarting my emacs, uh, involves doing the same thing, going to my desktop""" start="00:22:07.440" video="qanda-windows" id="subtitle"]]
+[[!template text="""and where you'll find a number of emac shortcuts and, um, updating the shortcut in the same manner""" start="00:22:12.560" video="qanda-windows" id="subtitle"]]
+[[!template text="""joint actually, maybe we'll just, let's go back there and just show it.""" start="00:22:23.920" video="qanda-windows" id="subtitle"]]
+[[!template text="""So if we look at, for example, my ERC,""" start="00:22:28.000" video="qanda-windows" id="subtitle"]]
+[[!template text="""you can see, it's going to be pointing at one of these clones and then it's going to""" start="00:22:31.760" video="qanda-windows" id="subtitle"]]
+[[!template text="""maybe tell me that I want, it wants to be full screen. Nope, not currently. And then it might,""" start="00:22:39.760" video="qanda-windows" id="subtitle"]]
+[[!template text="""uh, have some stuff in there about auto-loading at config and what""" start="00:22:44.720" video="qanda-windows" id="subtitle"]]
+[[!template text="""connections I'm going to, some commands I've defined to start connections.""" start="00:22:48.720" video="qanda-windows" id="subtitle"]]
+[[!template text="""All right. And sorry, I got a phone call. I was checking. It wasn't in an org, the org,""" start="00:22:53.280" video="qanda-windows" id="subtitle"]]
+[[!template text="""not the other organizers giving me the hook. So, um, all right. So that's, that's probably""" start="00:22:57.680" video="qanda-windows" id="subtitle"]]
+[[!template text="""enough on the local system. Let's get back to the, to, to building emacs. And now it hopefully makes""" start="00:23:04.160" video="qanda-windows" id="subtitle"]]
+[[!template text="""a certain amount of sense when I say we're going to wander over to the H drive and, and, and, and,""" start="00:23:11.440" video="qanda-windows" id="subtitle"]]
+[[!template text="""hopefully makes a certain amount of sense when I say we're going to wander over to the H drive""" start="00:23:17.920" video="qanda-windows" id="subtitle"]]
+[[!template text="""and recreate the structure that, um, both my process sort of assumes and the scripts you'll""" start="00:23:22.560" video="qanda-windows" id="subtitle"]]
+[[!template text="""find in the admin NT, uh, build disk folder in source used to assume. Those scripts are in need""" start="00:23:31.520" video="qanda-windows" id="subtitle"]]
+[[!template text="""of some love. And in just a little bit, I'll be mentioning a build, uh, a, uh, a, a, a particular""" start="00:23:41.440" video="qanda-windows" id="subtitle"]]
+[[!template text="""bug that you might want to pay attention to if you're interested in making a self-installer.""" start="00:23:49.440" video="qanda-windows" id="subtitle"]]
+[[!template text="""All right. So, um, we're going to create, uh, an emacs build directory.""" start="00:23:54.800" video="qanda-windows" id="subtitle"]]
+[[!template text="""And we've got a handy git clone stage, git clone command stage for ourself. That would work. Um,""" start="00:24:04.320" video="qanda-windows" id="subtitle"]]
+[[!template text="""do not currently see anybody lobbying for that. So instead we will run the rather faster""" start="00:24:19.360" video="qanda-windows" id="subtitle"]]
+[[!template text="""uh, W get command on Savannah, which is not pasted in here. Nice. Let's see if I can freehand it.""" start="00:24:27.120" video="qanda-windows" id="subtitle"]]
+[[!template text="""Not going to do it. Uh,""" start="00:24:36.080" video="qanda-windows" id="subtitle"]]
+[[!template text="""okay.""" start="00:24:40.720" video="qanda-windows" id="subtitle"]]
+[[!template text="""I beg your pardon. I'm grabbing a URL from the internet.""" start="00:24:52.000" video="qanda-windows" id="subtitle"]]
+[[!template text="""Uh, okay. Yeah, I can, I can honestly, I can freehand it, whatever. Okay. Sorry. I, uh,""" start="00:25:00.080" video="qanda-windows" id="subtitle"]]
+[[!template text="""I didn't have that bookmarked in all handy. Like I thought I did. Um, so we'll just say""" start="00:25:07.680" video="qanda-windows" id="subtitle"]]
+[[!template text="""ftp.gnu.org slash, uh, what is it? Pub emacs, emacs-29.1, uh, .org.gnu.org.exe.""" start="00:25:13.200" video="qanda-windows" id="subtitle"]]
+[[!template text="""I really think I'd have this command sitting around. It makes me want to scrap the whole""" start="00:25:30.480" video="qanda-windows" id="subtitle"]]
+[[!template text="""demo. I'm not going to lie. Okay. How am I doing? Um, I think at least 15 minutes. Um,""" start="00:25:47.040" video="qanda-windows" id="subtitle"]]
+[[!template text="""but in the command that you were freehanding, should the pub be GNU instead?""" start="00:25:54.720" video="qanda-windows" id="subtitle"]]
+[[!template text="""Oh, thanks. I'm sorry.""" start="00:25:59.120" video="qanda-windows" id="subtitle"]]
+[[!template text="""There we go. Thank you. All right. And then we'll,""" start="00:26:07.440" video="qanda-windows" id="subtitle"]]
+[[!template text="""and I'm not sure I provided commands for this either,""" start="00:26:17.760" video="qanda-windows" id="subtitle"]]
+[[!template text="""but it is trivially easy to do. And while that happens, we'll get to move on a few slides.""" start="00:26:20.720" video="qanda-windows" id="subtitle"]]
+[[!template text="""Um, the configure script I'm not talking about in a lot of detail, but I do want to mention that the""" start="00:26:31.760" video="qanda-windows" id="subtitle"]]
+[[!template text="""GNU binaries are provided with native, uh, compilation enabled. That's the feature that""" start="00:26:38.000" video="qanda-windows" id="subtitle"]]
+[[!template text="""uses gcc lib gcc get on windows. If available, that lib gcc get will be used. Um, but when,""" start="00:26:44.800" video="qanda-windows" id="subtitle"]]
+[[!template text="""but, uh, if, if, uh, emacs has that feature, then it will take by compile, uh, native code and,""" start="00:26:55.360" video="qanda-windows" id="subtitle"]]
+[[!template text="""uh, asynchronously compile that as needed, uh, with the ahead of time feature. We're going to""" start="00:27:03.200" video="qanda-windows" id="subtitle"]]
+[[!template text="""do as much of that ahead of time. And for folks that are consuming the windows binary, the""" start="00:27:10.880" video="qanda-windows" id="subtitle"]]
+[[!template text="""thinking goes that they might not have my assist too. They might not have lib gcc jet. They might""" start="00:27:15.360" video="qanda-windows" id="subtitle"]]
+[[!template text="""be happy that they're enabled in a, you know, a lot of time running emacs on their local environments""" start="00:27:21.360" video="qanda-windows" id="subtitle"]]
+[[!template text="""at all, you know, in a, maybe a lockdown, uh, corporate context. So aside that, um, there's""" start="00:27:30.400" video="qanda-windows" id="subtitle"]]
+[[!template text="""your first glimpse at the configure, um, program that we're going to run in a moment. In fact,""" start="00:27:39.120" video="qanda-windows" id="subtitle"]]
+[[!template text="""I'm going to go as far as putting it on the clipboard. Um, really just looking at this,""" start="00:27:45.120" video="qanda-windows" id="subtitle"]]
+[[!template text="""the AOT flag is the one I'd call attention to, but it's worth understanding that windows doesn't""" start="00:27:52.160" video="qanda-windows" id="subtitle"]]
+[[!template text="""provide a D bus capability. So windows native program isn't going to be able to depend on D""" start="00:27:57.120" video="qanda-windows" id="subtitle"]]
+[[!template text="""bus. We're going to, we're going to explicitly ask that that be left out. I think that's actually""" start="00:28:02.000" video="qanda-windows" id="subtitle"]]
+[[!template text="""optional and it's documentation. I think the configure program is smart enough to know that""" start="00:28:07.600" video="qanda-windows" id="subtitle"]]
+[[!template text="""we don't want D bus on windows. Um, otherwise we tend to compile with things. Um, there there's""" start="00:28:12.080" video="qanda-windows" id="subtitle"]]
+[[!template text="""missing documentation. We could say the, uh, all of the libraries are treated in the way I mentioned""" start="00:28:20.080" video="qanda-windows" id="subtitle"]]
+[[!template text="""in that, um, JPEG support will be available as long as the JPEG is, is available in our environment""" start="00:28:26.320" video="qanda-windows" id="subtitle"]]
+[[!template text="""and configure script certainly notices that, um, the GNU provided binaries are provided with""" start="00:28:34.880" video="qanda-windows" id="subtitle"]]
+[[!template text="""minus O2. And that's also my default personally on windows. Um, however, and I'm going to skip""" start="00:28:40.320" video="qanda-windows" id="subtitle"]]
+[[!template text="""this since I mentioned it, um, mentioned, uh, and, uh, um, so I guess I'll say, um, you can,""" start="00:28:47.280" video="qanda-windows" id="subtitle"]]
+[[!template text="""um, say with the, it's worth knowing that you, if you're not one reason that, that you're building""" start="00:28:59.680" video="qanda-windows" id="subtitle"]]
+[[!template text="""might be because you want to turn off native compilation for whatever reason. If you have""" start="00:29:06.560" video="qanda-windows" id="subtitle"]]
+[[!template text="""low juices, you get, get, but don't want Emacs to use it. Uh, especially as that default looks like""" start="00:29:11.200" video="qanda-windows" id="subtitle"]]
+[[!template text="""it could be changing with Emacs 30. Um, the, uh, the debug configuration, um, this is, this is the,""" start="00:29:16.640" video="qanda-windows" id="subtitle"]]
+[[!template text="""uh, kind of, uh, what, what I'm currently using this on commentary, uh, I've seen on the next""" start="00:29:26.480" video="qanda-windows" id="subtitle"]]
+[[!template text="""development list. Let's check on our checkout and see if we can't get a build running. Um,""" start="00:29:33.200" video="qanda-windows" id="subtitle"]]
+[[!template text="""this is a release build, so I won't be starting with, uh, so we'll start by hopping into its""" start="00:29:45.280" video="qanda-windows" id="subtitle"]]
+[[!template text="""directory and we, um, we have, uh, but not. Okay. So that tells us we're going to run""" start="00:29:51.440" video="qanda-windows" id="subtitle"]]
+[[!template text="""our configure program, but we don't need to run a config IC. So,""" start="00:30:14.640" video="qanda-windows" id="subtitle"]]
+[[!template text="""so let's get that going and, uh,""" start="00:30:31.280" video="qanda-windows" id="subtitle"]]
+[[!template text="""hopefully that's showing through just enough to be fun, not too much to be distracting.""" start="00:30:36.000" video="qanda-windows" id="subtitle"]]
+[[!template text="""Um, the, uh, the unoptimized, uh, uh, um, please report issues. If your Emacs is crashing,""" start="00:30:45.040" video="qanda-windows" id="subtitle"]]
+[[!template text="""uh, to the Emacs development list, not to me personally. Um, although you are of course,""" start="00:30:55.760" video="qanda-windows" id="subtitle"]]
+[[!template text="""welcome to copy me. Um, if you especially I'm subscribed to that list, so I get all the mail.""" start="00:31:01.200" video="qanda-windows" id="subtitle"]]
+[[!template text="""So I don't mind being copied. Uh, and, uh, as well, if you think it's, uh,""" start="00:31:06.960" video="qanda-windows" id="subtitle"]]
+[[!template text="""you know, related to packaging, that actually makes sense or windows related to even, and,""" start="00:31:15.040" video="qanda-windows" id="subtitle"]]
+[[!template text="""uh, it can be tested with an extra snapshot that should be uploaded to the canoe alpha side.""" start="00:31:20.160" video="qanda-windows" id="subtitle"]]
+[[!template text="""I could look at that if I have time. There's with the configure script to make file for""" start="00:31:25.120" video="qanda-windows" id="subtitle"]]
+[[!template text="""Emacs is really, really complicated. If time permits, which I'm now confident it will not,""" start="00:31:32.160" video="qanda-windows" id="subtitle"]]
+[[!template text="""we will look at, uh, make file that I tried writing that, uh, orchestrates this whole""" start="00:31:39.840" video="qanda-windows" id="subtitle"]]
+[[!template text="""process that I'm talking about. Um, as, uh, let's see. So the build, uh, build process,""" start="00:31:44.240" video="qanda-windows" id="subtitle"]]
+[[!template text="""I run my builds with, uh, explosively specifying the max CPU, uh, with minus J, but minus B one""" start="00:31:52.160" video="qanda-windows" id="subtitle"]]
+[[!template text="""to get the full build, uh, full log into your recipes. That is probably the magic thing.""" start="00:32:03.120" video="qanda-windows" id="subtitle"]]
+[[!template text="""Matt, um, shouldn't to understand what, uh,""" start="00:32:09.040" video="qanda-windows" id="subtitle"]]
+[[!template text="""or that, uh, that, that, uh, that I'm glad that I know, uh, as I'm trying to write my automations,""" start="00:32:16.000" video="qanda-windows" id="subtitle"]]
+[[!template text="""uh, the, um, so I call that out here, the binary, uh, releases. Um, okay. So in this section,""" start="00:32:26.960" video="qanda-windows" id="subtitle"]]
+[[!template text="""we're going to start to get into what are all those files. And there's a bug report related to""" start="00:32:36.080" video="qanda-windows" id="subtitle"]]
+[[!template text="""that, but I didn't get into here. So, um, that's kind of to the point about the less said about""" start="00:32:41.120" video="qanda-windows" id="subtitle"]]
+[[!template text="""this, the better, uh, that's my explanation for stepping through some of these slides.""" start="00:32:46.640" video="qanda-windows" id="subtitle"]]
+[[!template text="""Uh, of course we'll share them all, uh, uh, hopefully by the time that this video is published.""" start="00:32:50.800" video="qanda-windows" id="subtitle"]]
+[[!template text="""Oh, I mentioned, um, I may have mentioned already freshly installed, but, uh, fully installed. Uh,""" start="00:32:58.960" video="qanda-windows" id="subtitle"]]
+[[!template text="""the, the, the key distinction here is that, uh, Emacs is distributed in the binary form for Windows""" start="00:33:06.640" video="qanda-windows" id="subtitle"]]
+[[!template text="""with some DLL files that actually come from the mysys2 project. There's an implication there to""" start="00:33:15.200" video="qanda-windows" id="subtitle"]]
+[[!template text="""there's an implication there to GCC that I definitely want to get to it talking about.""" start="00:33:21.760" video="qanda-windows" id="subtitle"]]
+[[!template text="""Um, so freshly installed means we haven't copied those binaries from the mysys2, uh,""" start="00:33:28.080" video="qanda-windows" id="subtitle"]]
+[[!template text="""installation into the Emacs, uh, installation. Uh, and then, uh, when we re-archived that""" start="00:33:35.840" video="qanda-windows" id="subtitle"]]
+[[!template text="""local Emacs installation, that's how we're going to create the full zip.""" start="00:33:45.360" video="qanda-windows" id="subtitle"]]
+[[!template text="""So hopefully that actually is a pretty good summary of what all those files are. Um, but""" start="00:33:48.640" video="qanda-windows" id="subtitle"]]
+[[!template text="""there are readme files, uh, on the FTP that do a pretty good job, um, if you can dig enough to find""" start="00:33:54.160" video="qanda-windows" id="subtitle"]]
+[[!template text="""one and my apologies for, uh, tardiness getting a new version on that posted. Um, the Emacs, uh,""" start="00:34:00.320" video="qanda-windows" id="subtitle"]]
+[[!template text="""so those dependencies, uh, are listed within Emacs itself. And as we'll just talk about in a moment,""" start="00:34:11.120" video="qanda-windows" id="subtitle"]]
+[[!template text="""there's a way, uh, that we can use, we can access that when we collect them in order to meet, uh,""" start="00:34:17.040" video="qanda-windows" id="subtitle"]]
+[[!template text="""the GCC requirement that is essentially to include, um, include the sources for the,""" start="00:34:24.240" video="qanda-windows" id="subtitle"]]
+[[!template text="""for those binaries, the things that were compiled against. Um, the, uh, so, so here we go,""" start="00:34:31.840" video="qanda-windows" id="subtitle"]]
+[[!template text="""we're, we're into the build process. Let's just take a look and see if configure it got done.""" start="00:34:41.200" video="qanda-windows" id="subtitle"]]
+[[!template text="""It sure did. And now we can see a table of, of hopefully good, but good and bad news, um,""" start="00:34:45.280" video="qanda-windows" id="subtitle"]]
+[[!template text="""and potential, um, where we're learning that we're using the pdumper strategy and any number of other""" start="00:34:52.240" video="qanda-windows" id="subtitle"]]
+[[!template text="""things that we might be messing with as our motivation for, for building ourselves on Emacs.""" start="00:34:57.840" video="qanda-windows" id="subtitle"]]
+[[!template text="""Um, again, this table represents, uh, what you'll, what, what, what it looks like for me when I'm""" start="00:35:04.320" video="qanda-windows" id="subtitle"]]
+[[!template text="""building for the GNU distributed binaries. All right. So, um, kind of moving, moving as quickly""" start="00:35:12.560" video="qanda-windows" id="subtitle"]]
+[[!template text="""as I can here. I'm at 40 after, I believe that's the five minute mark. So, um, having just succeeded""" start="00:35:22.720" video="qanda-windows" id="subtitle"]]
+[[!template text="""in, in configuring Emacs, I don't think we're going to build it. Uh, uh, I don't think we're""" start="00:35:31.200" video="qanda-windows" id="subtitle"]]
+[[!template text="""going to actually get to running make install. Um, but I have it sitting here on my keyboard""" start="00:35:37.040" video="qanda-windows" id="subtitle"]]
+[[!template text="""or clipboard, assuming that we will, right? No. Oh, wow. I think I've managed to confuse this.""" start="00:35:43.280" video="qanda-windows" id="subtitle"]]
+[[!template text="""All right. So for me, that looks simply like, uh, make, uh, V equals one install, uh,""" start="00:35:54.320" video="qanda-windows" id="subtitle"]]
+[[!template text="""prefix equals, uh,""" start="00:36:08.160" video="qanda-windows" id="subtitle"]]
+[[!template text="""and we can at least get it kicked off.""" start="00:36:18.400" video="qanda-windows" id="subtitle"]]
+[[!template text="""And that can, that command is just, uh, just is no, no different than I showed on the slide where""" start="00:36:20.640" video="qanda-windows" id="subtitle"]]
+[[!template text="""I, where I gave it, uh, wasn't planning to stop and explain it. I was just planning to paste it.""" start="00:36:27.680" video="qanda-windows" id="subtitle"]]
+[[!template text="""So, so, so again, recapping the rest of the process here and maybe actually making it,""" start="00:36:33.360" video="qanda-windows" id="subtitle"]]
+[[!template text="""if you can believe it or not, through the rest of these slides, um, we, to, to, to create the""" start="00:36:38.640" video="qanda-windows" id="subtitle"]]
+[[!template text="""full set of binaries, we're going to need a no dependent, no depths archive. That's without the""" start="00:36:44.800" video="qanda-windows" id="subtitle"]]
+[[!template text="""mysys2, uh, deal provided DLLs, just the things that we compile as part of making Emacs. Um,""" start="00:36:49.600" video="qanda-windows" id="subtitle"]]
+[[!template text="""the, uh, the build depths zip script is provided with the source distribution is your tool for,""" start="00:37:00.320" video="qanda-windows" id="subtitle"]]
+[[!template text="""uh, meeting the GPL requirements, right? Source as mentioned before,""" start="00:37:07.840" video="qanda-windows" id="subtitle"]]
+[[!template text="""um, there is a second bug that I did, uh, include some more information on in my notes already.""" start="00:37:12.640" video="qanda-windows" id="subtitle"]]
+[[!template text="""Um, that, uh, that gets into the details of this other feature I alluded to.""" start="00:37:19.680" video="qanda-windows" id="subtitle"]]
+[[!template text="""Um, I'll just skip into that. Um, we, we can, with, with, uh, with a, an appropriate version""" start="00:37:26.480" video="qanda-windows" id="subtitle"]]
+[[!template text="""of that, which you may need a patch, uh, to, to have, you can list out the dependencies""" start="00:37:35.680" video="qanda-windows" id="subtitle"]]
+[[!template text="""and, and that version as well. Can consider the dependencies of the Emacs binary versus""" start="00:37:42.240" video="qanda-windows" id="subtitle"]]
+[[!template text="""the hard-coded list you might find, depending on when you look at this file in the source tree.""" start="00:37:47.200" video="qanda-windows" id="subtitle"]]
+[[!template text="""The diff, um, so I also have a hack here that, uh, works around the absolute requirement to""" start="00:37:53.680" video="qanda-windows" id="subtitle"]]
+[[!template text="""run this with the mysys2 and not the minGW64 script. Um, once we've made that zip file that""" start="00:38:01.600" video="qanda-windows" id="subtitle"]]
+[[!template text="""contain that's, that's our installed Emacs without the DLLs provided by mysys2, we'll then unpack""" start="00:38:18.320" video="qanda-windows" id="subtitle"]]
+[[!template text="""the dependencies that were created by that Python script we just talked about from the Emacs source""" start="00:38:25.360" video="qanda-windows" id="subtitle"]]
+[[!template text="""tree. At that point, once those are unpacked, we can now make what's called the full installer,""" start="00:38:30.960" video="qanda-windows" id="subtitle"]]
+[[!template text="""or sometimes I might call it the unqualified installer, because it's just going to be called""" start="00:38:38.080" video="qanda-windows" id="subtitle"]]
+[[!template text="""Emacs29.1.zip. Um, and that, uh, that file, which, which creates the, the, the, the, the,""" start="00:38:42.800" video="qanda-windows" id="subtitle"]]
+[[!template text="""which creates the archive, uh, that, uh, that, that, that file is exactly the same,""" start="00:38:54.800" video="qanda-windows" id="subtitle"]]
+[[!template text="""plus the, uh, the dependencies that we unzipped in the bin folder of the installed Emacs.""" start="00:39:02.640" video="qanda-windows" id="subtitle"]]
+[[!template text="""The, uh, executable self-installer, which I would love to have more time to talk about.""" start="00:39:09.680" video="qanda-windows" id="subtitle"]]
+[[!template text="""I gave a few pointers here on the hard part of running it. Most importantly,""" start="00:39:14.480" video="qanda-windows" id="subtitle"]]
+[[!template text="""if I've installed in any kind of funny looking name, I end up renaming it to like Emacs-29.1""" start="00:39:19.680" video="qanda-windows" id="subtitle"]]
+[[!template text="""or Emacs-29. or 30.0.50 or whatever. And I just renamed that installed Emacs folder.""" start="00:39:26.640" video="qanda-windows" id="subtitle"]]
+[[!template text="""And then I go to the root of wherever I created that, the parent directory above it.""" start="00:39:35.200" video="qanda-windows" id="subtitle"]]
+[[!template text="""And that's where I make my copy of the Emacs NSI, um, the, the NSIS script.""" start="00:39:40.320" video="qanda-windows" id="subtitle"]]
+[[!template text="""And, uh, that's also where I, and then, um, then from that parent directory, I execute,""" start="00:39:47.520" video="qanda-windows" id="subtitle"]]
+[[!template text="""uh, making sys, uh, here. I, as mentioned, um, I, I can get away with this because I have it""" start="00:39:55.600" video="qanda-windows" id="subtitle"]]
+[[!template text="""on my path and it's my recollection. I think I tested this and couldn't reproduce the problem.""" start="00:40:02.560" video="qanda-windows" id="subtitle"]]
+[[!template text="""So I didn't document it here, but I've had some problems with running this""" start="00:40:07.520" video="qanda-windows" id="subtitle"]]
+[[!template text="""when, uh, when NSIS wasn't on my path. The, uh, the, the, the final step here""" start="00:40:11.200" video="qanda-windows" id="subtitle"]]
+[[!template text="""and the last, the GPL requirement is to include all the sources, except when I'm doing a release""" start="00:40:20.400" video="qanda-windows" id="subtitle"]]
+[[!template text="""build, I always do this. Um, and that's the new practice when making Snapchat binaries is to go""" start="00:40:27.600" video="qanda-windows" id="subtitle"]]
+[[!template text="""ahead and include the sources, even though we might have the specific revision number, um,""" start="00:40:34.320" video="qanda-windows" id="subtitle"]]
+[[!template text="""our thinking is we want absolute clarity, um, that, that somebody, uh, can say, okay,""" start="00:40:39.840" video="qanda-windows" id="subtitle"]]
+[[!template text="""this binary did this thing, send me the source for it. I'm going to go take that into my own""" start="00:40:46.800" video="qanda-windows" id="subtitle"]]
+[[!template text="""open source, or yeah, maybe they would, the jerks, um, into my own open source project.""" start="00:40:51.200" video="qanda-windows" id="subtitle"]]
+[[!template text="""And, um, you know, off they go, uh, and that needs to be possible.""" start="00:40:56.880" video="qanda-windows" id="subtitle"]]
+[[!template text="""Um, so, um, beyond that, the rest of this is, is really detailed that you find covered in the GNU""" start="00:41:04.800" video="qanda-windows" id="subtitle"]]
+[[!template text="""maintainers manual. Um, this is the, the current set of Windows binaries that, um, it's busily""" start="00:41:12.480" video="qanda-windows" id="subtitle"]]
+[[!template text="""working on creating a like for like a mirror to behind the scenes here is called a 29.1 underscore""" start="00:41:19.520" video="qanda-windows" id="subtitle"]]
+[[!template text="""two. Um, and I have a lot of automation, uh, available on this site. So at this point,""" start="00:41:29.040" video="qanda-windows" id="subtitle"]]
+[[!template text="""I'm just, I think I'm only a minute, 40 seconds over. I'm gonna invite my, uh, co-organizers""" start="00:41:36.080" video="qanda-windows" id="subtitle"]]
+[[!template text="""back onto the call or any volunteers that want to jump in and anybody, if there's people on the""" start="00:41:45.200" video="qanda-windows" id="subtitle"]]
+[[!template text="""BBB, I'd be happy to take questions. If there aren't, um, I have a screen full of, uh, the""" start="00:41:49.760" video="qanda-windows" id="subtitle"]]
+[[!template text="""automation stuff ready to go as a kind of a second ring in my circus today. So if you're still with""" start="00:41:57.440" video="qanda-windows" id="subtitle"]]
+[[!template text="""me, thanks a lot for joining me. And I really enjoyed this talk. Uh, if this is where we're""" start="00:42:04.080" video="qanda-windows" id="subtitle"]]
+[[!template text="""going to close it out, I don't know where we're at for schedule today. Thanks a lot for a great""" start="00:42:08.640" video="qanda-windows" id="subtitle"]]
+[[!template text="""talk, Corwin. Um, in terms of like schedule, yeah, you went over a little bit for the official,""" start="00:42:14.560" video="qanda-windows" id="subtitle"]]
+[[!template text="""like, um, schedule or time of your talk, but I think, uh, we actually have maybe like six or""" start="00:42:20.880" video="qanda-windows" id="subtitle"]]
+[[!template text="""seven more minutes, um, here on stream for, um, questions and such, if folks have questions,""" start="00:42:26.880" video="qanda-windows" id="subtitle"]]
+[[!template text="""or if you want to like quickly maybe show one or two more things. Um, but I think the hard stuff""" start="00:42:32.640" video="qanda-windows" id="subtitle"]]
+[[!template text="""is about like maybe 10 minutes ish for now. And then we'll have to rush over to, um, uh, for the""" start="00:42:38.320" video="qanda-windows" id="subtitle"]]
+[[!template text="""closing remarks. So, well, that sounds awesome. Okay. So I'm looking at the, the dev chat. Uh,""" start="00:42:43.520" video="qanda-windows" id="subtitle"]]
+[[!template text="""I see a comment on cross-compiling the emacs, but I'm sorry, I'm looking at IRC primarily, but,""" start="00:42:55.520" video="qanda-windows" id="subtitle"]]
+[[!template text="""uh, feel free to jump in if you're on, uh, BBB with me, or, uh, uh, if, if you put something on""" start="00:43:01.040" video="qanda-windows" id="subtitle"]]
+[[!template text="""the pad, I'm sure, uh, we'll see it between the two of us, uh, over here. Okay. So cross-compiling""" start="00:43:08.160" video="qanda-windows" id="subtitle"]]
+[[!template text="""emacs for Serenity. I haven't tried really any cross-compiling. I think that would be very""" start="00:43:16.400" video="qanda-windows" id="subtitle"]]
+[[!template text="""interesting. I would most likely focus on doing exactly what I do on a GNU system, completely""" start="00:43:20.640" video="qanda-windows" id="subtitle"]]
+[[!template text="""ditching. Um, so I guess with my, my remaining time, rather than walking through code, um, for""" start="00:43:28.240" video="qanda-windows" id="subtitle"]]
+[[!template text="""my automation, which can be another talk, if in fact there's an interest in that, um, I want to,""" start="00:43:35.760" video="qanda-windows" id="subtitle"]]
+[[!template text="""I guess, say a couple of words about the non-free operating system that I'm using here. I did my""" start="00:43:42.080" video="qanda-windows" id="subtitle"]]
+[[!template text="""best to use no non-free software other than the, uh, the operating system that is the context for""" start="00:43:48.480" video="qanda-windows" id="subtitle"]]
+[[!template text="""this talk in preparing this talk for you. I personally have a lot more, uh, time and energy,""" start="00:43:58.880" video="qanda-windows" id="subtitle"]]
+[[!template text="""I have to say, invested in proprietary tools for doing a lot of the things that, that go into this.""" start="00:44:07.920" video="qanda-windows" id="subtitle"]]
+[[!template text="""So I really respect the work of people that pull that off. Um, I'm sorry I didn't get my pre-recorded""" start="00:44:15.840" video="qanda-windows" id="subtitle"]]
+[[!template text="""stuff, uh, kind of in order for everybody, but I just want to stress, like, uh, it is all absolutely""" start="00:44:22.000" video="qanda-windows" id="subtitle"]]
+[[!template text="""possible and just hats off to everybody that, that used, uh, entirely free software to get their,""" start="00:44:30.320" video="qanda-windows" id="subtitle"]]
+[[!template text="""get their recordings done in time. Um, and what you did see, unless it was provided by the operating""" start="00:44:36.240" video="qanda-windows" id="subtitle"]]
+[[!template text="""system in my presentation today, was all, uh, free software with the debatable exception of""" start="00:44:43.360" video="qanda-windows" id="subtitle"]]
+[[!template text="""NSYS, which styles itself as open source, maybe for, uh, marketing reasons.""" start="00:44:49.200" video="qanda-windows" id="subtitle"]]
+[[!template text="""Okay, uh, in any case, uh, certainly we can get all that source.""" start="00:44:56.720" video="qanda-windows" id="subtitle"]]
+[[!template text="""Thanks for the note, Corin. It's good to know that, uh, building or, uh, yeah, doing the build of Emacs""" start="00:45:08.080" video="qanda-windows" id="subtitle"]]
+[[!template text="""for Windows on Windows can be done, uh, using only free software. Yeah, absolutely.""" start="00:45:14.720" video="qanda-windows" id="subtitle"]]
+[[!template text="""Probably the right closing note, right? Um, I just, uh, thanks again to the organizers for""" start="00:45:23.440" video="qanda-windows" id="subtitle"]]
+[[!template text="""bearing with me. And like, every time I was like, you guys, I'm terrible at this. They're just like,""" start="00:45:29.520" video="qanda-windows" id="subtitle"]]
+[[!template text="""no, you're doing fine. Keep going. You did a great job live last time. You can do it live,""" start="00:45:33.920" video="qanda-windows" id="subtitle"]]
+[[!template text="""you know, and, and saying all the right things to just, uh, encourage me to come back,""" start="00:45:38.240" video="qanda-windows" id="subtitle"]]
+[[!template text="""uh, this year and every year.""" start="00:45:43.920" video="qanda-windows" id="subtitle"]]
+[[!template text="""Well, as I said before, we were very lucky to have you and the rest of the team, of course,""" start="00:45:49.760" video="qanda-windows" id="subtitle"]]
+[[!template text="""as well. And, um, goes without saying, but all the speakers and the audience, the participants as""" start="00:45:53.520" video="qanda-windows" id="subtitle"]]
+[[!template text="""well. So, um, so, uh, are we, we're still live over here that, you know, you know, me, I'm the""" start="00:45:59.520" video="qanda-windows" id="subtitle"]]
+[[!template text="""Mike Hogg that I am. I can't resist, um, throwing, throwing up another screen here. And, uh, in fact,""" start="00:46:14.240" video="qanda-windows" id="subtitle"]]
+[[!template text="""let's go ahead and go back to our, to our crawler, right? And I'll bring back our build""" start="00:46:22.800" video="qanda-windows" id="subtitle"]]
+[[!template text="""if it finishes and maybe we'll show making the installer as well. Um, uh, but I have the CPU""" start="00:46:32.160" video="qanda-windows" id="subtitle"]]
+[[!template text="""account turned down a little bit here. Uh, note, I didn't specify minus J here. Um, so, uh, over""" start="00:46:40.480" video="qanda-windows" id="subtitle"]]
+[[!template text="""here is my automation. Uh, in case you do want to take a look, I can at least provide the""" start="00:46:49.680" video="qanda-windows" id="subtitle"]]
+[[!template text="""orientation of what you're looking at. Scrape log is probably my first thing I want to show off.""" start="00:46:54.000" video="qanda-windows" id="subtitle"]]
+[[!template text="""Um, it's not beautiful, but this works, uh, pretty well for me to get a sense of something might""" start="00:46:59.760" video="qanda-windows" id="subtitle"]]
+[[!template text="""have changed in terms of how many warnings or errors are happening when I build Emacs. So I""" start="00:47:08.400" video="qanda-windows" id="subtitle"]]
+[[!template text="""have this whole automation going on and I frequently want to answer the question,""" start="00:47:14.720" video="qanda-windows" id="subtitle"]]
+[[!template text="""you know, what's the change rate in, uh, warnings or what have you. So this kind of gives me a count""" start="00:47:19.280" video="qanda-windows" id="subtitle"]]
+[[!template text="""of that. Um, so from there, uh, accrued CI is the script we're watching run in the other pane.""" start="00:47:26.400" video="qanda-windows" id="subtitle"]]
+[[!template text="""Um, we can see it's, uh, just starting to do its thing again.""" start="00:47:37.840" video="qanda-windows" id="subtitle"]]
+[[!template text="""And, uh, the make file I mentioned, this is a top-down rewrite of everything else that I've done.""" start="00:47:48.800" video="qanda-windows" id="subtitle"]]
+[[!template text="""It has some bugs right now. Um, the, uh, the build distribution is the main script that I use for my""" start="00:47:57.040" video="qanda-windows" id="subtitle"]]
+[[!template text="""personal builds. This is what is run by the crude CI script. Uh, it has a fun tie-in to this, uh,""" start="00:48:08.640" video="qanda-windows" id="subtitle"]]
+[[!template text="""web interface here, um, where we can, you don't need the port number when you go to it. That's""" start="00:48:17.120" video="qanda-windows" id="subtitle"]]
+[[!template text="""just if I'm going to post. Um, the, uh, blah, blah, blah, blah, blah. This, this script is""" start="00:48:23.200" video="qanda-windows" id="subtitle"]]
+[[!template text="""really long and complicated and probably needs some diving into, but you can see that, um, one""" start="00:48:33.680" video="qanda-windows" id="subtitle"]]
+[[!template text="""of the complexities I have to deal with is that I'm going to need something in the format of an""" start="00:48:39.120" video="qanda-windows" id="subtitle"]]
+[[!template text="""emacs-version for strategic, um, nsys reasons. So, uh, it takes care of kind of every complexity""" start="00:48:43.840" video="qanda-windows" id="subtitle"]]
+[[!template text="""that I mentioned today in some respects, um, as does the make file. Build release is, um, another""" start="00:48:54.480" video="qanda-windows" id="subtitle"]]
+[[!template text="""fairly useful incarnation of this. This is just focused on the release process, and this does""" start="00:49:03.120" video="qanda-windows" id="subtitle"]]
+[[!template text="""work, uh, for example, to create the, the, the, you know, like, like, well, I could like, uh,""" start="00:49:11.360" video="qanda-windows" id="subtitle"]]
+[[!template text="""for like files as far as I can tell. So what are currently posted for emacs 29.1 and the release""" start="00:49:18.800" video="qanda-windows" id="subtitle"]]
+[[!template text="""candidate. Um, so I'll probably use that next time. And if it's still like, for like, I'll""" start="00:49:25.600" video="qanda-windows" id="subtitle"]]
+[[!template text="""probably post the ones that came from this. Um, uh, building, uh, TreeSitter, I make some DLLs""" start="00:49:32.400" video="qanda-windows" id="subtitle"]]
+[[!template text="""there. If you're looking for hints on how to get going or just simply, uh, a huge long list""" start="00:49:40.960" video="qanda-windows" id="subtitle"]]
+[[!template text="""of Git repositories that make grammars, you can use that is here as well. Um, finally, I mentioned""" start="00:49:47.120" video="qanda-windows" id="subtitle"]]
+[[!template text="""I have a, um, I have a website where I publish my own personal snapshots that I make, uh, that""" start="00:49:55.840" video="qanda-windows" id="subtitle"]]
+[[!template text="""folder full of install directories, but all of the usual GNU style binary distributables, including""" start="00:50:04.800" video="qanda-windows" id="subtitle"]]
+[[!template text="""the source code and the source code for the dependencies. Um, the, uh, so this program is""" start="00:50:11.680" video="qanda-windows" id="subtitle"]]
+[[!template text="""another one of those complicated find commands and therefore potentially the most useful thing""" start="00:50:22.320" video="qanda-windows" id="subtitle"]]
+[[!template text="""in here to take to you. Um, and here I'm deleting, uh, binaries older than 17 years. Uh, everything""" start="00:50:27.680" video="qanda-windows" id="subtitle"]]
+[[!template text="""except the, uh, node apps file and the sources of it you'll find on my website. Currently those""" start="00:50:34.960" video="qanda-windows" id="subtitle"]]
+[[!template text="""indefinitely, I'll probably roll out 120 days or something, um, for those eventually.""" start="00:50:42.240" video="qanda-windows" id="subtitle"]]
+[[!template text="""Oh, uh, I can talk about this one even. Um, the, uh, so here you'll see the two branches that I'm""" start="00:50:53.600" video="qanda-windows" id="subtitle"]]
+[[!template text="""tracking. The job of this script is, uh, this runs on the website. I call it with a, like a remote""" start="00:51:00.400" video="qanda-windows" id="subtitle"]]
+[[!template text="""rsync, uh, type, uh, or an SSA remote, uh, SSH command. Um, and right after the rsync,""" start="00:51:06.560" video="qanda-windows" id="subtitle"]]
+[[!template text="""rsyncing up any new Emacs that I built. And, uh, it's, uh, it's job is to update my fancy""" start="00:51:15.920" video="qanda-windows" id="subtitle"]]
+[[!template text="""directory indexing. So let's look at Corwin's website. Here's my Emacs 29 folder.""" start="00:51:26.080" video="qanda-windows" id="subtitle"]]
+[[!template text="""We have about two more minutes, Corwin. Yeah. It'll take that entire two minutes to, uh,""" start="00:51:37.360" video="qanda-windows" id="subtitle"]]
+[[!template text="""load this directory because I am, because I have not yet ever pruned any of these dang binaries.""" start="00:51:50.400" video="qanda-windows" id="subtitle"]]
+[[!template text="""So every version of, uh, Emacs 29 that I've ever made for myself is probably here. Nice.""" start="00:51:56.400" video="qanda-windows" id="subtitle"]]
+[[!template text="""Uh, I strongly recommend that you bookmark this folder if you're using these for something and""" start="00:52:03.600" video="qanda-windows" id="subtitle"]]
+[[!template text="""you always want the latest. Um, so here, this particular, uh, latest 29, Emacs 29 latest,""" start="00:52:08.480" video="qanda-windows" id="subtitle"]]
+[[!template text="""or simply replace the 29 with 30 to get those. Uh, alas, no, no such luck for TreeSetter.""" start="00:52:14.240" video="qanda-windows" id="subtitle"]]
+[[!template text="""But if we look at, uh, that,""" start="00:52:23.120" video="qanda-windows" id="subtitle"]]
+[[!template text="""live this long without making a typo. Now look at me.""" start="00:52:36.400" video="qanda-windows" id="subtitle"]]
+[[!template text="""Uh-oh. Oh.""" start="00:52:40.320" video="qanda-windows" id="subtitle"]]
+[[!template text="""So here, um, you know, we can see the icon application and so on, even in the TreeSetter""" start="00:52:51.520" video="qanda-windows" id="subtitle"]]
+[[!template text="""folder. This is all I'm talking about, about the fanciness that's set up by that other script that""" start="00:52:56.720" video="qanda-windows" id="subtitle"]]
+[[!template text="""I'm showing over here and run after each time I run the upload. It just""" start="00:53:02.400" video="qanda-windows" id="subtitle"]]
+[[!template text="""looks to see if anything's new and add some lines to the .htaccess file.""" start="00:53:07.840" video="qanda-windows" id="subtitle"]]
+[[!template text="""Um, I'm particularly proud of this one. I'm not going to lie. Um, linking out to each,""" start="00:53:15.840" video="qanda-windows" id="subtitle"]]
+[[!template text="""each, uh, project that we're using, letting us know the commit version,""" start="00:53:22.400" video="qanda-windows" id="subtitle"]]
+[[!template text="""and then, uh, for the DLLs, quick link out to the log and the signature file for this DLL. Um,""" start="00:53:26.560" video="qanda-windows" id="subtitle"]]
+[[!template text="""I find that a lot, just a lot more readable than, uh, listing them all out individually. And I'd""" start="00:53:36.960" video="qanda-windows" id="subtitle"]]
+[[!template text="""love to do something like that on the GNU site. So I'm, I think we've got to be out of time by""" start="00:53:46.160" video="qanda-windows" id="subtitle"]]
+[[!template text="""now. I've just got to say, hey, thanks again for having me, uh, for those that, uh, watch the talk""" start="00:53:53.360" video="qanda-windows" id="subtitle"]]
+[[!template text="""either live or after the conference. Uh, appreciate everyone's support to get me to""" start="00:53:59.600" video="qanda-windows" id="subtitle"]]
+[[!template text="""the point where I will be able to, uh, to do this, this, this cool volunteer task,""" start="00:54:04.400" video="qanda-windows" id="subtitle"]]
+[[!template text="""uh, which is fun and easy to do and reach out to me if you're interested in helping with it.""" start="00:54:10.320" video="qanda-windows" id="subtitle"]]
+[[!template text="""Well, awesome. Thanks a lot for the awesome talk, Corbyn. And, uh, of course, as a fellow""" start="00:54:18.960" video="qanda-windows" id="subtitle"]]
+[[!template text="""core, uh, core organizer, uh, for all, for all that you do, um, in and around Emacs Conf""" start="00:54:24.320" video="qanda-windows" id="subtitle"]]
+[[!template text="""and of course for, uh, GNU Emacs as well, it's much appreciated.""" start="00:54:29.920" video="qanda-windows" id="subtitle"]]
+[[!template text="""Big, big words from coming from you, my friend. Um, thanks for the kind words.""" start="00:54:36.160" video="qanda-windows" id="subtitle"]]
+[[!template text="""Cheers. My pleasure. All right. And with that, I think we're gonna, uh, wrap up the dev, uh,""" start="00:54:45.040" video="qanda-windows" id="subtitle"]]
+[[!template text="""track here and, uh, we'll be with you again shortly in a few minutes on the gen stream,""" start="00:54:49.840" video="qanda-windows" id="subtitle"]]
+[[!template text="""the gen track for the closing remarks for today, um, only for today, because we're going to be""" start="00:54:55.360" video="qanda-windows" id="subtitle"]]
+[[!template text="""back tomorrow again as well. So don't go anywhere and, uh, see you on the gen track in a bit.""" start="00:55:00.400" video="qanda-windows" id="subtitle"]]
+[[!template text="""Oh my God, I did it. We got done within the time. You're my hero. Um, and thank you so""" start="00:55:25.920" video="qanda-windows" id="subtitle"]]
+[[!template text="""much for just keeping me honest there and, uh, like helping me keep my eye on the time and such.""" start="00:55:32.720" video="qanda-windows" id="subtitle"]]
+[[!template text="""You have to look at the recording and see whether you feel like doing it again.""" start="00:55:41.520" video="qanda-windows" id="subtitle"]]
+[[!template text="""I'm sorry. I had my sound screwed up and I'm sorry if I talked over somebody,""" start="00:55:56.160" video="qanda-windows" id="subtitle"]]
+[[!template text="""I couldn't hear anything on mumble until this very moment.""" start="00:55:59.520" video="qanda-windows" id="subtitle"]]
+[[!template text="""Oh, uh, because he's your webcam for it. Um, like as a, like a virtual webcam thingy,""" start="00:56:03.520" video="qanda-windows" id="subtitle"]]
+[[!template text="""it was low res, especially when things are changing as you're scrolling around. So we'll""" start="00:56:09.440" video="qanda-windows" id="subtitle"]]
+[[!template text="""see what kind of recording we can recover from it. And then you can decide whether you maybe""" start="00:56:15.760" video="qanda-windows" id="subtitle"]]
+[[!template text="""want to clean it up with like screenshots. I recorded on this end too. We shouldn't have""" start="00:56:19.920" video="qanda-windows" id="subtitle"]]
+[[!template text="""that problem with my recording. Thank you. Thank you. Thank you. I think we're still live on the""" start="00:56:26.480" video="qanda-windows" id="subtitle"]]
+[[!template text="""dev stream. Someone could, uh, take that off. Oh, yes. Because, uh, I'll, I'll set it to rebroadcast.""" start="00:56:30.720" video="qanda-windows" id="subtitle"]]
+[[!template text="""Yeah. I love doing that for the closing remarks. That's a fine tradition""" start="00:56:45.520" video="qanda-windows" id="subtitle"]]
+[[!template text="""or it's a tradition now. Cause I'm pretty sure this means we've done it twice.""" start="00:56:52.000" video="qanda-windows" id="subtitle"]]
+[[!template text="""I once heard that, you know, uh, as a fan-ish meaning like a fan-ish is a term of endearment""" start="00:57:01.680" video="qanda-windows" id="subtitle"]]
+[[!template text="""for a science fiction fan to another. We say we're, we're fans or things we do are fan-ish and""" start="00:57:07.360" video="qanda-windows" id="subtitle"]]
+[[!template text="""a fan-ish tradition then is if you do it three times, it's tradition, but we're on a budget here.""" start="00:57:12.800" video="qanda-windows" id="subtitle"]]
+[[!template text="""So, all right. I think we should, um, head over to mumble and talk on mumble. Um, and just decide""" start="00:57:19.680" video="qanda-windows" id="subtitle"]]
+[[!template text="""and see like which big blue button room we're going to be in for closing. Okay. So we're clear""" start="00:57:31.600" video="qanda-windows" id="subtitle"]]
+[[!template text="""on BBB here? Yep. I think so.""" start="00:57:36.240" video="qanda-windows" id="subtitle"]]
+
+</div>Questions or comments? Please e-mail [corwin@bru.st](mailto:corwin@bru.st?subject=Comment%20for%20EmacsConf%202023%20windows%3A%20Windows%20into%20Freedom)
<!-- End of emacsconf-publish-after-page -->
diff --git a/2023/info/windows-before.md b/2023/info/windows-before.md
index da687e0f..c3914bf7 100644
--- a/2023/info/windows-before.md
+++ b/2023/info/windows-before.md
@@ -1,12 +1,18 @@
<!-- Automatically generated by emacsconf-publish-before-page -->
[[!toc ]]
-Format: 40-min talk followed by live web conference Q&A
-Discuss on IRC: [#emacsconf](https://chat.emacsconf.org/?join=emacsconf)
-Status: Waiting for video from speaker
+Format: 58-min talk ; Q&A: BigBlueButton conference room
+Status: Q&A to be extracted from the room recordings
+# Talk
+
+<div class="vid mainVideo"><video controls preload="none" id="mainVideo-windows"><source src="https://media.emacsconf.org/2023/emacsconf-2023-windows--windows-into-freedom--corwin-brust--main.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2023/captions/emacsconf-2023-windows--windows-into-freedom--corwin-brust--main.vtt" default />"""<p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video><div></div>Duration: 57:48 minutes<div class="files resources"><ul><li><a href="https://pad.emacsconf.org/2023-windows">Open Etherpad</a></li><li><a href="https://bbb.emacsverse.org/playback/presentation/2.0/playback.html?meetingId=38dd7a08335a90614084b3d860f9da7e03414d8d-1701549705139">Play recording from BigBlueButton</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-windows--windows-into-freedom--corwin-brust--intro.vtt">Download --intro.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-windows--windows-into-freedom--corwin-brust--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-windows--windows-into-freedom--corwin-brust--main.opus">Download --main.opus (29MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-windows--windows-into-freedom--corwin-brust--main.vtt">Download --main.vtt</a> (unedited)</li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-windows--windows-into-freedom--corwin-brust--main.webm">Download --main.webm (80MB)</a></li><li><a href="https://toobnix.org/w/4DeRkvJyKFdCBLWnHtsZW2">View on Toobnix</a></li><li><a href="https://www.youtube.com/watch?v=7aVgVd2_HTs">View on Youtube</a></li></ul></div></div>
+
+# Q&A
+
+<div class="vid qanda"><div>Listen to just the audio:<br /><audio controls preload="none" id="qanda-windows-audio" src="https://media.emacsconf.org/2023/emacsconf-2023-windows--windows-into-freedom--corwin-brust--answers.opus"></audio></div><div></div><div class="files resources"><ul><li><a href="https://pad.emacsconf.org/2023-windows">Open Etherpad</a></li><li><a href="https://bbb.emacsverse.org/playback/presentation/2.0/playback.html?meetingId=38dd7a08335a90614084b3d860f9da7e03414d8d-1701549705139">Play recording from BigBlueButton</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-windows--windows-into-freedom--corwin-brust--answers.opus">Download --answers.opus (29MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-windows--windows-into-freedom--corwin-brust--answers.vtt">Download --answers.vtt</a> (unedited)</li></ul></div></div>
# Description
<!-- End of emacsconf-publish-before-page --> \ No newline at end of file
diff --git a/2023/info/windows-nav.md b/2023/info/windows-nav.md
index a595b88c..d7ebb4cb 100644
--- a/2023/info/windows-nav.md
+++ b/2023/info/windows-nav.md
@@ -1,7 +1,7 @@
<div class="talk-nav">
Back to the [[talks]]
-Previous by track: <a href="/2023/talks/lspocaml">Writing a language server in OCaml for Emacs, fun, and profit</a>
-Next by track: <a href="/2023/talks/emacsconf">EmacsConf.org: How we use Org Mode and TRAMP to organize and run a multi-track conference</a>
-Track: <span class="sched-track Development">Development</span>
+Previous by track: <a href="/2023/talks/doc">Literate Documentation with Emacs and Org Mode</a>
+Next by track: <a href="/2023/talks/scheme">Bringing joy to Scheme programming</a>
+Track: <span class="sched-track Development">Development</span> - <strong><a href="https://emacsconf.org/2023/watch/dev">Watch</a></strong>
</div>
diff --git a/2023/info/world-after.md b/2023/info/world-after.md
new file mode 100644
index 00000000..f8af282c
--- /dev/null
+++ b/2023/info/world-after.md
@@ -0,0 +1,236 @@
+<!-- Automatically generated by emacsconf-publish-after-page -->
+
+
+<div class="transcript transcript-mainVideo"><a name="world-mainVideo-transcript"></a><h1>Transcript</h1>
+
+
+<div class="transcript-heading">[[!template new="1" text="""Draw and scribble in GNU Emacs""" start="00:00:00.780" video="mainVideo-world" id="subtitle"]]</div>[[!template text="""Hello. In this video, we will look at""" start="00:00:00.780" video="mainVideo-world" id="subtitle"]]
+[[!template text="""drawing and scribbling in Emacs using SVG.""" start="00:00:02.900" video="mainVideo-world" id="subtitle"]]
+[[!template text="""Let's start with `canvas-mode`.""" start="00:00:07.167" video="mainVideo-world" id="subtitle"]]
+[[!template text="""We will define the width and the height.""" start="00:00:10.067" video="mainVideo-world" id="subtitle"]]
+[[!template text="""The default is polyline,""" start="00:00:17.540" video="mainVideo-world" id="subtitle"]]
+[[!template text="""which means you can scribble anything that you want.""" start="00:00:19.333" video="mainVideo-world" id="subtitle"]]
+[[!template text="""Very handy for taking quick notes.""" start="00:00:23.733" video="mainVideo-world" id="subtitle"]]
+[[!template text="""Now we will look at""" start="00:00:30.300" video="mainVideo-world" id="subtitle"]]
+[[!template text="""drawing a triangle using some lines.""" start="00:00:32.700" video="mainVideo-world" id="subtitle"]]
+[[!template text="""Okay. Now let's draw a circle.""" start="00:00:46.333" video="mainVideo-world" id="subtitle"]]
+[[!template text="""You can use the mouse to adjust""" start="00:00:57.267" video="mainVideo-world" id="subtitle"]]
+[[!template text="""the radius of the circle.""" start="00:00:58.900" video="mainVideo-world" id="subtitle"]]
+[[!template text="""There is some problem with ellipse,""" start="00:01:02.860" video="mainVideo-world" id="subtitle"]]
+[[!template text="""we will look at it at the end of the video.""" start="00:01:04.333" video="mainVideo-world" id="subtitle"]]
+[[!template text="""Now let's put up some text,""" start="00:01:07.940" video="mainVideo-world" id="subtitle"]]
+[[!template text="""a typical &quot;Hello World&quot;.""" start="00:01:11.767" video="mainVideo-world" id="subtitle"]]
+[[!template text="""Size, let's do a 20 font size,""" start="00:01:15.067" video="mainVideo-world" id="subtitle"]]
+[[!template text="""and we will use the default font family.""" start="00:01:19.880" video="mainVideo-world" id="subtitle"]]
+[[!template text="""Next, we will look at undoing what we have drawn.""" start="00:01:32.360" video="mainVideo-world" id="subtitle"]]
+[[!template text="""Just press u for deleting the last drawn object.""" start="00:01:37.433" video="mainVideo-world" id="subtitle"]]
+[[!template text="""And you can continue pressing""" start="00:01:43.067" video="mainVideo-world" id="subtitle"]]
+[[!template text="""u for consecutive deletions.""" start="00:01:45.800" video="mainVideo-world" id="subtitle"]]
+[[!template text="""You can also make a selection of the objects""" start="00:01:51.960" video="mainVideo-world" id="subtitle"]]
+[[!template text="""on the screen using your mouse and then press u.""" start="00:01:54.533" video="mainVideo-world" id="subtitle"]]
+[[!template text="""This will delete all the objects in one go.""" start="00:01:57.700" video="mainVideo-world" id="subtitle"]]
+[[!template text="""Now we are looking at stroke color.""" start="00:02:02.600" video="mainVideo-world" id="subtitle"]]
+[[!template text="""We will use a brown stroke color""" start="00:02:06.660" video="mainVideo-world" id="subtitle"]]
+[[!template text="""for drawing our objects.""" start="00:02:08.633" video="mainVideo-world" id="subtitle"]]
+[[!template text="""Next, let's look at stroke width.""" start="00:02:12.880" video="mainVideo-world" id="subtitle"]]
+[[!template text="""We will use a width of 5.""" start="00:02:20.420" video="mainVideo-world" id="subtitle"]]
+[[!template text="""Next, let's fill up the objects with a fill color.""" start="00:02:27.980" video="mainVideo-world" id="subtitle"]]
+[[!template text="""Now we will look at zoom.""" start="00:02:41.620" video="mainVideo-world" id="subtitle"]]
+[[!template text="""Use the mouse to select a region and zoom.""" start="00:02:47.160" video="mainVideo-world" id="subtitle"]]
+[[!template text="""You can also use +, - for zooming in and out.""" start="00:02:50.120" video="mainVideo-world" id="subtitle"]]
+[[!template text="""Press 0 for resetting the zoom.""" start="00:02:54.360" video="mainVideo-world" id="subtitle"]]
+[[!template text="""Next, let's save the file,""" start="00:03:07.133" video="mainVideo-world" id="subtitle"]]
+[[!template text="""and q or Enter for exiting the canvas-mode.""" start="00:03:14.540" video="mainVideo-world" id="subtitle"]]
+[[!template text="""Now we will open the file in Emacs itself.""" start="00:03:19.667" video="mainVideo-world" id="subtitle"]]
+[[!template text="""You can see the file,""" start="00:03:25.220" video="mainVideo-world" id="subtitle"]]
+[[!template text="""you can do Control-c Control-c (`C-c C-c`).""" start="00:03:26.180" video="mainVideo-world" id="subtitle"]]
+[[!template text="""Finally, we look at ellipse.""" start="00:03:32.000" video="mainVideo-world" id="subtitle"]]
+[[!template text="""That's all for this video. Thanks!""" start="00:03:44.420" video="mainVideo-world" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""SVG Symbols library""" start="00:03:46.400" video="mainVideo-world" id="subtitle"]]</div>[[!template text="""Hello. In this video, we will draw""" start="00:03:46.400" video="mainVideo-world" id="subtitle"]]
+[[!template text="""schematics using symbols from SVG library in Emacs.""" start="00:03:48.333" video="mainVideo-world" id="subtitle"]]
+[[!template text="""Press capital L to activate the symbol library""" start="00:03:52.067" video="mainVideo-world" id="subtitle"]]
+[[!template text="""that you can see on the right hand side,""" start="00:03:55.000" video="mainVideo-world" id="subtitle"]]
+[[!template text="""and place the symbol on the canvas.""" start="00:03:57.867" video="mainVideo-world" id="subtitle"]]
+[[!template text="""Let's add another register to this diagram.""" start="00:04:01.960" video="mainVideo-world" id="subtitle"]]
+[[!template text="""You can press capital R to rotate the symbol.""" start="00:04:06.640" video="mainVideo-world" id="subtitle"]]
+[[!template text="""Let's place it on the canvas.""" start="00:04:11.820" video="mainVideo-world" id="subtitle"]]
+[[!template text="""Now we will add a voltage source to the circuit.""" start="00:04:17.240" video="mainVideo-world" id="subtitle"]]
+[[!template text="""To connect the symbols,""" start="00:04:31.667" video="mainVideo-world" id="subtitle"]]
+[[!template text="""we will have to use some connecting wires.""" start="00:04:33.180" video="mainVideo-world" id="subtitle"]]
+[[!template text="""For that, press capital W""" start="00:04:36.967" video="mainVideo-world" id="subtitle"]]
+[[!template text="""to activate the connection mode.""" start="00:04:39.467" video="mainVideo-world" id="subtitle"]]
+[[!template text="""Click anywhere on the canvas""" start="00:04:46.920" video="mainVideo-world" id="subtitle"]]
+[[!template text="""to draw intermediate points, and press Esc""" start="00:04:48.567" video="mainVideo-world" id="subtitle"]]
+[[!template text="""to exit that particular connection.""" start="00:04:53.133" video="mainVideo-world" id="subtitle"]]
+[[!template text="""Let's connect other symbols too.""" start="00:05:00.033" video="mainVideo-world" id="subtitle"]]
+[[!template text="""That's all for this video. Thanks.""" start="00:05:16.633" video="mainVideo-world" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""GNU Emacs: A multimedia editor""" start="00:05:20.140" video="mainVideo-world" id="subtitle"]]</div>[[!template text="""Hello. In this video, we will look at""" start="00:05:20.140" video="mainVideo-world" id="subtitle"]]
+[[!template text="""some basic multimedia editing using Emacs.""" start="00:05:22.167" video="mainVideo-world" id="subtitle"]]
+[[!template text="""Let's start a media-edit session.""" start="00:05:24.933" video="mainVideo-world" id="subtitle"]]
+[[!template text="""Let's open a video file.""" start="00:05:27.460" video="mainVideo-world" id="subtitle"]]
+[[!template text="""The left-hand side is your viewer area,""" start="00:05:32.000" video="mainVideo-world" id="subtitle"]]
+[[!template text="""and the right-hand side is your track area.""" start="00:05:34.100" video="mainVideo-world" id="subtitle"]]
+[[!template text="""In the track area, you can use normal Emacs""" start="00:05:36.700" video="mainVideo-world" id="subtitle"]]
+[[!template text="""text editing movements.""" start="00:05:39.667" video="mainVideo-world" id="subtitle"]]
+[[!template text="""Now press `C-c r` to refresh the viewer mode""" start="00:05:42.040" video="mainVideo-world" id="subtitle"]]
+[[!template text="""with the exact time frame.""" start="00:05:48.167" video="mainVideo-world" id="subtitle"]]
+[[!template text="""Now press SPC to play or pause the video.""" start="00:05:52.767" video="mainVideo-world" id="subtitle"]]
+[[!template text="""This looks like an interesting point in the video,""" start="00:05:59.433" video="mainVideo-world" id="subtitle"]]
+[[!template text="""let's track it and split it. Press Enter to do that.""" start="00:06:03.233" video="mainVideo-world" id="subtitle"]]
+[[!template text="""We will extract some 10 seconds of this video.""" start="00:06:11.433" video="mainVideo-world" id="subtitle"]]
+[[!template text="""Let's use this.""" start="00:06:20.733" video="mainVideo-world" id="subtitle"]]
+[[!template text="""Now go here and delete all these lines.""" start="00:06:23.233" video="mainVideo-world" id="subtitle"]]
+[[!template text="""Let's review our edited clip.""" start="00:06:26.300" video="mainVideo-world" id="subtitle"]]
+[[!template text="""Looks good! Now press e to export the video.""" start="00:06:44.133" video="mainVideo-world" id="subtitle"]]
+[[!template text="""Provide an output file name.""" start="00:06:51.833" video="mainVideo-world" id="subtitle"]]
+[[!template text="""This will use FFmpeg to convert, and you can""" start="00:06:57.560" video="mainVideo-world" id="subtitle"]]
+[[!template text="""output to any file format supported by FFmpeg.""" start="00:07:04.433" video="mainVideo-world" id="subtitle"]]
+[[!template text="""Okay. Let's open up shell and view this""" start="00:07:16.967" video="mainVideo-world" id="subtitle"]]
+[[!template text="""video file in an external video player.""" start="00:07:21.900" video="mainVideo-world" id="subtitle"]]
+[[!template text="""That's all for this video. Thanks.""" start="00:07:57.160" video="mainVideo-world" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Fill PDF form using GNU Emacs""" start="00:08:03.367" video="mainVideo-world" id="subtitle"]]</div>[[!template text="""Hello. In this video, we will look at""" start="00:08:03.367" video="mainVideo-world" id="subtitle"]]
+[[!template text="""editing a PDF form using GNU Emacs.""" start="00:08:05.567" video="mainVideo-world" id="subtitle"]]
+[[!template text="""To start, we have to enable the annotation.""" start="00:08:09.760" video="mainVideo-world" id="subtitle"]]
+[[!template text="""Then we can use Tab to move forward and Shift+Tab""" start="00:08:13.840" video="mainVideo-world" id="subtitle"]]
+[[!template text="""to move backwards through the fields.""" start="00:08:18.533" video="mainVideo-world" id="subtitle"]]
+[[!template text="""To edit a field, we press e.""" start="00:08:22.480" video="mainVideo-world" id="subtitle"]]
+[[!template text="""So let's edit a text box. We'll call it 'city'.""" start="00:08:25.967" video="mainVideo-world" id="subtitle"]]
+[[!template text="""Next, we will edit a drop-down.""" start="00:08:33.580" video="mainVideo-world" id="subtitle"]]
+[[!template text="""Again, press e, and you get a select.""" start="00:08:35.840" video="mainVideo-world" id="subtitle"]]
+[[!template text="""Use the Minibuffer to select one of the values.""" start="00:08:38.680" video="mainVideo-world" id="subtitle"]]
+[[!template text="""Let's select 'France'.""" start="00:08:45.833" video="mainVideo-world" id="subtitle"]]
+[[!template text="""Now let's edit a radio box.""" start="00:08:48.500" video="mainVideo-world" id="subtitle"]]
+[[!template text="""A checkbox or a radio box can be toggled using t.""" start="00:08:52.180" video="mainVideo-world" id="subtitle"]]
+[[!template text="""You can disable…""" start="00:08:55.900" video="mainVideo-world" id="subtitle"]]
+[[!template text="""Now let's save the file, `doc-view-save-form`.""" start="00:08:58.660" video="mainVideo-world" id="subtitle"]]
+[[!template text="""It will ask for a file name.""" start="00:09:05.140" video="mainVideo-world" id="subtitle"]]
+[[!template text="""Let's call it `filled1.pdf`. If the file exists,""" start="00:09:08.360" video="mainVideo-world" id="subtitle"]]
+[[!template text="""it will ask you if you want to overwrite.""" start="00:09:13.400" video="mainVideo-world" id="subtitle"]]
+[[!template text="""Now let's verify this new file.""" start="00:09:17.260" video="mainVideo-world" id="subtitle"]]
+[[!template text="""In Firefox, we'll copy this file name, call it filled1.""" start="00:09:21.460" video="mainVideo-world" id="subtitle"]]
+[[!template text="""Let's verify the values.""" start="00:09:27.160" video="mainVideo-world" id="subtitle"]]
+[[!template text="""You have city, France and Driving License selected.""" start="00:09:29.100" video="mainVideo-world" id="subtitle"]]
+[[!template text="""That's all for this video. Thanks.""" start="00:09:32.620" video="mainVideo-world" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Desktop and window management in GNU Emacs""" start="00:09:34.900" video="mainVideo-world" id="subtitle"]]</div>[[!template text="""Hello. In this video, we will look at""" start="00:09:34.900" video="mainVideo-world" id="subtitle"]]
+[[!template text="""desktop and window management in GNU Emacs.""" start="00:09:37.660" video="mainVideo-world" id="subtitle"]]
+[[!template text="""We'll start with `task-view`.""" start="00:09:40.460" video="mainVideo-world" id="subtitle"]]
+[[!template text="""Top row shows all the desktops,""" start="00:09:47.740" video="mainVideo-world" id="subtitle"]]
+[[!template text="""and rest of the images are the active windows""" start="00:09:50.467" video="mainVideo-world" id="subtitle"]]
+[[!template text="""in that particular desktop.""" start="00:09:54.400" video="mainVideo-world" id="subtitle"]]
+[[!template text="""You can tap to select""" start="00:09:59.300" video="mainVideo-world" id="subtitle"]]
+[[!template text="""and double tap to activate a particular window.""" start="00:10:09.160" video="mainVideo-world" id="subtitle"]]
+[[!template text="""You can use m to move selected windows""" start="00:10:13.320" video="mainVideo-world" id="subtitle"]]
+[[!template text="""to any of the desktops at the top.""" start="00:10:16.767" video="mainVideo-world" id="subtitle"]]
+[[!template text="""Let's check the third desktop.""" start="00:10:25.100" video="mainVideo-world" id="subtitle"]]
+[[!template text="""Let's bring it back to the second desktop.""" start="00:10:29.320" video="mainVideo-world" id="subtitle"]]
+[[!template text="""The best part,""" start="00:10:49.980" video="mainVideo-world" id="subtitle"]]
+[[!template text="""you can select multiple windows""" start="00:10:51.300" video="mainVideo-world" id="subtitle"]]
+[[!template text="""and form a group by pressing g.""" start="00:10:54.800" video="mainVideo-world" id="subtitle"]]
+[[!template text="""Then you can select any of the windows""" start="00:10:59.980" video="mainVideo-world" id="subtitle"]]
+[[!template text="""in this group to activate the complete group.""" start="00:11:04.867" video="mainVideo-world" id="subtitle"]]
+[[!template text="""That's all for this video. Thanks.""" start="00:11:07.640" video="mainVideo-world" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Screen mirroring in GNU Emacs""" start="00:11:10.440" video="mainVideo-world" id="subtitle"]]</div>[[!template text="""Hello. In this video, we will look at""" start="00:11:10.440" video="mainVideo-world" id="subtitle"]]
+[[!template text="""screen mirroring using GNU Emacs.""" start="00:11:12.433" video="mainVideo-world" id="subtitle"]]
+[[!template text="""Run `wfd`. Select an interface.""" start="00:11:14.280" video="mainVideo-world" id="subtitle"]]
+[[!template text="""Now it will scan for all the available devices""" start="00:11:18.780" video="mainVideo-world" id="subtitle"]]
+[[!template text="""for screen mirroring.""" start="00:11:20.967" video="mainVideo-world" id="subtitle"]]
+[[!template text="""I'll select my TV, which is an LG WebOS TV.""" start="00:11:24.800" video="mainVideo-world" id="subtitle"]]
+[[!template text="""If you don't decline, it will start streaming.""" start="00:11:30.400" video="mainVideo-world" id="subtitle"]]
+[[!template text="""Let's change some buffer to check the visuals.""" start="00:11:38.720" video="mainVideo-world" id="subtitle"]]
+[[!template text="""To terminate the session, just click on quit.""" start="00:11:45.140" video="mainVideo-world" id="subtitle"]]
+[[!template text="""That's all for this video. Thanks.""" start="00:11:50.220" video="mainVideo-world" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Swipe for Text Input in GNU Emacs""" start="00:11:53.033" video="mainVideo-world" id="subtitle"]]</div>[[!template text="""[Using Sweep to swipe and type &quot;as you like it.&quot;]""" start="00:11:53.033" video="mainVideo-world" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Formula Editor in GNU Emacs""" start="00:12:25.533" video="mainVideo-world" id="subtitle"]]</div>[[!template text="""[Formula Editor]""" start="00:12:25.533" video="mainVideo-world" id="subtitle"]]
+[[!template text="""[Typing fractions in the formula]""" start="00:12:39.900" video="mainVideo-world" id="subtitle"]]
+[[!template text="""[Adding brackets and an exponent]""" start="00:12:45.033" video="mainVideo-world" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Transliteration in Emacs""" start="00:12:59.433" video="mainVideo-world" id="subtitle"]]</div>[[!template text="""[Hindi (Devanagari script) Phonetic typing]""" start="00:12:59.433" video="mainVideo-world" id="subtitle"]]
+[[!template text="""[Phonetic typing Gujarati, Bangla, Kannada, and Tamil]""" start="00:13:05.200" video="mainVideo-world" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Social Media client - Tumblr, Reddit""" start="00:13:09.433" video="mainVideo-world" id="subtitle"]]</div>[[!template text="""[Browsing Reddit in Emacs]""" start="00:13:09.433" video="mainVideo-world" id="subtitle"]]
+[[!template text="""[Browsing Tumblr in Emacs]""" start="00:13:19.533" video="mainVideo-world" id="subtitle"]]
+[[!template text="""[Browsing X (Twitter) in Emacs]""" start="00:13:29.533" video="mainVideo-world" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Comics Builder""" start="00:13:40.000" video="mainVideo-world" id="subtitle"]]</div>[[!template text="""[Generating comic from a text script]""" start="00:13:40.000" video="mainVideo-world" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Matching game""" start="00:13:49.567" video="mainVideo-world" id="subtitle"]]</div>[[!template text="""[Matching color names with color boxes]""" start="00:13:49.567" video="mainVideo-world" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Interactive XPath Builder in GNU Emacs""" start="00:13:59.567" video="mainVideo-world" id="subtitle"]]</div>[[!template text="""[Running `xpath-builder` on an XML file]""" start="00:13:59.567" video="mainVideo-world" id="subtitle"]]
+[[!template text="""[Filtering `title`, `para`, and `author` from the XML]""" start="00:14:01.833" video="mainVideo-world" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Interactive JSON Builder in GNU Emacs""" start="00:14:10.767" video="mainVideo-world" id="subtitle"]]</div>[[!template text="""[Filtering `father`, `father.name`, `children`""" start="00:14:10.767" video="mainVideo-world" id="subtitle"]]
+[[!template text="""`children[1]` from a JSON using JSON Builder]""" start="00:14:29.200" video="mainVideo-world" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""GNU Emacs as a lightweight IDE (CEDET Semantic): Java - Generate getter/setter""" start="00:14:35.233" video="mainVideo-world" id="subtitle"]]</div>[[!template text="""Hello. In this video, we will look at""" start="00:14:35.233" video="mainVideo-world" id="subtitle"]]
+[[!template text="""generating getters and setters in Java using Emacs.""" start="00:14:37.633" video="mainVideo-world" id="subtitle"]]
+[[!template text="""We will run `srecode-getset-dialog`.""" start="00:14:41.660" video="mainVideo-world" id="subtitle"]]
+[[!template text="""We will get an option to select particular fields,""" start="00:14:46.233" video="mainVideo-world" id="subtitle"]]
+[[!template text="""you can expand and collapse.""" start="00:14:48.767" video="mainVideo-world" id="subtitle"]]
+[[!template text="""You can select all or deselect all,""" start="00:14:51.833" video="mainVideo-world" id="subtitle"]]
+[[!template text="""or you can choose any particular getter.""" start="00:14:54.100" video="mainVideo-world" id="subtitle"]]
+[[!template text="""So let's do protected version of this. Here you go.""" start="00:14:56.386" video="mainVideo-world" id="subtitle"]]
+[[!template text="""If you want to generate for other fields,""" start="00:15:02.633" video="mainVideo-world" id="subtitle"]]
+[[!template text="""you can re-run it.""" start="00:15:06.067" video="mainVideo-world" id="subtitle"]]
+[[!template text="""You can check the one that you have already""" start="00:15:08.300" video="mainVideo-world" id="subtitle"]]
+[[!template text="""generated is not there.""" start="00:15:11.267" video="mainVideo-world" id="subtitle"]]
+[[!template text="""Now select all, and you can see rest of the""" start="00:15:13.100" video="mainVideo-world" id="subtitle"]]
+[[!template text="""getters and setters have been generated.""" start="00:15:22.300" video="mainVideo-world" id="subtitle"]]
+[[!template text="""That's all for this video. Thanks.""" start="00:15:23.933" video="mainVideo-world" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Generate C header""" start="00:15:26.133" video="mainVideo-world" id="subtitle"]]</div>[[!template text="""[Generating C headers using `srecode-gen-header`]""" start="00:15:26.133" video="mainVideo-world" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""C Rename symbols""" start="00:16:11.640" video="mainVideo-world" id="subtitle"]]</div>[[!template text="""Hello. In this video, we will look at""" start="00:16:11.640" video="mainVideo-world" id="subtitle"]]
+[[!template text="""renaming method across multiple files in a project.""" start="00:16:13.833" video="mainVideo-world" id="subtitle"]]
+[[!template text="""Let's start with `semantic-symref-symbol`.""" start="00:16:17.633" video="mainVideo-world" id="subtitle"]]
+[[!template text="""Now we have the references.""" start="00:16:24.640" video="mainVideo-world" id="subtitle"]]
+[[!template text="""Let's use the menu to open all these occurrences.""" start="00:16:26.800" video="mainVideo-world" id="subtitle"]]
+[[!template text="""To rename it, we have to use""" start="00:16:35.400" video="mainVideo-world" id="subtitle"]]
+[[!template text="""&quot;Rename Symbol in Open hits.&quot;""" start="00:16:38.433" video="mainVideo-world" id="subtitle"]]
+[[!template text="""Let's rename it to underscore 1 (`_1`).""" start="00:16:41.920" video="mainVideo-world" id="subtitle"]]
+[[!template text="""We will verify it by compiling the project.""" start="00:16:46.440" video="mainVideo-world" id="subtitle"]]
+[[!template text="""Let's open the `*Messages*` buffer to see the results""" start="00:16:57.720" video="mainVideo-world" id="subtitle"]]
+[[!template text="""more clearly. No errors.""" start="00:17:00.300" video="mainVideo-world" id="subtitle"]]
+[[!template text="""That's all for this video. Thanks.""" start="00:17:04.167" video="mainVideo-world" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""SQL (offline)""" start="00:17:07.640" video="mainVideo-world" id="subtitle"]]</div>[[!template text="""Hello. In this video, we will look at""" start="00:17:07.640" video="mainVideo-world" id="subtitle"]]
+[[!template text="""SQL editing with Semantic.""" start="00:17:09.733" video="mainVideo-world" id="subtitle"]]
+[[!template text="""We will define a schema in this SQL document.""" start="00:17:12.440" video="mainVideo-world" id="subtitle"]]
+[[!template text="""Let's create a table.""" start="00:17:16.620" video="mainVideo-world" id="subtitle"]]
+[[!template text="""We get already existing tables""" start="00:17:27.000" video="mainVideo-world" id="subtitle"]]
+[[!template text="""in the current document.""" start="00:17:30.267" video="mainVideo-world" id="subtitle"]]
+[[!template text="""It also supports auto-completion of some keywords.""" start="00:17:38.533" video="mainVideo-world" id="subtitle"]]
+[[!template text="""Now we can do some queries on the tables.""" start="00:17:57.033" video="mainVideo-world" id="subtitle"]]
+[[!template text="""We have `SELECT` as the keyword or the SQL,""" start="00:18:00.900" video="mainVideo-world" id="subtitle"]]
+[[!template text="""so we will select the SQL.""" start="00:18:03.333" video="mainVideo-world" id="subtitle"]]
+[[!template text="""Here we have all the tables existing in this schema.""" start="00:18:06.833" video="mainVideo-world" id="subtitle"]]
+[[!template text="""We can also use an alias for completions.""" start="00:18:13.560" video="mainVideo-world" id="subtitle"]]
+[[!template text="""Now let's look at a more complex example.""" start="00:18:25.633" video="mainVideo-world" id="subtitle"]]
+[[!template text="""We will try to do a join on two tables.""" start="00:18:31.267" video="mainVideo-world" id="subtitle"]]
+[[!template text="""Let's add a `WHERE` clause.""" start="00:18:43.367" video="mainVideo-world" id="subtitle"]]
+[[!template text="""Next, let's do insert.""" start="00:19:06.600" video="mainVideo-world" id="subtitle"]]
+[[!template text="""You can just click on Tab to go to the next field.""" start="00:19:23.333" video="mainVideo-world" id="subtitle"]]
+[[!template text="""Let's fill in the columns.""" start="00:19:27.967" video="mainVideo-world" id="subtitle"]]
+[[!template text="""And do a Tab to go to the values""" start="00:19:30.700" video="mainVideo-world" id="subtitle"]]
+[[!template text="""and add the corresponding values.""" start="00:19:32.667" video="mainVideo-world" id="subtitle"]]
+[[!template text="""Finally, an update.""" start="00:19:37.000" video="mainVideo-world" id="subtitle"]]
+[[!template text="""Now we will try to delete this""" start="00:19:48.033" video="mainVideo-world" id="subtitle"]]
+[[!template text="""with a `WHERE col11 = 4`.""" start="00:20:00.700" video="mainVideo-world" id="subtitle"]]
+[[!template text="""Lastly, let's try dropping the table.""" start="00:20:07.333" video="mainVideo-world" id="subtitle"]]
+[[!template text="""That's all for this video. Thanks.""" start="00:20:16.267" video="mainVideo-world" id="subtitle"]]
+[[!template text="""Slide with the text &quot;Let's Make Computing Personal.&quot;""" start="00:20:21.867" video="mainVideo-world" id="subtitle"]]
+
+</div>
+
+Captioner: bhavin192
+
+Questions or comments? Please e-mail [emacsconf-org-private@gnu.org](mailto:emacsconf-org-private@gnu.org?subject=Comment%20for%20EmacsConf%202023%20world%3A%20GNU%20Emacs%3A%20A%20World%20of%20Possibilities)
+
+
+<!-- End of emacsconf-publish-after-page -->
diff --git a/2023/info/world-before.md b/2023/info/world-before.md
new file mode 100644
index 00000000..457218f3
--- /dev/null
+++ b/2023/info/world-before.md
@@ -0,0 +1,32 @@
+<!-- Automatically generated by emacsconf-publish-before-page -->
+[[!toc ]]
+Format: 21-min talk ; Q&A: BigBlueButton conference room
+Status: Q&A to be extracted from the room recordings
+
+
+
+
+
+<div class="vid mainVideo"><video controls preload="none" id="mainVideo-world"><source src="https://media.emacsconf.org/2023/emacsconf-2023-world--gnu-emacs-a-world-of-possibilities--anand-tamariya--main.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2023/captions/emacsconf-2023-world--gnu-emacs-a-world-of-possibilities--anand-tamariya--main.vtt" default />"""<track kind="chapters" label="Chapters" src="/2023/captions/emacsconf-2023-world--gnu-emacs-a-world-of-possibilities--anand-tamariya--main--chapters.vtt" /><p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video>[[!template id="chapters" vidid="mainVideo-world" data="""
+00:00.780 Draw and scribble in GNU Emacs
+03:46.400 SVG Symbols library
+05:20.140 GNU Emacs: A multimedia editor
+08:03.367 Fill PDF form using GNU Emacs
+09:34.900 Desktop and window management in GNU Emacs
+11:10.440 Screen mirroring in GNU Emacs
+11:53.033 Swipe for Text Input in GNU Emacs
+12:25.533 Formula Editor in GNU Emacs
+12:59.433 Transliteration in Emacs
+13:09.433 Social Media client - Tumblr, Reddit
+13:40.000 Comics Builder
+13:49.567 Matching game
+13:59.567 Interactive XPath Builder in GNU Emacs
+14:10.767 Interactive JSON Builder in GNU Emacs
+14:35.233 GNU Emacs as a lightweight IDE (CEDET Semantic): Java - Generate getter/setter
+15:26.133 Generate C header
+16:11.640 C Rename symbols
+17:07.640 SQL (offline)
+
+"""]]<div></div>Duration: 20:31 minutes<div class="files resources"><ul><li><a href="https://pad.emacsconf.org/2023-world">Open Etherpad</a></li><li><a href="https://bbb.emacsverse.org/playback/presentation/2.0/playback.html?meetingId=573c5a7321e144f6cd67763c21ed7aea8f1c1497-1701617014361">Play recording from BigBlueButton</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-world--gnu-emacs-a-world-of-possibilities--anand-tamariya--intro.vtt">Download --intro.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-world--gnu-emacs-a-world-of-possibilities--anand-tamariya--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-world--gnu-emacs-a-world-of-possibilities--anand-tamariya--main--chapters.vtt">Download --main--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-world--gnu-emacs-a-world-of-possibilities--anand-tamariya--main.opus">Download --main.opus (9.3MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-world--gnu-emacs-a-world-of-possibilities--anand-tamariya--main.vtt">Download --main.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-world--gnu-emacs-a-world-of-possibilities--anand-tamariya--main.webm">Download --main.webm (66MB)</a></li><li><a href="https://toobnix.org/w/jFaSuNYt2FqibtcAvmVdbF">View on Toobnix</a></li><li><a href="https://www.youtube.com/watch?v=T5yZZK18w5w">View on Youtube</a></li></ul></div></div>
+# Description
+<!-- End of emacsconf-publish-before-page --> \ No newline at end of file
diff --git a/2023/info/world-nav.md b/2023/info/world-nav.md
new file mode 100644
index 00000000..6dd1afa3
--- /dev/null
+++ b/2023/info/world-nav.md
@@ -0,0 +1,7 @@
+
+<div class="talk-nav">
+Back to the [[talks]]
+Previous by track: <a href="/2023/talks/scheme">Bringing joy to Scheme programming</a>
+Next by track: <a href="/2023/talks/flat">A modern Emacs look-and-feel without pain</a>
+Track: <span class="sched-track Development">Development</span> - <strong><a href="https://emacsconf.org/2023/watch/dev">Watch</a></strong>
+</div>
diff --git a/2023/info/writing-after.md b/2023/info/writing-after.md
index 6ff77604..074ffac6 100644
--- a/2023/info/writing-after.md
+++ b/2023/info/writing-after.md
@@ -1,7 +1,502 @@
<!-- Automatically generated by emacsconf-publish-after-page -->
-Questions or comments? Please e-mail [jeremy@jeremyfriesen.com](mailto:jeremy@jeremyfriesen.com?subject=Comment%20for%20EmacsConf%202022%20writing%3A%20Emacs%20turbo-charges%20my%20writing)
+<div class="transcript transcript-mainVideo"><a name="writing-mainVideo-transcript"></a><h1>Transcript</h1>
+
+
+<div class="transcript-heading">[[!template new="1" text="""Intro""" start="00:00:00.000" video="mainVideo-writing" id="subtitle"]]</div>[[!template text="""Hello everyone, I'm Jeremy Friesen, pronouns he/him,""" start="00:00:00.000" video="mainVideo-writing" id="subtitle"]]
+[[!template text="""and today I'll be talking about""" start="00:00:04.560" video="mainVideo-writing" id="subtitle"]]
+[[!template text="""how Emacs turbocharges my writing.""" start="00:00:05.880" video="mainVideo-writing" id="subtitle"]]
+[[!template text="""Quick intro: I've been programming since 1998""" start="00:00:08.600" video="mainVideo-writing" id="subtitle"]]
+[[!template text="""and blogging since 2011.""" start="00:00:11.800" video="mainVideo-writing" id="subtitle"]]
+[[!template text="""In May of 2020 I switched to Emacs,""" start="00:00:14.080" video="mainVideo-writing" id="subtitle"]]
+[[!template text="""having previously used a long list of different editors.""" start="00:00:16.640" video="mainVideo-writing" id="subtitle"]]
+[[!template text="""Curious about how Emacs impacted my writing,""" start="00:00:19.920" video="mainVideo-writing" id="subtitle"]]
+[[!template text="""I wrote some stuff on my personal site and""" start="00:00:23.040" video="mainVideo-writing" id="subtitle"]]
+[[!template text="""found that I blogged about 95 words per day prior to Emacs,""" start="00:00:25.560" video="mainVideo-writing" id="subtitle"]]
+[[!template text="""and with Emacs I'm blogging about 340.""" start="00:00:30.400" video="mainVideo-writing" id="subtitle"]]
+[[!template text="""Now, this is not a fair comparison, many things changed.""" start="00:00:33.720" video="mainVideo-writing" id="subtitle"]]
+[[!template text="""A pandemic removed 2 hours of commute every day""" start="00:00:37.960" video="mainVideo-writing" id="subtitle"]]
+[[!template text="""as a big contributor.""" start="00:00:40.920" video="mainVideo-writing" id="subtitle"]]
+[[!template text="""Ultimately though, I've used Emacs and extended it""" start="00:00:44.200" video="mainVideo-writing" id="subtitle"]]
+[[!template text="""to reduce barriers to capturing and writing and thinking,""" start="00:00:47.000" video="mainVideo-writing" id="subtitle"]]
+[[!template text="""and I'm always on the lookout for minor refinements""" start="00:00:50.320" video="mainVideo-writing" id="subtitle"]]
+[[!template text="""that help me stay in my thinking.""" start="00:00:53.320" video="mainVideo-writing" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""How I got here""" start="00:00:57.120" video="mainVideo-writing" id="subtitle"]]</div>[[!template text="""How I got here was I started in WordPress,""" start="00:00:57.120" video="mainVideo-writing" id="subtitle"]]
+[[!template text="""then I moved to Jekyll, and then to Hugo,""" start="00:00:59.240" video="mainVideo-writing" id="subtitle"]]
+[[!template text="""and through that process I started writing in Markdown.""" start="00:01:02.600" video="mainVideo-writing" id="subtitle"]]
+[[!template text="""And when I was learning Emacs,""" start="00:01:05.440" video="mainVideo-writing" id="subtitle"]]
+[[!template text="""I also didn't want to learn Org Mode,""" start="00:01:07.120" video="mainVideo-writing" id="subtitle"]]
+[[!template text="""it felt intimidating because it could do so many things.""" start="00:01:09.360" video="mainVideo-writing" id="subtitle"]]
+[[!template text="""I later learned Org Mode grows with you,""" start="00:01:12.400" video="mainVideo-writing" id="subtitle"]]
+[[!template text="""and that's where I'm at now.""" start="00:01:15.520" video="mainVideo-writing" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Friction""" start="00:01:18.400" video="mainVideo-writing" id="subtitle"]]</div>[[!template text="""But I didn't realize that friction""" start="00:01:18.400" video="mainVideo-writing" id="subtitle"]]
+[[!template text="""between writing Markdown for my public blog""" start="00:01:20.000" video="mainVideo-writing" id="subtitle"]]
+[[!template text="""and then adopting Org Mode locally""" start="00:01:23.360" video="mainVideo-writing" id="subtitle"]]
+[[!template text="""for writing and time tracking and things like that.""" start="00:01:25.480" video="mainVideo-writing" id="subtitle"]]
+[[!template text="""And also, where did I put things,""" start="00:01:28.520" video="mainVideo-writing" id="subtitle"]]
+[[!template text="""because migrating the formats was just a little clunky.""" start="00:01:31.120" video="mainVideo-writing" id="subtitle"]]
+[[!template text="""So ultimately I spent some time thinking about the data flow""" start="00:01:35.160" video="mainVideo-writing" id="subtitle"]]
+[[!template text="""and where I would put things,""" start="00:01:38.200" video="mainVideo-writing" id="subtitle"]]
+[[!template text="""this kind of pre-thinking,""" start="00:01:39.520" video="mainVideo-writing" id="subtitle"]]
+[[!template text="""where does stuff go when it comes into and out of my brain.""" start="00:01:41.040" video="mainVideo-writing" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Domains for notes""" start="00:01:45.960" video="mainVideo-writing" id="subtitle"]]</div>[[!template text="""So I have many domains where I'll write towards.""" start="00:01:45.960" video="mainVideo-writing" id="subtitle"]]
+[[!template text="""The ones for this presentation are going to be""" start="00:01:49.400" video="mainVideo-writing" id="subtitle"]]
+[[!template text="""blog posts, epigraphs, glossary, and melange.""" start="00:01:51.120" video="mainVideo-writing" id="subtitle"]]
+[[!template text="""Melange is, I don't know where it goes,""" start="00:01:54.160" video="mainVideo-writing" id="subtitle"]]
+[[!template text="""but now I do, I just throw it in melange.""" start="00:01:56.320" video="mainVideo-writing" id="subtitle"]]
+[[!template text="""So I began exploring Org Mode via Org Roam,""" start="00:02:01.000" video="mainVideo-writing" id="subtitle"]]
+[[!template text="""but I've ultimately switched from Org Roam""" start="00:02:04.480" video="mainVideo-writing" id="subtitle"]]
+[[!template text="""to the simplified Denote package.""" start="00:02:07.560" video="mainVideo-writing" id="subtitle"]]
+[[!template text="""I didn't use a lot of the functionality""" start="00:02:10.640" video="mainVideo-writing" id="subtitle"]]
+[[!template text="""and I appreciate the plain text reality of Denote.""" start="00:02:13.200" video="mainVideo-writing" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Demo""" start="00:02:15.920" video="mainVideo-writing" id="subtitle"]]</div>[[!template text="""So let's hop into the demo.""" start="00:02:15.920" video="mainVideo-writing" id="subtitle"]]
+[[!template text="""I'm going to split my screen.""" start="00:02:18.800" video="mainVideo-writing" id="subtitle"]]
+[[!template text="""Over on the right is going to be""" start="00:02:19.920" video="mainVideo-writing" id="subtitle"]]
+[[!template text="""where I'm going to be live typing stuff.""" start="00:02:21.960" video="mainVideo-writing" id="subtitle"]]
+[[!template text="""So let's get going.""" start="00:02:24.200" video="mainVideo-writing" id="subtitle"]]
+[[!template text="""You'll notice I don't do a lot of screen splitting.""" start="00:02:27.320" video="mainVideo-writing" id="subtitle"]]
+[[!template text="""It just makes it easier to focus.""" start="00:02:29.800" video="mainVideo-writing" id="subtitle"]]
+[[!template text="""So let's create a note.""" start="00:02:32.240" video="mainVideo-writing" id="subtitle"]]
+[[!template text="""All right, I have bound hyper to my command key,""" start="00:02:34.040" video="mainVideo-writing" id="subtitle"]]
+[[!template text="""my right command key.""" start="00:02:41.280" video="mainVideo-writing" id="subtitle"]]
+[[!template text="""This opens up a whole world.""" start="00:02:42.520" video="mainVideo-writing" id="subtitle"]]
+[[!template text="""I'm going to create a blog post""" start="00:02:43.680" video="mainVideo-writing" id="subtitle"]]
+[[!template text="""and we're going to name it the ever popular &quot;hello world&quot;.""" start="00:02:45.560" video="mainVideo-writing" id="subtitle"]]
+[[!template text="""It's Emacs.""" start="00:02:49.800" video="mainVideo-writing" id="subtitle"]]
+[[!template text="""Great.""" start="00:02:50.800" video="mainVideo-writing" id="subtitle"]]
+[[!template text="""We've saved it.""" start="00:02:51.520" video="mainVideo-writing" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Dabbrev and hippie-expand""" start="00:02:55.440" video="mainVideo-writing" id="subtitle"]]</div>[[!template text="""One of the things I encourage everybody to do""" start="00:02:55.440" video="mainVideo-writing" id="subtitle"]]
+[[!template text="""is to watch Jay Dixit's presentation, Emacs for Writers.""" start="00:02:57.400" video="mainVideo-writing" id="subtitle"]]
+[[!template text="""It showed me the utility of Dabbrev for quick auto correction.""" start="00:03:02.040" video="mainVideo-writing" id="subtitle"]]
+[[!template text="""And I also love using hippie-expand.""" start="00:03:08.080" video="mainVideo-writing" id="subtitle"]]
+[[!template text="""When I watch VS coders code, it's always a little sad pants""" start="00:03:11.480" video="mainVideo-writing" id="subtitle"]]
+[[!template text="""because they're thinking about coding or writing""" start="00:03:14.640" video="mainVideo-writing" id="subtitle"]]
+[[!template text="""in terms of their code.""" start="00:03:17.320" video="mainVideo-writing" id="subtitle"]]
+[[!template text="""But I have found as a programmer, I tend to write more tech,""" start="00:03:19.160" video="mainVideo-writing" id="subtitle"]]
+[[!template text="""more like English instead of programming code.""" start="00:03:24.240" video="mainVideo-writing" id="subtitle"]]
+[[!template text="""So I think it's important to understand these tools""" start="00:03:27.800" video="mainVideo-writing" id="subtitle"]]
+[[!template text="""that help me write better.""" start="00:03:30.720" video="mainVideo-writing" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Links""" start="00:03:32.840" video="mainVideo-writing" id="subtitle"]]</div>[[!template text="""All right, we're going to go with links.""" start="00:03:32.840" video="mainVideo-writing" id="subtitle"]]
+[[!template text="""Links are foundational for the web.""" start="00:03:34.880" video="mainVideo-writing" id="subtitle"]]
+[[!template text="""I'm going to insert a public link,""" start="00:03:37.000" video="mainVideo-writing" id="subtitle"]]
+[[!template text="""which is a role playing game that I love,""" start="00:03:41.160" video="mainVideo-writing" id="subtitle"]]
+[[!template text="""Worlds Without Number.""" start="00:03:43.440" video="mainVideo-writing" id="subtitle"]]
+[[!template text="""And I'm going to go ahead and describe it.""" start="00:03:45.160" video="mainVideo-writing" id="subtitle"]]
+[[!template text="""A role playing game.""" start="00:03:48.400" video="mainVideo-writing" id="subtitle"]]
+[[!template text="""But I don't want to always say role playing game.""" start="00:03:49.240" video="mainVideo-writing" id="subtitle"]]
+[[!template text="""I'm going to abbreviate it.""" start="00:03:53.480" video="mainVideo-writing" id="subtitle"]]
+[[!template text="""So I wrote a function that will transform it.""" start="00:03:54.600" video="mainVideo-writing" id="subtitle"]]
+[[!template text="""And let's take a look at what that looks like on the inside.""" start="00:03:57.080" video="mainVideo-writing" id="subtitle"]]
+[[!template text="""When I do this real quick, it's toggling it back and forth.""" start="00:04:00.240" video="mainVideo-writing" id="subtitle"]]
+[[!template text="""And I'll just keep doing that.""" start="00:04:06.280" video="mainVideo-writing" id="subtitle"]]
+[[!template text="""I also have the idea of public notes and private notes.""" start="00:04:10.120" video="mainVideo-writing" id="subtitle"]]
+[[!template text="""Public is things that's going to have a URL.""" start="00:04:13.000" video="mainVideo-writing" id="subtitle"]]
+[[!template text="""I met a person at a conference.""" start="00:04:15.400" video="mainVideo-writing" id="subtitle"]]
+[[!template text="""He gave a talk on something that I thought was very useful.""" start="00:04:16.880" video="mainVideo-writing" id="subtitle"]]
+[[!template text="""I didn't write down what he talked about on his note.""" start="00:04:19.640" video="mainVideo-writing" id="subtitle"]]
+[[!template text="""I wrote it where it was more relevant to the topic.""" start="00:04:23.160" video="mainVideo-writing" id="subtitle"]]
+[[!template text="""And I can use a backlink to go find that.""" start="00:04:26.280" video="mainVideo-writing" id="subtitle"]]
+[[!template text="""Next up, I demonstrate the abbreviation.""" start="00:04:31.160" video="mainVideo-writing" id="subtitle"]]
+[[!template text="""I also have dates.""" start="00:04:34.120" video="mainVideo-writing" id="subtitle"]]
+[[!template text="""This is a semantic date in HTML5.""" start="00:04:35.840" video="mainVideo-writing" id="subtitle"]]
+[[!template text="""I can just have the year.""" start="00:04:38.000" video="mainVideo-writing" id="subtitle"]]
+[[!template text="""I can also just have something like that date is today.""" start="00:04:41.840" video="mainVideo-writing" id="subtitle"]]
+[[!template text="""And we have date links.""" start="00:04:48.360" video="mainVideo-writing" id="subtitle"]]
+[[!template text="""I don't have backlinks built up for that,""" start="00:04:52.240" video="mainVideo-writing" id="subtitle"]]
+[[!template text="""but I have ideas of how I go about doing it.""" start="00:04:54.200" video="mainVideo-writing" id="subtitle"]]
+[[!template text="""And last up, thank you Frank Herbert,""" start="00:04:56.960" video="mainVideo-writing" id="subtitle"]]
+[[!template text="""I want to introduce epigraphs.""" start="00:04:58.760" video="mainVideo-writing" id="subtitle"]]
+[[!template text="""So this is epigraph.""" start="00:05:00.800" video="mainVideo-writing" id="subtitle"]]
+[[!template text="""I just have that, any sufficiently, dot, dot, dot.""" start="00:05:04.360" video="mainVideo-writing" id="subtitle"]]
+[[!template text="""And that's my epigraph.""" start="00:05:08.720" video="mainVideo-writing" id="subtitle"]]
+[[!template text="""Backlinks, I mentioned that.""" start="00:05:10.360" video="mainVideo-writing" id="subtitle"]]
+[[!template text="""Let's go take a look at Jonathan, right?""" start="00:05:16.720" video="mainVideo-writing" id="subtitle"]]
+[[!template text="""He's a Rubyist, but importantly is the backlinks.""" start="00:05:19.000" video="mainVideo-writing" id="subtitle"]]
+[[!template text="""He gave a talk on, that's right, PDFs.""" start="00:05:23.120" video="mainVideo-writing" id="subtitle"]]
+[[!template text="""I can go look at what he spoke to""" start="00:05:27.320" video="mainVideo-writing" id="subtitle"]]
+[[!template text="""and I can reference that because I will remember""" start="00:05:28.960" video="mainVideo-writing" id="subtitle"]]
+[[!template text="""that talk or I will remember, oh, I need to look up PDFs.""" start="00:05:31.880" video="mainVideo-writing" id="subtitle"]]
+[[!template text="""Oh, I have something in PDFs.""" start="00:05:36.680" video="mainVideo-writing" id="subtitle"]]
+[[!template text="""Again, it's about stumbling upon data in a good way.""" start="00:05:39.800" video="mainVideo-writing" id="subtitle"]]
+[[!template text="""So thinking of making linking easy helps me""" start="00:05:43.240" video="mainVideo-writing" id="subtitle"]]
+[[!template text="""create more and more ways to find things,""" start="00:05:48.320" video="mainVideo-writing" id="subtitle"]]
+[[!template text="""both by links, backlinks, indices, file searches, and so forth.""" start="00:05:52.160" video="mainVideo-writing" id="subtitle"]]
+[[!template text="""It's all about information organization.""" start="00:05:57.120" video="mainVideo-writing" id="subtitle"]]
+[[!template text="""Next up is a really cool function of org capture.""" start="00:05:59.240" video="mainVideo-writing" id="subtitle"]]
+[[!template text="""So let's take a look here.""" start="00:06:04.880" video="mainVideo-writing" id="subtitle"]]
+[[!template text="""I'm going to start a clock.""" start="00:06:06.680" video="mainVideo-writing" id="subtitle"]]
+[[!template text="""It's running.""" start="00:06:08.040" video="mainVideo-writing" id="subtitle"]]
+[[!template text="""And I'm going to bring up my browser.""" start="00:06:09.160" video="mainVideo-writing" id="subtitle"]]
+[[!template text="""And I'm going to go ahead and capture to the content to clock.""" start="00:06:11.480" video="mainVideo-writing" id="subtitle"]]
+[[!template text="""And it brings up this block quote, which is lovely.""" start="00:06:19.680" video="mainVideo-writing" id="subtitle"]]
+[[!template text="""And boom, I'm going to save it.""" start="00:06:23.160" video="mainVideo-writing" id="subtitle"]]
+[[!template text="""I'm going to close this.""" start="00:06:25.720" video="mainVideo-writing" id="subtitle"]]
+[[!template text="""We're back here to my &quot;hello world&quot;.""" start="00:06:28.200" video="mainVideo-writing" id="subtitle"]]
+[[!template text="""And it has grabbed a block quote for this.""" start="00:06:30.960" video="mainVideo-writing" id="subtitle"]]
+[[!template text="""Again, it helps me gather stuff up quickly.""" start="00:06:33.520" video="mainVideo-writing" id="subtitle"]]
+[[!template text="""I've bound that also in my RSS feed.""" start="00:06:38.040" video="mainVideo-writing" id="subtitle"]]
+[[!template text="""We're going to skip over macros, blocks, and the abstract.""" start="00:06:41.120" video="mainVideo-writing" id="subtitle"]]
+[[!template text="""And we're going to get into the export""" start="00:06:44.200" video="mainVideo-writing" id="subtitle"]]
+[[!template text="""because this is where we can see the magic""" start="00:06:45.480" video="mainVideo-writing" id="subtitle"]]
+[[!template text="""that happens because I want to take things""" start="00:06:47.520" video="mainVideo-writing" id="subtitle"]]
+[[!template text="""from private to public.""" start="00:06:49.600" video="mainVideo-writing" id="subtitle"]]
+[[!template text="""So I have bound a key.""" start="00:06:51.080" video="mainVideo-writing" id="subtitle"]]
+[[!template text="""These are my menu of things I don't want to forget.""" start="00:06:53.200" video="mainVideo-writing" id="subtitle"]]
+[[!template text="""I will export.""" start="00:06:55.560" video="mainVideo-writing" id="subtitle"]]
+[[!template text="""And here we go.""" start="00:06:56.760" video="mainVideo-writing" id="subtitle"]]
+[[!template text="""Here is my blog post in markdown format with Hugo shortcodes.""" start="00:06:57.840" video="mainVideo-writing" id="subtitle"]]
+[[!template text="""So let's go take a look at what that looks like.""" start="00:07:04.960" video="mainVideo-writing" id="subtitle"]]
+[[!template text="""Localhost.""" start="00:07:07.400" video="mainVideo-writing" id="subtitle"]]
+[[!template text="""I'm not writing in Rails.""" start="00:07:09.360" video="mainVideo-writing" id="subtitle"]]
+[[!template text="""&quot;Hello world&quot; right there.""" start="00:07:12.360" video="mainVideo-writing" id="subtitle"]]
+[[!template text="""This is the epigraph.""" start="00:07:14.920" video="mainVideo-writing" id="subtitle"]]
+[[!template text="""And I have a mention of Worlds without Number.""" start="00:07:17.160" video="mainVideo-writing" id="subtitle"]]
+[[!template text="""And I have mentioned this as a abbreviation.""" start="00:07:22.280" video="mainVideo-writing" id="subtitle"]]
+[[!template text="""So I include the first time this text.""" start="00:07:24.800" video="mainVideo-writing" id="subtitle"]]
+[[!template text="""Here's also Jonathan.""" start="00:07:27.520" video="mainVideo-writing" id="subtitle"]]
+[[!template text="""He is not a public reference thing.""" start="00:07:30.200" video="mainVideo-writing" id="subtitle"]]
+[[!template text="""Also, I have these things here.""" start="00:07:33.400" video="mainVideo-writing" id="subtitle"]]
+[[!template text="""And here's my captured information""" start="00:07:37.520" video="mainVideo-writing" id="subtitle"]]
+[[!template text="""along with the citation link to it.""" start="00:07:39.400" video="mainVideo-writing" id="subtitle"]]
+[[!template text="""Again, helpful to be consistent.""" start="00:07:42.600" video="mainVideo-writing" id="subtitle"]]
+
+<div class="transcript-heading">[[!template new="1" text="""Conclusion""" start="00:07:49.160" video="mainVideo-writing" id="subtitle"]]</div>[[!template text="""In conclusion, when I started learning Emacs,""" start="00:07:49.160" video="mainVideo-writing" id="subtitle"]]
+[[!template text="""I quickly shifted to vanilla Emacs and just started writing.""" start="00:07:52.280" video="mainVideo-writing" id="subtitle"]]
+[[!template text="""As I wrote, when I needed to do something that I'd previously""" start="00:07:55.880" video="mainVideo-writing" id="subtitle"]]
+[[!template text="""done in a text editor, I'd find an experiment with a package.""" start="00:07:59.520" video="mainVideo-writing" id="subtitle"]]
+[[!template text="""I continue that mindset.""" start="00:08:03.000" video="mainVideo-writing" id="subtitle"]]
+[[!template text="""As I write, I'm attending to what I'm doing.""" start="00:08:04.680" video="mainVideo-writing" id="subtitle"]]
+[[!template text="""And eventually, I realize if I were to just write""" start="00:08:06.840" video="mainVideo-writing" id="subtitle"]]
+[[!template text="""a function that does this one thing,""" start="00:08:08.880" video="mainVideo-writing" id="subtitle"]]
+[[!template text="""I'd have a smoother writing experience.""" start="00:08:11.640" video="mainVideo-writing" id="subtitle"]]
+[[!template text="""This helps me practice my craft, extend my editor,""" start="00:08:13.560" video="mainVideo-writing" id="subtitle"]]
+[[!template text="""understand its capabilities, and begin exploring other things.""" start="00:08:16.360" video="mainVideo-writing" id="subtitle"]]
+[[!template text="""The goal of this is all to minimize the distractions.""" start="00:08:20.000" video="mainVideo-writing" id="subtitle"]]
+[[!template text="""As I'm thinking about it, I wanted to quickly add it""" start="00:08:23.160" video="mainVideo-writing" id="subtitle"]]
+[[!template text="""and then move along,""" start="00:08:25.760" video="mainVideo-writing" id="subtitle"]]
+[[!template text="""basically creating breadcrumbs for me""" start="00:08:27.160" video="mainVideo-writing" id="subtitle"]]
+[[!template text="""to follow my thoughts in the future.""" start="00:08:29.560" video="mainVideo-writing" id="subtitle"]]
+[[!template text="""And one of those functions is""" start="00:08:31.240" video="mainVideo-writing" id="subtitle"]]
+[[!template text="""I'd like to write an extender for my abbr,""" start="00:08:33.160" video="mainVideo-writing" id="subtitle"]]
+[[!template text="""abbreviation export to work in Latex.""" start="00:08:36.480" video="mainVideo-writing" id="subtitle"]]
+[[!template text="""It's like halfway there.""" start="00:08:38.680" video="mainVideo-writing" id="subtitle"]]
+[[!template text="""So I'm looking forward to getting that done""" start="00:08:40.280" video="mainVideo-writing" id="subtitle"]]
+[[!template text="""when I have some time and can prioritize it.""" start="00:08:42.240" video="mainVideo-writing" id="subtitle"]]
+[[!template text="""But for now, thank you.""" start="00:08:45.440" video="mainVideo-writing" id="subtitle"]]
+[[!template text="""And I look forward to your questions.""" start="00:08:47.800" video="mainVideo-writing" id="subtitle"]]
+
+</div>
+
+Captioner: bala
+
+<div class="transcript transcript-qanda"><a name="writing-qanda-transcript"></a><h1>Q&A transcript (unedited)</h1>
+
+[[!template text="""[Speaker 0]: All right, I've started the recording,""" start="00:00:00.060" video="qanda-writing" id="subtitle"]]
+[[!template text="""so Sasha, you don't need to worry about this.""" start="00:00:01.400" video="qanda-writing" id="subtitle"]]
+[[!template text="""Hi Jeremy, how are you doing?""" start="00:00:03.240" video="qanda-writing" id="subtitle"]]
+[[!template text="""[Speaker 1]: I'm doing great, how about you?""" start="00:00:04.779" video="qanda-writing" id="subtitle"]]
+[[!template text="""[Speaker 0]: I am also doing great,""" start="00:00:08.039" video="qanda-writing" id="subtitle"]]
+[[!template text="""I am feeling replenished after this lunch""" start="00:00:09.380" video="qanda-writing" id="subtitle"]]
+[[!template text="""break and I am happy to go back for 4 more""" start="00:00:11.780" video="qanda-writing" id="subtitle"]]
+[[!template text="""[Speaker 1]: Me too. Let me""" start="00:00:15.900" video="qanda-writing" id="subtitle"]]
+[[!template text="""[Speaker 0]: hours of conferences. just,""" start="00:00:14.179" video="qanda-writing" id="subtitle"]]
+[[!template text="""yeah great, Let me just put up the questions.""" start="00:00:17.303" video="qanda-writing" id="subtitle"]]
+[[!template text="""So Jeremy is going to read the questions and""" start="00:00:20.660" video="qanda-writing" id="subtitle"]]
+[[!template text="""answer them and I will be doing jazz hands in""" start="00:00:22.440" video="qanda-writing" id="subtitle"]]
+[[!template text="""the background or provide any bits of""" start="00:00:24.380" video="qanda-writing" id="subtitle"]]
+[[!template text="""information I may, considering that Orgrim""" start="00:00:26.599" video="qanda-writing" id="subtitle"]]
+[[!template text="""has been mentioned during the presentation""" start="00:00:28.860" video="qanda-writing" id="subtitle"]]
+[[!template text="""and everyone's going to want to ask me.""" start="00:00:30.080" video="qanda-writing" id="subtitle"]]
+[[!template text="""at... Show me? Yeah, go.""" start="00:00:35.640" video="qanda-writing" id="subtitle"]]
+[[!template text="""[Speaker 1]: So I'm looking I'm looking at the,""" start="00:00:35.080" video="qanda-writing" id="subtitle"]]
+[[!template text="""do you think the line numbers for writing""" start="00:00:39.280" video="qanda-writing" id="subtitle"]]
+[[!template text="""documents is kind of a distraction,""" start="00:00:41.160" video="qanda-writing" id="subtitle"]]
+[[!template text="""especially for notes? No,""" start="00:00:43.260" video="qanda-writing" id="subtitle"]]
+[[!template text="""I do software development and that left""" start="00:00:47.860" video="qanda-writing" id="subtitle"]]
+[[!template text="""fringe is kind of invisible,""" start="00:00:51.180" video="qanda-writing" id="subtitle"]]
+[[!template text="""but I do like to use jump to line.""" start="00:00:53.680" video="qanda-writing" id="subtitle"]]
+[[!template text="""So I just bind that to control L and it's""" start="00:00:56.320" video="qanda-writing" id="subtitle"]]
+[[!template text="""helpful to just see that.""" start="00:00:59.580" video="qanda-writing" id="subtitle"]]
+[[!template text="""So no, I haven't noticed that.""" start="00:01:02.980" video="qanda-writing" id="subtitle"]]
+[[!template text="""There are other ways to jump around in Emacs,""" start="00:01:05.500" video="qanda-writing" id="subtitle"]]
+[[!template text="""but I like to have many different ways.""" start="00:01:07.540" video="qanda-writing" id="subtitle"]]
+[[!template text="""So, yeah. Then how do you manage private and""" start="00:01:11.000" video="qanda-writing" id="subtitle"]]
+[[!template text="""public data with your Zettelkasten?""" start="00:01:17.120" video="qanda-writing" id="subtitle"]]
+[[!template text="""1 of my blockers on putting my Zettelkasten""" start="00:01:20.820" video="qanda-writing" id="subtitle"]]
+[[!template text="""on the web is I don't want everything to be""" start="00:01:23.600" video="qanda-writing" id="subtitle"]]
+[[!template text="""public, especially fleeting notes.""" start="00:01:26.240" video="qanda-writing" id="subtitle"]]
+[[!template text="""So 1 thing is I only explicitly export a file""" start="00:01:31.360" video="qanda-writing" id="subtitle"]]
+[[!template text="""to Hugo and I have that,""" start="00:01:36.560" video="qanda-writing" id="subtitle"]]
+[[!template text="""I can like, I can export this.""" start="00:01:39.380" video="qanda-writing" id="subtitle"]]
+[[!template text="""That doesn't show up very well.""" start="00:01:41.520" video="qanda-writing" id="subtitle"]]
+[[!template text="""So it's export probably export org to take on""" start="00:01:44.540" video="qanda-writing" id="subtitle"]]
+[[!template text="""rules and we'll export the buffer.""" start="00:01:50.280" video="qanda-writing" id="subtitle"]]
+[[!template text="""And then any that I referenced,""" start="00:01:53.760" video="qanda-writing" id="subtitle"]]
+[[!template text="""like these are all links,""" start="00:01:57.080" video="qanda-writing" id="subtitle"]]
+[[!template text="""any notes that are not public will be""" start="00:01:58.660" video="qanda-writing" id="subtitle"]]
+[[!template text="""exported as the text, but there won't be a""" start="00:02:04.380" video="qanda-writing" id="subtitle"]]
+[[!template text="""link to it. So it's having the very""" start="00:02:06.480" video="qanda-writing" id="subtitle"]]
+[[!template text="""deliberate, this is going up.""" start="00:02:10.160" video="qanda-writing" id="subtitle"]]
+[[!template text="""And so I send it over into Hugo,""" start="00:02:13.040" video="qanda-writing" id="subtitle"]]
+[[!template text="""which is its own repository,""" start="00:02:15.900" video="qanda-writing" id="subtitle"]]
+[[!template text="""and either massage it there or whatnot.""" start="00:02:18.700" video="qanda-writing" id="subtitle"]]
+[[!template text="""Is that any further questions on that 1?""" start="00:02:22.800" video="qanda-writing" id="subtitle"]]
+[[!template text="""[Speaker 0]: I don't think so.""" start="00:02:27.980" video="qanda-writing" id="subtitle"]]
+[[!template text="""[Speaker 1]: Is there anything special you're using from""" start="00:02:33.940" video="qanda-writing" id="subtitle"]]
+[[!template text="""org to Hugo markdown? This looks like a""" start="00:02:36.940" video="qanda-writing" id="subtitle"]]
+[[!template text="""really nice setup. I like to give it a try.""" start="00:02:38.960" video="qanda-writing" id="subtitle"]]
+[[!template text="""Yes, there I have a bespoke build process.""" start="00:02:43.840" video="qanda-writing" id="subtitle"]]
+[[!template text="""Having started in WordPress,""" start="00:02:48.900" video="qanda-writing" id="subtitle"]]
+[[!template text="""working through Jekyll,""" start="00:02:50.280" video="qanda-writing" id="subtitle"]]
+[[!template text="""going to Hugo, and then switching from""" start="00:02:51.460" video="qanda-writing" id="subtitle"]]
+[[!template text="""Markdown to org mode, I've backed into this""" start="00:02:54.200" video="qanda-writing" id="subtitle"]]
+[[!template text="""private public Zettelkasten,""" start="00:02:57.740" video="qanda-writing" id="subtitle"]]
+[[!template text="""which is really nice. And I have added quite""" start="00:03:00.140" video="qanda-writing" id="subtitle"]]
+[[!template text="""a bit of code. There's my dog.""" start="00:03:04.840" video="qanda-writing" id="subtitle"]]
+[[!template text="""[Speaker 0]: blogging.""" start="00:03:15.520" video="qanda-writing" id="subtitle"]]
+[[!template text="""[Speaker 1]: In my So I have, how do I export like side""" start="00:03:10.640" video="qanda-writing" id="subtitle"]]
+[[!template text="""notes because I want I have marginalia""" start="00:03:20.720" video="qanda-writing" id="subtitle"]]
+[[!template text="""instead of like the footnotes,""" start="00:03:23.200" video="qanda-writing" id="subtitle"]]
+[[!template text="""but I still use org mode footnotes.""" start="00:03:24.940" video="qanda-writing" id="subtitle"]]
+[[!template text="""And so I've got a bunch of these things and""" start="00:03:27.520" video="qanda-writing" id="subtitle"]]
+[[!template text="""this is all available up on GitHub And I'll""" start="00:03:29.700" video="qanda-writing" id="subtitle"]]
+[[!template text="""provide a link in the document.""" start="00:03:32.800" video="qanda-writing" id="subtitle"]]
+[[!template text="""Yeah, so there's quite a bit of making the""" start="00:03:36.740" video="qanda-writing" id="subtitle"]]
+[[!template text="""export work how I want it.""" start="00:03:42.280" video="qanda-writing" id="subtitle"]]
+[[!template text="""And I've been kind of fiddling with also""" start="00:03:45.040" video="qanda-writing" id="subtitle"]]
+[[!template text="""improving like LaTeX or PDF export.""" start="00:03:48.840" video="qanda-writing" id="subtitle"]]
+[[!template text="""So yeah, I have a long running to do item to""" start="00:03:54.720" video="qanda-writing" id="subtitle"]]
+[[!template text="""fully lay out my bespoke build process.""" start="00:03:59.480" video="qanda-writing" id="subtitle"]]
+[[!template text="""Because once it gets to Hugo,""" start="00:04:02.920" video="qanda-writing" id="subtitle"]]
+[[!template text="""there's also additional work that I do to""" start="00:04:04.960" video="qanda-writing" id="subtitle"]]
+[[!template text="""compile what is kind of a personal,""" start="00:04:07.440" video="qanda-writing" id="subtitle"]]
+[[!template text="""like a digital garden-ish,""" start="00:04:12.340" video="qanda-writing" id="subtitle"]]
+[[!template text="""it's really a blog focused 1.""" start="00:04:15.160" video="qanda-writing" id="subtitle"]]
+[[!template text="""So yeah, it's at Jeremy F on GitHub at dot""" start="00:04:18.160" video="qanda-writing" id="subtitle"]]
+[[!template text="""Emacs. And you'll be looking for JF""" start="00:04:28.080" video="qanda-writing" id="subtitle"]]
+[[!template text="""blogging.l that has some of this.""" start="00:04:33.200" video="qanda-writing" id="subtitle"]]
+[[!template text="""Also jforgmode.l will have some of that.""" start="00:04:37.360" video="qanda-writing" id="subtitle"]]
+[[!template text="""Yeah, I wanna circle back to that,""" start="00:04:45.400" video="qanda-writing" id="subtitle"]]
+[[!template text="""anything to prevent private links from""" start="00:04:49.540" video="qanda-writing" id="subtitle"]]
+[[!template text="""getting accidentally being made publicly""" start="00:04:51.560" video="qanda-writing" id="subtitle"]]
+[[!template text="""accessible. Yes. So previous to using denote,""" start="00:04:54.560" video="qanda-writing" id="subtitle"]]
+[[!template text="""I also used org-roam. So I have this idea of""" start="00:05:02.440" video="qanda-writing" id="subtitle"]]
+[[!template text="""a node in org-roam has roam refs.""" start="00:05:06.480" video="qanda-writing" id="subtitle"]]
+[[!template text="""And org-roam is much more robust about that.""" start="00:05:13.360" video="qanda-writing" id="subtitle"]]
+[[!template text="""So anytime you mention a ref,""" start="00:05:15.660" video="qanda-writing" id="subtitle"]]
+[[!template text="""it will count it as a backlink.""" start="00:05:18.740" video="qanda-writing" id="subtitle"]]
+[[!template text="""So for example, if my node was my blog,""" start="00:05:20.820" video="qanda-writing" id="subtitle"]]
+[[!template text="""take on rules, anytime,""" start="00:05:23.860" video="qanda-writing" id="subtitle"]]
+[[!template text="""anywhere in my org Rome repository,""" start="00:05:26.000" video="qanda-writing" id="subtitle"]]
+[[!template text="""I mentioned takeonrules.com,""" start="00:05:30.700" video="qanda-writing" id="subtitle"]]
+[[!template text="""it would treat it as a backlink.""" start="00:05:33.280" video="qanda-writing" id="subtitle"]]
+[[!template text="""So from that Rome refs,""" start="00:05:35.740" video="qanda-writing" id="subtitle"]]
+[[!template text="""I have a, I will interrogate,""" start="00:05:39.780" video="qanda-writing" id="subtitle"]]
+[[!template text="""and this is not the function for I will look""" start="00:05:45.720" video="qanda-writing" id="subtitle"]]
+[[!template text="""at the node to see does it have a Rome ref""" start="00:05:47.800" video="qanda-writing" id="subtitle"]]
+[[!template text="""and if it does I will treat it as a public""" start="00:05:51.040" video="qanda-writing" id="subtitle"]]
+[[!template text="""link. So I don't I haven't bled out any""" start="00:05:53.760" video="qanda-writing" id="subtitle"]]
+[[!template text="""private information because again going back""" start="00:05:59.060" video="qanda-writing" id="subtitle"]]
+[[!template text="""to I only publish a document and the document""" start="00:06:01.620" video="qanda-writing" id="subtitle"]]
+[[!template text="""I'm explicitly doing so and then my process""" start="00:06:06.340" video="qanda-writing" id="subtitle"]]
+[[!template text="""filters out any links that do not have public""" start="00:06:09.220" video="qanda-writing" id="subtitle"]]
+[[!template text="""URLs. It will just dump it in there as maybe""" start="00:06:12.720" video="qanda-writing" id="subtitle"]]
+[[!template text="""a span with a ref class of it so that I can""" start="00:06:17.140" video="qanda-writing" id="subtitle"]]
+[[!template text="""kind of know that that came from there.""" start="00:06:20.640" video="qanda-writing" id="subtitle"]]
+[[!template text="""Yes, So the font I am using is,""" start="00:06:29.600" video="qanda-writing" id="subtitle"]]
+[[!template text="""so this is another font.""" start="00:06:36.820" video="qanda-writing" id="subtitle"]]
+[[!template text="""What font were you using in EWW?""" start="00:06:38.620" video="qanda-writing" id="subtitle"]]
+[[!template text="""I think I'm using IOS Becca and ET Bembo.""" start="00:06:42.940" video="qanda-writing" id="subtitle"]]
+[[!template text="""[Speaker 0]: Okay, show me your EWW.""" start="00:06:51.700" video="qanda-writing" id="subtitle"]]
+[[!template text="""If we are doing full ricing setup,""" start="00:06:53.560" video="qanda-writing" id="subtitle"]]
+[[!template text="""I can recognize Yosefka just by looking at""" start="00:06:55.440" video="qanda-writing" id="subtitle"]]
+[[!template text="""it.""" start="00:06:58.440" video="qanda-writing" id="subtitle"]]
+[[!template text="""[Speaker 1]: So let's... Yeah, so yeah,""" start="00:06:50.640" video="qanda-writing" id="subtitle"]]
+[[!template text="""ET Bembo, I'm using these 2 fonts as kind of""" start="00:07:01.300" video="qanda-writing" id="subtitle"]]
+[[!template text="""my anchor. So the variable pitch is ETBembo.""" start="00:07:06.240" video="qanda-writing" id="subtitle"]]
+[[!template text="""My blog started off with a Tufta style CSS""" start="00:07:10.240" video="qanda-writing" id="subtitle"]]
+[[!template text="""and I really pared it down and got rid of any""" start="00:07:14.100" video="qanda-writing" id="subtitle"]]
+[[!template text="""of the additional fonts because they can be""" start="00:07:16.360" video="qanda-writing" id="subtitle"]]
+[[!template text="""used as trackers. And I'm like,""" start="00:07:19.940" video="qanda-writing" id="subtitle"]]
+[[!template text="""nope, you decide what font you want for your""" start="00:07:21.580" video="qanda-writing" id="subtitle"]]
+[[!template text="""browser. I don't need to tell you what looks""" start="00:07:24.020" video="qanda-writing" id="subtitle"]]
+[[!template text="""good for you. Yeah, so the story of Take On""" start="00:07:26.420" video="qanda-writing" id="subtitle"]]
+[[!template text="""Rules, I have to thank my partner and lovely""" start="00:07:33.680" video="qanda-writing" id="subtitle"]]
+[[!template text="""wife for that. She kind of nudged me to do""" start="00:07:37.480" video="qanda-writing" id="subtitle"]]
+[[!template text="""some blogging, and we spent some time""" start="00:07:41.180" video="qanda-writing" id="subtitle"]]
+[[!template text="""thinking about it. And originally,""" start="00:07:43.080" video="qanda-writing" id="subtitle"]]
+[[!template text="""it started off as writing about rules for""" start="00:07:45.160" video="qanda-writing" id="subtitle"]]
+[[!template text="""role-playing games or tabletop games.""" start="00:07:48.700" video="qanda-writing" id="subtitle"]]
+[[!template text="""And it has extended far beyond that.""" start="00:07:51.820" video="qanda-writing" id="subtitle"]]
+[[!template text="""The blog, as I've shifted,""" start="00:07:54.960" video="qanda-writing" id="subtitle"]]
+[[!template text="""as I think I mentioned in the presentation,""" start="00:07:56.920" video="qanda-writing" id="subtitle"]]
+[[!template text="""as I've shifted towards an everything and""" start="00:07:59.060" video="qanda-writing" id="subtitle"]]
+[[!template text="""nothing approach, the blog is anything I want""" start="00:08:01.640" video="qanda-writing" id="subtitle"]]
+[[!template text="""to write about anymore.""" start="00:08:05.180" video="qanda-writing" id="subtitle"]]
+[[!template text="""There's haikus up there with some regularity.""" start="00:08:06.980" video="qanda-writing" id="subtitle"]]
+[[!template text="""So the name is now a relic of a past.""" start="00:08:10.080" video="qanda-writing" id="subtitle"]]
+[[!template text="""So yeah, the thing and nothing is,""" start="00:08:18.340" video="qanda-writing" id="subtitle"]]
+[[!template text="""and I put that in the about on my blog.""" start="00:08:22.360" video="qanda-writing" id="subtitle"]]
+[[!template text="""So it's, I highly encourage like,""" start="00:08:25.640" video="qanda-writing" id="subtitle"]]
+[[!template text="""I feel great. Once I like said,""" start="00:08:29.440" video="qanda-writing" id="subtitle"]]
+[[!template text="""oh, I don't have to write this towards a""" start="00:08:34.440" video="qanda-writing" id="subtitle"]]
+[[!template text="""topical blog post or like what the topic is,""" start="00:08:36.740" video="qanda-writing" id="subtitle"]]
+[[!template text="""it freed it up. And I know that it comes at a""" start="00:08:40.380" video="qanda-writing" id="subtitle"]]
+[[!template text="""potential compromise because it's very much""" start="00:08:44.800" video="qanda-writing" id="subtitle"]]
+[[!template text="""me being a voice up there instead of""" start="00:08:47.500" video="qanda-writing" id="subtitle"]]
+[[!template text="""something that is curated and filtered""" start="00:08:51.960" video="qanda-writing" id="subtitle"]]
+[[!template text="""through a specific channel like I could have""" start="00:08:53.760" video="qanda-writing" id="subtitle"]]
+[[!template text="""a technical blog but I decided I'm just gonna""" start="00:08:56.060" video="qanda-writing" id="subtitle"]]
+[[!template text="""tag it as programming or emacs and let you""" start="00:08:59.340" video="qanda-writing" id="subtitle"]]
+[[!template text="""find it and you can subscribe to the rss""" start="00:09:02.420" video="qanda-writing" id="subtitle"]]
+[[!template text="""feeds of each tag that you find applicable""" start="00:09:04.920" video="qanda-writing" id="subtitle"]]
+[[!template text="""[Speaker 0]: right thank you so we are we are at the last""" start="00:09:10.120" video="qanda-writing" id="subtitle"]]
+[[!template text="""question on the pad but I see that some""" start="00:09:13.840" video="qanda-writing" id="subtitle"]]
+[[!template text="""people have joined us on the blue button.""" start="00:09:16.100" video="qanda-writing" id="subtitle"]]
+[[!template text="""So, hi everyone! We have about 6 minutes""" start="00:09:18.480" video="qanda-writing" id="subtitle"]]
+[[!template text="""until we need to go to the next talk,""" start="00:09:22.420" video="qanda-writing" id="subtitle"]]
+[[!template text="""but if anyone has a question on the blue""" start="00:09:24.220" video="qanda-writing" id="subtitle"]]
+[[!template text="""button, I'm thinking about James who's joined""" start="00:09:26.460" video="qanda-writing" id="subtitle"]]
+[[!template text="""us and who was kind enough to drop a thank""" start="00:09:28.780" video="qanda-writing" id="subtitle"]]
+[[!template text="""you line on the blue button.""" start="00:09:32.780" video="qanda-writing" id="subtitle"]]
+[[!template text="""Do you want to unmute yourself and ask a""" start="00:09:33.940" video="qanda-writing" id="subtitle"]]
+[[!template text="""question maybe? I'm not putting pressure by""" start="00:09:35.460" video="qanda-writing" id="subtitle"]]
+[[!template text="""the way, I don't feel like you need to but it""" start="00:09:39.520" video="qanda-writing" id="subtitle"]]
+[[!template text="""just... I speak all the time otherwise I'm""" start="00:09:41.870" video="qanda-writing" id="subtitle"]]
+[[!template text="""very happy to spend time with our speakers""" start="00:09:44.060" video="qanda-writing" id="subtitle"]]
+[[!template text="""you know but you know EmacsConf it's about,""" start="00:09:45.720" video="qanda-writing" id="subtitle"]]
+[[!template text="""as Sasha told you during the intro,""" start="00:09:49.400" video="qanda-writing" id="subtitle"]]
+[[!template text="""it's about making people take things,""" start="00:09:51.540" video="qanda-writing" id="subtitle"]]
+[[!template text="""brilliant things out of their mind and put""" start="00:09:54.240" video="qanda-writing" id="subtitle"]]
+[[!template text="""them outside in the public.""" start="00:09:56.100" video="qanda-writing" id="subtitle"]]
+[[!template text="""And for us, you know, we get to see the talk""" start="00:09:57.940" video="qanda-writing" id="subtitle"]]
+[[!template text="""evolve, we talk with people.""" start="00:10:00.660" video="qanda-writing" id="subtitle"]]
+[[!template text="""So for us we are already quite cognizant of""" start="00:10:01.720" video="qanda-writing" id="subtitle"]]
+[[!template text="""the topic and the point is not for us hosts""" start="00:10:03.840" video="qanda-writing" id="subtitle"]]
+[[!template text="""to ask questions, it's mostly for you to ask""" start="00:10:06.360" video="qanda-writing" id="subtitle"]]
+[[!template text="""questions and then we worry about all the""" start="00:10:09.780" video="qanda-writing" id="subtitle"]]
+[[!template text="""fancy stuff in the background.""" start="00:10:11.580" video="qanda-writing" id="subtitle"]]
+[[!template text="""Otherwise you damn well know I will ask""" start="00:10:13.900" video="qanda-writing" id="subtitle"]]
+[[!template text="""questions about org-roam,""" start="00:10:16.080" video="qanda-writing" id="subtitle"]]
+[[!template text="""about links, and nodes in general,""" start="00:10:18.900" video="qanda-writing" id="subtitle"]]
+[[!template text="""because that's my bread and butter.""" start="00:10:20.460" video="qanda-writing" id="subtitle"]]
+[[!template text="""[Speaker 1]: Yeah, I should add, like,""" start="00:10:24.720" video="qanda-writing" id="subtitle"]]
+[[!template text="""the process of migrating the data from a""" start="00:10:27.440" video="qanda-writing" id="subtitle"]]
+[[!template text="""WordPress export to markdown to org mode by""" start="00:10:31.820" video="qanda-writing" id="subtitle"]]
+[[!template text="""way of Pandoc was, it was really insightful""" start="00:10:35.220" video="qanda-writing" id="subtitle"]]
+[[!template text="""to help me understand how I want the data to""" start="00:10:39.720" video="qanda-writing" id="subtitle"]]
+[[!template text="""flow and how I could create a repository for""" start="00:10:42.900" video="qanda-writing" id="subtitle"]]
+[[!template text="""me of information and 1 that I could then""" start="00:10:47.580" video="qanda-writing" id="subtitle"]]
+[[!template text="""send out into the world,""" start="00:10:50.940" video="qanda-writing" id="subtitle"]]
+[[!template text="""the public information,""" start="00:10:52.540" video="qanda-writing" id="subtitle"]]
+[[!template text="""while not having to worry about the private""" start="00:10:54.240" video="qanda-writing" id="subtitle"]]
+[[!template text="""things that I might want to keep.""" start="00:10:58.460" video="qanda-writing" id="subtitle"]]
+[[!template text="""So it was that process of just working""" start="00:11:01.620" video="qanda-writing" id="subtitle"]]
+[[!template text="""through it to reflect on how I'm writing and""" start="00:11:04.240" video="qanda-writing" id="subtitle"]]
+[[!template text="""what I started using writing for.""" start="00:11:08.940" video="qanda-writing" id="subtitle"]]
+[[!template text="""I think Richard Feynman said,""" start="00:11:12.040" video="qanda-writing" id="subtitle"]]
+[[!template text="""no, writing is my thinking.""" start="00:11:14.040" video="qanda-writing" id="subtitle"]]
+[[!template text="""What I wrote is thinking.""" start="00:11:15.680" video="qanda-writing" id="subtitle"]]
+[[!template text="""So it has helped to really frame that.""" start="00:11:18.240" video="qanda-writing" id="subtitle"]]
+[[!template text="""[Speaker 0]: Yeah, I mean, there's an interesting""" start="00:11:22.800" video="qanda-writing" id="subtitle"]]
+[[!template text="""ambivalent relationship because it feels like""" start="00:11:27.200" video="qanda-writing" id="subtitle"]]
+[[!template text="""writing helps thinking and thinking helps""" start="00:11:29.220" video="qanda-writing" id="subtitle"]]
+[[!template text="""writing in a way and nowhere have I""" start="00:11:31.800" video="qanda-writing" id="subtitle"]]
+[[!template text="""personally been more aware of this than when""" start="00:11:35.340" video="qanda-writing" id="subtitle"]]
+[[!template text="""coming up with networks of notes because it""" start="00:11:38.000" video="qanda-writing" id="subtitle"]]
+[[!template text="""really I mean you use whichever word you want""" start="00:11:41.000" video="qanda-writing" id="subtitle"]]
+[[!template text="""you know a second brain a collection of notes""" start="00:11:43.860" video="qanda-writing" id="subtitle"]]
+[[!template text="""a slip box a repository of notes whichever""" start="00:11:45.900" video="qanda-writing" id="subtitle"]]
+[[!template text="""the tool you use the point at the end is to""" start="00:11:48.860" video="qanda-writing" id="subtitle"]]
+[[!template text="""resonate with you. It's kind of like""" start="00:11:52.080" video="qanda-writing" id="subtitle"]]
+[[!template text="""extending those moments of consciousness that""" start="00:11:54.000" video="qanda-writing" id="subtitle"]]
+[[!template text="""you have when you take your notes,""" start="00:11:57.280" video="qanda-writing" id="subtitle"]]
+[[!template text="""and you make the entire gradient available.""" start="00:11:59.440" video="qanda-writing" id="subtitle"]]
+[[!template text="""Sorry, I heard Sasha whispering in my ear""" start="00:12:04.260" video="qanda-writing" id="subtitle"]]
+[[!template text="""sometimes. It's pretty pleasant.""" start="00:12:06.380" video="qanda-writing" id="subtitle"]]
+[[!template text="""It's really shocking.""" start="00:12:09.520" video="qanda-writing" id="subtitle"]]
+[[!template text="""[Speaker 1]: Yeah, Aaron, you had a question.""" start="00:12:12.660" video="qanda-writing" id="subtitle"]]
+[[!template text="""Do I use denote just for my blogs or do I use""" start="00:12:15.040" video="qanda-writing" id="subtitle"]]
+[[!template text="""it for other purposes?""" start="00:12:17.440" video="qanda-writing" id="subtitle"]]
+[[!template text="""I use denote for all of my note taking and""" start="00:12:19.940" video="qanda-writing" id="subtitle"]]
+[[!template text="""almost, I think it's exclusively org mode""" start="00:12:25.520" video="qanda-writing" id="subtitle"]]
+[[!template text="""that I, that I use it in.""" start="00:12:28.920" video="qanda-writing" id="subtitle"]]
+[[!template text="""But what I really appreciated in the""" start="00:12:30.600" video="qanda-writing" id="subtitle"]]
+[[!template text="""consideration that Proc put forward was the""" start="00:12:33.400" video="qanda-writing" id="subtitle"]]
+[[!template text="""file name encodes the information that's""" start="00:12:37.500" video="qanda-writing" id="subtitle"]]
+[[!template text="""relevant. So it has helped me be able to""" start="00:12:40.940" video="qanda-writing" id="subtitle"]]
+[[!template text="""query by using things like ripgrep,""" start="00:12:46.080" video="qanda-writing" id="subtitle"]]
+[[!template text="""well not ripgrep, tree or I forget any more""" start="00:12:49.220" video="qanda-writing" id="subtitle"]]
+[[!template text="""what I use. But having that the file encodes""" start="00:12:54.480" video="qanda-writing" id="subtitle"]]
+[[!template text="""useful information. And it's so much more""" start="00:13:00.300" video="qanda-writing" id="subtitle"]]
+[[!template text="""relevant when I look at having worked at a""" start="00:13:03.820" video="qanda-writing" id="subtitle"]]
+[[!template text="""university that rolled out Google Drive to""" start="00:13:06.960" video="qanda-writing" id="subtitle"]]
+[[!template text="""everyone without any guidance on how to""" start="00:13:10.520" video="qanda-writing" id="subtitle"]]
+[[!template text="""organize stuff. And I worked at a library and""" start="00:13:12.840" video="qanda-writing" id="subtitle"]]
+[[!template text="""it was just a nightmare watching things show""" start="00:13:16.120" video="qanda-writing" id="subtitle"]]
+[[!template text="""up where you could never find it again.""" start="00:13:19.540" video="qanda-writing" id="subtitle"]]
+[[!template text="""So, file name, the file name having the date,""" start="00:13:23.240" video="qanda-writing" id="subtitle"]]
+[[!template text="""having the title and having tags just made so""" start="00:13:28.380" video="qanda-writing" id="subtitle"]]
+[[!template text="""much sense to be findable.""" start="00:13:33.280" video="qanda-writing" id="subtitle"]]
+[[!template text="""And yeah, I really do just use org.""" start="00:13:36.820" video="qanda-writing" id="subtitle"]]
+[[!template text="""But if I am going to make txt files or other""" start="00:13:41.740" video="qanda-writing" id="subtitle"]]
+[[!template text="""files, I have started adopting that structure""" start="00:13:47.220" video="qanda-writing" id="subtitle"]]
+[[!template text="""and format.""" start="00:13:52.120" video="qanda-writing" id="subtitle"]]
+[[!template text="""[Speaker 0]: Right. Well, Jeremy, we have about 1 minute""" start="00:13:56.840" video="qanda-writing" id="subtitle"]]
+[[!template text="""and 30 seconds left until we go on to the""" start="00:14:00.900" video="qanda-writing" id="subtitle"]]
+[[!template text="""next talk. Do you have any final words""" start="00:14:03.080" video="qanda-writing" id="subtitle"]]
+[[!template text="""regarding your presentation or maybe where""" start="00:14:05.140" video="qanda-writing" id="subtitle"]]
+[[!template text="""people can find you? I know you've already""" start="00:14:06.740" video="qanda-writing" id="subtitle"]]
+[[!template text="""mentioned this but...""" start="00:14:08.400" video="qanda-writing" id="subtitle"]]
+[[!template text="""[Speaker 1]: Yeah, take on rules. I'm also on dice camp""" start="00:14:09.240" video="qanda-writing" id="subtitle"]]
+[[!template text="""dice.campmastodon at take on rules and I've""" start="00:14:13.440" video="qanda-writing" id="subtitle"]]
+[[!template text="""thought about emacs.h but we federate well So""" start="00:14:18.080" video="qanda-writing" id="subtitle"]]
+[[!template text="""I appreciate that. And I can stay on and""" start="00:14:22.340" video="qanda-writing" id="subtitle"]]
+[[!template text="""answer any further questions if folks have""" start="00:14:27.560" video="qanda-writing" id="subtitle"]]
+[[!template text="""it.""" start="00:14:29.680" video="qanda-writing" id="subtitle"]]
+[[!template text="""[Speaker 0]: Sure. So sorry. Sorry,""" start="00:14:31.420" video="qanda-writing" id="subtitle"]]
+[[!template text="""I confused myself with the buttons talking to""" start="00:14:34.860" video="qanda-writing" id="subtitle"]]
+[[!template text="""production and all. Well then,""" start="00:14:36.820" video="qanda-writing" id="subtitle"]]
+[[!template text="""what I'm going to do is that the stream is""" start="00:14:38.960" video="qanda-writing" id="subtitle"]]
+[[!template text="""going to move on to the next talk in about 50""" start="00:14:41.260" video="qanda-writing" id="subtitle"]]
+[[!template text="""seconds. If people want to join and ask any""" start="00:14:43.740" video="qanda-writing" id="subtitle"]]
+[[!template text="""questions, feel free to join on the blue""" start="00:14:46.160" video="qanda-writing" id="subtitle"]]
+[[!template text="""button. The link is on the talk page or on""" start="00:14:49.160" video="qanda-writing" id="subtitle"]]
+[[!template text="""IRC. And feel free to hang out as long as you""" start="00:14:51.380" video="qanda-writing" id="subtitle"]]
+[[!template text="""want to ask as many questions as you want to""" start="00:14:54.480" video="qanda-writing" id="subtitle"]]
+[[!template text="""Jeremy. We are recording all of this and""" start="00:14:56.160" video="qanda-writing" id="subtitle"]]
+[[!template text="""we'll be publishing this later on once again.""" start="00:14:58.180" video="qanda-writing" id="subtitle"]]
+[[!template text="""And all that's left for me to do is to thank""" start="00:15:01.120" video="qanda-writing" id="subtitle"]]
+[[!template text="""you so much, Jeremy, for your presentation""" start="00:15:03.080" video="qanda-writing" id="subtitle"]]
+[[!template text="""and your answers. And I will see you another""" start="00:15:05.740" video="qanda-writing" id="subtitle"]]
+[[!template text="""time.""" start="00:15:08.200" video="qanda-writing" id="subtitle"]]
+[[!template text="""[Speaker 1]: So yeah, plasma strike.""" start="00:15:12.700" video="qanda-writing" id="subtitle"]]
+[[!template text="""I'm not able to grant speaking powers.""" start="00:15:15.560" video="qanda-writing" id="subtitle"]]
+[[!template text="""So if you wanted to type up something""" start="00:15:20.340" video="qanda-writing" id="subtitle"]]
+[[!template text="""question-wise.""" start="00:15:22.160" video="qanda-writing" id="subtitle"]]
+[[!template text="""[Speaker 0]: Oh, okay. I'll manage this in the background.""" start="00:15:24.000" video="qanda-writing" id="subtitle"]]
+[[!template text="""So we're moving on to the next talk.""" start="00:15:26.000" video="qanda-writing" id="subtitle"]]
+[[!template text="""We'll figure out the things about VBB,""" start="00:15:28.500" video="qanda-writing" id="subtitle"]]
+[[!template text="""But in the meantime, enjoy the next talk.""" start="00:15:30.240" video="qanda-writing" id="subtitle"]]
+[[!template text="""Bye. All right, Jeremy.""" start="00:15:34.140" video="qanda-writing" id="subtitle"]]
+[[!template text="""We are now on the next talk.""" start="00:15:35.460" video="qanda-writing" id="subtitle"]]
+[[!template text="""Sorry about having to mention multiple things""" start="00:15:37.080" video="qanda-writing" id="subtitle"]]
+[[!template text="""at the same time. Speaking rights.""" start="00:15:39.240" video="qanda-writing" id="subtitle"]]
+[[!template text="""I will try fixing this in the background.""" start="00:15:42.500" video="qanda-writing" id="subtitle"]]
+[[!template text="""I need to get moving for the next talk,""" start="00:15:44.440" video="qanda-writing" id="subtitle"]]
+[[!template text="""but I'll do it in the background and we'll""" start="00:15:46.120" video="qanda-writing" id="subtitle"]]
+[[!template text="""let you know as soon as it's ready.""" start="00:15:48.040" video="qanda-writing" id="subtitle"]]
+[[!template text="""[Speaker 1]: We're doing great. Okay.""" start="00:15:40.440" video="qanda-writing" id="subtitle"]]
+[[!template text="""[Speaker 0]: Alright, bye bye Jeremy.""" start="00:15:51.220" video="qanda-writing" id="subtitle"]]
+
+</div>Questions or comments? Please e-mail [jeremy@jeremyfriesen.com](mailto:jeremy@jeremyfriesen.com?subject=Comment%20for%20EmacsConf%202023%20writing%3A%20Emacs%20turbo-charges%20my%20writing)
<!-- End of emacsconf-publish-after-page -->
diff --git a/2023/info/writing-before.md b/2023/info/writing-before.md
index f1f6f49a..6e01d684 100644
--- a/2023/info/writing-before.md
+++ b/2023/info/writing-before.md
@@ -1,12 +1,28 @@
<!-- Automatically generated by emacsconf-publish-before-page -->
[[!toc ]]
-Format: 10-min talk followed by live web conference Q&A
-Discuss on IRC: [#emacsconf](https://chat.emacsconf.org/?join=emacsconf)
-Status: Waiting for video from speaker
+Format: 9-min talk ; Q&A: BigBlueButton conference room
+Status: Q&A to be extracted from the room recordings
+# Talk
+
+<div class="vid mainVideo"><video controls preload="none" id="mainVideo-writing"><source src="https://media.emacsconf.org/2023/emacsconf-2023-writing--emacs-turbocharges-my-writing--jeremy-friesen--main.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2023/captions/emacsconf-2023-writing--emacs-turbocharges-my-writing--jeremy-friesen--main.vtt" default />"""<track kind="chapters" label="Chapters" src="/2023/captions/emacsconf-2023-writing--emacs-turbocharges-my-writing--jeremy-friesen--main--chapters.vtt" /><p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video>[[!template id="chapters" vidid="mainVideo-writing" data="""
+00:00.000 Intro
+00:57.120 How I got here
+01:18.400 Friction
+01:45.960 Domains for notes
+02:15.920 Demo
+02:55.440 Dabbrev and hippie-expand
+03:32.840 Links
+07:49.160 Conclusion
+
+"""]]<div></div>Duration: 08:53 minutes<div class="files resources"><ul><li><a href="https://pad.emacsconf.org/2023-writing">Open Etherpad</a></li><li><a href="https://bbb.emacsverse.org/playback/presentation/2.0/playback.html?meetingId=d3faf3bd5abcc5316e6a997b22b29d962480ad5c-1701537771543">Play recording from BigBlueButton</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-writing--emacs-turbocharges-my-writing--jeremy-friesen--intro.vtt">Download --intro.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-writing--emacs-turbocharges-my-writing--jeremy-friesen--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-writing--emacs-turbocharges-my-writing--jeremy-friesen--main--chapters.vtt">Download --main--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-writing--emacs-turbocharges-my-writing--jeremy-friesen--main.opus">Download --main.opus (5.5MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-writing--emacs-turbocharges-my-writing--jeremy-friesen--main.vtt">Download --main.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-writing--emacs-turbocharges-my-writing--jeremy-friesen--main.webm">Download --main.webm (23MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-writing--emacs-turbocharges-my-writing--jeremy-friesen.pdf">Download .pdf</a></li><li><a href="https://toobnix.org/w/ke3UCJaJSLyQr7Emv8VxST">View on Toobnix</a></li><li><a href="https://www.youtube.com/watch?v=HxlEK6W7RyA">View on Youtube</a></li></ul></div></div>
+
+# Q&A
+
+<div class="vid qanda"><video controls preload="none" id="qanda-writing"><source src="https://media.emacsconf.org/2023/emacsconf-2023-writing--emacs-turbocharges-my-writing--jeremy-friesen--answers.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2023/captions/emacsconf-2023-writing--emacs-turbocharges-my-writing--jeremy-friesen--answers.vtt" default />"""<p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video><div>Listen to just the audio:<br /><audio controls preload="none" id="qanda-writing-audio" src="https://media.emacsconf.org/2023/emacsconf-2023-writing--emacs-turbocharges-my-writing--jeremy-friesen--answers.opus"></audio></div><div></div>Duration: 15:53 minutes<div class="files resources"><ul><li><a href="https://pad.emacsconf.org/2023-writing">Open Etherpad</a></li><li><a href="https://bbb.emacsverse.org/playback/presentation/2.0/playback.html?meetingId=d3faf3bd5abcc5316e6a997b22b29d962480ad5c-1701537771543">Play recording from BigBlueButton</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-writing--emacs-turbocharges-my-writing--jeremy-friesen--answers.json">Download --answers.json</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-writing--emacs-turbocharges-my-writing--jeremy-friesen--answers.opus">Download --answers.opus (9.4MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-writing--emacs-turbocharges-my-writing--jeremy-friesen--answers.vtt">Download --answers.vtt</a> (unedited)</li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-writing--emacs-turbocharges-my-writing--jeremy-friesen--answers.webm">Download --answers.webm (35MB)</a></li></ul></div></div>
# Description
<!-- End of emacsconf-publish-before-page --> \ No newline at end of file
diff --git a/2023/info/writing-nav.md b/2023/info/writing-nav.md
index fa3bdae7..1c94a3c6 100644
--- a/2023/info/writing-nav.md
+++ b/2023/info/writing-nav.md
@@ -3,5 +3,5 @@
Back to the [[talks]]
Previous by track: <a href="/2023/talks/one">one.el: the static site generator for Emacs Lisp Programmers</a>
Next by track: <a href="/2023/talks/nabokov">Why Nabokov would use Org-Mode if he were writing today</a>
-Track: <span class="sched-track General">General</span>
+Track: <span class="sched-track General">General</span> - <strong><a href="https://emacsconf.org/2023/watch/gen">Watch</a></strong>
</div>