summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--2023/info/adventure-after.md8
-rw-r--r--2023/info/collab-after.md14
-rw-r--r--2023/info/cubing-after.md24
-rw-r--r--2023/info/doc-after.md46
-rw-r--r--2023/info/emacsconf-after.md34
-rw-r--r--2023/info/emacsen-after.md22
-rw-r--r--2023/info/emms-after.md52
-rw-r--r--2023/info/eval-after.md12
-rw-r--r--2023/info/hyperdrive-after.md26
-rw-r--r--2023/info/llm-after.md26
-rw-r--r--2023/info/lspocaml-after.md36
-rw-r--r--2023/info/matplotllm-after.md10
-rw-r--r--2023/info/mentor-after.md38
-rw-r--r--2023/info/nabokov-after.md10
-rw-r--r--2023/info/one-after.md24
-rw-r--r--2023/info/overlay-after.md52
-rw-r--r--2023/info/parallel-after.md32
-rw-r--r--2023/info/ref-after.md12
-rw-r--r--2023/info/scheme-after.md44
-rw-r--r--2023/info/sharing-after.md40
-rw-r--r--2023/info/solo-after.md26
-rw-r--r--2023/info/table-after.md18
-rw-r--r--2023/info/teaching-after.md34
-rw-r--r--2023/info/test-after.md44
-rw-r--r--2023/info/uni-after.md32
-rw-r--r--2023/info/voice-after.md34
-rw-r--r--2023/info/web-after.md24
-rw-r--r--2023/info/world-after.md36
-rw-r--r--2023/info/writing-after.md16
29 files changed, 413 insertions, 413 deletions
diff --git a/2023/info/adventure-after.md b/2023/info/adventure-after.md
index ff86ce58..caf37375 100644
--- a/2023/info/adventure-after.md
+++ b/2023/info/adventure-after.md
@@ -5,7 +5,7 @@
# Transcript
-Introduction
+[[!template text="""Introduction""" video="00:00:00.000" id="subtitle"mainVideo-adventure]]
[[!template new="1" 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"]]
@@ -23,7 +23,7 @@ Introduction
[[!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"]]
-Demo
+[[!template text="""Demo""" video="00:01:01.200" id="subtitle"mainVideo-adventure]]
[[!template new="1" 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"]]
@@ -69,7 +69,7 @@ Demo
[[!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"]]
-emi-escape-12
+[[!template text="""emi-escape-12""" video="00:03:33.360" id="subtitle"mainVideo-adventure]]
[[!template new="1" 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"]]
@@ -95,7 +95,7 @@ emi-escape-12
[[!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"]]
-The rest of the game
+[[!template text="""The rest of the game""" video="00:04:47.040" id="subtitle"mainVideo-adventure]]
[[!template new="1" 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"]]
diff --git a/2023/info/collab-after.md b/2023/info/collab-after.md
index ecfadced..855e11c9 100644
--- a/2023/info/collab-after.md
+++ b/2023/info/collab-after.md
@@ -5,7 +5,7 @@
# Transcript
-Introduction
+[[!template text="""Introduction""" video="00:00:00.000" id="subtitle"mainVideo-collab]]
[[!template new="1" 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"]]
@@ -35,7 +35,7 @@ Introduction
[[!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"]]
-Org Mode
+[[!template text="""Org Mode""" video="00:01:16.080" id="subtitle"mainVideo-collab]]
[[!template new="1" 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"]]
@@ -62,7 +62,7 @@ Org Mode
[[!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"]]
-Working together
+[[!template text="""Working together""" video="00:02:18.960" id="subtitle"mainVideo-collab]]
[[!template new="1" 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"]]
@@ -152,7 +152,7 @@ Working together
[[!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"]]
-Data cleaning
+[[!template text="""Data cleaning""" video="00:06:27.840" id="subtitle"mainVideo-collab]]
[[!template new="1" 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"]]
@@ -194,7 +194,7 @@ Data cleaning
[[!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"]]
-Processing
+[[!template text="""Processing""" video="00:08:04.040" id="subtitle"mainVideo-collab]]
[[!template new="1" 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"]]
@@ -283,7 +283,7 @@ Processing
[[!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"]]
-Visualization
+[[!template text="""Visualization""" video="00:12:36.040" id="subtitle"mainVideo-collab]]
[[!template new="1" 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"]]
@@ -318,7 +318,7 @@ Visualization
[[!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"]]
-Preserve
+[[!template text="""Preserve""" video="00:14:01.760" id="subtitle"mainVideo-collab]]
[[!template new="1" 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"]]
diff --git a/2023/info/cubing-after.md b/2023/info/cubing-after.md
index 52a4f0dc..081a13f7 100644
--- a/2023/info/cubing-after.md
+++ b/2023/info/cubing-after.md
@@ -5,7 +5,7 @@
# Transcript
-Introduction
+[[!template text="""Introduction""" video="00:00:00.000" id="subtitle"mainVideo-cubing]]
[[!template new="1" 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"]]
@@ -39,7 +39,7 @@ Introduction
[[!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"]]
-Cubing in Emacs
+[[!template text="""Cubing in Emacs""" video="00:01:35.400" id="subtitle"mainVideo-cubing]]
[[!template new="1" 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"]]
@@ -50,7 +50,7 @@ Cubing in Emacs
[[!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"]]
-Prior art
+[[!template text="""Prior art""" video="00:02:01.160" id="subtitle"mainVideo-cubing]]
[[!template new="1" 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"]]
@@ -66,7 +66,7 @@ Prior art
[[!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"]]
-The name
+[[!template text="""The name""" video="00:02:32.040" id="subtitle"mainVideo-cubing]]
[[!template new="1" 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"]]
@@ -86,7 +86,7 @@ The name
[[!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"]]
-What's in wca-prep
+[[!template text="""What's in wca-prep""" video="00:03:16.520" id="subtitle"mainVideo-cubing]]
[[!template new="1" 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"]]
@@ -99,13 +99,13 @@ What's in wca-prep
[[!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"]]
-Demo
+[[!template text="""Demo""" video="00:03:49.240" id="subtitle"mainVideo-cubing]]
[[!template new="1" 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"]]
-Challenges: Representing the cube
+[[!template text="""Challenges: Representing the cube""" video="00:05:15.240" id="subtitle"mainVideo-cubing]]
[[!template text="""Okay, so building this thing, there were several challenges.""" start="00:05:15.240" video="mainVideo-cubing" id="subtitle"]]
[[!template new="1" text="""The first one was how do I even represent""" start="00:05:18.509" video="mainVideo-cubing" id="subtitle"]]
@@ -148,7 +148,7 @@ Challenges: Representing the cube
[[!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"]]
-Scrambling
+[[!template text="""Scrambling""" video="00:07:09.269" id="subtitle"mainVideo-cubing]]
[[!template new="1" 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"]]
@@ -172,7 +172,7 @@ Scrambling
[[!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"]]
-Visualization
+[[!template text="""Visualization""" video="00:08:09.549" id="subtitle"mainVideo-cubing]]
[[!template new="1" 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"]]
@@ -192,7 +192,7 @@ Visualization
[[!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"]]
-UI with Transient
+[[!template text="""UI with Transient""" video="00:08:56.469" id="subtitle"mainVideo-cubing]]
[[!template new="1" 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"]]
@@ -217,7 +217,7 @@ UI with Transient
[[!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"]]
-Book-keeping with SQLite
+[[!template text="""Book-keeping with SQLite""" video="00:09:55.629" id="subtitle"mainVideo-cubing]]
[[!template new="1" 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"]]
@@ -247,7 +247,7 @@ Book-keeping with SQLite
[[!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"]]
-Conclusion
+[[!template text="""Conclusion""" video="00:11:12.629" id="subtitle"mainVideo-cubing]]
[[!template new="1" 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"]]
diff --git a/2023/info/doc-after.md b/2023/info/doc-after.md
index 9ac644ba..04e2dfc7 100644
--- a/2023/info/doc-after.md
+++ b/2023/info/doc-after.md
@@ -5,7 +5,7 @@
# Transcript
-Introduction
+[[!template text="""Introduction""" video="00:00:00.000" id="subtitle"mainVideo-doc]]
[[!template new="1" 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"]]
@@ -27,7 +27,7 @@ Introduction
[[!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"]]
-Org Babel and literate programming
+[[!template text="""Org Babel and literate programming""" video="00:00:57.760" id="subtitle"mainVideo-doc]]
[[!template new="1" 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"]]
@@ -57,7 +57,7 @@ Org Babel and literate programming
[[!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"]]
-This presentation
+[[!template text="""This presentation""" video="00:02:14.080" id="subtitle"mainVideo-doc]]
[[!template new="1" 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"]]
@@ -109,7 +109,7 @@ This presentation
[[!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"]]
-Getting started
+[[!template text="""Getting started""" video="00:04:53.480" id="subtitle"mainVideo-doc]]
[[!template new="1" 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"]]
@@ -156,7 +156,7 @@ Getting started
[[!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"]]
-README
+[[!template text="""README""" video="00:06:55.780" id="subtitle"mainVideo-doc]]
[[!template new="1" 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"]]
@@ -170,7 +170,7 @@ README
[[!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"]]
-Writing a code block
+[[!template text="""Writing a code block""" video="00:07:23.500" id="subtitle"mainVideo-doc]]
[[!template new="1" 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"]]
@@ -192,7 +192,7 @@ Writing a code block
[[!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"]]
-:results none
+[[!template text=""":results none""" video="00:08:10.460" id="subtitle"mainVideo-doc]]
[[!template new="1" 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"]]
@@ -206,7 +206,7 @@ Writing a code block
[[!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"]]
-Confirmation
+[[!template text="""Confirmation""" video="00:08:40.320" id="subtitle"mainVideo-doc]]
[[!template new="1" 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"]]
@@ -246,7 +246,7 @@ Confirmation
[[!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"]]
-Running blocks automatically
+[[!template text="""Running blocks automatically""" video="00:10:36.960" id="subtitle"mainVideo-doc]]
[[!template new="1" 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"]]
@@ -323,7 +323,7 @@ Running blocks automatically
[[!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"]]
-Export options
+[[!template text="""Export options""" video="00:13:53.000" id="subtitle"mainVideo-doc]]
[[!template new="1" 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"]]
@@ -379,7 +379,7 @@ Export options
[[!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"]]
-Substituting constants
+[[!template text="""Substituting constants""" video="00:16:05.700" id="subtitle"mainVideo-doc]]
[[!template new="1" 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"]]
@@ -405,7 +405,7 @@ Substituting constants
[[!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 "distro" property.""" start="00:17:19.560" video="mainVideo-doc" id="subtitle"]]
-Getting the properties
+[[!template text="""Getting the properties""" video="00:17:25.740" id="subtitle"mainVideo-doc]]
[[!template new="1" 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"]]
@@ -466,7 +466,7 @@ Getting the properties
[[!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"]]
-Macros
+[[!template text="""Macros""" video="00:20:03.060" id="subtitle"mainVideo-doc]]
[[!template new="1" 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"]]
@@ -491,7 +491,7 @@ Macros
[[!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"]]
-Properties in practice
+[[!template text="""Properties in practice""" video="00:21:05.240" id="subtitle"mainVideo-doc]]
[[!template new="1" 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"]]
@@ -516,7 +516,7 @@ Properties in practice
[[!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"]]
-Using a prefix
+[[!template text="""Using a prefix""" video="00:22:09.020" id="subtitle"mainVideo-doc]]
[[!template new="1" 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"]]
@@ -551,7 +551,7 @@ Using a prefix
[[!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"]]
-Switching distributions
+[[!template text="""Switching distributions""" video="00:23:42.010" id="subtitle"mainVideo-doc]]
[[!template new="1" 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"]]
@@ -632,7 +632,7 @@ Switching distributions
[[!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"]]
-A tour
+[[!template text="""A tour""" video="00:27:14.150" id="subtitle"mainVideo-doc]]
[[!template new="1" 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"]]
@@ -704,7 +704,7 @@ A tour
[[!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"]]
-TeX and LaTeX
+[[!template text="""TeX and LaTeX""" video="00:30:16.200" id="subtitle"mainVideo-doc]]
[[!template new="1" 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"]]
@@ -725,7 +725,7 @@ TeX and LaTeX
[[!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"]]
-Other prerequisites
+[[!template text="""Other prerequisites""" video="00:31:09.250" id="subtitle"mainVideo-doc]]
[[!template new="1" 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"]]
@@ -748,7 +748,7 @@ Other prerequisites
[[!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"]]
-Caching
+[[!template text="""Caching""" video="00:32:00.060" id="subtitle"mainVideo-doc]]
[[!template new="1" 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"]]
@@ -838,7 +838,7 @@ Caching
[[!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"]]
-Looking at the PDF
+[[!template text="""Looking at the PDF""" video="00:36:20.610" id="subtitle"mainVideo-doc]]
[[!template new="1" 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"]]
@@ -902,7 +902,7 @@ Looking at the PDF
[[!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"]]
-Errors
+[[!template text="""Errors""" video="00:39:29.440" id="subtitle"mainVideo-doc]]
[[!template new="1" 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"]]
@@ -970,7 +970,7 @@ Errors
[[!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"]]
-Final thoughts
+[[!template text="""Final thoughts""" video="00:42:31.990" id="subtitle"mainVideo-doc]]
[[!template new="1" 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"]]
diff --git a/2023/info/emacsconf-after.md b/2023/info/emacsconf-after.md
index b3f87828..43fb23ff 100644
--- a/2023/info/emacsconf-after.md
+++ b/2023/info/emacsconf-after.md
@@ -5,7 +5,7 @@
# Transcript
-Intro
+[[!template text="""Intro""" video="00:00:00.000" id="subtitle"mainVideo-emacsconf]]
[[!template new="1" 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"]]
@@ -13,7 +13,7 @@ Intro
[[!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"]]
-Reasons
+[[!template text="""Reasons""" video="00:00:16.580" id="subtitle"mainVideo-emacsconf]]
[[!template new="1" 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"]]
@@ -35,7 +35,7 @@ Reasons
[[!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"]]
-Information
+[[!template text="""Information""" video="00:01:09.400" id="subtitle"mainVideo-emacsconf]]
[[!template new="1" 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"]]
@@ -62,7 +62,7 @@ Information
[[!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"]]
-Properties
+[[!template text="""Properties""" video="00:02:09.160" id="subtitle"mainVideo-emacsconf]]
[[!template new="1" 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"]]
@@ -101,7 +101,7 @@ Properties
[[!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"]]
-Timezones
+[[!template text="""Timezones""" video="00:03:53.120" id="subtitle"mainVideo-emacsconf]]
[[!template new="1" 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"]]
@@ -118,7 +118,7 @@ Timezones
[[!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"]]
-Scheduling
+[[!template text="""Scheduling""" video="00:04:29.720" id="subtitle"mainVideo-emacsconf]]
[[!template new="1" 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"]]
@@ -147,7 +147,7 @@ Scheduling
[[!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"]]
-Templates
+[[!template text="""Templates""" video="00:05:41.780" id="subtitle"mainVideo-emacsconf]]
[[!template new="1" 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"]]
@@ -174,7 +174,7 @@ Templates
[[!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"]]
-Wiki
+[[!template text="""Wiki""" video="00:06:48.400" id="subtitle"mainVideo-emacsconf]]
[[!template new="1" 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"]]
@@ -211,7 +211,7 @@ Wiki
[[!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"]]
-Etherpad
+[[!template text="""Etherpad""" video="00:08:04.380" id="subtitle"mainVideo-emacsconf]]
[[!template new="1" 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"]]
@@ -225,7 +225,7 @@ Etherpad
[[!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"]]
-E-mail
+[[!template text="""E-mail""" video="00:08:28.200" id="subtitle"mainVideo-emacsconf]]
[[!template new="1" 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"]]
@@ -243,7 +243,7 @@ E-mail
[[!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"]]
-BigBlueButton web conferences
+[[!template text="""BigBlueButton web conferences""" video="00:09:05.920" id="subtitle"mainVideo-emacsconf]]
[[!template new="1" 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"]]
@@ -271,7 +271,7 @@ BigBlueButton web conferences
[[!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"]]
-Shortcuts
+[[!template text="""Shortcuts""" video="00:10:08.121" id="subtitle"mainVideo-emacsconf]]
[[!template new="1" 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"]]
@@ -286,7 +286,7 @@ Shortcuts
[[!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"]]
-Logbook
+[[!template text="""Logbook""" video="00:10:36.700" id="subtitle"mainVideo-emacsconf]]
[[!template new="1" 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"]]
@@ -299,7 +299,7 @@ Logbook
[[!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"]]
-Captions
+[[!template text="""Captions""" video="00:11:03.680" id="subtitle"mainVideo-emacsconf]]
[[!template new="1" 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"]]
@@ -326,7 +326,7 @@ Captions
[[!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"]]
-Crontabs and playing the talks
+[[!template text="""Crontabs and playing the talks""" video="00:12:13.220" id="subtitle"mainVideo-emacsconf]]
[[!template new="1" 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"]]
@@ -353,7 +353,7 @@ Crontabs and playing the talks
[[!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"]]
-Transitions
+[[!template text="""Transitions""" video="00:13:11.280" id="subtitle"mainVideo-emacsconf]]
[[!template new="1" 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"]]
@@ -372,7 +372,7 @@ Transitions
[[!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"]]
-Wrapping up
+[[!template text="""Wrapping up""" video="00:13:49.880" id="subtitle"mainVideo-emacsconf]]
[[!template new="1" 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"]]
diff --git a/2023/info/emacsen-after.md b/2023/info/emacsen-after.md
index 8992f28d..7bbe9da6 100644
--- a/2023/info/emacsen-after.md
+++ b/2023/info/emacsen-after.md
@@ -5,7 +5,7 @@
# Transcript
-Introduction
+[[!template text="""Introduction""" video="00:00:00.000" id="subtitle"mainVideo-emacsen]]
[[!template new="1" 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"]]
@@ -13,7 +13,7 @@ Introduction
[[!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"]]
-Why Lisp matters
+[[!template text="""Why Lisp matters""" video="00:00:17.000" id="subtitle"mainVideo-emacsen]]
[[!template new="1" 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"]]
@@ -37,7 +37,7 @@ Why Lisp matters
[[!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"]]
-Why Emacs Lisp was chosen
+[[!template text="""Why Emacs Lisp was chosen""" video="00:01:26.640" id="subtitle"mainVideo-emacsen]]
[[!template new="1" 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"]]
@@ -65,7 +65,7 @@ Why Emacs Lisp was chosen
[[!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"]]
-Other "Emacsen"
+[[!template text="""Other "Emacsen"""" video="00:02:54.841" id="subtitle"mainVideo-emacsen]]
[[!template new="1" 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"]]
@@ -83,7 +83,7 @@ Other "Emacsen"
[[!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"]]
-Why not Common Lisp?
+[[!template text="""Why not Common Lisp?""" video="00:03:38.581" id="subtitle"mainVideo-emacsen]]
[[!template new="1" 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"]]
@@ -137,7 +137,7 @@ Why not Common Lisp?
[[!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"]]
-Common Lisp is still not dead or is always dead
+[[!template text="""Common Lisp is still not dead or is always dead""" video="00:06:39.120" id="subtitle"mainVideo-emacsen]]
[[!template new="1" 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"]]
@@ -178,7 +178,7 @@ Common Lisp is still not dead or is always dead
[[!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"]]
-Lem is a nice Emacsen implementation
+[[!template text="""Lem is a nice Emacsen implementation""" video="00:08:30.080" id="subtitle"mainVideo-emacsen]]
[[!template new="1" 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"]]
@@ -187,7 +187,7 @@ Lem is a nice Emacsen implementation
[[!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"]]
-Why not just use GNU Emacs?
+[[!template text="""Why not just use GNU Emacs?""" video="00:08:58.260" id="subtitle"mainVideo-emacsen]]
[[!template new="1" 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"]]
@@ -218,7 +218,7 @@ Why not just use GNU Emacs?
[[!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"]]
-Why Lem
+[[!template text="""Why Lem""" video="00:10:31.080" id="subtitle"mainVideo-emacsen]]
[[!template new="1" 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"]]
@@ -292,7 +292,7 @@ Why Lem
[[!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"]]
-Similarities and differences
+[[!template text="""Similarities and differences""" video="00:14:03.080" id="subtitle"mainVideo-emacsen]]
[[!template new="1" 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"]]
@@ -332,7 +332,7 @@ Similarities and differences
[[!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"]]
-Demo
+[[!template text="""Demo""" video="00:15:49.600" id="subtitle"mainVideo-emacsen]]
[[!template new="1" 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"]]
diff --git a/2023/info/emms-after.md b/2023/info/emms-after.md
index 09579d59..d5e07014 100644
--- a/2023/info/emms-after.md
+++ b/2023/info/emms-after.md
@@ -5,7 +5,7 @@
# Transcript
-Introduction
+[[!template text="""Introduction""" video="00:00:00.000" id="subtitle"mainVideo-emms]]
[[!template new="1" 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"]]
@@ -27,7 +27,7 @@ Introduction
[[!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"]]
-The structure of this talk
+[[!template text="""The structure of this talk""" video="00:01:03.320" id="subtitle"mainVideo-emms]]
[[!template new="1" 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"]]
@@ -35,7 +35,7 @@ The structure of this talk
[[!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"]]
-Introduction to Emms: The practical part
+[[!template text="""Introduction to Emms: The practical part""" video="00:01:21.320" id="subtitle"mainVideo-emms]]
[[!template new="1" 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"]]
@@ -137,7 +137,7 @@ Introduction to Emms: The practical part
[[!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"]]
-The modeline
+[[!template text="""The modeline""" video="00:08:04.240" id="subtitle"mainVideo-emms]]
[[!template new="1" 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"]]
@@ -190,7 +190,7 @@ The modeline
[[!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"]]
-Meta-playlist mode
+[[!template text="""Meta-playlist mode""" video="00:11:01.200" id="subtitle"mainVideo-emms]]
[[!template new="1" 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"]]
@@ -200,7 +200,7 @@ Meta-playlist mode
[[!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"]]
-The browser
+[[!template text="""The browser""" video="00:11:29.860" id="subtitle"mainVideo-emms]]
[[!template new="1" 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"]]
@@ -238,7 +238,7 @@ The browser
[[!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"]]
-How Emms works: The technical part
+[[!template text="""How Emms works: The technical part""" video="00:13:19.920" id="subtitle"mainVideo-emms]]
[[!template new="1" 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"]]
@@ -295,14 +295,14 @@ How Emms works: The technical part
[[!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"]]
-The Emms core
+[[!template text="""The Emms core""" video="00:16:23.820" id="subtitle"mainVideo-emms]]
[[!template new="1" 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"]]
-Tracks
+[[!template text="""Tracks""" video="00:16:36.440" id="subtitle"mainVideo-emms]]
[[!template new="1" 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"]]
@@ -316,7 +316,7 @@ Tracks
[[!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"]]
-Playlist
+[[!template text="""Playlist""" video="00:17:18.460" id="subtitle"mainVideo-emms]]
[[!template new="1" 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"]]
@@ -336,7 +336,7 @@ Playlist
[[!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"]]
-Sources
+[[!template text="""Sources""" video="00:18:22.080" id="subtitle"mainVideo-emms]]
[[!template new="1" 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"]]
@@ -357,7 +357,7 @@ Sources
[[!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"]]
-Players
+[[!template text="""Players""" video="00:19:22.160" id="subtitle"mainVideo-emms]]
[[!template new="1" 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"]]
@@ -376,7 +376,7 @@ Players
[[!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"]]
-Info
+[[!template text="""Info""" video="00:20:20.520" id="subtitle"mainVideo-emms]]
[[!template new="1" 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"]]
@@ -400,7 +400,7 @@ Info
[[!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"]]
-The cache
+[[!template text="""The cache""" video="00:21:36.660" id="subtitle"mainVideo-emms]]
[[!template new="1" 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"]]
@@ -429,7 +429,7 @@ The cache
[[!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"]]
-Healthy back and forth: mpv, mpd, and GNU.FM
+[[!template text="""Healthy back and forth: mpv, mpd, and GNU.FM""" video="00:22:51.620" id="subtitle"mainVideo-emms]]
[[!template new="1" 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"]]
@@ -444,7 +444,7 @@ Healthy back and forth: mpv, mpd, and GNU.FM
[[!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"]]
-MPV
+[[!template text="""MPV""" video="00:23:31.560" id="subtitle"mainVideo-emms]]
[[!template new="1" 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"]]
@@ -467,7 +467,7 @@ MPV
[[!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"]]
-MPD
+[[!template text="""MPD""" video="00:24:47.470" id="subtitle"mainVideo-emms]]
[[!template new="1" 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"]]
@@ -491,7 +491,7 @@ MPD
[[!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"]]
-GNU FM and Libre FM
+[[!template text="""GNU FM and Libre FM""" video="00:26:07.440" id="subtitle"mainVideo-emms]]
[[!template new="1" 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"]]
@@ -514,7 +514,7 @@ GNU FM and Libre FM
[[!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"]]
-How we work: Emms development
+[[!template text="""How we work: Emms development""" video="00:27:12.560" id="subtitle"mainVideo-emms]]
[[!template new="1" 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"]]
@@ -543,7 +543,7 @@ How we work: Emms development
[[!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"]]
-The Rime Of The Ancient Maintainer
+[[!template text="""The Rime Of The Ancient Maintainer""" video="00:28:52.590" id="subtitle"mainVideo-emms]]
[[!template new="1" 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"]]
@@ -551,7 +551,7 @@ The Rime Of The Ancient Maintainer
[[!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"]]
-The life and times of an Emms patch
+[[!template text="""The life and times of an Emms patch""" video="00:29:06.080" id="subtitle"mainVideo-emms]]
[[!template new="1" 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"]]
@@ -595,7 +595,7 @@ The life and times of an Emms patch
[[!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"]]
-Let It Go: The release process
+[[!template text="""Let It Go: The release process""" video="00:31:24.080" id="subtitle"mainVideo-emms]]
[[!template new="1" 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"]]
@@ -615,7 +615,7 @@ Let It Go: The release process
[[!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"]]
-It Is Not In Our Stars, But In Ourselves: Future directions
+[[!template text="""It Is Not In Our Stars, But In Ourselves: Future directions""" video="00:32:23.400" id="subtitle"mainVideo-emms]]
[[!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"]]
[[!template text="""One aspect of Emms that needs to improve is ease of setup.""" start="00:32:29.630" video="mainVideo-emms" id="subtitle"]]
@@ -665,7 +665,7 @@ It Is Not In Our Stars, But In Ourselves: Future directions
[[!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"]]
-Development policies: Interface language
+[[!template text="""Development policies: Interface language""" video="00:34:44.849" id="subtitle"mainVideo-emms]]
[[!template new="1" 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"]]
@@ -692,7 +692,7 @@ Development policies: Interface language
[[!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"]]
-Development policies: Freedom
+[[!template text="""Development policies: Freedom""" video="00:36:05.980" id="subtitle"mainVideo-emms]]
[[!template new="1" 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"]]
@@ -735,7 +735,7 @@ Development policies: Freedom
[[!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"]]
-Acknowledgements
+[[!template text="""Acknowledgements""" video="00:38:12.370" id="subtitle"mainVideo-emms]]
[[!template new="1" 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"]]
diff --git a/2023/info/eval-after.md b/2023/info/eval-after.md
index 42bfc76b..5b804d05 100644
--- a/2023/info/eval-after.md
+++ b/2023/info/eval-after.md
@@ -5,7 +5,7 @@
# Transcript
-Introduction
+[[!template text="""Introduction""" video="00:00:04.880" id="subtitle"mainVideo-eval]]
[[!template new="1" 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"]]
@@ -19,7 +19,7 @@ Introduction
[[!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"]]
-The wonders of C-x C-e
+[[!template text="""The wonders of C-x C-e""" video="00:00:35.989" id="subtitle"mainVideo-eval]]
[[!template new="1" 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"]]
@@ -89,7 +89,7 @@ The wonders of C-x C-e
[[!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"]]
-An overview of REPL Driven Development
+[[!template text="""An overview of REPL Driven Development""" video="00:03:35.809" id="subtitle"mainVideo-eval]]
[[!template new="1" 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"]]
@@ -121,7 +121,7 @@ An overview of REPL Driven Development
[[!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"]]
-REPL Driven Development with Java
+[[!template text="""REPL Driven Development with Java""" video="00:04:51.143" id="subtitle"mainVideo-eval]]
[[!template new="1" 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"]]
@@ -171,7 +171,7 @@ REPL Driven Development with Java
[[!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"]]
-Bring your own Read Protocol
+[[!template text="""Bring your own Read Protocol""" video="00:07:28.029" id="subtitle"mainVideo-eval]]
[[!template new="1" 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"]]
@@ -184,7 +184,7 @@ Bring your own Read Protocol
[[!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"]]
-Use Case: RDD & Job Interviews
+[[!template text="""Use Case: RDD & Job Interviews""" video="00:07:59.669" id="subtitle"mainVideo-eval]]
[[!template new="1" 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"]]
diff --git a/2023/info/hyperdrive-after.md b/2023/info/hyperdrive-after.md
index 91dfb860..3342c646 100644
--- a/2023/info/hyperdrive-after.md
+++ b/2023/info/hyperdrive-after.md
@@ -12,7 +12,7 @@
[[!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"]]
-Hyperdrives introduction
+[[!template text="""Hyperdrives introduction""" video="00:00:19.840" id="subtitle"mainVideo-hyperdrive]]
[[!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"]]
@@ -76,7 +76,7 @@ Hyperdrives introduction
[[!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"]]
-About USHIN and the contributors
+[[!template text="""About USHIN and the contributors""" video="00:03:04.600" id="subtitle"mainVideo-hyperdrive]]
[[!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"]]
@@ -112,7 +112,7 @@ About USHIN and the contributors
[[!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"]]
-Basic introduction to Hyperdrive
+[[!template text="""Basic introduction to Hyperdrive""" video="00:04:32.646" id="subtitle"mainVideo-hyperdrive]]
[[!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"]]
@@ -144,7 +144,7 @@ Basic introduction to Hyperdrive
[[!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"]]
-Managing files with Hyperdrive.el
+[[!template text="""Managing files with Hyperdrive.el""" video="00:06:06.133" id="subtitle"mainVideo-hyperdrive]]
[[!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"]]
@@ -278,7 +278,7 @@ Managing files with Hyperdrive.el
[[!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"]]
-Dired like interface
+[[!template text="""Dired like interface""" video="00:12:56.573" id="subtitle"mainVideo-hyperdrive]]
[[!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"]]
@@ -325,7 +325,7 @@ Dired like interface
[[!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"]]
-History in hyperdrive
+[[!template text="""History in hyperdrive""" video="00:15:01.234" id="subtitle"mainVideo-hyperdrive]]
[[!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"]]
@@ -376,7 +376,7 @@ History in hyperdrive
[[!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"]]
-Use case of sharing large files
+[[!template text="""Use case of sharing large files""" video="00:17:39.973" id="subtitle"mainVideo-hyperdrive]]
[[!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"]]
@@ -415,7 +415,7 @@ Use case of sharing large files
[[!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"]]
-Drive creation with hyperdrive.el
+[[!template text="""Drive creation with hyperdrive.el""" video="00:19:20.913" id="subtitle"mainVideo-hyperdrive]]
[[!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"]]
@@ -496,7 +496,7 @@ Drive creation with hyperdrive.el
[[!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 "Prot."""" start="00:23:20.539" video="mainVideo-hyperdrive" id="subtitle"]]
-hyperdrive-mirror
+[[!template text="""hyperdrive-mirror""" video="00:23:26.199" id="subtitle"mainVideo-hyperdrive]]
[[!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"]]
@@ -614,7 +614,7 @@ hyperdrive-mirror
[[!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"]]
-hyperdrive history
+[[!template text="""hyperdrive history""" video="00:30:06.819" id="subtitle"mainVideo-hyperdrive]]
[[!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"]]
@@ -693,7 +693,7 @@ hyperdrive history
[[!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"]]
-Streaming video from hyperdrive
+[[!template text="""Streaming video from hyperdrive""" video="00:34:20.880" id="subtitle"mainVideo-hyperdrive]]
[[!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"]]
@@ -711,7 +711,7 @@ Streaming video from hyperdrive
[[!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"]]
-hyperdrive.el under the hood
+[[!template text="""hyperdrive.el under the hood""" video="00:35:08.746" id="subtitle"mainVideo-hyperdrive]]
[[!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"]]
@@ -771,7 +771,7 @@ hyperdrive.el under the hood
[[!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"]]
-Next steps
+[[!template text="""Next steps""" video="00:38:57.541" id="subtitle"mainVideo-hyperdrive]]
[[!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"]]
diff --git a/2023/info/llm-after.md b/2023/info/llm-after.md
index 152613ea..9e09d49c 100644
--- a/2023/info/llm-after.md
+++ b/2023/info/llm-after.md
@@ -5,7 +5,7 @@
# Transcript
-Intro to the Talk
+[[!template text="""Intro to the Talk""" video="00:00:00.000" id="subtitle"mainVideo-llm]]
[[!template new="1" 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"]]
@@ -16,7 +16,7 @@ Intro to the Talk
[[!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"]]
-What are LLMs?
+[[!template text="""What are LLMs?""" video="00:00:25.080" id="subtitle"mainVideo-llm]]
[[!template new="1" 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"]]
@@ -51,7 +51,7 @@ What are LLMs?
[[!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"]]
-Power of LLMs (Magit Demo)
+[[!template text="""Power of LLMs (Magit Demo)""" video="00:01:56.360" id="subtitle"mainVideo-llm]]
[[!template new="1" 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"]]
@@ -87,7 +87,7 @@ Power of LLMs (Magit Demo)
[[!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"]]
-Drawbacks of LLMs (regex demo)
+[[!template text="""Drawbacks of LLMs (regex demo)""" video="00:03:32.240" id="subtitle"mainVideo-llm]]
[[!template new="1" 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"]]
@@ -130,7 +130,7 @@ Drawbacks of LLMs (regex demo)
[[!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"]]
-Embeddings
+[[!template text="""Embeddings""" video="00:05:20.120" id="subtitle"mainVideo-llm]]
[[!template new="1" 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"]]
@@ -181,7 +181,7 @@ Embeddings
[[!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"]]
-Image Generation
+[[!template text="""Image Generation""" video="00:07:32.800" id="subtitle"mainVideo-llm]]
[[!template new="1" 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"]]
@@ -212,7 +212,7 @@ Image Generation
[[!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"]]
-Fine-tuning
+[[!template text="""Fine-tuning""" video="00:08:48.480" id="subtitle"mainVideo-llm]]
[[!template new="1" 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"]]
@@ -267,7 +267,7 @@ Fine-tuning
[[!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"]]
-Open Source
+[[!template text="""Open Source""" video="00:11:08.160" id="subtitle"mainVideo-llm]]
[[!template new="1" 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"]]
@@ -291,7 +291,7 @@ Open Source
[[!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"]]
-The Future
+[[!template text="""The Future""" video="00:12:02.840" id="subtitle"mainVideo-llm]]
[[!template new="1" 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"]]
@@ -342,7 +342,7 @@ The Future
[[!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"]]
-LLMs in Emacs - existing packages
+[[!template text="""LLMs in Emacs - existing packages""" video="00:14:08.200" id="subtitle"mainVideo-llm]]
[[!template new="1" 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"]]
@@ -432,7 +432,7 @@ LLMs in Emacs - existing packages
[[!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"]]
-Abstracting LLM challenges
+[[!template text="""Abstracting LLM challenges""" video="00:18:15.960" id="subtitle"mainVideo-llm]]
[[!template new="1" 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"]]
@@ -455,7 +455,7 @@ Abstracting LLM challenges
[[!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"]]
-Emacs is the ideal interface for LLMs
+[[!template text="""Emacs is the ideal interface for LLMs""" video="00:19:04.080" id="subtitle"mainVideo-llm]]
[[!template new="1" 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"]]
@@ -483,7 +483,7 @@ Emacs is the ideal interface for LLMs
[[!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"]]
-Outro
+[[!template text="""Outro""" video="00:20:01.960" id="subtitle"mainVideo-llm]]
[[!template new="1" 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"]]
diff --git a/2023/info/lspocaml-after.md b/2023/info/lspocaml-after.md
index 6dc5b303..1623326e 100644
--- a/2023/info/lspocaml-after.md
+++ b/2023/info/lspocaml-after.md
@@ -5,7 +5,7 @@
# Transcript
-Introduction
+[[!template text="""Introduction""" video="00:00:00.000" id="subtitle"mainVideo-lspocaml]]
[[!template new="1" 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"]]
@@ -16,7 +16,7 @@ Introduction
[[!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"]]
-What is Semgrep?
+[[!template text="""What is Semgrep?""" video="00:00:16.540" id="subtitle"mainVideo-lspocaml]]
[[!template new="1" 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"]]
@@ -30,7 +30,7 @@ What is Semgrep?
[[!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"]]
-How do we show security bugs early?
+[[!template text="""How do we show security bugs early?""" video="00:00:40.720" id="subtitle"mainVideo-lspocaml]]
[[!template new="1" 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"]]
@@ -55,7 +55,7 @@ How do we show security bugs early?
[[!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"]]
-What is the Language Server Protocol?
+[[!template text="""What is the Language Server Protocol?""" video="00:01:37.880" id="subtitle"mainVideo-lspocaml]]
[[!template new="1" 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"]]
@@ -76,7 +76,7 @@ What is the Language Server Protocol?
[[!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"]]
-Case study: Rust Analyzer
+[[!template text="""Case study: Rust Analyzer""" video="00:02:29.040" id="subtitle"mainVideo-lspocaml]]
[[!template new="1" 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"]]
@@ -105,7 +105,7 @@ Case study: Rust Analyzer
[[!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"]]
-Rust Analyzer in action
+[[!template text="""Rust Analyzer in action""" video="00:03:42.760" id="subtitle"mainVideo-lspocaml]]
[[!template new="1" 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"]]
@@ -122,7 +122,7 @@ Rust Analyzer in action
[[!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"]]
-Why is this useful?
+[[!template text="""Why is this useful?""" video="00:04:09.960" id="subtitle"mainVideo-lspocaml]]
[[!template new="1" 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"]]
@@ -160,7 +160,7 @@ Why is this useful?
[[!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"]]
-So what about Emacs?
+[[!template text="""So what about Emacs?""" video="00:05:36.220" id="subtitle"mainVideo-lspocaml]]
[[!template new="1" 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"]]
@@ -188,7 +188,7 @@ So what about Emacs?
[[!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"]]
-Technical part - Brief communication overview
+[[!template text="""Technical part - Brief communication overview""" video="00:06:40.700" id="subtitle"mainVideo-lspocaml]]
[[!template new="1" 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"]]
@@ -226,12 +226,12 @@ Technical part - Brief communication overview
[[!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"]]
-Example request
+[[!template text="""Example request""" video="00:07:58.760" id="subtitle"mainVideo-lspocaml]]
[[!template new="1" 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"]]
-LSP capabilities
+[[!template text="""LSP capabilities""" video="00:08:03.380" id="subtitle"mainVideo-lspocaml]]
[[!template new="1" 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"]]
@@ -267,7 +267,7 @@ LSP capabilities
[[!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"]]
-Tips on writing a LS
+[[!template text="""Tips on writing a LS""" video="00:09:23.380" id="subtitle"mainVideo-lspocaml]]
[[!template new="1" 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"]]
@@ -312,7 +312,7 @@ Tips on writing a LS
[[!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"]]
-Supporting a LS through LSP mode in Emacs
+[[!template text="""Supporting a LS through LSP mode in Emacs""" video="00:11:03.480" id="subtitle"mainVideo-lspocaml]]
[[!template new="1" 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"]]
@@ -337,7 +337,7 @@ Supporting a LS through LSP mode in Emacs
[[!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"]]
-Create a client
+[[!template text="""Create a client""" video="00:12:06.000" id="subtitle"mainVideo-lspocaml]]
[[!template new="1" 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"]]
@@ -363,7 +363,7 @@ Create a client
[[!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"]]
-Add to list of client packages
+[[!template text="""Add to list of client packages""" video="00:13:07.300" id="subtitle"mainVideo-lspocaml]]
[[!template new="1" 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"]]
@@ -392,12 +392,12 @@ Add to list of client packages
[[!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"]]
-Add documentation!
+[[!template text="""Add documentation!""" video="00:14:11.680" id="subtitle"mainVideo-lspocaml]]
[[!template new="1" 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"]]
-Adding commands and custom capabilities
+[[!template text="""Adding commands and custom capabilities""" video="00:14:17.880" id="subtitle"mainVideo-lspocaml]]
[[!template new="1" 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"]]
@@ -414,7 +414,7 @@ Adding commands and custom capabilities
[[!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"]]
-Thanks for listening
+[[!template text="""Thanks for listening""" video="00:15:01.360" id="subtitle"mainVideo-lspocaml]]
[[!template new="1" 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"]]
diff --git a/2023/info/matplotllm-after.md b/2023/info/matplotllm-after.md
index 0cd78e93..ed8215ae 100644
--- a/2023/info/matplotllm-after.md
+++ b/2023/info/matplotllm-after.md
@@ -5,7 +5,7 @@
# Transcript
-Introduction
+[[!template text="""Introduction""" video="00:00:00.000" id="subtitle"mainVideo-matplotllm]]
[[!template new="1" 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"]]
@@ -46,7 +46,7 @@ Introduction
[[!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"]]
-What is an LLM?
+[[!template text="""What is an LLM?""" video="00:01:40.720" id="subtitle"mainVideo-matplotllm]]
[[!template new="1" 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"]]
@@ -65,7 +65,7 @@ What is an LLM?
[[!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"]]
-Using this library
+[[!template text="""Using this library""" video="00:02:23.600" id="subtitle"mainVideo-matplotllm]]
[[!template new="1" 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"]]
@@ -122,7 +122,7 @@ Using this library
[[!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"]]
-Further instructions
+[[!template text="""Further instructions""" video="00:05:11.701" id="subtitle"mainVideo-matplotllm]]
[[!template new="1" 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"]]
@@ -175,7 +175,7 @@ Further instructions
[[!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"]]
-Room for improvement
+[[!template text="""Room for improvement""" video="00:08:00.160" id="subtitle"mainVideo-matplotllm]]
[[!template new="1" 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"]]
diff --git a/2023/info/mentor-after.md b/2023/info/mentor-after.md
index bc9b7bcb..24d21fa9 100644
--- a/2023/info/mentor-after.md
+++ b/2023/info/mentor-after.md
@@ -5,7 +5,7 @@
# Transcript
-Introduction
+[[!template text="""Introduction""" video="00:00:01.380" id="subtitle"mainVideo-mentor]]
[[!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"]]
@@ -16,7 +16,7 @@ Introduction
[[!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"]]
-Framing approaches
+[[!template text="""Framing approaches""" video="00:00:26.740" id="subtitle"mainVideo-mentor]]
[[!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"]]
@@ -24,7 +24,7 @@ Framing approaches
[[!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"]]
-What are you looking to learn?
+[[!template text="""What are you looking to learn?""" video="00:00:41.940" id="subtitle"mainVideo-mentor]]
[[!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=""""What have you been wanting to learn more of,""" start="00:00:45.300" video="mainVideo-mentor" id="subtitle"]]
@@ -36,7 +36,7 @@ What are you looking to learn?
[[!template text=""""where are you getting stuck,"""" start="00:01:00.140" video="mainVideo-mentor" id="subtitle"]]
[[!template text="""and "if you change one thing, what would it be?"""" start="00:01:01.420" video="mainVideo-mentor" id="subtitle"]]
-Make the work visible
+[[!template text="""Make the work visible""" video="00:01:06.000" id="subtitle"mainVideo-mentor]]
[[!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"]]
@@ -46,7 +46,7 @@ Make the work visible
[[!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"]]
-Hop in and be curious
+[[!template text="""Hop in and be curious""" video="00:01:29.320" id="subtitle"mainVideo-mentor]]
[[!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"]]
@@ -66,7 +66,7 @@ Hop in and be curious
[[!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"]]
-Pairing is for sharing
+[[!template text="""Pairing is for sharing""" video="00:02:15.880" id="subtitle"mainVideo-mentor]]
[[!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"]]
@@ -87,7 +87,7 @@ Pairing is for sharing
[[!template text="""I could learn?"""" 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"]]
-Editor functions
+[[!template text="""Editor functions""" video="00:03:03.860" id="subtitle"mainVideo-mentor]]
[[!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"]]
@@ -99,7 +99,7 @@ Editor functions
[[!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"]]
-Where do they want to go?
+[[!template text="""Where do they want to go?""" video="00:03:23.240" id="subtitle"mainVideo-mentor]]
[[!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"]]
@@ -132,7 +132,7 @@ Where do they want to go?
[[!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"]]
-How do they get there?
+[[!template text="""How do they get there?""" video="00:04:53.440" id="subtitle"mainVideo-mentor]]
[[!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"]]
@@ -148,7 +148,7 @@ How do they get there?
[[!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"]]
-Here they are, now what?
+[[!template text="""Here they are, now what?""" video="00:05:36.640" id="subtitle"mainVideo-mentor]]
[[!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"]]
@@ -183,7 +183,7 @@ Here they are, now what?
[[!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"]]
-How do they summarize?
+[[!template text="""How do they summarize?""" video="00:07:06.640" id="subtitle"mainVideo-mentor]]
[[!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"]]
@@ -200,12 +200,12 @@ How do they summarize?
[[!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"]]
-General strategies
+[[!template text="""General strategies""" video="00:07:44.440" id="subtitle"mainVideo-mentor]]
[[!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"]]
-Commit to one item of learning each week
+[[!template text="""Commit to one item of learning each week""" video="00:07:52.060" id="subtitle"mainVideo-mentor]]
[[!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"]]
@@ -218,7 +218,7 @@ Commit to one item of learning each week
[[!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"]]
-Practice within your knowledge domain
+[[!template text="""Practice within your knowledge domain""" video="00:08:18.960" id="subtitle"mainVideo-mentor]]
[[!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"]]
@@ -229,7 +229,7 @@ Practice within your knowledge domain
[[!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"]]
-Note-taking
+[[!template text="""Note-taking""" video="00:08:47.120" id="subtitle"mainVideo-mentor]]
[[!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"]]
@@ -239,7 +239,7 @@ Note-taking
[[!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"]]
-Help them navigate the proprietary software tar pits
+[[!template text="""Help them navigate the proprietary software tar pits""" video="00:09:07.120" id="subtitle"mainVideo-mentor]]
[[!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"]]
@@ -252,12 +252,12 @@ Help them navigate the proprietary software tar pits
[[!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"]]
-Help show the joy of holisting computering
+[[!template text="""Help show the joy of holisting computering""" video="00:09:38.520" id="subtitle"mainVideo-mentor]]
[[!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 "computering" environment.""" start="00:09:43.240" video="mainVideo-mentor" id="subtitle"]]
-Playing is for staying
+[[!template text="""Playing is for staying""" video="00:09:47.740" id="subtitle"mainVideo-mentor]]
[[!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"]]
@@ -268,7 +268,7 @@ Playing is for staying
[[!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"]]
-Conclusion
+[[!template text="""Conclusion""" video="00:10:14.900" id="subtitle"mainVideo-mentor]]
[[!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"]]
diff --git a/2023/info/nabokov-after.md b/2023/info/nabokov-after.md
index 494675b7..f0ede27f 100644
--- a/2023/info/nabokov-after.md
+++ b/2023/info/nabokov-after.md
@@ -5,7 +5,7 @@
# Transcript
-Introduction
+[[!template text="""Introduction""" video="00:00:00.000" id="subtitle"mainVideo-nabokov]]
[[!template new="1" 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"]]
@@ -32,7 +32,7 @@ Introduction
[[!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"]]
-Nabokov's process of writing novels
+[[!template text="""Nabokov's process of writing novels""" video="00:00:45.760" id="subtitle"mainVideo-nabokov]]
[[!template new="1" 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"]]
@@ -77,7 +77,7 @@ Nabokov's process of writing novels
[[!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"]]
-Three practical problems novelists face
+[[!template text="""Three practical problems novelists face""" video="00:02:24.080" id="subtitle"mainVideo-nabokov]]
[[!template new="1" 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"]]
@@ -146,7 +146,7 @@ Three practical problems novelists face
[[!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"]]
-Org mode for writing novels
+[[!template text="""Org mode for writing novels""" video="00:04:46.560" id="subtitle"mainVideo-nabokov]]
[[!template new="1" 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"]]
@@ -247,7 +247,7 @@ Org mode for writing novels
[[!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"]]
-Takeaways and next steps
+[[!template text="""Takeaways and next steps""" video="00:08:55.600" id="subtitle"mainVideo-nabokov]]
[[!template new="1" 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"]]
diff --git a/2023/info/one-after.md b/2023/info/one-after.md
index 692f5974..b4800db6 100644
--- a/2023/info/one-after.md
+++ b/2023/info/one-after.md
@@ -5,7 +5,7 @@
# Transcript
-Introduction
+[[!template text="""Introduction""" video="00:00:00.000" id="subtitle"mainVideo-one]]
[[!template new="1" 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"]]
@@ -16,7 +16,7 @@ Introduction
[[!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"]]
-Documentation
+[[!template text="""Documentation""" video="00:00:24.000" id="subtitle"mainVideo-one]]
[[!template new="1" 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"]]
@@ -52,7 +52,7 @@ Documentation
[[!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"]]
-Starting a new project
+[[!template text="""Starting a new project""" video="00:02:02.200" id="subtitle"mainVideo-one]]
[[!template new="1" 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"]]
@@ -64,7 +64,7 @@ Starting a new project
[[!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"]]
-Building
+[[!template text="""Building""" video="00:02:27.400" id="subtitle"mainVideo-one]]
[[!template new="1" 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"]]
@@ -84,7 +84,7 @@ Building
[[!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"]]
-Side by side
+[[!template text="""Side by side""" video="00:03:19.760" id="subtitle"mainVideo-one]]
[[!template new="1" 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"]]
@@ -108,7 +108,7 @@ Side by side
[[!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"]]
-Writing a render function
+[[!template text="""Writing a render function""" video="00:04:32.160" id="subtitle"mainVideo-one]]
[[!template new="1" 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"]]
@@ -129,7 +129,7 @@ Writing a render function
[[!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 "foo bar baz" in the page.""" start="00:05:39.480" video="mainVideo-one" id="subtitle"]]
-New page
+[[!template text="""New page""" video="00:05:44.680" id="subtitle"mainVideo-one]]
[[!template new="1" 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"]]
@@ -145,7 +145,7 @@ New page
[[!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"]]
-Linking between pages
+[[!template text="""Linking between pages""" video="00:06:41.720" id="subtitle"mainVideo-one]]
[[!template new="1" 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"]]
@@ -184,7 +184,7 @@ Linking between pages
[[!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"]]
-CSS
+[[!template text="""CSS""" video="00:08:40.000" id="subtitle"mainVideo-one]]
[[!template new="1" 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"]]
@@ -214,7 +214,7 @@ CSS
[[!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"]]
-How to write a render function
+[[!template text="""How to write a render function""" video="00:10:23.160" id="subtitle"mainVideo-one]]
[[!template new="1" 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"]]
@@ -350,7 +350,7 @@ How to write a render function
[[!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"]]
-Rendering content
+[[!template text="""Rendering content""" video="00:19:03.200" id="subtitle"mainVideo-one]]
[[!template new="1" 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"]]
@@ -377,7 +377,7 @@ Rendering content
[[!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"]]
-Rendering CSS
+[[!template text="""Rendering CSS""" video="00:20:37.160" id="subtitle"mainVideo-one]]
[[!template new="1" 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"]]
diff --git a/2023/info/overlay-after.md b/2023/info/overlay-after.md
index 77329547..4967091a 100644
--- a/2023/info/overlay-after.md
+++ b/2023/info/overlay-after.md
@@ -5,7 +5,7 @@
# Transcript
-Introduction
+[[!template text="""Introduction""" video="00:00:00.000" id="subtitle"mainVideo-overlay]]
[[!template new="1" 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"]]
@@ -19,7 +19,7 @@ Introduction
[[!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"]]
-Overlays and what they can do
+[[!template text="""Overlays and what they can do""" video="00:00:33.560" id="subtitle"mainVideo-overlay]]
[[!template new="1" 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"]]
@@ -54,7 +54,7 @@ Overlays and what they can do
[[!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"]]
-Simple overlay example - creating an overlay
+[[!template text="""Simple overlay example - creating an overlay""" video="00:02:02.500" id="subtitle"mainVideo-overlay]]
[[!template new="1" 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"]]
@@ -67,7 +67,7 @@ Simple overlay example - creating an overlay
[[!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"]]
-Adding properties
+[[!template text="""Adding properties""" video="00:02:35.700" id="subtitle"mainVideo-overlay]]
[[!template new="1" 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"]]
@@ -82,7 +82,7 @@ Adding properties
[[!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"]]
-Deleting an overlay
+[[!template text="""Deleting an overlay""" video="00:03:10.940" id="subtitle"mainVideo-overlay]]
[[!template new="1" 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"]]
@@ -92,7 +92,7 @@ Deleting an overlay
[[!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"]]
-Setting fonts the right way
+[[!template text="""Setting fonts the right way""" video="00:03:24.660" id="subtitle"mainVideo-overlay]]
[[!template new="1" 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"]]
@@ -107,14 +107,14 @@ Setting fonts the right way
[[!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"]]
-More properties
+[[!template text="""More properties""" video="00:03:59.540" id="subtitle"mainVideo-overlay]]
[[!template new="1" 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"]]
-Visibility
+[[!template text="""Visibility""" video="00:04:12.580" id="subtitle"mainVideo-overlay]]
[[!template new="1" 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"]]
@@ -132,7 +132,7 @@ Visibility
[[!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"]]
-Adding text
+[[!template text="""Adding text""" video="00:04:49.780" id="subtitle"mainVideo-overlay]]
[[!template new="1" 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"]]
@@ -149,7 +149,7 @@ Adding text
[[!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"]]
-Custom properties
+[[!template text="""Custom properties""" video="00:05:27.820" id="subtitle"mainVideo-overlay]]
[[!template new="1" 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"]]
@@ -158,7 +158,7 @@ Custom properties
[[!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"]]
-Notes on properties
+[[!template text="""Notes on properties""" video="00:05:45.380" id="subtitle"mainVideo-overlay]]
[[!template new="1" 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"]]
@@ -179,7 +179,7 @@ Notes on properties
[[!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"]]
-Improving C++ compiler output
+[[!template text="""Improving C++ compiler output""" video="00:06:36.100" id="subtitle"mainVideo-overlay]]
[[!template new="1" 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"]]
@@ -216,14 +216,14 @@ Improving C++ compiler output
[[!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"]]
-The problem with C++ error messages
+[[!template text="""The problem with C++ error messages""" video="00:08:17.680" id="subtitle"mainVideo-overlay]]
[[!template new="1" 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"]]
-Many standard class templates have defalut arguments
+[[!template text="""Many standard class templates have defalut arguments""" video="00:08:30.240" id="subtitle"mainVideo-overlay]]
[[!template new="1" 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"]]
@@ -233,7 +233,7 @@ Many standard class templates have defalut arguments
[[!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"]]
-Some types are aliases for longer things, too
+[[!template text="""Some types are aliases for longer things, too""" video="00:08:47.520" id="subtitle"mainVideo-overlay]]
[[!template new="1" 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"]]
@@ -245,7 +245,7 @@ Some types are aliases for longer things, too
[[!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"]]
-Reporting type information accurately means long lines
+[[!template text="""Reporting type information accurately means long lines""" video="00:09:20.960" id="subtitle"mainVideo-overlay]]
[[!template new="1" 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"]]
@@ -272,7 +272,7 @@ Reporting type information accurately means long lines
[[!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"]]
-Emacs can help - Treat C++ type names as just another kind of balanced expression
+[[!template text="""Emacs can help - Treat C++ type names as just another kind of balanced expression""" video="00:10:18.240" id="subtitle"mainVideo-overlay]]
[[!template new="1" 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"]]
@@ -305,7 +305,7 @@ Emacs can help - Treat C++ type names as just another kind of balanced expressio
[[!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"]]
-Add overlays to improve readability
+[[!template text="""Add overlays to improve readability""" video="00:11:49.320" id="subtitle"mainVideo-overlay]]
[[!template new="1" 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"]]
@@ -318,7 +318,7 @@ Add overlays to improve readability
[[!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"]]
-Create a minor mode that runs during compilation
+[[!template text="""Create a minor mode that runs during compilation""" video="00:12:22.400" id="subtitle"mainVideo-overlay]]
[[!template new="1" 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"]]
@@ -334,7 +334,7 @@ Create a minor mode that runs during compilation
[[!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"]]
-Parsing types as balanced expressions
+[[!template text="""Parsing types as balanced expressions""" video="00:12:59.500" id="subtitle"mainVideo-overlay]]
[[!template new="1" 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"]]
@@ -362,7 +362,7 @@ Parsing types as balanced expressions
[[!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"]]
-Indent and fill with overlays - Use ancient "pretty printing" algorithms"
+[[!template text="""Indent and fill with overlays - Use ancient "pretty printing" algorithms"""" video="00:14:16.100" id="subtitle"mainVideo-overlay]]
[[!template new="1" 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"]]
@@ -376,7 +376,7 @@ Indent and fill with overlays - Use ancient "pretty printing" algorithms"
[[!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"]]
-Overlays can mimic line breaks and indentation
+[[!template text="""Overlays can mimic line breaks and indentation""" video="00:14:52.260" id="subtitle"mainVideo-overlay]]
[[!template new="1" 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"]]
@@ -385,7 +385,7 @@ Overlays can mimic line breaks and indentation
[[!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"]]
-Hiding details - Marking depths with overlays
+[[!template text="""Hiding details - Marking depths with overlays""" video="00:15:14.520" id="subtitle"mainVideo-overlay]]
[[!template new="1" 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"]]
@@ -425,7 +425,7 @@ Hiding details - Marking depths with overlays
[[!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"]]
-Hiding to a target depth
+[[!template text="""Hiding to a target depth""" video="00:17:12.660" id="subtitle"mainVideo-overlay]]
[[!template new="1" 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"]]
@@ -444,7 +444,7 @@ Hiding to a target depth
[[!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"]]
-Demo
+[[!template text="""Demo""" video="00:18:04.900" id="subtitle"mainVideo-overlay]]
[[!template new="1" 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"]]
@@ -488,7 +488,7 @@ Demo
[[!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"]]
-Conclusion
+[[!template text="""Conclusion""" video="00:20:10.220" id="subtitle"mainVideo-overlay]]
[[!template new="1" 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"]]
diff --git a/2023/info/parallel-after.md b/2023/info/parallel-after.md
index 4a237be5..653eb525 100644
--- a/2023/info/parallel-after.md
+++ b/2023/info/parallel-after.md
@@ -5,7 +5,7 @@
# Transcript
-Introduction
+[[!template text="""Introduction""" video="00:00:00.000" id="subtitle"mainVideo-parallel]]
[[!template new="1" 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"]]
@@ -18,7 +18,7 @@ Introduction
[[!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"]]
-Problem: Goal
+[[!template text="""Problem: Goal""" video="00:00:23.440" id="subtitle"mainVideo-parallel]]
[[!template new="1" 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"]]
@@ -43,7 +43,7 @@ Problem: Goal
[[!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"]]
-Problem: Naive Multi-pass
+[[!template text="""Problem: Naive Multi-pass""" video="00:01:12.360" id="subtitle"mainVideo-parallel]]
[[!template new="1" 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"]]
@@ -54,7 +54,7 @@ Problem: Naive Multi-pass
[[!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"]]
-Problem: Clever Multi-pass
+[[!template text="""Problem: Clever Multi-pass""" video="00:01:34.200" id="subtitle"mainVideo-parallel]]
[[!template new="1" 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 "foo" with a temporary string,""" start="00:01:36.800" video="mainVideo-parallel" id="subtitle"]]
@@ -66,7 +66,7 @@ Problem: Clever Multi-pass
[[!template text="""and finally a third pass to replace the token with "bar".""" 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"]]
-Problem: Terminology
+[[!template text="""Problem: Terminology""" video="00:01:57.720" id="subtitle"mainVideo-parallel]]
[[!template new="1" 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"]]
@@ -90,7 +90,7 @@ Problem: Terminology
[[!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 "no interference".""" start="00:03:00.200" video="mainVideo-parallel" id="subtitle"]]
-Problem: Scaling Multi-pass
+[[!template text="""Problem: Scaling Multi-pass""" video="00:03:04.440" id="subtitle"mainVideo-parallel]]
[[!template new="1" 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"]]
@@ -111,7 +111,7 @@ Problem: Scaling Multi-pass
[[!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"]]
-Solution: Single-pass
+[[!template text="""Solution: Single-pass""" video="00:03:55.920" id="subtitle"mainVideo-parallel]]
[[!template new="1" 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"]]
@@ -122,7 +122,7 @@ Solution: Single-pass
[[!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"]]
-Solution: Existing
+[[!template text="""Solution: Existing""" video="00:04:18.240" id="subtitle"mainVideo-parallel]]
[[!template new="1" 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"]]
@@ -171,7 +171,7 @@ Solution: Existing
[[!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"]]
-Solution: query-replace-parallel
+[[!template text="""Solution: query-replace-parallel""" video="00:06:29.080" id="subtitle"mainVideo-parallel]]
[[!template new="1" 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"]]
@@ -184,7 +184,7 @@ Solution: query-replace-parallel
[[!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"]]
-Demonstration: Swap
+[[!template text="""Demonstration: Swap""" video="00:06:55.240" id="subtitle"mainVideo-parallel]]
[[!template new="1" 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"]]
@@ -209,7 +209,7 @@ Demonstration: Swap
[[!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"]]
-Demonstration: LaTeX
+[[!template text="""Demonstration: LaTeX""" video="00:07:53.970" id="subtitle"mainVideo-parallel]]
[[!template new="1" 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"]]
@@ -233,7 +233,7 @@ Demonstration: LaTeX
[[!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"]]
-Demonstration: Regex
+[[!template text="""Demonstration: Regex""" video="00:08:48.700" id="subtitle"mainVideo-parallel]]
[[!template new="1" 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"]]
@@ -252,7 +252,7 @@ Demonstration: Regex
[[!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"]]
-Demonstration: Order
+[[!template text="""Demonstration: Order""" video="00:09:36.320" id="subtitle"mainVideo-parallel]]
[[!template new="1" 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"]]
@@ -280,7 +280,7 @@ Demonstration: Order
[[!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"]]
-Demonstration: Fun
+[[!template text="""Demonstration: Fun""" video="00:10:54.440" id="subtitle"mainVideo-parallel]]
[[!template new="1" 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"]]
@@ -310,7 +310,7 @@ Demonstration: Fun
[[!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"]]
-Implementation
+[[!template text="""Implementation""" video="00:12:29.120" id="subtitle"mainVideo-parallel]]
[[!template new="1" 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"]]
@@ -354,7 +354,7 @@ Implementation
[[!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"]]
-End
+[[!template text="""End""" video="00:14:18.740" id="subtitle"mainVideo-parallel]]
[[!template new="1" 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"]]
diff --git a/2023/info/ref-after.md b/2023/info/ref-after.md
index b3e91d19..e216f8d4 100644
--- a/2023/info/ref-after.md
+++ b/2023/info/ref-after.md
@@ -5,7 +5,7 @@
# Transcript
-Introduction
+[[!template text="""Introduction""" video="00:00:00.000" id="subtitle"mainVideo-ref]]
[[!template new="1" 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"]]
@@ -50,7 +50,7 @@ Introduction
[[!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"]]
-Tip about completion frameworks
+[[!template text="""Tip about completion frameworks""" video="00:02:06.040" id="subtitle"mainVideo-ref]]
[[!template new="1" 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"]]
@@ -72,7 +72,7 @@ Tip about completion frameworks
[[!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"]]
-References file overview
+[[!template text="""References file overview""" video="00:03:14.920" id="subtitle"mainVideo-ref]]
[[!template new="1" 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"]]
@@ -121,7 +121,7 @@ References file overview
[[!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"]]
-The Emacs Lisp code
+[[!template text="""The Emacs Lisp code""" video="00:05:39.320" id="subtitle"mainVideo-ref]]
[[!template new="1" 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"]]
@@ -167,7 +167,7 @@ The Emacs Lisp code
[[!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"]]
-Example reference to Elfeed article
+[[!template text="""Example reference to Elfeed article""" video="00:08:02.720" id="subtitle"mainVideo-ref]]
[[!template new="1" 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"]]
@@ -231,7 +231,7 @@ Example reference to Elfeed article
[[!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"]]
-Searching the references
+[[!template text="""Searching the references""" video="00:11:41.540" id="subtitle"mainVideo-ref]]
[[!template new="1" 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"]]
diff --git a/2023/info/scheme-after.md b/2023/info/scheme-after.md
index c1ff4ca7..11b010d5 100644
--- a/2023/info/scheme-after.md
+++ b/2023/info/scheme-after.md
@@ -5,7 +5,7 @@
# Transcript
-Introduction
+[[!template text="""Introduction""" video="00:00:02.120" id="subtitle"mainVideo-scheme]]
[[!template new="1" 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"]]
@@ -14,7 +14,7 @@ Introduction
[[!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"]]
-Interactive development
+[[!template text="""Interactive development""" video="00:00:23.280" id="subtitle"mainVideo-scheme]]
[[!template new="1" 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"]]
@@ -33,7 +33,7 @@ Interactive development
[[!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"]]
-REPL: Read Eval Print Loop
+[[!template text="""REPL: Read Eval Print Loop""" video="00:01:18.180" id="subtitle"mainVideo-scheme]]
[[!template new="1" 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"]]
@@ -66,7 +66,7 @@ REPL: Read Eval Print Loop
[[!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"]]
-Long-lasting loops
+[[!template text="""Long-lasting loops""" video="00:02:53.720" id="subtitle"mainVideo-scheme]]
[[!template new="1" 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"]]
@@ -91,7 +91,7 @@ Long-lasting loops
[[!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"]]
-Not interruptible
+[[!template text="""Not interruptible""" video="00:04:07.600" id="subtitle"mainVideo-scheme]]
[[!template new="1" 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"]]
@@ -113,7 +113,7 @@ Not interruptible
[[!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"]]
-No protocol
+[[!template text="""No protocol""" video="00:05:23.160" id="subtitle"mainVideo-scheme]]
[[!template new="1" 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"]]
@@ -123,7 +123,7 @@ No protocol
[[!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"]]
-Not scalable
+[[!template text="""Not scalable""" video="00:05:51.480" id="subtitle"mainVideo-scheme]]
[[!template new="1" 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"]]
@@ -147,7 +147,7 @@ Not scalable
[[!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"]]
-nREPL
+[[!template text="""nREPL""" video="00:07:25.860" id="subtitle"mainVideo-scheme]]
[[!template new="1" 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"]]
@@ -176,7 +176,7 @@ nREPL
[[!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"]]
-Arei, Ares, and how to try
+[[!template text="""Arei, Ares, and how to try""" video="00:09:01.740" id="subtitle"mainVideo-scheme]]
[[!template new="1" 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"]]
@@ -201,7 +201,7 @@ Arei, Ares, and how to try
[[!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"]]
-Demo
+[[!template text="""Demo""" video="00:10:34.180" id="subtitle"mainVideo-scheme]]
[[!template new="1" 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"]]
@@ -218,7 +218,7 @@ Demo
[[!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"]]
-Continuations
+[[!template text="""Continuations""" video="00:11:27.640" id="subtitle"mainVideo-scheme]]
[[!template new="1" 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"]]
@@ -240,7 +240,7 @@ Continuations
[[!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"]]
-Reading from stdin
+[[!template text="""Reading from stdin""" video="00:12:32.460" id="subtitle"mainVideo-scheme]]
[[!template new="1" 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"]]
@@ -257,7 +257,7 @@ Reading from stdin
[[!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"]]
-Fancy example with continuations
+[[!template text="""Fancy example with continuations""" video="00:13:33.420" id="subtitle"mainVideo-scheme]]
[[!template new="1" 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"]]
@@ -287,7 +287,7 @@ another value for it.""" start="00:14:27.680" video="mainVideo-scheme" id="subti
[[!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"]]
-Guix API
+[[!template text="""Guix API""" video="00:15:13.160" id="subtitle"mainVideo-scheme]]
[[!template new="1" 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"]]
@@ -325,14 +325,14 @@ Guix API
[[!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"]]
-Support
+[[!template text="""Support""" video="00:17:42.060" id="subtitle"mainVideo-scheme]]
[[!template new="1" 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"]]
-Future steps - Multiple simultaneous evaluations in different contexts
+[[!template text="""Future steps - Multiple simultaneous evaluations in different contexts""" video="00:17:57.020" id="subtitle"mainVideo-scheme]]
[[!template new="1" 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"]]
@@ -348,13 +348,13 @@ Future steps - Multiple simultaneous evaluations in different contexts
[[!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"]]
-Tree-sitter integration
+[[!template text="""Tree-sitter integration""" video="00:18:46.220" id="subtitle"mainVideo-scheme]]
[[!template new="1" 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"]]
-Full-fledged debugger
+[[!template text="""Full-fledged debugger""" video="00:18:56.880" id="subtitle"mainVideo-scheme]]
[[!template new="1" 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"]]
@@ -365,7 +365,7 @@ Full-fledged debugger
[[!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"]]
-FAQ - Does it support other Scheme implementations?
+[[!template text="""FAQ - Does it support other Scheme implementations?""" video="00:19:22.760" id="subtitle"mainVideo-scheme]]
[[!template new="1" 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"]]
@@ -377,7 +377,7 @@ FAQ - Does it support other Scheme implementations?
[[!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"]]
-Is it possible to use it with other text editors?
+[[!template text="""Is it possible to use it with other text editors?""" video="00:19:58.380" id="subtitle"mainVideo-scheme]]
[[!template new="1" 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"]]
@@ -387,7 +387,7 @@ Is it possible to use it with other text editors?
[[!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"]]
-Conclusion
+[[!template text="""Conclusion""" video="00:20:22.121" id="subtitle"mainVideo-scheme]]
[[!template new="1" 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"]]
@@ -396,7 +396,7 @@ Conclusion
[[!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"]]
-Contacts
+[[!template text="""Contacts""" video="00:20:45.880" id="subtitle"mainVideo-scheme]]
[[!template new="1" 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"]]
diff --git a/2023/info/sharing-after.md b/2023/info/sharing-after.md
index 70d0e9f5..814a112f 100644
--- a/2023/info/sharing-after.md
+++ b/2023/info/sharing-after.md
@@ -5,7 +5,7 @@
# Transcript
-Introduction
+[[!template text="""Introduction""" video="00:00:00.000" id="subtitle"mainVideo-sharing]]
[[!template new="1" 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"]]
@@ -16,7 +16,7 @@ Introduction
[[!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"]]
-Today's talk
+[[!template text="""Today's talk""" video="00:00:20.100" id="subtitle"mainVideo-sharing]]
[[!template text="""And in my closing keynote""" start="00:00:20.100" video="mainVideo-sharing" id="subtitle"]]
[[!template text="""titled "Sharing Emacs is Caring Emacs,"""" start="00:00:21.540" video="mainVideo-sharing" id="subtitle"]]
@@ -31,7 +31,7 @@ Today's talk
[[!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"]]
-My history with Emacs
+[[!template text="""My history with Emacs""" video="00:00:48.900" id="subtitle"mainVideo-sharing]]
[[!template text="""My journey of sharing begins with my journey of learning.""" start="00:00:48.900" video="mainVideo-sharing" id="subtitle"]]
[[!template new="1" text="""So I'll start by spending a bit of time on that.""" start="00:00:52.460" video="mainVideo-sharing" id="subtitle"]]
@@ -56,7 +56,7 @@ My history with Emacs
[[!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"]]
-Self-exploration vs learning from others
+[[!template text="""Self-exploration vs learning from others""" video="00:01:42.380" id="subtitle"mainVideo-sharing]]
[[!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"]]
@@ -85,7 +85,7 @@ Self-exploration vs learning from others
[[!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"]]
-Learning process
+[[!template text="""Learning process""" video="00:02:53.220" id="subtitle"mainVideo-sharing]]
[[!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"]]
@@ -96,7 +96,7 @@ Learning process
[[!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"]]
-Emacs learning (not just learning Emacs)
+[[!template text="""Emacs learning (not just learning Emacs)""" video="00:03:17.020" id="subtitle"mainVideo-sharing]]
[[!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"]]
@@ -116,14 +116,14 @@ Emacs learning (not just learning Emacs)
[[!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"]]
-My YouTube journey
+[[!template text="""My YouTube journey""" video="00:04:03.300" id="subtitle"mainVideo-sharing]]
[[!template text="""So this brings me to the second part of my talk,""" start="00:04:03.300" video="mainVideo-sharing" id="subtitle"]]
[[!template new="1" 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"]]
-Why not just read the manual?
+[[!template text="""Why not just read the manual?""" video="00:04:14.820" id="subtitle"mainVideo-sharing]]
[[!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"]]
@@ -153,7 +153,7 @@ Why not just read the manual?
[[!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"]]
-Why video for Emacs
+[[!template text="""Why video for Emacs""" video="00:05:20.980" id="subtitle"mainVideo-sharing]]
[[!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"]]
@@ -169,7 +169,7 @@ Why video for Emacs
[[!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"]]
-Straightforward Emacs
+[[!template text="""Straightforward Emacs""" video="00:05:54.420" id="subtitle"mainVideo-sharing]]
[[!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"]]
@@ -187,7 +187,7 @@ Straightforward Emacs
[[!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"]]
-Challenges and benefits of video
+[[!template text="""Challenges and benefits of video""" video="00:06:32.700" id="subtitle"mainVideo-sharing]]
[[!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"]]
@@ -208,7 +208,7 @@ Challenges and benefits of video
[[!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"]]
-Crafting tutorials that work
+[[!template text="""Crafting tutorials that work""" video="00:07:16.300" id="subtitle"mainVideo-sharing]]
[[!template text="""What was it? I covered topics that had been done before.""" start="00:07:16.300" video="mainVideo-sharing" id="subtitle"]]
[[!template new="1" text="""But I wanted to present them in my way.""" start="00:07:21.660" video="mainVideo-sharing" id="subtitle"]]
@@ -229,7 +229,7 @@ Crafting tutorials that work
[[!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"]]
-High-quality and accessible content
+[[!template text="""High-quality and accessible content""" video="00:08:11.720" id="subtitle"mainVideo-sharing]]
[[!template new="1" 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"]]
@@ -256,7 +256,7 @@ High-quality and accessible content
[[!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"]]
-Most crucial aspect of my videos
+[[!template text="""Most crucial aspect of my videos""" video="00:09:17.920" id="subtitle"mainVideo-sharing]]
[[!template new="1" 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"]]
@@ -271,7 +271,7 @@ Most crucial aspect of my videos
[[!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"]]
-A broadening community
+[[!template text="""A broadening community""" video="00:09:50.220" id="subtitle"mainVideo-sharing]]
[[!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"]]
@@ -305,7 +305,7 @@ A broadening community
[[!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"]]
-Sharing Emacs
+[[!template text="""Sharing Emacs""" video="00:11:10.780" id="subtitle"mainVideo-sharing]]
[[!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"]]
@@ -321,7 +321,7 @@ Sharing Emacs
[[!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"]]
-Platforms
+[[!template text="""Platforms""" video="00:11:48.020" id="subtitle"mainVideo-sharing]]
[[!template text="""First, though, I'll briefly note""" start="00:11:48.020" video="mainVideo-sharing" id="subtitle"]]
[[!template new="1" text="""that everyone has their opinions about platforms,""" start="00:11:50.140" video="mainVideo-sharing" id="subtitle"]]
@@ -329,7 +329,7 @@ Platforms
[[!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"]]
-Achieving unity
+[[!template text="""Achieving unity""" video="00:11:57.922" id="subtitle"mainVideo-sharing]]
[[!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"]]
@@ -365,7 +365,7 @@ Achieving unity
[[!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"]]
-Every contribution is valuable
+[[!template text="""Every contribution is valuable""" video="00:13:30.000" id="subtitle"mainVideo-sharing]]
[[!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"]]
@@ -393,7 +393,7 @@ Every contribution is valuable
[[!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"]]
-Conclusion
+[[!template text="""Conclusion""" video="00:14:40.300" id="subtitle"mainVideo-sharing]]
[[!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"]]
diff --git a/2023/info/solo-after.md b/2023/info/solo-after.md
index f3f4dd34..255729fa 100644
--- a/2023/info/solo-after.md
+++ b/2023/info/solo-after.md
@@ -5,7 +5,7 @@
# Transcript
-Introduction
+[[!template text="""Introduction""" video="00:00:00.000" id="subtitle"mainVideo-solo]]
[[!template new="1" 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"]]
@@ -36,7 +36,7 @@ Introduction
[[!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"]]
-Solo RPGs
+[[!template text="""Solo RPGs""" video="00:01:20.680" id="subtitle"mainVideo-solo]]
[[!template new="1" 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"]]
@@ -66,7 +66,7 @@ Solo RPGs
[[!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"]]
-Demo
+[[!template text="""Demo""" video="00:02:47.440" id="subtitle"mainVideo-solo]]
[[!template new="1" 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"]]
@@ -97,7 +97,7 @@ Demo
[[!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"]]
-Randomization
+[[!template text="""Randomization""" video="00:04:11.760" id="subtitle"mainVideo-solo]]
[[!template new="1" 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"]]
@@ -124,7 +124,7 @@ Randomization
[[!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"]]
-Moves
+[[!template text="""Moves""" video="00:05:31.960" id="subtitle"mainVideo-solo]]
[[!template new="1" 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"]]
@@ -136,7 +136,7 @@ Moves
[[!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"]]
-Reference
+[[!template text="""Reference""" video="00:06:03.640" id="subtitle"mainVideo-solo]]
[[!template new="1" 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"]]
@@ -148,7 +148,7 @@ Reference
[[!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"]]
-Story arcs
+[[!template text="""Story arcs""" video="00:06:34.680" id="subtitle"mainVideo-solo]]
[[!template new="1" 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"]]
@@ -176,7 +176,7 @@ Story arcs
[[!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"]]
-Using different stats
+[[!template text="""Using different stats""" video="00:07:48.680" id="subtitle"mainVideo-solo]]
[[!template new="1" 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"]]
@@ -204,7 +204,7 @@ Using different stats
[[!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"]]
-Dice rolls
+[[!template text="""Dice rolls""" video="00:09:02.960" id="subtitle"mainVideo-solo]]
[[!template new="1" 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"]]
@@ -216,7 +216,7 @@ Dice rolls
[[!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"]]
-Dangers
+[[!template text="""Dangers""" video="00:09:34.800" id="subtitle"mainVideo-solo]]
[[!template new="1" 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"]]
@@ -231,7 +231,7 @@ Dangers
[[!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"]]
-A strong success
+[[!template text="""A strong success""" video="00:10:19.680" id="subtitle"mainVideo-solo]]
[[!template new="1" 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"]]
@@ -262,7 +262,7 @@ A strong success
[[!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"]]
-Other solo RPGs
+[[!template text="""Other solo RPGs""" video="00:11:49.680" id="subtitle"mainVideo-solo]]
[[!template new="1" 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"]]
@@ -286,7 +286,7 @@ Other solo RPGs
[[!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"]]
-Conclusion
+[[!template text="""Conclusion""" video="00:13:04.720" id="subtitle"mainVideo-solo]]
[[!template new="1" 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"]]
diff --git a/2023/info/table-after.md b/2023/info/table-after.md
index 3224d011..afcd0404 100644
--- a/2023/info/table-after.md
+++ b/2023/info/table-after.md
@@ -5,7 +5,7 @@
# Transcript
-Introduction
+[[!template text="""Introduction""" video="00:00:01.360" id="subtitle"mainVideo-table]]
[[!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"]]
@@ -44,7 +44,7 @@ Introduction
[[!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"]]
-Demonstration
+[[!template text="""Demonstration""" video="00:01:41.960" id="subtitle"mainVideo-table]]
[[!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"]]
@@ -67,7 +67,7 @@ Demonstration
[[!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"]]
-Range
+[[!template text="""Range""" video="00:03:08.320" id="subtitle"mainVideo-table]]
[[!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"]]
@@ -86,7 +86,7 @@ Range
[[!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"]]
-More qualifications
+[[!template text="""More qualifications""" video="00:04:11.900" id="subtitle"mainVideo-table]]
[[!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"]]
@@ -109,7 +109,7 @@ More qualifications
[[!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"]]
-Subsets
+[[!template text="""Subsets""" video="00:05:34.240" id="subtitle"mainVideo-table]]
[[!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"]]
@@ -127,7 +127,7 @@ Subsets
[[!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"]]
-Sorting
+[[!template text="""Sorting""" video="00:07:08.300" id="subtitle"mainVideo-table]]
[[!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"]]
@@ -143,7 +143,7 @@ Sorting
[[!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"]]
-New table
+[[!template text="""New table""" video="00:07:51.641" id="subtitle"mainVideo-table]]
[[!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"]]
@@ -175,7 +175,7 @@ New table
[[!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"]]
-Statistics
+[[!template text="""Statistics""" video="00:10:01.280" id="subtitle"mainVideo-table]]
[[!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"]]
@@ -198,7 +198,7 @@ Statistics
[[!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"]]
-Combining
+[[!template text="""Combining""" video="00:12:17.800" id="subtitle"mainVideo-table]]
[[!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"]]
diff --git a/2023/info/teaching-after.md b/2023/info/teaching-after.md
index b098c235..a7924306 100644
--- a/2023/info/teaching-after.md
+++ b/2023/info/teaching-after.md
@@ -5,7 +5,7 @@
# Transcript
-Introduction
+[[!template text="""Introduction""" video="00:00:00.000" id="subtitle"mainVideo-teaching]]
[[!template new="1" 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"]]
@@ -28,7 +28,7 @@ Introduction
[[!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"]]
-My interest in this topic
+[[!template text="""My interest in this topic""" video="00:00:54.160" id="subtitle"mainVideo-teaching]]
[[!template new="1" 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"]]
@@ -57,7 +57,7 @@ My interest in this topic
[[!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"]]
-What is data science?
+[[!template text="""What is data science?""" video="00:02:08.040" id="subtitle"mainVideo-teaching]]
[[!template new="1" 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"]]
@@ -92,7 +92,7 @@ What is data science?
[[!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"]]
-Computer science is a craft
+[[!template text="""Computer science is a craft""" video="00:03:47.640" id="subtitle"mainVideo-teaching]]
[[!template new="1" 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"]]
@@ -119,7 +119,7 @@ Computer science is a craft
[[!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"]]
-The problem
+[[!template text="""The problem""" video="00:04:52.840" id="subtitle"mainVideo-teaching]]
[[!template new="1" 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"]]
@@ -137,7 +137,7 @@ The problem
[[!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"]]
-The solution: Emacs + Org-mode
+[[!template text="""The solution: Emacs + Org-mode""" video="00:05:36.560" id="subtitle"mainVideo-teaching]]
[[!template new="1" 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"]]
@@ -156,7 +156,7 @@ The solution: Emacs + Org-mode
[[!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"]]
-Emacs configuration file
+[[!template text="""Emacs configuration file""" video="00:06:24.120" id="subtitle"mainVideo-teaching]]
[[!template new="1" 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"]]
@@ -179,7 +179,7 @@ Emacs configuration file
[[!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"]]
-Story + code = source + documentation
+[[!template text="""Story + code = source + documentation""" video="00:07:30.360" id="subtitle"mainVideo-teaching]]
[[!template new="1" 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"]]
@@ -195,7 +195,7 @@ Story + code = source + documentation
[[!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"]]
-What is literate programming?
+[[!template text="""What is literate programming?""" video="00:08:22.040" id="subtitle"mainVideo-teaching]]
[[!template new="1" 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"]]
@@ -226,7 +226,7 @@ What is literate programming?
[[!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"]]
-Emacs as a literate programming tool
+[[!template text="""Emacs as a literate programming tool""" video="00:09:59.880" id="subtitle"mainVideo-teaching]]
[[!template new="1" 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"]]
@@ -253,7 +253,7 @@ Emacs as a literate programming tool
[[!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"]]
-Case study: basic setup
+[[!template text="""Case study: basic setup""" video="00:11:18.960" id="subtitle"mainVideo-teaching]]
[[!template new="1" 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"]]
@@ -272,7 +272,7 @@ Case study: basic setup
[[!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"]]
-Emacs + Org-mode notebooks
+[[!template text="""Emacs + Org-mode notebooks""" video="00:12:11.280" id="subtitle"mainVideo-teaching]]
[[!template new="1" 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"]]
@@ -288,7 +288,7 @@ Emacs + Org-mode notebooks
[[!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"]]
-Onboarding: simplified Emacs tutorial
+[[!template text="""Onboarding: simplified Emacs tutorial""" video="00:12:45.800" id="subtitle"mainVideo-teaching]]
[[!template new="1" 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"]]
@@ -310,7 +310,7 @@ Onboarding: simplified Emacs tutorial
[[!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"]]
-Instruction + interaction
+[[!template text="""Instruction + interaction""" video="00:13:40.840" id="subtitle"mainVideo-teaching]]
[[!template new="1" 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"]]
@@ -338,7 +338,7 @@ Instruction + interaction
[[!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"]]
-Assignments + projects
+[[!template text="""Assignments + projects""" video="00:14:48.720" id="subtitle"mainVideo-teaching]]
[[!template new="1" 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"]]
@@ -371,7 +371,7 @@ Assignments + projects
[[!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"]]
-Overall results positive
+[[!template text="""Overall results positive""" video="00:16:15.280" id="subtitle"mainVideo-teaching]]
[[!template new="1" 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"]]
@@ -414,7 +414,7 @@ Overall results positive
[[!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"]]
-Conclusion & outlook
+[[!template text="""Conclusion & outlook""" video="00:18:19.800" id="subtitle"mainVideo-teaching]]
[[!template new="1" 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"]]
diff --git a/2023/info/test-after.md b/2023/info/test-after.md
index e4fb08b2..c0213dc7 100644
--- a/2023/info/test-after.md
+++ b/2023/info/test-after.md
@@ -5,7 +5,7 @@
# Transcript
-Introduction
+[[!template text="""Introduction""" video="00:00:03.120" id="subtitle"mainVideo-test]]
[[!template new="1" 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"]]
@@ -61,7 +61,7 @@ Introduction
[[!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"]]
-ERT: Emacs Lisp Regression Testing
+[[!template text="""ERT: Emacs Lisp Regression Testing""" video="00:03:11.160" id="subtitle"mainVideo-test]]
[[!template new="1" 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"]]
@@ -82,7 +82,7 @@ ERT: Emacs Lisp Regression Testing
[[!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"]]
-Assertions with `should`
+[[!template text="""Assertions with `should`""" video="00:04:14.360" id="subtitle"mainVideo-test]]
[[!template new="1" 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"]]
@@ -95,7 +95,7 @@ Assertions with `should`
[[!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"]]
-Running a test case
+[[!template text="""Running a test case""" video="00:04:56.920" id="subtitle"mainVideo-test]]
[[!template new="1" 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"]]
@@ -121,7 +121,7 @@ Running a test case
[[!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"]]
-Debug a test
+[[!template text="""Debug a test""" video="00:06:54.560" id="subtitle"mainVideo-test]]
[[!template new="1" 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"]]
@@ -134,7 +134,7 @@ Debug a test
[[!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"]]
-Commercial break: Hyperbole
+[[!template text="""Commercial break: Hyperbole""" video="00:07:50.380" id="subtitle"mainVideo-test]]
[[!template new="1" 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"]]
@@ -154,7 +154,7 @@ Commercial break: Hyperbole
[[!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"]]
-Instrument function on the fly
+[[!template text="""Instrument function on the fly""" video="00:09:10.480" id="subtitle"mainVideo-test]]
[[!template new="1" 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"]]
@@ -178,7 +178,7 @@ Instrument function on the fly
[[!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"]]
-Mocking
+[[!template text="""Mocking""" video="00:10:39.120" id="subtitle"mainVideo-test]]
[[!template new="1" 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"]]
@@ -256,7 +256,7 @@ Mocking
[[!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"]]
-cl-letf
+[[!template text="""cl-letf""" video="00:14:41.240" id="subtitle"mainVideo-test]]
[[!template new="1" 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"]]
@@ -271,7 +271,7 @@ cl-letf
[[!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"]]
-Hooks
+[[!template text="""Hooks""" video="00:15:24.100" id="subtitle"mainVideo-test]]
[[!template new="1" 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"]]
@@ -280,7 +280,7 @@ Hooks
[[!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"]]
-Side effects and initial buffer state
+[[!template text="""Side effects and initial buffer state""" video="00:15:55.720" id="subtitle"mainVideo-test]]
[[!template new="1" 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"]]
@@ -308,14 +308,14 @@ Side effects and initial buffer state
[[!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"]]
-with-temp-buffer
+[[!template text="""with-temp-buffer""" video="00:17:05.100" id="subtitle"mainVideo-test]]
[[!template new="1" 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"]]
-make-temp-file
+[[!template text="""make-temp-file""" video="00:17:16.520" id="subtitle"mainVideo-test]]
[[!template new="1" 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"]]
@@ -324,7 +324,7 @@ make-temp-file
[[!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"]]
-buffer-string
+[[!template text="""buffer-string""" video="00:17:33.288" id="subtitle"mainVideo-test]]
[[!template new="1" 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"]]
@@ -340,7 +340,7 @@ buffer-string
[[!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"]]
-buffer-name
+[[!template text="""buffer-name""" video="00:18:09.920" id="subtitle"mainVideo-test]]
[[!template new="1" 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"]]
@@ -358,12 +358,12 @@ buffer-name
[[!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"]]
-major-mode
+[[!template text="""major-mode""" video="00:18:51.980" id="subtitle"mainVideo-test]]
[[!template new="1" 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"]]
-unwind-protect
+[[!template text="""unwind-protect""" video="00:19:02.680" id="subtitle"mainVideo-test]]
[[!template new="1" 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"]]
@@ -383,7 +383,7 @@ unwind-protect
[[!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"]]
-Input, with-simulated-input
+[[!template text="""Input, with-simulated-input""" video="00:20:15.100" id="subtitle"mainVideo-test]]
[[!template new="1" 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"]]
@@ -412,7 +412,7 @@ Input, with-simulated-input
[[!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"]]
-Running all tests
+[[!template text="""Running all tests""" video="00:21:38.460" id="subtitle"mainVideo-test]]
[[!template new="1" 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"]]
@@ -435,7 +435,7 @@ Running all tests
[[!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"]]
-Batch mode
+[[!template text="""Batch mode""" video="00:23:03.220" id="subtitle"mainVideo-test]]
[[!template new="1" 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"]]
@@ -454,7 +454,7 @@ Batch mode
[[!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"]]
-Skipping tests
+[[!template text="""Skipping tests""" video="00:24:05.060" id="subtitle"mainVideo-test]]
[[!template new="1" 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"]]
@@ -494,7 +494,7 @@ Skipping tests
[[!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"]]
-Conclusion
+[[!template text="""Conclusion""" video="00:26:08.460" id="subtitle"mainVideo-test]]
[[!template new="1" 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"]]
diff --git a/2023/info/uni-after.md b/2023/info/uni-after.md
index d2023add..e6d06283 100644
--- a/2023/info/uni-after.md
+++ b/2023/info/uni-after.md
@@ -5,7 +5,7 @@
# Transcript
-Introduction
+[[!template text="""Introduction""" video="00:00:00.000" id="subtitle"mainVideo-uni]]
[[!template new="1" 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"]]
@@ -38,7 +38,7 @@ Introduction
[[!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"]]
-Presenting
+[[!template text="""Presenting""" video="00:01:12.440" id="subtitle"mainVideo-uni]]
[[!template new="1" 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"]]
@@ -57,7 +57,7 @@ Presenting
[[!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"]]
-Hardware
+[[!template text="""Hardware""" video="00:01:47.820" id="subtitle"mainVideo-uni]]
[[!template new="1" 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"]]
@@ -133,7 +133,7 @@ Hardware
[[!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"]]
-Example setup
+[[!template text="""Example setup""" video="00:04:46.610" id="subtitle"mainVideo-uni]]
[[!template new="1" 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"]]
@@ -157,7 +157,7 @@ Example setup
[[!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"]]
-Presentation software: flexibility in function
+[[!template text="""Presentation software: flexibility in function""" video="00:05:30.520" id="subtitle"mainVideo-uni]]
[[!template new="1" 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"]]
@@ -199,7 +199,7 @@ Presentation software: flexibility in function
[[!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"]]
-Live demonstration
+[[!template text="""Live demonstration""" video="00:07:05.950" id="subtitle"mainVideo-uni]]
[[!template new="1" 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"]]
@@ -225,7 +225,7 @@ Live demonstration
[[!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"]]
-OBS
+[[!template text="""OBS""" video="00:07:59.850" id="subtitle"mainVideo-uni]]
[[!template new="1" 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 "scenes"""" start="00:08:02.830" video="mainVideo-uni" id="subtitle"]]
@@ -241,7 +241,7 @@ OBS
[[!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"]]
-Firefox
+[[!template text="""Firefox""" video="00:08:27.190" id="subtitle"mainVideo-uni]]
[[!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"]]
@@ -293,7 +293,7 @@ Firefox
[[!template text="""is called the major groove."""" 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"]]
-Animation
+[[!template text="""Animation""" video="00:10:26.060" id="subtitle"mainVideo-uni]]
[[!template new="1" 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"]]
@@ -308,7 +308,7 @@ Animation
[[!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"]]
-Emacs
+[[!template text="""Emacs""" video="00:10:55.790" id="subtitle"mainVideo-uni]]
[[!template new="1" 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"]]
@@ -330,7 +330,7 @@ Emacs
[[!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"]]
-Making slides and handouts with Org Mode
+[[!template text="""Making slides and handouts with Org Mode""" video="00:11:42.260" id="subtitle"mainVideo-uni]]
[[!template new="1" 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"]]
@@ -375,7 +375,7 @@ Making slides and handouts with Org Mode
[[!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"]]
-Pedagogy first
+[[!template text="""Pedagogy first""" video="00:13:22.680" id="subtitle"mainVideo-uni]]
[[!template new="1" 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"]]
@@ -444,7 +444,7 @@ Pedagogy first
[[!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"]]
-org-teach
+[[!template text="""org-teach""" video="00:16:17.790" id="subtitle"mainVideo-uni]]
[[!template new="1" 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"]]
@@ -523,14 +523,14 @@ org-teach
[[!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"]]
-Blank slides
+[[!template text="""Blank slides""" video="00:19:38.330" id="subtitle"mainVideo-uni]]
[[!template new="1" 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"]]
-Animations
+[[!template text="""Animations""" video="00:19:50.050" id="subtitle"mainVideo-uni]]
[[!template new="1" 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"]]
@@ -543,7 +543,7 @@ Animations
[[!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"]]
-Conclusion
+[[!template text="""Conclusion""" video="00:20:19.270" id="subtitle"mainVideo-uni]]
[[!template new="1" 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"]]
diff --git a/2023/info/voice-after.md b/2023/info/voice-after.md
index ac7480ff..e8361255 100644
--- a/2023/info/voice-after.md
+++ b/2023/info/voice-after.md
@@ -5,7 +5,7 @@
# Transcript
-Introduction
+[[!template text="""Introduction""" video="00:00:00.000" id="subtitle"mainVideo-voice]]
[[!template new="1" 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"]]
@@ -19,7 +19,7 @@ Introduction
[[!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"]]
-Three activities in voice computing
+[[!template text="""Three activities in voice computing""" video="00:00:37.400" id="subtitle"mainVideo-voice]]
[[!template new="1" 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"]]
@@ -29,7 +29,7 @@ Three activities in voice computing
[[!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"]]
-Talk is not about ... and about ...
+[[!template text="""Talk is not about ... and about ...""" video="00:01:02.560" id="subtitle"mainVideo-voice]]
[[!template new="1" 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"]]
@@ -46,7 +46,7 @@ Talk is not about ... and about ...
[[!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"]]
-Motivations
+[[!template text="""Motivations""" video="00:01:53.520" id="subtitle"mainVideo-voice]]
[[!template new="1" 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"]]
@@ -79,7 +79,7 @@ Motivations
[[!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"]]
-Data
+[[!template text="""Data""" video="00:03:33.240" id="subtitle"mainVideo-voice]]
[[!template new="1" 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"]]
@@ -89,7 +89,7 @@ Data
[[!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"]]
-Voice In in the Chrome Store
+[[!template text="""Voice In in the Chrome Store""" video="00:03:58.680" id="subtitle"mainVideo-voice]]
[[!template new="1" 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"]]
@@ -99,7 +99,7 @@ Voice In in the Chrome Store
[[!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"]]
-Works in web pages with text areas
+[[!template text="""Works in web pages with text areas""" video="00:04:25.628" id="subtitle"mainVideo-voice]]
[[!template new="1" 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"]]
@@ -114,7 +114,7 @@ Works in web pages with text areas
[[!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"]]
-Built-in commands in Voice In Plus
+[[!template text="""Built-in commands in Voice In Plus""" video="00:05:16.880" id="subtitle"mainVideo-voice]]
[[!template new="1" 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 "stop dictation".""" start="00:05:19.160" video="mainVideo-voice" id="subtitle"]]
@@ -139,7 +139,7 @@ Built-in commands in Voice In Plus
[[!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"]]
-Common errors made by Voice In
+[[!template text="""Common errors made by Voice In""" video="00:06:41.740" id="subtitle"mainVideo-voice]]
[[!template new="1" 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"]]
@@ -165,7 +165,7 @@ Common errors made by Voice In
[[!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"]]
-Custom speech-to-text commands
+[[!template text="""Custom speech-to-text commands""" video="00:08:14.760" id="subtitle"mainVideo-voice]]
[[!template new="1" 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"]]
@@ -187,7 +187,7 @@ Custom speech-to-text commands
[[!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"]]
-Custom speech-to-commands
+[[!template text="""Custom speech-to-commands""" video="00:09:59.420" id="subtitle"mainVideo-voice]]
[[!template new="1" 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"]]
@@ -198,7 +198,7 @@ Custom speech-to-commands
[[!template text="""You can change the language [with "lang:"],""" start="00:10:27.760" video="mainVideo-voice" id="subtitle"]]
[[!template text="""and you can change the case of the text [with "case:"].""" start="00:10:28.100" video="mainVideo-voice" id="subtitle"]]
-Introducing Talon Voice
+[[!template text="""Introducing Talon Voice""" video="00:10:37.540" id="subtitle"mainVideo-voice]]
[[!template new="1" 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"]]
@@ -229,7 +229,7 @@ Introducing Talon Voice
[[!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"]]
-Talon GUI
+[[!template text="""Talon GUI""" video="00:12:28.400" id="subtitle"mainVideo-voice]]
[[!template new="1" 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"]]
@@ -254,7 +254,7 @@ Talon GUI
[[!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"]]
-Talon file with web scope
+[[!template text="""Talon file with web scope""" video="00:14:02.540" id="subtitle"mainVideo-voice]]
[[!template new="1" 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"]]
@@ -279,7 +279,7 @@ Talon file with web scope
[[!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"]]
-Terminals on remote and virtual machines
+[[!template text="""Terminals on remote and virtual machines""" video="00:15:34.015" id="subtitle"mainVideo-voice]]
[[!template new="1" 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"]]
@@ -301,7 +301,7 @@ Terminals on remote and virtual machines
[[!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"]]
-Recommendations
+[[!template text="""Recommendations""" video="00:16:52.500" id="subtitle"mainVideo-voice]]
[[!template new="1" 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"]]
@@ -328,7 +328,7 @@ Recommendations
[[!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"]]
-Acknowledgements
+[[!template text="""Acknowledgements""" video="00:18:17.720" id="subtitle"mainVideo-voice]]
[[!template new="1" 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"]]
diff --git a/2023/info/web-after.md b/2023/info/web-after.md
index 6a0027b8..fb9773de 100644
--- a/2023/info/web-after.md
+++ b/2023/info/web-after.md
@@ -5,7 +5,7 @@
# Transcript
-Overview
+[[!template text="""Overview""" video="00:00:00.000" id="subtitle"mainVideo-web]]
[[!template new="1" 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"]]
@@ -20,7 +20,7 @@ Overview
[[!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"]]
-Background problems
+[[!template text="""Background problems""" video="00:00:35.680" id="subtitle"mainVideo-web]]
[[!template new="1" 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"]]
@@ -120,7 +120,7 @@ Background problems
[[!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"]]
-Solutions outside of Emacs
+[[!template text="""Solutions outside of Emacs""" video="00:05:31.940" id="subtitle"mainVideo-web]]
[[!template new="1" 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"]]
@@ -197,12 +197,12 @@ trivial or non-trivial.""" start="00:06:44.240" video="mainVideo-web" id="subtit
[[!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"]]
-Emacs solutions
+[[!template text="""Emacs solutions""" video="00:09:46.480" id="subtitle"mainVideo-web]]
[[!template new="1" 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"]]
-Free clients in Emacs
+[[!template text="""Free clients in Emacs""" video="00:09:54.600" id="subtitle"mainVideo-web]]
[[!template new="1" 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"]]
@@ -243,7 +243,7 @@ with ease.""" start="00:11:11.120" 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"]]
-Web browsers in Emacs
+[[!template text="""Web browsers in Emacs""" video="00:12:43.021" id="subtitle"mainVideo-web]]
[[!template new="1" 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"]]
@@ -319,7 +319,7 @@ Web browsers in Emacs
[[!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"]]
-emacs-web-server - overview
+[[!template text="""emacs-web-server - overview""" video="00:16:52.380" id="subtitle"mainVideo-web]]
[[!template new="1" 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"]]
@@ -338,7 +338,7 @@ emacs-web-server - overview
[[!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"]]
-emacs-web-server - hello emacs!
+[[!template text="""emacs-web-server - hello emacs!""" video="00:17:30.380" id="subtitle"mainVideo-web]]
[[!template new="1" 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"]]
@@ -355,7 +355,7 @@ emacs-web-server - hello emacs!
[[!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"]]
-emacs-web-server - yolo
+[[!template text="""emacs-web-server - yolo""" video="00:18:17.580" id="subtitle"mainVideo-web]]
[[!template new="1" 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"]]
@@ -418,7 +418,7 @@ emacs-web-server - yolo
[[!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"]]
-emacs-web-server - emacs web framework
+[[!template text="""emacs-web-server - emacs web framework""" video="00:23:07.940" id="subtitle"mainVideo-web]]
[[!template new="1" 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"]]
@@ -534,7 +534,7 @@ emacs-web-server - emacs web framework
[[!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"]]
-Firefox with emacs for extensions
+[[!template text="""Firefox with emacs for extensions""" video="00:29:40.420" id="subtitle"mainVideo-web]]
[[!template new="1" 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"]]
@@ -572,7 +572,7 @@ Firefox with emacs for extensions
[[!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"]]
-Thank you
+[[!template text="""Thank you""" video="00:31:25.360" id="subtitle"mainVideo-web]]
[[!template new="1" 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"]]
diff --git a/2023/info/world-after.md b/2023/info/world-after.md
index f40ddcf3..ba963660 100644
--- a/2023/info/world-after.md
+++ b/2023/info/world-after.md
@@ -5,7 +5,7 @@
# Transcript
-Draw and scribble in GNU Emacs
+[[!template text="""Draw and scribble in GNU Emacs""" video="00:00:00.780" id="subtitle"mainVideo-world]]
[[!template new="1" 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"]]
@@ -50,7 +50,7 @@ Draw and scribble in GNU Emacs
[[!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"]]
-SVG Symbols library
+[[!template text="""SVG Symbols library""" video="00:03:46.400" id="subtitle"mainVideo-world]]
[[!template new="1" 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"]]
@@ -71,7 +71,7 @@ SVG Symbols library
[[!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"]]
-GNU Emacs: A multimedia editor
+[[!template text="""GNU Emacs: A multimedia editor""" video="00:05:20.140" id="subtitle"mainVideo-world]]
[[!template new="1" 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"]]
@@ -98,7 +98,7 @@ GNU Emacs: A multimedia editor
[[!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"]]
-Fill PDF form using GNU Emacs
+[[!template text="""Fill PDF form using GNU Emacs""" video="00:08:03.367" id="subtitle"mainVideo-world]]
[[!template new="1" 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"]]
@@ -124,7 +124,7 @@ Fill PDF form using GNU Emacs
[[!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"]]
-Desktop and window management in GNU Emacs
+[[!template text="""Desktop and window management in GNU Emacs""" video="00:09:34.900" id="subtitle"mainVideo-world]]
[[!template new="1" 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"]]
@@ -145,7 +145,7 @@ Desktop and window management in GNU Emacs
[[!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"]]
-Screen mirroring in GNU Emacs
+[[!template text="""Screen mirroring in GNU Emacs""" video="00:11:10.440" id="subtitle"mainVideo-world]]
[[!template new="1" 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"]]
@@ -158,46 +158,46 @@ Screen mirroring in GNU Emacs
[[!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"]]
-Swipe for Text Input in GNU Emacs
+[[!template text="""Swipe for Text Input in GNU Emacs""" video="00:11:53.033" id="subtitle"mainVideo-world]]
[[!template new="1" text="""[Using Sweep to swipe and type "as you like it."]""" start="00:11:53.033" video="mainVideo-world" id="subtitle"]]
-Formula Editor in GNU Emacs
+[[!template text="""Formula Editor in GNU Emacs""" video="00:12:25.533" id="subtitle"mainVideo-world]]
[[!template new="1" 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"]]
-Transliteration in Emacs
+[[!template text="""Transliteration in Emacs""" video="00:12:59.433" id="subtitle"mainVideo-world]]
[[!template new="1" 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"]]
-Social Media client - Tumblr, Reddit
+[[!template text="""Social Media client - Tumblr, Reddit""" video="00:13:09.433" id="subtitle"mainVideo-world]]
[[!template new="1" 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"]]
-Comics Builder
+[[!template text="""Comics Builder""" video="00:13:40.000" id="subtitle"mainVideo-world]]
[[!template new="1" text="""[Generating comic from a text script]""" start="00:13:40.000" video="mainVideo-world" id="subtitle"]]
-Matching game
+[[!template text="""Matching game""" video="00:13:49.567" id="subtitle"mainVideo-world]]
[[!template new="1" text="""[Matching color names with color boxes]""" start="00:13:49.567" video="mainVideo-world" id="subtitle"]]
-Interactive XPath Builder in GNU Emacs
+[[!template text="""Interactive XPath Builder in GNU Emacs""" video="00:13:59.567" id="subtitle"mainVideo-world]]
[[!template new="1" 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"]]
-Interactive JSON Builder in GNU Emacs
+[[!template text="""Interactive JSON Builder in GNU Emacs""" video="00:14:10.767" id="subtitle"mainVideo-world]]
[[!template new="1" 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"]]
-GNU Emacs as a lightweight IDE (CEDET Semantic): Java - Generate getter/setter
+[[!template text="""GNU Emacs as a lightweight IDE (CEDET Semantic): Java - Generate getter/setter""" video="00:14:35.233" id="subtitle"mainVideo-world]]
[[!template new="1" 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"]]
@@ -215,11 +215,11 @@ GNU Emacs as a lightweight IDE (CEDET Semantic): Java - Generate getter/setter
[[!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"]]
-Generate C header
+[[!template text="""Generate C header""" video="00:15:26.133" id="subtitle"mainVideo-world]]
[[!template new="1" text="""[Generating C headers using `srecode-gen-header`]""" start="00:15:26.133" video="mainVideo-world" id="subtitle"]]
-C Rename symbols
+[[!template text="""C Rename symbols""" video="00:16:11.640" id="subtitle"mainVideo-world]]
[[!template new="1" 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"]]
@@ -234,7 +234,7 @@ C Rename symbols
[[!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"]]
-SQL (offline)
+[[!template text="""SQL (offline)""" video="00:17:07.640" id="subtitle"mainVideo-world]]
[[!template new="1" 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"]]
diff --git a/2023/info/writing-after.md b/2023/info/writing-after.md
index 89e34436..460db609 100644
--- a/2023/info/writing-after.md
+++ b/2023/info/writing-after.md
@@ -5,7 +5,7 @@
# Transcript
-Intro
+[[!template text="""Intro""" video="00:00:00.000" id="subtitle"mainVideo-writing]]
[[!template new="1" 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"]]
@@ -26,7 +26,7 @@ Intro
[[!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"]]
-How I got here
+[[!template text="""How I got here""" video="00:00:57.120" id="subtitle"mainVideo-writing]]
[[!template new="1" 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"]]
@@ -37,7 +37,7 @@ How I got here
[[!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"]]
-Friction
+[[!template text="""Friction""" video="00:01:18.400" id="subtitle"mainVideo-writing]]
[[!template new="1" 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"]]
@@ -50,7 +50,7 @@ Friction
[[!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"]]
-Domains for notes
+[[!template text="""Domains for notes""" video="00:01:45.960" id="subtitle"mainVideo-writing]]
[[!template new="1" 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"]]
@@ -63,7 +63,7 @@ Domains for notes
[[!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"]]
-Demo
+[[!template text="""Demo""" video="00:02:15.920" id="subtitle"mainVideo-writing]]
[[!template new="1" 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"]]
@@ -82,7 +82,7 @@ Demo
[[!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"]]
-Dabbrev and hippie-expand
+[[!template text="""Dabbrev and hippie-expand""" video="00:02:55.440" id="subtitle"mainVideo-writing]]
[[!template new="1" 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"]]
@@ -96,7 +96,7 @@ Dabbrev and hippie-expand
[[!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"]]
-Links
+[[!template text="""Links""" video="00:03:32.840" id="subtitle"mainVideo-writing]]
[[!template new="1" 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"]]
@@ -182,7 +182,7 @@ Links
[[!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"]]
-Conclusion
+[[!template text="""Conclusion""" video="00:07:49.160" id="subtitle"mainVideo-writing]]
[[!template new="1" 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"]]